diff --git a/README.md b/README.md index 2405ebee..a5a1e8da 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # causal-web Causal web is a Java web-based application that allows users to run causal modeling algorithms on their dataset. The Center for Causal Discovery is hosting this application at the Pittsburgh Supercomputing Center and you can access it at https://ccd2.vm.bridges.psc.edu/ccd -Documentation for using the web application can be found at [http://www.ccd.pitt.edu/wiki/index.php?title=Causal_Web_Application_Quick_Start_and_User_Guide](http://www.ccd.pitt.edu/wiki/index.php?title=Causal_Web_Application_Quick_Start_and_User_Guide) +Documentation for using the web application can be found at [https://bd2kccd.github.io/docs/causal-web/](https://bd2kccd.github.io/docs/causal-web/) If you want to host the application with your own hardware, follow the instructions below for configuring, building and installing the application. @@ -17,18 +17,17 @@ If you want to host the application with your own hardware, follow the instructi #### Dependencies Download and uncompress the source code for each of following dependencies: -* [ccd-job-queue-0.1.4](https://github.com/bd2kccd/ccd-job-queue/releases/tag/v0.1.4) -* [ccd-mail-0.2.0](https://github.com/bd2kccd/ccd-mail/releases/tag/v0.2.0) -* [ccd-db-0.6.1](https://github.com/bd2kccd/ccd-db/releases/tag/v0.6.1) +* [ccd-job-queue-0.1.5](https://github.com/bd2kccd/ccd-job-queue/releases/tag/v0.1.5) +* [ccd-mail-0.2.1](https://github.com/bd2kccd/ccd-mail/releases/tag/v0.2.1) +* [ccd-db-0.6.2](https://github.com/bd2kccd/ccd-db/releases/tag/v0.6.2) * [ccd-commons-0.3.1](https://github.com/bd2kccd/ccd-commons/releases/tag/v0.3.1) - To install the dependencies, go to the top directory of each project and do a maven install by typing **mvn install**. #### Application -Download and uncompress the application source code [causal-web-1.2.2](https://github.com/bd2kccd/causal-web/releases/tag/v1.2.2). To compile and build the application, go to the directory **causal-web-1.2.2** and type **mvn package**. +Download and uncompress the application source code [causal-web-1.3.0](https://github.com/bd2kccd/causal-web/releases/tag/v1.3.0). To compile and build the application, go to the directory **causal-web-1.3.0** and type **mvn package**. #### External Dependencies -* [causal-cmd-5.3.0.jar](https://github.com/cmu-phil/tetrad/releases/tag/v5.3.0-20160624) +* [causal-cmd-6.0.0.jar](https://github.com/cmu-phil/tetrad/releases/tag/6.0.0-20161031) ## Configure the software @@ -39,7 +38,7 @@ Inside the workspace directory, create another folder called **lib**, for exampl Copy the **causal-cmd-5.3.0.jar** to the **workspace/lib** folder. ### Configure -There are 4 configuration files to configure located in causal-web-1.2.2/src/main/resources folder: +There are 4 configuration files to configure located in causal-web-1.3.0/src/main/resources folder: 1. **application-hsqldb.properties**: HSQLDB database configurations (for testing only). 2. **application-mysql.properties**: MySQL database configurations 3. **application.properties**: Spring Boot configurations @@ -59,11 +58,6 @@ Set the following properties in the **application.properties** file: spring.mail.username= spring.mail.password= ``` -Set the following properties in the **ccd.properties** file: -```java -// add gmail account -ccd.mail.feedback.to= -``` #### Testing Configuration Set the following properties in the **application.properties** file: @@ -80,18 +74,18 @@ spring.profiles.active=scheduler,mysql Make sure you set **ccd.server.workspace=/home/tuser/workspace** and **ccd.folder.lib=lib** in the **ccd.properties** file. ## Compile the Program -Go to the **ccd-web** directory and run the command **mvn clean package**. This will create a jar file called **causal-web-1.2.2.jar** in the **/target** folder. +Go to the **causal-web** directory and run the command **mvn clean package**. This will create a jar file called **causal-web-1.3.0.jar** in the **/target** folder. ### Launch the Program ```java -java -jar causal-web-1.2.2.jar +java -jar causal-web-1.3.0.jar ``` To give the program 4GB of memory to run on, type the follow, using the jvm options: ```java -java -Xmx4G -jar causal-web-1.2.2.jar +java -Xmx4G -jar causal-web-1.3.0.jar ``` To launch app in the browser ``` http://localhost:[port]/ccd // default port is 8080, otherwise change to specified port -``` +``` \ No newline at end of file diff --git a/pom.xml b/pom.xml index 2788dd27..6312eb7d 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ edu.pitt.dbmi causal-web - 1.2.2 + 1.3.0 jar causal-web @@ -14,14 +14,14 @@ org.springframework.boot spring-boot-starter-parent - 1.3.5.RELEASE + 1.4.1.RELEASE UTF-8 1.8 - 1.2.4 + 1.3.2 1.8 1.8 @@ -53,7 +53,7 @@ org.springframework.boot - spring-boot-starter-log4j + spring-boot-starter-log4j2 org.springframework.boot @@ -77,26 +77,42 @@ ${shiro.version} + + com.auth0 + auth0-spring-mvc + 1.1.1 + + edu.pitt.dbmi ccd-job-queue - 0.1.4 + 0.1.5 + + + edu.pitt.dbmi + ccd-db + + edu.pitt.dbmi ccd-mail - 0.2.0 + 0.2.1 edu.pitt.dbmi ccd-db - 0.6.1 + 0.6.2 edu.pitt.dbmi ccd-commons 0.3.1 + + org.json + json + diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/CcdWebApplication.java b/src/main/java/edu/pitt/dbmi/ccd/web/CcdWebApplication.java index d16a5afa..165e420d 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/CcdWebApplication.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/CcdWebApplication.java @@ -18,15 +18,16 @@ */ package edu.pitt.dbmi.ccd.web; -import edu.pitt.dbmi.ccd.db.CCDDatabaseApplication; -import edu.pitt.dbmi.ccd.mail.CCDMailApplication; -import edu.pitt.dbmi.ccd.queue.CCDJobQueueApplication; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; import org.springframework.scheduling.annotation.EnableAsync; +import edu.pitt.dbmi.ccd.db.CCDDatabaseApplication; +import edu.pitt.dbmi.ccd.mail.CcdMailApplication; +import edu.pitt.dbmi.ccd.queue.CCDJobQueueApplication; + /** * * Aug 5, 2015 1:27:02 PM @@ -35,7 +36,7 @@ */ @SpringBootApplication @EnableAsync -@Import({CCDDatabaseApplication.class, CCDJobQueueApplication.class, CCDMailApplication.class}) +@Import({CCDDatabaseApplication.class, CCDJobQueueApplication.class, CcdMailApplication.class}) @PropertySource("classpath:ccd.properties") public class CcdWebApplication { diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/conf/ApplicationConfigurer.java b/src/main/java/edu/pitt/dbmi/ccd/web/conf/ApplicationConfigurer.java index f1be29bb..3f947b18 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/conf/ApplicationConfigurer.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/conf/ApplicationConfigurer.java @@ -18,9 +18,7 @@ */ package edu.pitt.dbmi.ccd.web.conf; -import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; -import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; -import org.springframework.boot.context.embedded.ErrorPage; +import org.springframework.boot.web.servlet.ErrorPageRegistrar; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; @@ -37,14 +35,14 @@ public class ApplicationConfigurer extends WebMvcConfigurerAdapter { @Bean - public EmbeddedServletContainerCustomizer webappEmbeddedServletContainerCustomizer() { - return (ConfigurableEmbeddedServletContainer container) -> { - ErrorPage[] errorPages = { - new ErrorPage(HttpStatus.NOT_FOUND, "/404"), - new ErrorPage(HttpStatus.UNAUTHORIZED, "/401"), - new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500") - }; - container.addErrorPages(errorPages); + public ErrorPageRegistrar errorPageRegistrar() { + return registry -> { + registry.addErrorPages( + new org.springframework.boot.web.servlet.ErrorPage(HttpStatus.BAD_REQUEST, "/400"), + new org.springframework.boot.web.servlet.ErrorPage(HttpStatus.NOT_FOUND, "/404"), + new org.springframework.boot.web.servlet.ErrorPage(HttpStatus.UNAUTHORIZED, "/401"), + new org.springframework.boot.web.servlet.ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500") + ); }; } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/conf/Auth0Configurer.java b/src/main/java/edu/pitt/dbmi/ccd/web/conf/Auth0Configurer.java new file mode 100644 index 00000000..c955089b --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/conf/Auth0Configurer.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.conf; + +import com.auth0.web.Auth0Config; +import com.auth0.web.Auth0Filter; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; + +/** + * + * Oct 6, 2016 3:47:55 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Profile("auth0") +@Configuration +@ComponentScan(basePackages = {"com.auth0.web"}) +@EnableAutoConfiguration +public class Auth0Configurer { + + @Bean + public FilterRegistrationBean filterRegistration(Auth0Config auth0Config) { + final FilterRegistrationBean registration = new FilterRegistrationBean(); + registration.setFilter(new Auth0Filter(auth0Config)); + registration.addUrlPatterns(auth0Config.getSecuredRoute()); + registration.addInitParameter("redirectOnAuthError", auth0Config.getLoginRedirectOnFail()); + registration.setName("Auth0Filter"); + + return registration; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/conf/ShiroConfigurer.java b/src/main/java/edu/pitt/dbmi/ccd/web/conf/ShiroConfigurer.java index 731f0d99..cf963cbf 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/conf/ShiroConfigurer.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/conf/ShiroConfigurer.java @@ -40,7 +40,6 @@ public class ShiroConfigurer { private static final String AUTHC = "authc"; - private static final String ANON = "anon"; @Bean(name = "passwordService") public DefaultPasswordService passwordService() { diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ApplicationController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ApplicationController.java index bb485a9d..11d3f7b6 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ApplicationController.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ApplicationController.java @@ -18,27 +18,22 @@ */ package edu.pitt.dbmi.ccd.web.ctrl; -import edu.pitt.dbmi.ccd.db.entity.UserAccount; -import edu.pitt.dbmi.ccd.db.service.SecurityQuestionService; -import edu.pitt.dbmi.ccd.db.service.UserAccountService; -import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.LOGIN_VIEW; +import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.HOME; +import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.HOME_VIEW; +import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.LOGIN; +import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.LOGOUT; +import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.REDIRECT_HOME; import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.REDIRECT_LOGIN; +import edu.pitt.dbmi.ccd.web.exception.ResourceNotFoundException; import edu.pitt.dbmi.ccd.web.model.AppUser; -import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; -import edu.pitt.dbmi.ccd.web.service.AppUserService; -import edu.pitt.dbmi.ccd.web.service.DataService; -import edu.pitt.dbmi.ccd.web.service.algo.AlgorithmResultService; -import edu.pitt.dbmi.ccd.web.service.algo.ResultComparisonService; -import java.util.Date; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.authc.AuthenticationException; -import org.apache.shiro.authc.UsernamePasswordToken; -import org.apache.shiro.subject.Subject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import edu.pitt.dbmi.ccd.web.model.LoginCredentials; +import edu.pitt.dbmi.ccd.web.service.ApplicationService; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -56,114 +51,62 @@ @SessionAttributes("appUser") public class ApplicationController implements ViewPath { - private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationController.class); - - private final UserAccountService userAccountService; - - private final DataService dataService; - - private final AlgorithmResultService algorithmResultService; - - private final ResultComparisonService resultComparisonService; - - private final SecurityQuestionService securityQuestionService; - - private final AppUserService appUserService; + private final ApplicationService applicationService; @Autowired - public ApplicationController( - UserAccountService userAccountService, - DataService dataService, - AlgorithmResultService algorithmResultService, - ResultComparisonService resultComparisonService, - SecurityQuestionService securityQuestionService, - AppUserService appUserService) { - this.userAccountService = userAccountService; - this.dataService = dataService; - this.algorithmResultService = algorithmResultService; - this.resultComparisonService = resultComparisonService; - this.securityQuestionService = securityQuestionService; - this.appUserService = appUserService; - } - - @RequestMapping(value = "/", method = RequestMethod.GET) - public String showIndexPage() { - return REDIRECT_LOGIN; + public ApplicationController(ApplicationService applicationService) { + this.applicationService = applicationService; } @RequestMapping(value = HOME, method = RequestMethod.GET) - public String showHomePage( - @ModelAttribute("appUser") final AppUser appUser, - final Model model) { - String username = appUser.getUsername(); - model.addAttribute("numOfDataset", dataService.countFiles(username)); - model.addAttribute("numOfAlgorithmResults", algorithmResultService.countFiles(username)); - model.addAttribute("numOfComparisonResults", resultComparisonService.countFiles(username)); + public String showHomePage(@ModelAttribute("appUser") final AppUser appUser, final Model model) { + applicationService.retrieveFileCounts(appUser, model); return HOME_VIEW; } - @RequestMapping(value = LOGIN, method = RequestMethod.GET) - public String showLoginPage(final SessionStatus sessionStatus, final Model model) { - Subject currentUser = SecurityUtils.getSubject(); - if (sessionStatus.isComplete()) { - currentUser.logout(); - } else if (currentUser.isAuthenticated()) { - return REDIRECT_HOME; - } else { - sessionStatus.setComplete(); - } - - model.addAttribute("userRegistration", new UserRegistration()); - model.addAttribute("securityQuestions", securityQuestionService.findAllSecurityQuestion()); - - return LOGIN_VIEW; + @RequestMapping(value = "/", method = RequestMethod.GET) + public String showIndexPage() { + return REDIRECT_LOGIN; } @RequestMapping(value = LOGIN, method = RequestMethod.POST) - public String processLogin(final UsernamePasswordToken credentials, final Model model) { - Subject currentUser = SecurityUtils.getSubject(); - String username = credentials.getUsername(); - try { - currentUser.login(credentials); - } catch (AuthenticationException exception) { - LOGGER.warn(String.format("Failed login attempt from user %s.", username)); - model.addAttribute("errorMsg", "Invalid username and/or password."); - model.addAttribute("userRegistration", new UserRegistration()); - model.addAttribute("securityQuestions", securityQuestionService.findAllSecurityQuestion()); - return LOGIN_VIEW; + public String logIn( + @Valid @ModelAttribute("loginCredentials") final LoginCredentials loginCredentials, + final BindingResult bindingResult, + final RedirectAttributes redirectAttributes, + final Model model, + final HttpServletRequest request) { + if (bindingResult.hasErrors()) { + redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.loginCredentials", bindingResult); + redirectAttributes.addFlashAttribute("loginCredentials", loginCredentials); + + return REDIRECT_LOGIN; } - UserAccount userAccount = userAccountService.findByUsername(username); - if (userAccount.getActive()) { - model.addAttribute("appUser", appUserService.createAppUser(userAccount)); + boolean isAuthenticated = applicationService.logInUser(loginCredentials, redirectAttributes, model, request); - userAccount.setLastLoginDate(new Date(System.currentTimeMillis())); - userAccountService.saveUserAccount(userAccount); - - return REDIRECT_HOME; - } else { - currentUser.logout(); - model.addAttribute("errorMsg", "Your account has not been activated."); - model.addAttribute("userRegistration", new UserRegistration()); - model.addAttribute("securityQuestions", securityQuestionService.findAllSecurityQuestion()); - - return LOGIN_VIEW; - } + return isAuthenticated ? REDIRECT_HOME : REDIRECT_LOGIN; } @RequestMapping(value = LOGOUT, method = RequestMethod.GET) public String logOut( + @ModelAttribute("appUser") final AppUser appUser, final SessionStatus sessionStatus, - final RedirectAttributes redirectAttributes) { - Subject currentUser = SecurityUtils.getSubject(); - if (currentUser.isAuthenticated()) { - currentUser.logout(); - sessionStatus.setComplete(); - redirectAttributes.addFlashAttribute("successMsg", "You Have Successfully Logged Out."); - } + final RedirectAttributes redirectAttributes, + final HttpServletRequest request) { + applicationService.logOutUser(appUser, sessionStatus, redirectAttributes, request); return REDIRECT_LOGIN; } + @RequestMapping(value = MESSAGE, method = RequestMethod.GET) + public String showMessage(final Model model) { + if (!model.containsAttribute("header")) { + throw new ResourceNotFoundException(); + } + + return MESSAGE_VIEW; + } + } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/Auth0LoginController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/Auth0LoginController.java new file mode 100644 index 00000000..7e81e9d7 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/Auth0LoginController.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.ctrl; + +import com.auth0.Auth0User; +import com.auth0.SessionUtils; +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.web.service.ApplicationService; +import edu.pitt.dbmi.ccd.web.service.Auth0LoginService; +import java.io.IOException; +import java.security.Principal; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.subject.Subject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Jun 2, 2016 4:45:18 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Profile("auth0") +@Controller +@SessionAttributes("appUser") +public class Auth0LoginController implements ViewPath { + + private static final String LOGIN_VIEW = "auth0ShiroLogin"; + + private final Auth0LoginService auth0LoginService; + + @Autowired + public Auth0LoginController(Auth0LoginService auth0LoginService) { + this.auth0LoginService = auth0LoginService; + } + + @RequestMapping(value = LOGIN, method = RequestMethod.GET) + public String showLoginPage( + final SessionStatus sessionStatus, + final HttpServletRequest request, + final HttpServletResponse response, + final Model model) { + Subject currentUser = SecurityUtils.getSubject(); + if (sessionStatus.isComplete()) { + currentUser.logout(); + } else if (currentUser.isAuthenticated()) { + return REDIRECT_HOME; + } else { + sessionStatus.setComplete(); + } + + auth0LoginService.showLoginPage(model, request); + + return LOGIN_VIEW; + } + + @RequestMapping(value = "${auth0.loginCallback}", method = RequestMethod.GET) + protected void callback(final HttpServletRequest req, final HttpServletResponse res) throws ServletException, IOException { + auth0LoginService.handleCallback(req, res); + } + + @RequestMapping(value = "/portal/home", method = RequestMethod.GET) + protected String home(final Principal principal, final Model model, final RedirectAttributes redirectAttributes, final HttpServletRequest req, final HttpServletResponse res) { + final Auth0User auth0User = (Auth0User) principal; + + UserAccount userAccount = auth0LoginService.retrieveUserAccount(auth0User); + if (userAccount == null) { + model.addAttribute("appUser", auth0LoginService.createTempAppUser(auth0User)); + + return TERMS_VIEW; + } else if (userAccount.getActive()) { + auth0LoginService.logInUser(userAccount, auth0User, redirectAttributes, req, res, model); + + return REDIRECT_HOME; + } else { + redirectAttributes.addFlashAttribute("errorMsg", ApplicationService.UNACTIVATED_ACCOUNT); + SessionUtils.setTokens(req, null); + SessionUtils.setAuth0User(req, null); + + return REDIRECT_LOGIN; + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/FeedbackController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/FeedbackController.java index b5aba4ac..f842f6e2 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/FeedbackController.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/FeedbackController.java @@ -19,17 +19,20 @@ package edu.pitt.dbmi.ccd.web.ctrl; import edu.pitt.dbmi.ccd.web.model.Feedback; -import edu.pitt.dbmi.ccd.web.service.mail.MailService; -import javax.mail.MessagingException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import edu.pitt.dbmi.ccd.web.service.FeedbackService; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.propertyeditors.StringTrimmerEditor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** * @@ -42,37 +45,42 @@ @RequestMapping(value = "feedback") public class FeedbackController implements ViewPath { - private static final Logger LOGGER = LoggerFactory.getLogger(FeedbackController.class); - - private final MailService mailService; + private final FeedbackService feedbackService; @Autowired - public FeedbackController(MailService mailService) { - this.mailService = mailService; + public FeedbackController(FeedbackService feedbackService) { + this.feedbackService = feedbackService; + } + + @InitBinder + public void initBinder(WebDataBinder binder) { + binder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); } @RequestMapping(method = RequestMethod.GET) public String showFeedbackForm(Model model) { - model.addAttribute("feedback", new Feedback()); + if (!model.containsAttribute("feedback")) { + model.addAttribute("feedback", new Feedback()); + } return FEEDBACK_VIEW; } @RequestMapping(method = RequestMethod.POST) - public String greetingSubmit(@ModelAttribute Feedback feedback, Model model) { - model.addAttribute("feedback", feedback); - model.addAttribute("successMsg", "Thank you for your feedback!"); + public String sendFeedback( + @Valid @ModelAttribute final Feedback feedback, + final BindingResult bindingResult, + final RedirectAttributes redirectAttributes) { + if (bindingResult.hasErrors()) { + redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.feedback", bindingResult); + redirectAttributes.addFlashAttribute("errorMsg", "Feedback message is required."); + } else { + feedbackService.sendFeedback(feedback, redirectAttributes); + } - Thread t = new Thread(() -> { - try { - mailService.sendFeedback(feedback.getEmail(), feedback.getFeedbackMsg()); - } catch (MessagingException exception) { - LOGGER.error(exception.getMessage()); - } - }); - t.start(); + redirectAttributes.addFlashAttribute("feedback", feedback); - return FEEDBACK_VIEW; + return REDIRECT_FEEDBACK_VIEW; } } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ShiroLoginController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ShiroLoginController.java new file mode 100644 index 00000000..1c03eefe --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ShiroLoginController.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.ctrl; + +import edu.pitt.dbmi.ccd.web.model.LoginCredentials; +import edu.pitt.dbmi.ccd.web.model.account.PasswordRecovery; +import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.subject.Subject; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; + +/** + * + * Oct 4, 2016 12:16:46 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Profile("shiro") +@Controller +@SessionAttributes("appUser") +public class ShiroLoginController implements ViewPath { + + private static final String LOGIN_VIEW = "shiroLogin"; + + @RequestMapping(value = LOGIN, method = RequestMethod.GET) + public String showLoginPage(final SessionStatus sessionStatus, final Model model) { + Subject currentUser = SecurityUtils.getSubject(); + if (sessionStatus.isComplete()) { + currentUser.logout(); + } else if (currentUser.isAuthenticated()) { + return REDIRECT_HOME; + } else { + sessionStatus.setComplete(); + } + + if (!model.containsAttribute("loginCredentials")) { + model.addAttribute("loginCredentials", new LoginCredentials(true)); + } + if (!model.containsAttribute("userRegistration")) { + model.addAttribute("userRegistration", new UserRegistration()); + } + if (!model.containsAttribute("passwordRecovery")) { + model.addAttribute("passwordRecovery", new PasswordRecovery()); + } + + return LOGIN_VIEW; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ViewPath.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ViewPath.java index 73205f88..c121b778 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ViewPath.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/ViewPath.java @@ -26,8 +26,13 @@ */ public interface ViewPath { + public static final String TERMS_VIEW = "terms"; + + public static final String MESSAGE_VIEW = "message"; + public static final String MESSAGE = "/message"; + public static final String REDIRECT_MESSAGE = "redirect:/message"; + public static final String LOGIN = "login"; - public static final String LOGIN_VIEW = "login"; public static final String REDIRECT_LOGIN = "redirect:/login"; public static final String LOGOUT = "logout"; @@ -37,8 +42,8 @@ public interface ViewPath { public static final String REDIRECT_HOME = "redirect:/home"; public static final String USER_PROFILE = "userProfile"; - public static final String USER_PROFILE_VIEW = "user/userProfile"; - public static final String REDIRECT_USER_PROFILE = "redirect:/user/profile"; + public static final String USER_PROFILE_VIEW = "user/account/userProfile"; + public static final String REDIRECT_USER_PROFILE = "redirect:/user/account/profile"; public static final String REQUEST_USERNAME_VIEW = "user/account/reqestUsername"; public static final String REQUEST_ANSWER_VIEW = "user/account/reqestAnswer"; @@ -49,6 +54,7 @@ public interface ViewPath { public static final String REDIRECT_DATA = "redirect:/data"; public static final String DATA_SUMMARY_VIEW = "data/dataSummary"; public static final String DATA_UPLOAD_VIEW = "data/dataUpload"; + public static final String DATA_ANNOTATIONS_VIEW = "data/dataAnnotations"; public static final String DATASET_PRIOR_VIEW = "data/prior"; public static final String REDIRECT_DATASET_PRIOR = "redirect:/data/prior"; @@ -73,7 +79,10 @@ public interface ViewPath { public static final String REDIRECT_JOB_QUEUE = "redirect:/jobQueue"; public static final String FEEDBACK_VIEW = "feedback"; + public static final String REDIRECT_FEEDBACK_VIEW = "redirect:/feedback"; public static final String USER_ACTIVATION_SUCCESS_VIEW = "user/userActivationSuccess"; + public static final String USER_PASSWORD_RESET_VIEW = "user/account/recovery/password_reset"; + } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/AccountRecoveryController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/AccountRecoveryController.java new file mode 100644 index 00000000..3373e7ba --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/AccountRecoveryController.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.ctrl.account; + +import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; +import edu.pitt.dbmi.ccd.web.exception.ResourceNotFoundException; +import edu.pitt.dbmi.ccd.web.model.account.PasswordRecovery; +import edu.pitt.dbmi.ccd.web.model.account.PasswordReset; +import edu.pitt.dbmi.ccd.web.service.account.AccountRecoveryService; +import java.util.Base64; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Oct 6, 2016 12:54:11 AM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Controller +@RequestMapping(value = "user/account/recovery") +public class AccountRecoveryController implements ViewPath { + + private final AccountRecoveryService accountRecoveryService; + + @Autowired + public AccountRecoveryController(AccountRecoveryService accountRecoveryService) { + this.accountRecoveryService = accountRecoveryService; + } + + @RequestMapping(value = "password/request", method = RequestMethod.POST) + public String passwordRecovery( + @Valid @ModelAttribute("passwordRecovery") final PasswordRecovery passwordRecovery, + final BindingResult bindingResult, + final RedirectAttributes redirectAttributes, + final HttpServletRequest request) { + if (bindingResult.hasErrors()) { + redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.passwordRecovery", bindingResult); + redirectAttributes.addFlashAttribute("passwordRecovery", passwordRecovery); + } else { + accountRecoveryService.recoverPasswordRequest(passwordRecovery, redirectAttributes, request); + } + + return REDIRECT_LOGIN; + } + + @RequestMapping(value = "password", method = RequestMethod.GET) + public String showPasswordResetPage( + @RequestParam(value = "reset", required = true) final String resetKey, + final HttpServletRequest request, + final Model model) { + String activationKey = new String(Base64.getUrlDecoder().decode(resetKey)); + if (accountRecoveryService.isValidActivationKey(activationKey)) { + if (!model.containsAttribute("passwordReset")) { + model.addAttribute("passwordReset", new PasswordReset(activationKey)); + } + } else { + throw new ResourceNotFoundException(); + } + + return USER_PASSWORD_RESET_VIEW; + } + + @RequestMapping(value = "password", method = RequestMethod.POST) + public String showPasswordResetPage( + @Valid @ModelAttribute("passwordReset") final PasswordReset passwordReset, + final BindingResult bindingResult, + final RedirectAttributes redirectAttributes, + final HttpServletRequest request) { + if (bindingResult.hasErrors()) { + redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.passwordReset", bindingResult); + redirectAttributes.addFlashAttribute("passwordReset", passwordReset); + + String activationKey = passwordReset.getActivationKey(); + return "redirect:/user/recovery/password?reset=" + Base64.getUrlEncoder().encodeToString(activationKey.getBytes()); + } + + accountRecoveryService.resetPassword(passwordReset, redirectAttributes); + + return REDIRECT_MESSAGE; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/Auth0UserRegistrationController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/Auth0UserRegistrationController.java new file mode 100644 index 00000000..092e2888 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/Auth0UserRegistrationController.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.ctrl.account; + +import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.service.account.Auth0UserRegistrationService; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Jun 29, 2016 3:01:22 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Profile("auth0") +@Controller +@SessionAttributes("appUser") +@RequestMapping(value = "auth0/user/registration") +public class Auth0UserRegistrationController implements ViewPath { + + private final Auth0UserRegistrationService auth0UserRegistrationService; + + @Autowired + public Auth0UserRegistrationController(Auth0UserRegistrationService auth0UserRegistrationService) { + this.auth0UserRegistrationService = auth0UserRegistrationService; + } + + @RequestMapping(method = RequestMethod.POST) + public String registerNewUser( + @RequestParam("agree") boolean agree, + @ModelAttribute("appUser") final AppUser appUser, + final SessionStatus sessionStatus, + final Model model, + final RedirectAttributes redirectAttributes, + final HttpServletRequest req, + final HttpServletResponse res) { + if (agree) { + auth0UserRegistrationService.registerNewUser(appUser, model, redirectAttributes, req, res); + } else { + redirectAttributes.addFlashAttribute("errorMsg", "You must accept the terms."); + sessionStatus.setComplete(); + } + + return REDIRECT_LOGIN; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/UserProfileController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/UserProfileController.java new file mode 100644 index 00000000..6a120d08 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/UserProfileController.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.ctrl.account; + +import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; +import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.REDIRECT_USER_PROFILE; +import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.USER_PROFILE_VIEW; +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.model.user.PasswordChange; +import edu.pitt.dbmi.ccd.web.model.user.UserInfo; +import edu.pitt.dbmi.ccd.web.service.account.UserProfileService; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.propertyeditors.StringTrimmerEditor; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Oct 5, 2016 4:09:57 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Controller +@SessionAttributes("appUser") +@RequestMapping(value = "/user/account/profile") +public class UserProfileController implements ViewPath { + + private final UserProfileService userProfileService; + + @Autowired + public UserProfileController(UserProfileService userProfileService) { + this.userProfileService = userProfileService; + } + + @InitBinder + public void initBinder(WebDataBinder binder) { + binder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); + } + + @RequestMapping(method = RequestMethod.GET) + public String showUserProfilePage(@ModelAttribute("appUser") final AppUser appUser, final Model model) { + if (!model.containsAttribute("userInfo")) { + model.addAttribute("userInfo", userProfileService.createUserInfo(appUser)); + } + if (!model.containsAttribute("passwordChange")) { + model.addAttribute("passwordChange", new PasswordChange()); + } + + return USER_PROFILE_VIEW; + } + + @RequestMapping(value = "info", method = RequestMethod.POST) + public String updateUserInfo( + @ModelAttribute("userInfo") final UserInfo userInfo, + @ModelAttribute("appUser") final AppUser appUser, + final Model model, + final RedirectAttributes redirectAttributes, + final HttpServletRequest request) { + userProfileService.updateUserProfile(userInfo, appUser, model, redirectAttributes, request); + + return REDIRECT_USER_PROFILE; + } + + @RequestMapping(value = "pwd", method = RequestMethod.POST) + public String updateUserPassword( + @Valid @ModelAttribute("passwordChange") final PasswordChange passwordChange, + final BindingResult bindingResult, + @ModelAttribute("appUser") final AppUser appUser, + final RedirectAttributes redirectAttributes, + final HttpServletRequest request) { + if (bindingResult.hasErrors()) { + redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.passwordChange", bindingResult); + redirectAttributes.addFlashAttribute("passwordChange", passwordChange); + redirectAttributes.addFlashAttribute("pwdChangeErr", true); + } else { + userProfileService.updateUserPassword(passwordChange, appUser, redirectAttributes, request); + } + + return REDIRECT_USER_PROFILE; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/UserRegistrationController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/UserRegistrationController.java new file mode 100644 index 00000000..0b629f1a --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/account/UserRegistrationController.java @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.ctrl.account; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Base64; +import java.util.Iterator; +import javax.net.ssl.HttpsURLConnection; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; +import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; +import edu.pitt.dbmi.ccd.web.service.account.UserRegistrationService; + +import jdk.nashorn.internal.parser.JSONParser; + +/** + * + * Oct 4, 2016 2:48:15 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Controller +@RequestMapping(value = "/user/account/registration") +public class UserRegistrationController implements ViewPath { + + private static final Logger LOGGER = LoggerFactory.getLogger(UserRegistrationController.class); + + + private final UserRegistrationService userRegistrationService; + + @Autowired + @Value("${annotations.api.url:}") + private String annoApiUrl; + + @Autowired + @Value("${annotations.api.clientId:}") + private String annoClientId; + + @Autowired + @Value("${annotations.api.clientSecret:}") + private String annoClientSecret; + + private String getAnnotationsTokens(UserRegistration userRegistration) throws Exception { + Base64.Encoder encoder = Base64.getUrlEncoder(); + + String tokenEndpoint = annoApiUrl.concat("oauth/token"); + URL url = new URL(tokenEndpoint); + HttpURLConnection connection; + if (annoApiUrl.startsWith("https")) { + connection = (HttpsURLConnection) url.openConnection(); + } else { + connection = (HttpURLConnection) url.openConnection(); + } + connection.setRequestMethod("POST"); + String clientCredentials = annoClientId + ":" + annoClientSecret; + String credentials = encoder.encodeToString(clientCredentials.getBytes()); + connection.setRequestProperty("Authorization", "Basic " + credentials); + connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + connection.setDoOutput(true); + String parameters = "username=" + userRegistration.getUsername() + "&password=" + userRegistration.getPassword() + "&grant_type=password"; + DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); + wr.writeBytes(parameters); + wr.flush(); + wr.close(); + + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + JSONObject json = new JSONObject(response.toString()); + String accessToken = json.getString("access_token"); + String refreshToken = json.getString("refresh_token"); + + return accessToken.concat("&" + refreshToken); + } + + @Autowired + public UserRegistrationController(UserRegistrationService userRegistrationService) { + this.userRegistrationService = userRegistrationService; + } + + @RequestMapping(method = RequestMethod.POST) + public String registerNewRegularUser( + @Valid @ModelAttribute("userRegistration") final UserRegistration userRegistration, + final BindingResult bindingResult, + final RedirectAttributes redirectAttributes, + final Model model, + final HttpServletRequest req, + final HttpServletResponse res) { + if (bindingResult.hasErrors()) { + redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.userRegistration", bindingResult); + redirectAttributes.addFlashAttribute("userRegistration", userRegistration); + redirectAttributes.addFlashAttribute("errorMsg", "Registration failed!"); + } else { + userRegistrationService.registerNewRegularUser(userRegistration, false, model, redirectAttributes, req, res); + try { + String[] tokens = getAnnotationsTokens(userRegistration).split("&"); + String accessToken = tokens[0]; + String refreshToken = tokens[1]; + Cookie accessCookie = new Cookie("access_token", accessToken); + accessCookie.setPath("/ccd"); + Cookie refreshCookie = new Cookie("refresh_token", refreshToken); + refreshCookie.setPath("/ccd"); + res.addCookie(accessCookie); + res.addCookie(refreshCookie); + } catch (Exception e) { + LOGGER.error("Unable to fetch annotations tokens", e); + } + } + + return REDIRECT_LOGIN; + } + + @RequestMapping(value = "activate", method = RequestMethod.GET) + public String activateNewUser( + @RequestParam(value = "activation", required = true) final String activation, + final HttpServletRequest request, + final RedirectAttributes redirectAttributes) { + String accountId = new String(Base64.getUrlDecoder().decode(activation)); + userRegistrationService.activateNewUser(accountId, request, redirectAttributes); + return REDIRECT_MESSAGE; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/AlgorithmResultController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/AlgorithmResultController.java index 65012337..047b2603 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/AlgorithmResultController.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/AlgorithmResultController.java @@ -95,12 +95,11 @@ public String showPlot( @RequestParam(value = "file") final String fileName, @ModelAttribute("appUser") final AppUser appUser, final Model model) { - String url = String.format("/algorithm/results/d3graph?file=%s", fileName); model.addAttribute("plot", fileName); - model.addAttribute("link", url); + model.addAttribute("fileName", fileName); String username = appUser.getUsername(); - List categoryNames = Arrays.asList("Runtime Parameters", "Dataset", "Filters", "FGS Parameters", "Run Options", "Data Validations"); + List categoryNames = Arrays.asList("Runtime Parameters", "Dataset", "Filters", "FGS Parameters", "Run Options", "Algorithm Parameters", "Data Validations"); model.addAttribute("categories", algorithmResultService.extractDataCategories(fileName, username, categoryNames)); return PLOT_VIEW; diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/FGSController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/FGSController.java index ac55275e..b0c61116 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/FGSController.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/FGSController.java @@ -25,6 +25,7 @@ import edu.pitt.dbmi.ccd.web.model.algo.FgsContinuousRunInfo; import edu.pitt.dbmi.ccd.web.model.algo.FgsDiscreteRunInfo; import edu.pitt.dbmi.ccd.web.service.algo.AlgorithmService; +import edu.pitt.dbmi.ccd.web.util.CmdOptions; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -178,28 +179,25 @@ private List getPriorKnowledge(AlgorithmRunInfo algoInfo) { private List getParametersForDiscrete(FgsDiscreteRunInfo algoInfo, String username) { List parameters = new LinkedList<>(); String delimiter = algorithmService.getFileDelimiter(algoInfo.getDataset(), username); - parameters.add("--delimiter"); + parameters.add(CmdOptions.DELIMITER); parameters.add(delimiter); - - parameters.add("--structure-prior"); + parameters.add(CmdOptions.STRUCTURE_PRIOR); parameters.add(Double.toString(algoInfo.getStructurePrior())); - - parameters.add("--sample-prior"); + parameters.add(CmdOptions.SAMPLE_PRIOR); parameters.add(Double.toString(algoInfo.getSamplePrior())); - - parameters.add("--max-degree"); + parameters.add(CmdOptions.MAX_DEGREE); parameters.add(Integer.toString(algoInfo.getMaxDegree())); if (algoInfo.isVerbose()) { - parameters.add("--verbose"); + parameters.add(CmdOptions.VERBOSE); } if (algoInfo.isFaithfulnessAssumed()) { - parameters.add("--faithfulness-assumed"); + parameters.add(CmdOptions.FAITHFULNESS_ASSUMED); } - if (!algoInfo.isUniqueVarNameValidation()) { - parameters.add("--skip-unique-var-name"); + if (algoInfo.isSkipCategoryLimit()) { + parameters.add(CmdOptions.SKIP_CATEGORY_LIMIT); } - if (!algoInfo.isLimitNumOfCategory()) { - parameters.add("--skip-category-limit"); + if (algoInfo.isSkipUniqueVarName()) { + parameters.add(CmdOptions.SKIP_UNIQUE_VAR_NAME); } return parameters; @@ -208,23 +206,23 @@ private List getParametersForDiscrete(FgsDiscreteRunInfo algoInfo, Strin private List getParametersForContinuous(FgsContinuousRunInfo algoInfo, String username) { List parameters = new LinkedList<>(); String delimiter = algorithmService.getFileDelimiter(algoInfo.getDataset(), username); - parameters.add("--delimiter"); + parameters.add(CmdOptions.DELIMITER); parameters.add(delimiter); - parameters.add("--penalty-discount"); + parameters.add(CmdOptions.PENALTY_DISCOUNT); parameters.add(Double.toString(algoInfo.getPenaltyDiscount())); - parameters.add("--max-degree"); + parameters.add(CmdOptions.MAX_DEGREE); parameters.add(Integer.toString(algoInfo.getMaxDegree())); if (algoInfo.isVerbose()) { - parameters.add("--verbose"); + parameters.add(CmdOptions.VERBOSE); } if (algoInfo.isFaithfulnessAssumed()) { - parameters.add("--faithfulness-assumed"); + parameters.add(CmdOptions.FAITHFULNESS_ASSUMED); } - if (!algoInfo.isNonZeroVarianceValidation()) { - parameters.add("--skip-non-zero-variance"); + if (algoInfo.isSkipNonzeroVariance()) { + parameters.add(CmdOptions.SKIP_NONZERO_VARIANCE); } - if (!algoInfo.isUniqueVarNameValidation()) { - parameters.add("--skip-unique-var-name"); + if (algoInfo.isSkipUniqueVarName()) { + parameters.add(CmdOptions.SKIP_UNIQUE_VAR_NAME); } return parameters; @@ -232,27 +230,27 @@ private List getParametersForContinuous(FgsContinuousRunInfo algoInfo, S private FgsContinuousRunInfo createDefaultFgsContinuousRunInfo() { FgsContinuousRunInfo runInfo = new FgsContinuousRunInfo(); - runInfo.setPenaltyDiscount(4.0); - runInfo.setFaithfulnessAssumed(true); - runInfo.setMaxDegree(3); - runInfo.setNonZeroVarianceValidation(true); - runInfo.setUniqueVarNameValidation(true); - runInfo.setVerbose(true); - runInfo.setJvmMaxMem(0); + runInfo.setPenaltyDiscount(CmdOptions.PENALTY_DISCOUNT_DEFAULT); + runInfo.setMaxDegree(CmdOptions.MAX_DEGREE_DEFAULT); + runInfo.setFaithfulnessAssumed(CmdOptions.FAITHFULNESS_ASSUMED_DEFAULT); + runInfo.setSkipUniqueVarName(CmdOptions.SKIP_UNIQUE_VAR_NAME_DEFAULT); + runInfo.setSkipNonzeroVariance(CmdOptions.SKIP_NONZERO_VARIANCE_DEFAULT); + runInfo.setVerbose(CmdOptions.VERBOSE_DEFAULT); + runInfo.setJvmMaxMem(1); return runInfo; } private FgsDiscreteRunInfo createDefaultFgsDiscreteRunInfo() { FgsDiscreteRunInfo runInfo = new FgsDiscreteRunInfo(); - runInfo.setSamplePrior(1.0); - runInfo.setStructurePrior(1.0); - runInfo.setFaithfulnessAssumed(true); - runInfo.setMaxDegree(3); - runInfo.setUniqueVarNameValidation(true); - runInfo.setLimitNumOfCategory(true); - runInfo.setVerbose(true); - runInfo.setJvmMaxMem(0); + runInfo.setSamplePrior(CmdOptions.SAMPLE_PRIOR_DEFAULT); + runInfo.setStructurePrior(CmdOptions.STRUCTURE_PRIOR_DEFAULT); + runInfo.setFaithfulnessAssumed(CmdOptions.FAITHFULNESS_ASSUMED_DEFAULT); + runInfo.setMaxDegree(CmdOptions.MAX_DEGREE_DEFAULT); + runInfo.setSkipUniqueVarName(CmdOptions.SKIP_UNIQUE_VAR_NAME_DEFAULT); + runInfo.setSkipCategoryLimit(CmdOptions.SKIP_CATEGORY_LIMIT_DEFAULT); + runInfo.setVerbose(CmdOptions.VERBOSE_DEFAULT); + runInfo.setJvmMaxMem(1); return runInfo; } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/GFCIController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/GFCIController.java index 9af34bfe..6045be21 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/GFCIController.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/algo/GFCIController.java @@ -18,13 +18,19 @@ */ package edu.pitt.dbmi.ccd.web.ctrl.algo; +import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.model.algo.AlgorithmJobRequest; +import edu.pitt.dbmi.ccd.web.model.algo.AlgorithmRunInfo; +import edu.pitt.dbmi.ccd.web.model.algo.GfciContinuousRunInfo; +import edu.pitt.dbmi.ccd.web.prop.CcdProperties; +import edu.pitt.dbmi.ccd.web.service.algo.AlgorithmService; +import edu.pitt.dbmi.ccd.web.util.CmdOptions; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Map; - import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; @@ -32,17 +38,10 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.SessionAttributes; -import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; -import edu.pitt.dbmi.ccd.web.model.AppUser; -import edu.pitt.dbmi.ccd.web.model.algo.AlgorithmJobRequest; -import edu.pitt.dbmi.ccd.web.model.algo.AlgorithmRunInfo; -import edu.pitt.dbmi.ccd.web.model.algo.GfciContinuousRunInfo; -import edu.pitt.dbmi.ccd.web.service.algo.AlgorithmService; - /** - * + * * Sep 28, 2016 10:01:10 PM - * + * * @author Chirayu (Kong) Wongchokprasitti, PhD (chw20@pitt.edu) * */ @@ -51,19 +50,13 @@ @RequestMapping(value = "algorithm/gfci") public class GFCIController implements ViewPath { - private final String gfciAlgorithm; - protected final String algorithmJar; - private final AlgorithmService algorithmService; + private final CcdProperties ccdProperties; @Autowired - public GFCIController( - @Value("${ccd.algorithm.gfci}") String gfciAlgorithm, - @Value("${ccd.jar.algorithm}") String algorithmJar, - AlgorithmService algorithmService) { - this.gfciAlgorithm = gfciAlgorithm; - this.algorithmJar = algorithmJar; + public GFCIController(AlgorithmService algorithmService, CcdProperties ccdProperties) { this.algorithmService = algorithmService; + this.ccdProperties = ccdProperties; } @RequestMapping(method = RequestMethod.GET) @@ -97,7 +90,7 @@ public String runGfci( @ModelAttribute("algoInfo") final GfciContinuousRunInfo algoInfo, @ModelAttribute("appUser") final AppUser appUser, final Model model) { - AlgorithmJobRequest jobRequest = new AlgorithmJobRequest("gfcic", algorithmJar, gfciAlgorithm); + AlgorithmJobRequest jobRequest = new AlgorithmJobRequest("gfcic", ccdProperties.getAlgoJar(), ccdProperties.getAlgoGfci()); jobRequest.setDataset(getDataset(algoInfo)); jobRequest.setPriorKnowledge(getPriorKnowledge(algoInfo)); jobRequest.setJvmOptions(getJvmOptions(algoInfo)); @@ -135,42 +128,42 @@ private List getPriorKnowledge(AlgorithmRunInfo algoInfo) { private List getParametersForContinuous(GfciContinuousRunInfo algoInfo, String username) { List parameters = new LinkedList<>(); String delimiter = algorithmService.getFileDelimiter(algoInfo.getDataset(), username); - parameters.add("--delimiter"); + parameters.add(CmdOptions.DELIMITER); parameters.add(delimiter); - parameters.add("--alpha"); + parameters.add(CmdOptions.ALPHA); parameters.add(Double.toString(algoInfo.getAlpha())); - parameters.add("--penalty-discount"); + parameters.add(CmdOptions.PENALTY_DISCOUNT); parameters.add(Double.toString(algoInfo.getPenaltyDiscount())); - parameters.add("--max-indegree"); - parameters.add(Integer.toString(algoInfo.getMaxInDegree())); + parameters.add(CmdOptions.MAX_DEGREE); + parameters.add(Integer.toString(algoInfo.getMaxDegree())); if (algoInfo.isVerbose()) { - parameters.add("--verbose"); + parameters.add(CmdOptions.VERBOSE); } if (algoInfo.isFaithfulnessAssumed()) { - parameters.add("--faithfulness-assumed"); + parameters.add(CmdOptions.FAITHFULNESS_ASSUMED); } - if (!algoInfo.isNonZeroVarianceValidation()) { - parameters.add("--skip-non-zero-variance"); + if (algoInfo.isSkipNonzeroVariance()) { + parameters.add(CmdOptions.SKIP_NONZERO_VARIANCE); } - if (!algoInfo.isUniqueVarNameValidation()) { - parameters.add("--skip-unique-var-name"); + if (algoInfo.isSkipUniqueVarName()) { + parameters.add(CmdOptions.SKIP_UNIQUE_VAR_NAME); } return parameters; } private GfciContinuousRunInfo createDefaultGfciContinuousRunInfo() { - GfciContinuousRunInfo runInfo = new GfciContinuousRunInfo(); - runInfo.setAlpha(0.01); - runInfo.setPenaltyDiscount(4.0); - runInfo.setFaithfulnessAssumed(true); - runInfo.setMaxInDegree(3); - runInfo.setNonZeroVarianceValidation(true); - runInfo.setUniqueVarNameValidation(true); - runInfo.setVerbose(true); - runInfo.setJvmMaxMem(0); + GfciContinuousRunInfo runInfo = new GfciContinuousRunInfo(); + runInfo.setAlpha(CmdOptions.ALPHA_DEFAULT); + runInfo.setPenaltyDiscount(CmdOptions.PENALTY_DISCOUNT_DEFAULT); + runInfo.setMaxDegree(CmdOptions.MAX_DEGREE_DEFAULT); + runInfo.setFaithfulnessAssumed(CmdOptions.FAITHFULNESS_ASSUMED_DEFAULT); + runInfo.setSkipUniqueVarName(CmdOptions.SKIP_UNIQUE_VAR_NAME_DEFAULT); + runInfo.setSkipNonzeroVariance(CmdOptions.SKIP_NONZERO_VARIANCE_DEFAULT); + runInfo.setVerbose(CmdOptions.VERBOSE_DEFAULT); + runInfo.setJvmMaxMem(1); return runInfo; } - + } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/data/DataManagementController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/data/DataManagementController.java index f930f819..7c6a1b7d 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/data/DataManagementController.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/data/DataManagementController.java @@ -18,20 +18,18 @@ */ package edu.pitt.dbmi.ccd.web.ctrl.data; -import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; -import edu.pitt.dbmi.ccd.web.model.AppUser; -import edu.pitt.dbmi.ccd.web.model.data.DataSummary; -import edu.pitt.dbmi.ccd.web.service.DataService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.annotation.*; + +import edu.pitt.dbmi.ccd.db.entity.AnnotationTarget; +import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.model.data.DataSummary; +import edu.pitt.dbmi.ccd.web.service.DataService; /** * @@ -78,6 +76,22 @@ public String showDataFileSummary( return DATA_SUMMARY_VIEW; } + @RequestMapping(value = "annotations", method = RequestMethod.GET) + public String showDataFileAnnotations( + @RequestParam(value = "fileName") final String fileName, + @ModelAttribute("appUser") final AppUser appUser, + final Model model) { + String username = appUser.getUsername(); + model.addAttribute("username", username); + model.addAttribute("fileName", fileName); + AnnotationTarget target = dataService.getAnnotationTarget(fileName, username); + if (target != null) { + model.addAttribute("annotationTargetID", target.getId()); + } + + return DATA_ANNOTATIONS_VIEW; + } + @RequestMapping(value = "delete", method = RequestMethod.GET) public String deleteDataFile( @RequestParam(value = "file") final String fileName, diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserAccountController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserAccountController.java deleted file mode 100644 index 3c877cfc..00000000 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserAccountController.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (C) 2015 University of Pittsburgh. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301 USA - */ -package edu.pitt.dbmi.ccd.web.ctrl.user; - -import edu.pitt.dbmi.ccd.db.entity.SecurityAnswer; -import edu.pitt.dbmi.ccd.db.entity.UserAccount; -import edu.pitt.dbmi.ccd.db.service.SecurityAnswerService; -import edu.pitt.dbmi.ccd.db.service.UserAccountService; -import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; -import edu.pitt.dbmi.ccd.web.model.ResetPasswordInfo; -import java.util.Collections; -import java.util.List; -import org.apache.shiro.authc.credential.DefaultPasswordService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.propertyeditors.StringTrimmerEditor; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.InitBinder; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -/** - * - * Aug 5, 2015 10:04:54 PM - * - * @author Kevin V. Bui (kvb2@pitt.edu) - */ -@Controller -@RequestMapping(value = "/user/account") -public class UserAccountController implements ViewPath { - - private static final Logger LOGGER = LoggerFactory.getLogger(UserAccountController.class); - - private final UserAccountService userAccountService; - - private final SecurityAnswerService securityAnswerService; - - private final DefaultPasswordService passwordService; - - @Autowired(required = true) - public UserAccountController( - UserAccountService userAccountService, - SecurityAnswerService securityAnswerService, - DefaultPasswordService passwordService) { - this.userAccountService = userAccountService; - this.securityAnswerService = securityAnswerService; - this.passwordService = passwordService; - } - - @InitBinder - public void initBinder(WebDataBinder binder) { - binder.registerCustomEditor(String.class, new StringTrimmerEditor(false)); - } - - @RequestMapping(value = "reset/pwd", method = RequestMethod.POST) - public String processUsernameRequest(@ModelAttribute("info") final ResetPasswordInfo info, final Model model) { - String username = info.getUsername(); - UserAccount userAccount = userAccountService.findByUsername(username); - if (userAccount == null) { - model.addAttribute("strErrMsg", "Security Question Not Set!"); - model.addAttribute("errMsg", "Please contact the administrator to reset your password."); - model.addAttribute("info", info); - - return REQUEST_USERNAME_VIEW; - } - - List list = securityAnswerService.findByUserAccounts(Collections.singleton(userAccount)); - if (list.isEmpty()) { - model.addAttribute("strErrMsg", "Security Question Not Set!"); - model.addAttribute("errMsg", "Please contact the administrator to reset your password."); - model.addAttribute("info", info); - - return REQUEST_USERNAME_VIEW; - } - - list.forEach(item -> { - info.setQuestion(item.getSecurityQuestion().getQuestion()); - }); - - String answer = info.getAnswer(); - if (answer == null || answer.trim().length() == 0) { - model.addAttribute("info", info); - return REQUEST_ANSWER_VIEW; - } - - String ans = ""; - for (SecurityAnswer item : list) { - ans = item.getAnswer(); - } - if (!ans.equalsIgnoreCase(answer)) { - model.addAttribute("strErrMsg", "Incorrect Security Answer!"); - model.addAttribute("errMsg", "Please try again."); - info.setAnswer(""); - model.addAttribute("info", info); - return REQUEST_ANSWER_VIEW; - } - - String password = info.getPassword(); - if (password == null || password.trim().length() == 0) { - model.addAttribute("info", info); - return REQUEST_NEW_PASSWORD_VIEW; - } - - userAccount.setPassword(passwordService.encryptPassword(password)); - try { - userAccountService.saveUserAccount(userAccount); - } catch (Exception exception) { - LOGGER.warn( - String.format("Unable to reset password for %s.", userAccount.getUsername()), - exception); - info.setAnswer(""); - info.setPassword(""); - info.setQuestion(""); - info.setUsername(""); - model.addAttribute("errMsg", "error"); - return REQUEST_PASSWORD_CHANGED_DONE_VIEW; - } - - return REQUEST_PASSWORD_CHANGED_DONE_VIEW; - } - - @RequestMapping(value = "reset/pwd", method = RequestMethod.GET) - public String showUsernameRequest(final Model model) { - model.addAttribute("info", new ResetPasswordInfo("", "", "", "")); - - return REQUEST_USERNAME_VIEW; - } - -} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserProfileController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserProfileController.java deleted file mode 100644 index 43fdfa33..00000000 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserProfileController.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (C) 2015 University of Pittsburgh. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301 USA - */ -package edu.pitt.dbmi.ccd.web.ctrl.user; - -import edu.pitt.dbmi.ccd.db.entity.Person; -import edu.pitt.dbmi.ccd.db.entity.SecurityAnswer; -import edu.pitt.dbmi.ccd.db.entity.SecurityQuestion; -import edu.pitt.dbmi.ccd.db.entity.UserAccount; -import edu.pitt.dbmi.ccd.db.service.SecurityAnswerService; -import edu.pitt.dbmi.ccd.db.service.SecurityQuestionService; -import edu.pitt.dbmi.ccd.db.service.UserAccountService; -import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; -import static edu.pitt.dbmi.ccd.web.ctrl.ViewPath.REDIRECT_USER_PROFILE; -import edu.pitt.dbmi.ccd.web.model.AppUser; -import edu.pitt.dbmi.ccd.web.model.user.PasswordChange; -import edu.pitt.dbmi.ccd.web.model.user.UserInfo; -import edu.pitt.dbmi.ccd.web.model.user.UserSecurityQuestionAnswer; -import edu.pitt.dbmi.ccd.web.service.AppUserService; -import java.util.Collections; -import java.util.List; -import org.apache.shiro.authc.credential.DefaultPasswordService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.propertyeditors.StringTrimmerEditor; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.InitBinder; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.SessionAttributes; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; - -/** - * - * Jul 28, 2015 10:50:40 AM - * - * @author Kevin V. Bui (kvb2@pitt.edu) - */ -@Controller -@SessionAttributes("appUser") -@RequestMapping(value = "user/profile") -public class UserProfileController implements ViewPath { - - private final UserAccountService userAccountService; - - private final AppUserService appUserService; - - private final DefaultPasswordService passwordService; - - private final SecurityAnswerService securityAnswerService; - - private final SecurityQuestionService securityQuestionService; - - @Autowired - public UserProfileController( - UserAccountService userAccountService, - AppUserService appUserService, - DefaultPasswordService passwordService, - SecurityAnswerService securityAnswerService, - SecurityQuestionService securityQuestionService) { - this.userAccountService = userAccountService; - this.appUserService = appUserService; - this.passwordService = passwordService; - this.securityAnswerService = securityAnswerService; - this.securityQuestionService = securityQuestionService; - } - - @InitBinder - public void initBinder(WebDataBinder binder) { - binder.registerCustomEditor(String.class, new StringTrimmerEditor(false)); - } - - @RequestMapping(value = "security", method = RequestMethod.POST) - public String updateSecurityQuestionAnswer( - @ModelAttribute("usqa") final UserSecurityQuestionAnswer usqa, - @ModelAttribute("appUser") final AppUser appUser, - final Model model) { - UserAccount userAccount = userAccountService.findByUsername(appUser.getUsername()); - - List list = securityAnswerService.findByUserAccounts(Collections.singleton(userAccount)); - if (list.isEmpty()) { - SecurityAnswer securityAnswer = new SecurityAnswer(); - securityAnswer.setAnswer(usqa.getAnswer()); - securityAnswer.setSecurityQuestion(usqa.getSecurityQuestion()); - securityAnswer.setUserAccounts(Collections.singleton(userAccount)); - list.add(securityAnswer); - } else { - list.forEach(securityAnswer -> { - securityAnswer.setAnswer(usqa.getAnswer()); - securityAnswer.setSecurityQuestion(usqa.getSecurityQuestion()); - }); - } - - securityAnswerService.saveSecurityAnswer(list); - - return REDIRECT_USER_PROFILE; - } - - @RequestMapping(value = "pwd", method = RequestMethod.POST) - public String updateUserPassword( - @ModelAttribute("userWorkspace") final PasswordChange passwordChange, - @ModelAttribute("appUser") final AppUser appUser, - final RedirectAttributes redirectAttributes, - final Model model) { - UserAccount userAccount = userAccountService.findByUsername(appUser.getUsername()); - String currentPwd = passwordChange.getCurrentPassword(); - String encryptedPwd = userAccount.getPassword(); - - if (passwordService.passwordsMatch(currentPwd, encryptedPwd)) { - String newPwd = passwordChange.getNewPassword(); - userAccount.setPassword(passwordService.encryptPassword(newPwd)); - userAccountService.saveUserAccount(userAccount); - } else { - redirectAttributes.addFlashAttribute("pwdChangeErr", "Invalid password."); - } - - return REDIRECT_USER_PROFILE; - } - - @RequestMapping(value = "info", method = RequestMethod.POST) - public String updateUserInfo( - @ModelAttribute("userInfo") final UserInfo userInfo, - @ModelAttribute("appUser") final AppUser appUser, - final Model model) { - UserAccount userAccount = userAccountService.findByUsername(appUser.getUsername()); - - // update person information - Person person = userAccount.getPerson(); -// person.setEmail(userInfo.getEmail()); - person.setFirstName(userInfo.getFirstName()); - person.setMiddleName(userInfo.getMiddleName()); - person.setLastName(userInfo.getLastName()); - - userAccount = userAccountService.saveUserAccount(userAccount); - - AppUser user = appUserService.createAppUser(userAccount); - user.setLastLogin(appUser.getLastLogin()); - model.addAttribute("appUser", user); - - return REDIRECT_USER_PROFILE; - } - - @RequestMapping(method = RequestMethod.GET) - public String showUserProfilePage( - @ModelAttribute("appUser") final AppUser appUser, - final Model model) { - UserAccount userAccount = userAccountService.findByUsername(appUser.getUsername()); - Person person = userAccount.getPerson(); - - UserInfo userInfo = new UserInfo(); - userInfo.setEmail(person.getEmail()); - userInfo.setFirstName(person.getFirstName()); - userInfo.setMiddleName(person.getMiddleName()); - userInfo.setLastName(person.getLastName()); - model.addAttribute("userInfo", userInfo); - - PasswordChange passwordChange = new PasswordChange(); - passwordChange.setCurrentPassword(""); - passwordChange.setNewPassword(""); - passwordChange.setConfirmPassword(""); - model.addAttribute("passwordChange", passwordChange); - - UserSecurityQuestionAnswer usqa = null; - List securityAnswers = securityAnswerService - .findByUserAccounts(Collections.singleton(userAccount)); - for (SecurityAnswer sa : securityAnswers) { - usqa = new UserSecurityQuestionAnswer(sa.getSecurityQuestion(), sa.getAnswer()); - } - if (usqa == null) { - usqa = new UserSecurityQuestionAnswer(); - usqa.setSecurityQuestion(new SecurityQuestion()); - } - model.addAttribute("usqa", usqa); - model.addAttribute("securityQuestions", securityQuestionService.findAllSecurityQuestion()); - - return USER_PROFILE_VIEW; - } - -} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserRegistrationController.java b/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserRegistrationController.java deleted file mode 100644 index 6237c9f4..00000000 --- a/src/main/java/edu/pitt/dbmi/ccd/web/ctrl/user/UserRegistrationController.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (C) 2015 University of Pittsburgh. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301 USA - */ -package edu.pitt.dbmi.ccd.web.ctrl.user; - -import edu.pitt.dbmi.ccd.db.entity.UserAccount; -import edu.pitt.dbmi.ccd.db.service.UserAccountService; -import edu.pitt.dbmi.ccd.web.ctrl.ViewPath; -import edu.pitt.dbmi.ccd.web.exception.UserActivationException; -import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; -import edu.pitt.dbmi.ccd.web.service.UserService; -import java.util.Base64; -import javax.servlet.http.HttpServletRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.propertyeditors.StringTrimmerEditor; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.InitBinder; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.SessionAttributes; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; - -/** - * - * Aug 4, 2015 12:36:43 PM - * - * @author Kevin V. Bui (kvb2@pitt.edu) - */ -@Controller -@SessionAttributes("appUser") -@RequestMapping(value = "user/registration") -public class UserRegistrationController implements ViewPath { - - private final UserAccountService userAccountService; - - private final UserService userService; - - @Autowired - public UserRegistrationController(UserAccountService userAccountService, UserService userService) { - this.userAccountService = userAccountService; - this.userService = userService; - } - - @InitBinder - public void initBinder(WebDataBinder binder) { - binder.registerCustomEditor(String.class, new StringTrimmerEditor(false)); - } - - @RequestMapping(value = "activate", method = RequestMethod.GET) - public String activateWebUser( - @RequestParam(value = "account", required = true) final String account, - final Model model) { - String accountId = new String(Base64.getUrlDecoder().decode(account)); - UserAccount userAccount = userAccountService.findByAccountId(accountId); - if (userAccount == null || userAccount.getActive()) { - throw new UserActivationException(); - } else { - userAccount.setActive(Boolean.TRUE); - userAccountService.saveUserAccount(userAccount); - - model.addAttribute("username", userAccount.getUsername()); - - return USER_ACTIVATION_SUCCESS_VIEW; - } - } - - @RequestMapping(method = RequestMethod.POST) - public String registerWebUser( - @Value("${ccd.server.workspace}") String workspace, - final UserRegistration userRegistration, - final RedirectAttributes redirectAttributes, - final HttpServletRequest request) { - if (userRegistration.isAgree()) { - String username = userRegistration.getUsername(); - if (userAccountService.findByUsername(username) == null) { - String email = userRegistration.getEmail(); - if (userAccountService.findUserAccountByEmail(email) == null) { - if (userService.registerNewUser(userRegistration, request.getRequestURL().toString())) { - String msg = "Thank you for registering. Check your email to activate your account."; - redirectAttributes.addFlashAttribute("successMsg", msg); - } else { - redirectAttributes.addFlashAttribute("errorMsg", String.format("Unable to register user '%s' at this time.", username)); - } - } else { - redirectAttributes.addFlashAttribute("errorMsg", String.format("This email '%s' has already been registered.", email)); - } - } else { - redirectAttributes.addFlashAttribute("errorMsg", String.format("Username '%s' is already taken.", username)); - } - } else { - redirectAttributes.addFlashAttribute("errorMsg", "You must accept the terms and conditions."); - } - - return REDIRECT_LOGIN; - } - -} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/exception/ResourceNotFoundException.java b/src/main/java/edu/pitt/dbmi/ccd/web/exception/ResourceNotFoundException.java new file mode 100644 index 00000000..efc0bd59 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/exception/ResourceNotFoundException.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +/** + * + * Oct 4, 2016 2:54:14 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@ResponseStatus(value = HttpStatus.NOT_FOUND) +public class ResourceNotFoundException extends RuntimeException { + + private static final long serialVersionUID = -4861092601653641980L; + + public ResourceNotFoundException() { + } + + public ResourceNotFoundException(String message) { + super(message); + } + + public ResourceNotFoundException(String message, Throwable cause) { + super(message, cause); + } + + public ResourceNotFoundException(Throwable cause) { + super(cause); + } + + public ResourceNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/AppUser.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/AppUser.java index f94c3e24..c9fd2891 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/AppUser.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/AppUser.java @@ -18,6 +18,7 @@ */ package edu.pitt.dbmi.ccd.web.model; +import java.util.Date; import org.springframework.context.annotation.Scope; /** @@ -37,7 +38,9 @@ public class AppUser { private String lastName; - private String lastLogin; + private Date lastLogin; + + private Boolean federatedUser; public AppUser() { } @@ -74,12 +77,20 @@ public void setLastName(String lastName) { this.lastName = lastName; } - public String getLastLogin() { + public Date getLastLogin() { return lastLogin; } - public void setLastLogin(String lastLogin) { + public void setLastLogin(Date lastLogin) { this.lastLogin = lastLogin; } + public Boolean getFederatedUser() { + return federatedUser; + } + + public void setFederatedUser(Boolean federatedUser) { + this.federatedUser = federatedUser; + } + } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/Feedback.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/Feedback.java index 39b268df..6e7c0327 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/Feedback.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/Feedback.java @@ -18,6 +18,8 @@ */ package edu.pitt.dbmi.ccd.web.model; +import org.hibernate.validator.constraints.NotEmpty; + /** * * Aug 12, 2015 8:44:11 AM @@ -28,6 +30,7 @@ public class Feedback { private String email; + @NotEmpty(message = "Feedback message is required.") private String feedbackMsg; public Feedback() { diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/LoginCredentials.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/LoginCredentials.java new file mode 100644 index 00000000..1ef27f88 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/LoginCredentials.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.model; + +import org.hibernate.validator.constraints.Email; +import org.hibernate.validator.constraints.NotBlank; + +/** + * + * Oct 4, 2016 12:23:55 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public class LoginCredentials { + + @NotBlank(message = "Email is required.") + @Email(message = "Please enter a valid e-mail") + private String loginUsername; + + @NotBlank(message = "Password is required.") + private String loginPassword; + + private boolean rememberMe; + + public LoginCredentials() { + } + + public LoginCredentials(boolean rememberMe) { + this.rememberMe = rememberMe; + } + + public String getLoginUsername() { + return loginUsername; + } + + public void setLoginUsername(String loginUsername) { + this.loginUsername = loginUsername; + } + + public String getLoginPassword() { + return loginPassword; + } + + public void setLoginPassword(String loginPassword) { + this.loginPassword = loginPassword; + } + + public boolean isRememberMe() { + return rememberMe; + } + + public void setRememberMe(boolean rememberMe) { + this.rememberMe = rememberMe; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/account/PasswordRecovery.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/account/PasswordRecovery.java new file mode 100644 index 00000000..1b3894d1 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/account/PasswordRecovery.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.model.account; + +import org.hibernate.validator.constraints.Email; +import org.hibernate.validator.constraints.NotBlank; + +/** + * + * Oct 4, 2016 12:25:57 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public class PasswordRecovery { + + @NotBlank(message = "Email is required.") + @Email(message = "Please enter a valid e-mail.") + private String usernameRecover; + + public PasswordRecovery() { + } + + public String getUsernameRecover() { + return usernameRecover; + } + + public void setUsernameRecover(String usernameRecover) { + this.usernameRecover = usernameRecover; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/account/PasswordReset.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/account/PasswordReset.java new file mode 100644 index 00000000..c059c794 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/account/PasswordReset.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.model.account; + +import org.hibernate.validator.constraints.Length; +import org.hibernate.validator.constraints.NotBlank; + +/** + * + * Oct 6, 2016 12:55:57 AM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public class PasswordReset { + + @NotBlank + private String activationKey; + + @Length(min = 5, max = 25, message = "Please enter a password (5-25 chars).") + private String password; + + @Length(min = 5, max = 25, message = "Please reenter password.") + private String confirmPassword; + + public PasswordReset() { + } + + public PasswordReset(String activationKey) { + this.activationKey = activationKey; + } + + @Override + public String toString() { + return "PasswordReset{" + "activationKey=" + activationKey + ", password=" + password + ", confirmPassword=" + confirmPassword + '}'; + } + + public String getActivationKey() { + return activationKey; + } + + public void setActivationKey(String activationKey) { + this.activationKey = activationKey; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + if (!(this.password == null || this.password.equals(this.confirmPassword))) { + this.confirmPassword = ""; + } + } + + public String getConfirmPassword() { + return confirmPassword; + } + + public void setConfirmPassword(String confirmPassword) { + this.confirmPassword = confirmPassword; + if (!(this.confirmPassword == null || this.confirmPassword.equals(this.password))) { + this.password = ""; + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/account/UserRegistration.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/account/UserRegistration.java new file mode 100644 index 00000000..01ae3c52 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/account/UserRegistration.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.model.account; + +import javax.validation.constraints.AssertTrue; +import org.hibernate.validator.constraints.Email; +import org.hibernate.validator.constraints.Length; +import org.hibernate.validator.constraints.NotBlank; + +/** + * + * Oct 4, 2016 12:25:23 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public class UserRegistration { + + @NotBlank(message = "Email is required.") + @Email(message = "Please enter a valid email") + private String username; + + @Length(min = 5, max = 25, message = "Please enter a password (5-25 chars).") + private String password; + + @Length(min = 5, max = 25, message = "Please reenter password.") + private String confirmPassword; + + @AssertTrue(message = "You must agree to the terms and conditions.") + private boolean agree; + + private String firstName; + + private String lastName; + + public UserRegistration() { + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + if (!(this.password == null || this.password.equals(this.confirmPassword))) { + this.confirmPassword = ""; + } + } + + public String getConfirmPassword() { + return confirmPassword; + } + + public void setConfirmPassword(String confirmPassword) { + this.confirmPassword = confirmPassword; + if (!(this.confirmPassword == null || this.confirmPassword.equals(this.password))) { + this.password = ""; + } + } + + public boolean isAgree() { + return agree; + } + + public void setAgree(boolean agree) { + this.agree = agree; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/AlgorithmRunInfo.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/AlgorithmRunInfo.java index 2626f6df..711c108f 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/AlgorithmRunInfo.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/AlgorithmRunInfo.java @@ -34,11 +34,6 @@ public abstract class AlgorithmRunInfo { public AlgorithmRunInfo() { } - @Override - public String toString() { - return "AlgorithmRunInfo{" + "dataset=" + dataset + ", priorKnowledge=" + priorKnowledge + ", verbose=" + verbose + ", jvmMaxMem=" + jvmMaxMem + '}'; - } - public String getDataset() { return dataset; } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsContinuousRunInfo.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsContinuousRunInfo.java index 4a8359d8..cca8e572 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsContinuousRunInfo.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsContinuousRunInfo.java @@ -26,21 +26,22 @@ */ public class FgsContinuousRunInfo extends AlgorithmRunInfo { - // algorithm parameters - protected int maxDegree; protected double penaltyDiscount; + protected int maxDegree; protected boolean faithfulnessAssumed; - // data validation - protected boolean nonZeroVarianceValidation; - protected boolean uniqueVarNameValidation; + protected boolean skipUniqueVarName; + protected boolean skipNonzeroVariance; public FgsContinuousRunInfo() { } - @Override - public String toString() { - return "FgsContinuousRunInfo{" + "maxDegree=" + maxDegree + ", penaltyDiscount=" + penaltyDiscount + ", faithfulnessAssumed=" + faithfulnessAssumed + ", nonZeroVarianceValidation=" + nonZeroVarianceValidation + ", uniqueVarNameValidation=" + uniqueVarNameValidation + '}'; + public double getPenaltyDiscount() { + return penaltyDiscount; + } + + public void setPenaltyDiscount(double penaltyDiscount) { + this.penaltyDiscount = penaltyDiscount; } public int getMaxDegree() { @@ -51,14 +52,6 @@ public void setMaxDegree(int maxDegree) { this.maxDegree = maxDegree; } - public double getPenaltyDiscount() { - return penaltyDiscount; - } - - public void setPenaltyDiscount(double penaltyDiscount) { - this.penaltyDiscount = penaltyDiscount; - } - public boolean isFaithfulnessAssumed() { return faithfulnessAssumed; } @@ -67,20 +60,20 @@ public void setFaithfulnessAssumed(boolean faithfulnessAssumed) { this.faithfulnessAssumed = faithfulnessAssumed; } - public boolean isNonZeroVarianceValidation() { - return nonZeroVarianceValidation; + public boolean isSkipUniqueVarName() { + return skipUniqueVarName; } - public void setNonZeroVarianceValidation(boolean nonZeroVarianceValidation) { - this.nonZeroVarianceValidation = nonZeroVarianceValidation; + public void setSkipUniqueVarName(boolean skipUniqueVarName) { + this.skipUniqueVarName = skipUniqueVarName; } - public boolean isUniqueVarNameValidation() { - return uniqueVarNameValidation; + public boolean isSkipNonzeroVariance() { + return skipNonzeroVariance; } - public void setUniqueVarNameValidation(boolean uniqueVarNameValidation) { - this.uniqueVarNameValidation = uniqueVarNameValidation; + public void setSkipNonzeroVariance(boolean skipNonzeroVariance) { + this.skipNonzeroVariance = skipNonzeroVariance; } } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsDiscreteRunInfo.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsDiscreteRunInfo.java index d3e0a70f..6f5684af 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsDiscreteRunInfo.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/FgsDiscreteRunInfo.java @@ -32,17 +32,12 @@ public class FgsDiscreteRunInfo extends AlgorithmRunInfo { private boolean faithfulnessAssumed; // data validation - private boolean uniqueVarNameValidation; - private boolean limitNumOfCategory; + protected boolean skipUniqueVarName; + protected boolean skipCategoryLimit; public FgsDiscreteRunInfo() { } - @Override - public String toString() { - return "FgsDiscreteRunInfo{" + "structurePrior=" + structurePrior + ", samplePrior=" + samplePrior + ", maxDegree=" + maxDegree + ", faithfulnessAssumed=" + faithfulnessAssumed + ", uniqueVarNameValidation=" + uniqueVarNameValidation + ", limitNumOfCategory=" + limitNumOfCategory + '}'; - } - public double getStructurePrior() { return structurePrior; } @@ -63,8 +58,8 @@ public int getMaxDegree() { return maxDegree; } - public void setMaxDegree(int depth) { - this.maxDegree = depth; + public void setMaxDegree(int maxDegree) { + this.maxDegree = maxDegree; } public boolean isFaithfulnessAssumed() { @@ -75,20 +70,20 @@ public void setFaithfulnessAssumed(boolean faithfulnessAssumed) { this.faithfulnessAssumed = faithfulnessAssumed; } - public boolean isUniqueVarNameValidation() { - return uniqueVarNameValidation; + public boolean isSkipUniqueVarName() { + return skipUniqueVarName; } - public void setUniqueVarNameValidation(boolean uniqueVarNameValidation) { - this.uniqueVarNameValidation = uniqueVarNameValidation; + public void setSkipUniqueVarName(boolean skipUniqueVarName) { + this.skipUniqueVarName = skipUniqueVarName; } - public boolean isLimitNumOfCategory() { - return limitNumOfCategory; + public boolean isSkipCategoryLimit() { + return skipCategoryLimit; } - public void setLimitNumOfCategory(boolean limitNumOfCategory) { - this.limitNumOfCategory = limitNumOfCategory; + public void setSkipCategoryLimit(boolean skipCategoryLimit) { + this.skipCategoryLimit = skipCategoryLimit; } } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/GfciContinuousRunInfo.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/GfciContinuousRunInfo.java index e7782cd7..dabe6f11 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/GfciContinuousRunInfo.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/algo/GfciContinuousRunInfo.java @@ -19,80 +19,25 @@ package edu.pitt.dbmi.ccd.web.model.algo; /** - * + * * Sep 28, 2016 7:19:40 PM - * + * * @author Chirayu (Kong) Wongchokprasitti, PhD (chw20@pitt.edu) * */ -public class GfciContinuousRunInfo extends AlgorithmRunInfo { +public class GfciContinuousRunInfo extends FgsContinuousRunInfo { - // algorithm parameters - protected double alpha; - protected int maxInDegree; - protected double penaltyDiscount; - protected boolean faithfulnessAssumed; - - // data validation - protected boolean nonZeroVarianceValidation; - protected boolean uniqueVarNameValidation; + protected double alpha; public GfciContinuousRunInfo() { - - } - - @Override - public String toString() { - return "FgsContinuousRunInfo{" + "alpha=" + alpha + ", maxInDegree=" + maxInDegree + ", penaltyDiscount=" + penaltyDiscount + ", faithfulnessAssumed=" + faithfulnessAssumed + ", nonZeroVarianceValidation=" + nonZeroVarianceValidation + ", uniqueVarNameValidation=" + uniqueVarNameValidation + '}'; } - public double getAlpha() { - return alpha; - } - - public void setAlpha(double alpha) { - this.alpha = alpha; - } - - public int getMaxInDegree() { - return maxInDegree; - } - - public void setMaxInDegree(int maxInDegree) { - this.maxInDegree = maxInDegree; - } - - public double getPenaltyDiscount() { - return penaltyDiscount; - } - - public void setPenaltyDiscount(double penaltyDiscount) { - this.penaltyDiscount = penaltyDiscount; - } - - public boolean isFaithfulnessAssumed() { - return faithfulnessAssumed; - } - - public void setFaithfulnessAssumed(boolean faithfulnessAssumed) { - this.faithfulnessAssumed = faithfulnessAssumed; - } - - public boolean isNonZeroVarianceValidation() { - return nonZeroVarianceValidation; - } - - public void setNonZeroVarianceValidation(boolean nonZeroVarianceValidation) { - this.nonZeroVarianceValidation = nonZeroVarianceValidation; - } - - public boolean isUniqueVarNameValidation() { - return uniqueVarNameValidation; - } + public double getAlpha() { + return alpha; + } - public void setUniqueVarNameValidation(boolean uniqueVarNameValidation) { - this.uniqueVarNameValidation = uniqueVarNameValidation; - } + public void setAlpha(double alpha) { + this.alpha = alpha; + } - } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/user/PasswordChange.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/user/PasswordChange.java index 36f215d9..ee04c290 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/user/PasswordChange.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/user/PasswordChange.java @@ -18,6 +18,8 @@ */ package edu.pitt.dbmi.ccd.web.model.user; +import org.hibernate.validator.constraints.Length; + /** * * Jul 28, 2015 2:59:03 PM @@ -26,11 +28,14 @@ */ public class PasswordChange { + @Length(min = 5, max = 25, message = "Please enter your password.") private String currentPassword; + @Length(min = 5, max = 25, message = "Please enter your new password.") private String newPassword; - private String confirmPassword; + @Length(min = 5, max = 25, message = "Please reenter your new password.") + private String newConfirmPassword; public PasswordChange() { } @@ -49,14 +54,20 @@ public String getNewPassword() { public void setNewPassword(String newPassword) { this.newPassword = newPassword; + if (!(this.newPassword == null || this.newPassword.equals(this.newConfirmPassword))) { + this.newConfirmPassword = ""; + } } - public String getConfirmPassword() { - return confirmPassword; + public String getNewConfirmPassword() { + return newConfirmPassword; } - public void setConfirmPassword(String confirmPassword) { - this.confirmPassword = confirmPassword; + public void setNewConfirmPassword(String newConfirmPassword) { + this.newConfirmPassword = newConfirmPassword; + if (!(this.newConfirmPassword == null || this.newConfirmPassword.equals(this.newPassword))) { + this.newPassword = ""; + } } } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserInfo.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserInfo.java index 1aeacf22..c9622286 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserInfo.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserInfo.java @@ -26,6 +26,8 @@ */ public class UserInfo { + private String username; + private String firstName; private String middleName; @@ -37,11 +39,12 @@ public class UserInfo { public UserInfo() { } - public UserInfo(String firstName, String middleName, String lastName, String email) { - this.firstName = firstName; - this.middleName = middleName; - this.lastName = lastName; - this.email = email; + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; } public String getFirstName() { diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserRegistration.java b/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserRegistration.java index cd0325dd..c4c69340 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserRegistration.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/model/user/UserRegistration.java @@ -18,7 +18,10 @@ */ package edu.pitt.dbmi.ccd.web.model.user; -import edu.pitt.dbmi.ccd.db.entity.SecurityQuestion; +import javax.validation.constraints.AssertTrue; +import org.hibernate.validator.constraints.Email; +import org.hibernate.validator.constraints.Length; +import org.hibernate.validator.constraints.NotBlank; /** * @@ -28,18 +31,23 @@ */ public class UserRegistration { + @NotBlank(message = "Email is required.") + @Email(message = "Please enter a valid email") private String username; - private String email; - + @Length(min = 5, max = 25, message = "Please enter a password (5-25 chars).") private String password; - private SecurityQuestion secureQues; - - private String secureAns; + @Length(min = 5, max = 25, message = "Please reenter password.") + private String confirmPassword; + @AssertTrue(message = "You must agree to the terms and conditions.") private boolean agree; + private String firstName; + + private String lastName; + public UserRegistration() { } @@ -51,36 +59,26 @@ public void setUsername(String username) { this.username = username; } - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - public String getPassword() { return password; } public void setPassword(String password) { this.password = password; + if (!(this.password == null || this.password.equals(this.confirmPassword))) { + this.confirmPassword = ""; + } } - public SecurityQuestion getSecureQues() { - return secureQues; - } - - public void setSecureQues(SecurityQuestion secureQues) { - this.secureQues = secureQues; + public String getConfirmPassword() { + return confirmPassword; } - public String getSecureAns() { - return secureAns; - } - - public void setSecureAns(String secureAns) { - this.secureAns = secureAns; + public void setConfirmPassword(String confirmPassword) { + this.confirmPassword = confirmPassword; + if (!(this.confirmPassword == null || this.confirmPassword.equals(this.password))) { + this.password = ""; + } } public boolean isAgree() { @@ -91,4 +89,20 @@ public void setAgree(boolean agree) { this.agree = agree; } + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/prop/CcdEmailProperties.java b/src/main/java/edu/pitt/dbmi/ccd/web/prop/CcdEmailProperties.java new file mode 100644 index 00000000..5e915aae --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/prop/CcdEmailProperties.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.prop; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +/** + * + * Oct 4, 2016 9:51:00 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Component +@PropertySource("classpath:ccd.properties") +public class CcdEmailProperties { + + @Value("${ccd.email.admin.sendto}") + private String[] adminSendTo; + + public CcdEmailProperties() { + } + + public String[] getAdminSendTo() { + return adminSendTo; + } + + public void setAdminSendTo(String[] adminSendTo) { + this.adminSendTo = adminSendTo; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/prop/CcdProperties.java b/src/main/java/edu/pitt/dbmi/ccd/web/prop/CcdProperties.java new file mode 100644 index 00000000..5758e58a --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/prop/CcdProperties.java @@ -0,0 +1,214 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.prop; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +/** + * + * Oct 4, 2016 10:48:59 AM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Component +@PropertySource("classpath:ccd.properties") +public class CcdProperties { + + @Value("${ccd.jar.algorithm}") + private String algoJar; + + @Value("${ccd.algorithm.fgs}") + private String algoFgsContinuous; + + @Value("${ccd.algorithm.fgs.discrete}") + private String algoFgsDiscrete; + + @Value("${ccd.algorithm.gfci:}") + private String algoGfci; + + @Value("${ccd.queue.size:5}") + private String jobQueueSize; + + @Value("${ccd.server.workspace:}") + private String workspaceDir; + + @Value("${ccd.folder.data}") + private String dataFolder; + + @Value("${ccd.folder.lib:lib}") + private String libFolder; + + @Value("${ccd.folder.tmp:tmp}") + private String tmpFolder; + + @Value("${ccd.folder.results:results}") + private String resultFolder; + + @Value("${ccd.folder.results.algorithm:algorithm}") + private String resultAlgorithmFolder; + + @Value("${ccd.folder.results.comparison:comparison}") + private String resultComparisonFolder; + + @Value("${ccd.acct.reg.activ.required:false}") + private boolean requireActivation; + + @Value("${ccd.app.title}") + private String title; + + @Value("${ccd.app.copyright}") + private String copyright; + + @Value("${ccd.app.agreement}") + private String agreement; + + public CcdProperties() { + } + + public String getAlgoJar() { + return algoJar; + } + + public void setAlgoJar(String algoJar) { + this.algoJar = algoJar; + } + + public String getAlgoFgsContinuous() { + return algoFgsContinuous; + } + + public void setAlgoFgsContinuous(String algoFgsContinuous) { + this.algoFgsContinuous = algoFgsContinuous; + } + + public String getAlgoFgsDiscrete() { + return algoFgsDiscrete; + } + + public void setAlgoFgsDiscrete(String algoFgsDiscrete) { + this.algoFgsDiscrete = algoFgsDiscrete; + } + + public String getAlgoGfci() { + return algoGfci; + } + + public void setAlgoGfci(String algoGfci) { + this.algoGfci = algoGfci; + } + + public String getJobQueueSize() { + return jobQueueSize; + } + + public void setJobQueueSize(String jobQueueSize) { + this.jobQueueSize = jobQueueSize; + } + + public String getWorkspaceDir() { + return workspaceDir; + } + + public void setWorkspaceDir(String workspaceDir) { + this.workspaceDir = workspaceDir; + } + + public String getDataFolder() { + return dataFolder; + } + + public void setDataFolder(String dataFolder) { + this.dataFolder = dataFolder; + } + + public String getLibFolder() { + return libFolder; + } + + public void setLibFolder(String libFolder) { + this.libFolder = libFolder; + } + + public String getTmpFolder() { + return tmpFolder; + } + + public void setTmpFolder(String tmpFolder) { + this.tmpFolder = tmpFolder; + } + + public String getResultFolder() { + return resultFolder; + } + + public void setResultFolder(String resultFolder) { + this.resultFolder = resultFolder; + } + + public String getResultAlgorithmFolder() { + return resultAlgorithmFolder; + } + + public void setResultAlgorithmFolder(String resultAlgorithmFolder) { + this.resultAlgorithmFolder = resultAlgorithmFolder; + } + + public String getResultComparisonFolder() { + return resultComparisonFolder; + } + + public void setResultComparisonFolder(String resultComparisonFolder) { + this.resultComparisonFolder = resultComparisonFolder; + } + + public boolean isRequireActivation() { + return requireActivation; + } + + public void setRequireActivation(boolean requireActivation) { + this.requireActivation = requireActivation; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getCopyright() { + return copyright; + } + + public void setCopyright(String copyright) { + this.copyright = copyright; + } + + public String getAgreement() { + return agreement; + } + + public void setAgreement(String agreement) { + this.agreement = agreement; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/AppUserService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/AppUserService.java index a3880e65..e686180f 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/service/AppUserService.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/AppUserService.java @@ -18,19 +18,10 @@ */ package edu.pitt.dbmi.ccd.web.service; -import edu.pitt.dbmi.ccd.commons.file.FilePrint; import edu.pitt.dbmi.ccd.db.entity.Person; import edu.pitt.dbmi.ccd.db.entity.UserAccount; import edu.pitt.dbmi.ccd.web.model.AppUser; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.Date; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; /** @@ -42,60 +33,28 @@ @Service public class AppUserService { - private static final Logger LOGGER = LoggerFactory.getLogger(AppUserService.class); - - final String workspace; + public AppUserService() { + } - final String dataFolder; - final String resultFolder; - final String libFolder; - final String tmpFolder; + public AppUser updateUserProfile(AppUser appUser, Person person) { + String firstName = person.getFirstName(); + String middleName = person.getMiddleName(); + String lastName = person.getLastName(); - final String algorithmResultFolder; - final String compareResultFolder; + appUser.setFirstName(firstName == null ? "" : firstName); + appUser.setMiddleName(middleName == null ? "" : middleName); + appUser.setLastName(lastName == null ? "" : lastName); - @Autowired - public AppUserService( - @Value("${ccd.server.workspace}") String workspace, - @Value("${ccd.folder.data:data}") String dataFolder, - @Value("${ccd.folder.results:results}") String resultFolder, - @Value("${ccd.folder.lib:lib}") String libFolder, - @Value("${ccd.folder.tmp:tmp}") String tmpFolder, - @Value("${ccd.folder.results.algorithm:algorithm}") String algorithmResultFolder, - @Value("${ccd.folder.results.comparison:comparison}") String compareResultFolder) { - this.workspace = workspace; - this.dataFolder = dataFolder; - this.resultFolder = resultFolder; - this.libFolder = libFolder; - this.tmpFolder = tmpFolder; - this.algorithmResultFolder = algorithmResultFolder; - this.compareResultFolder = compareResultFolder; + return appUser; } - public AppUser createAppUser(final UserAccount userAccount) { - String username = userAccount.getUsername(); - Path[] directories = { - Paths.get(workspace, username, dataFolder), - Paths.get(workspace, username, resultFolder), - Paths.get(workspace, libFolder), - Paths.get(workspace, username, tmpFolder), - Paths.get(workspace, username, resultFolder, algorithmResultFolder), - Paths.get(workspace, username, resultFolder, compareResultFolder) - }; - for (Path directory : directories) { - if (Files.notExists(directory)) { - try { - Files.createDirectories(directory); - } catch (IOException exception) { - LOGGER.error(String.format("Unable to create directory '%s'.", directory), exception); - } - } - } - + public AppUser createAppUser(UserAccount userAccount, boolean federatedUser) { Person person = userAccount.getPerson(); String firstName = person.getFirstName(); String middleName = person.getMiddleName(); String lastName = person.getLastName(); + String username = userAccount.getUsername(); + Date lastLoginDate = userAccount.getLastLoginDate(); AppUser appUser = new AppUser(); @@ -103,8 +62,10 @@ public AppUser createAppUser(final UserAccount userAccount) { appUser.setFirstName(firstName == null ? "" : firstName); appUser.setMiddleName(middleName == null ? "" : middleName); appUser.setLastName(lastName == null ? "" : lastName); - appUser.setLastLogin(lastLoginDate == null ? "" : FilePrint.fileTimestamp(lastLoginDate.getTime())); + appUser.setLastLogin(lastLoginDate == null ? new Date(System.currentTimeMillis()) : lastLoginDate); + appUser.setFederatedUser(federatedUser); return appUser; } + } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/ApplicationService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/ApplicationService.java new file mode 100644 index 00000000..9f48a87c --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/ApplicationService.java @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service; + +import com.auth0.SessionUtils; +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.db.service.UserAccountService; +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.model.LoginCredentials; +import edu.pitt.dbmi.ccd.web.service.algo.AlgorithmResultService; +import edu.pitt.dbmi.ccd.web.service.algo.ResultComparisonService; +import edu.pitt.dbmi.ccd.web.service.file.FileManagementService; +import java.util.Date; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.ui.Model; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Oct 4, 2016 12:20:21 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class ApplicationService { + + private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationService.class); + + public static final String INVALID_CREDENTIALS = "Invalid username and/or password."; + public static final String UNACTIVATED_ACCOUNT = "Your account has not been activated."; + public static final String LOGOUT_SUCCESS = "You Have Successfully Logged Out."; + + private final DataService dataService; + private final AlgorithmResultService algorithmResultService; + private final ResultComparisonService resultComparisonService; + private final LoginService loginService; + private final FileManagementService fileManagementService; + private final AppUserService appUserService; + private final UserAccountService userAccountService; + + @Autowired + public ApplicationService(DataService dataService, AlgorithmResultService algorithmResultService, ResultComparisonService resultComparisonService, LoginService loginService, FileManagementService fileManagementService, AppUserService appUserService, UserAccountService userAccountService) { + this.dataService = dataService; + this.algorithmResultService = algorithmResultService; + this.resultComparisonService = resultComparisonService; + this.loginService = loginService; + this.fileManagementService = fileManagementService; + this.appUserService = appUserService; + this.userAccountService = userAccountService; + } + + public void retrieveFileCounts(AppUser appUser, Model model) { + String username = appUser.getUsername(); + model.addAttribute("numOfDataset", dataService.countFiles(username)); + model.addAttribute("numOfAlgorithmResults", algorithmResultService.countFiles(username)); + model.addAttribute("numOfComparisonResults", resultComparisonService.countFiles(username)); + } + + public boolean logInUser( + LoginCredentials loginCredentials, + RedirectAttributes redirectAttributes, + Model model, + HttpServletRequest request) { + Subject currentUser = loginService.passwordLogin(loginCredentials); + if (currentUser.isAuthenticated()) { + String email = loginCredentials.getLoginUsername(); + UserAccount userAccount = userAccountService.findByEmail(email); + if (userAccount.getActive()) { + fileManagementService.createUserDirectories(userAccount); + model.addAttribute("appUser", appUserService.createAppUser(userAccount, false)); + + // update last login + userAccount.setLastLoginDate(new Date(System.currentTimeMillis())); + userAccount.setActivationKey(null); + try { + userAccountService.save(userAccount); + } catch (Exception exception) { + LOGGER.error("Unable to update last login.", exception); + } + + return true; + } else { + currentUser.logout(); + redirectAttributes.addFlashAttribute("errorMsg", UNACTIVATED_ACCOUNT); + } + } else { + redirectAttributes.addFlashAttribute("errorMsg", INVALID_CREDENTIALS); + redirectAttributes.addFlashAttribute("loginCredentials", loginCredentials); + } + + return false; + } + + public void logOutUser( + AppUser appUser, + SessionStatus sessionStatus, + RedirectAttributes redirectAttributes, + HttpServletRequest req) { + Subject currentUser = SecurityUtils.getSubject(); + if (currentUser.isAuthenticated()) { + currentUser.logout(); + sessionStatus.setComplete(); + redirectAttributes.addFlashAttribute("successMsg", LOGOUT_SUCCESS); + + if (appUser.getFederatedUser()) { + SessionUtils.setTokens(req, null); + SessionUtils.setAuth0User(req, null); + } + } + + HttpSession httpSession = req.getSession(); + if (httpSession != null) { + httpSession.invalidate(); + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/Auth0LoginService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/Auth0LoginService.java new file mode 100644 index 00000000..e27f2f68 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/Auth0LoginService.java @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service; + +import com.auth0.Auth0User; +import com.auth0.NonceUtils; +import com.auth0.SessionUtils; +import com.auth0.web.Auth0CallbackHandler; +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.db.service.UserAccountService; +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.model.LoginCredentials; +import edu.pitt.dbmi.ccd.web.model.account.PasswordRecovery; +import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; +import edu.pitt.dbmi.ccd.web.service.account.UserRegistrationService; +import java.io.IOException; +import java.util.Map; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Service; +import org.springframework.ui.Model; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Jun 2, 2016 4:50:47 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Profile("auth0") +@Service +public class Auth0LoginService { + + private static final Logger LOGGER = LoggerFactory.getLogger(Auth0LoginService.class); + + private final UserAccountService userAccountService; + private final AppUserService appUserService; + private final LoginService loginService; + private final Auth0CallbackHandler auth0CallbackHandler; + + @Autowired + public Auth0LoginService(UserAccountService userAccountService, AppUserService appUserService, LoginService loginService, Auth0CallbackHandler auth0CallbackHandler) { + this.userAccountService = userAccountService; + this.appUserService = appUserService; + this.loginService = loginService; + this.auth0CallbackHandler = auth0CallbackHandler; + } + + public void logInUser(UserAccount userAccount, Auth0User auth0User, RedirectAttributes redirectAttributes, HttpServletRequest req, final HttpServletResponse res, Model model) { + Subject subject = loginService.manualLogin(userAccount, req, res); + if (subject.isAuthenticated()) { + AppUser appUser = appUserService.createAppUser(userAccount, true); + if (auth0User != null) { + appUser.setFirstName(auth0User.getGivenName()); + appUser.setLastName(auth0User.getFamilyName()); + } + redirectAttributes.addFlashAttribute("appUser", appUser); + } else { + redirectAttributes.addFlashAttribute("errorMsg", UserRegistrationService.LOGIN_FAILED); + } + } + + public AppUser createTempAppUser(Auth0User auth0User) { + String firstName = auth0User.getGivenName(); + String lastName = auth0User.getFamilyName(); + String email = auth0User.getEmail().toLowerCase(); + + AppUser appUser = new AppUser(); + appUser.setUsername(email); + appUser.setFirstName((firstName == null) ? "" : firstName); + appUser.setMiddleName(""); + appUser.setLastName((lastName == null) ? "" : lastName); + appUser.setFederatedUser(Boolean.TRUE); + + return appUser; + } + + public UserAccount retrieveUserAccount(Auth0User auth0User) { + String username = auth0User.getEmail().toLowerCase().trim(); + + return userAccountService.findByEmail(username); + } + + public void showLoginPage(Model model, HttpServletRequest request) { + if (!model.containsAttribute("loginCredentials")) { + model.addAttribute("loginCredentials", new LoginCredentials(true)); + } + if (!model.containsAttribute("userRegistration")) { + model.addAttribute("userRegistration", new UserRegistration()); + } + if (!model.containsAttribute("passwordRecovery")) { + model.addAttribute("passwordRecovery", new PasswordRecovery()); + } + + detectError(model); + NonceUtils.addNonceToStorage(request); + model.addAttribute("state", SessionUtils.getState(request)); + } + + public void handleCallback(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { + auth0CallbackHandler.handle(req, res); + } + + private void detectError(Model model) { + Map modelMap = model.asMap(); + if (modelMap.get("error") == null) { + modelMap.put("error", Boolean.FALSE); + } else { + modelMap.put("error", Boolean.TRUE); + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/DataService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/DataService.java index 7160e124..a5a63d72 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/service/DataService.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/DataService.java @@ -22,11 +22,13 @@ import edu.pitt.dbmi.ccd.commons.file.MessageDigestHash; import edu.pitt.dbmi.ccd.commons.file.info.BasicFileInfo; import edu.pitt.dbmi.ccd.commons.file.info.FileInfos; +import edu.pitt.dbmi.ccd.db.entity.AnnotationTarget; import edu.pitt.dbmi.ccd.db.entity.DataFile; import edu.pitt.dbmi.ccd.db.entity.DataFileInfo; import edu.pitt.dbmi.ccd.db.entity.FileDelimiter; import edu.pitt.dbmi.ccd.db.entity.UserAccount; import edu.pitt.dbmi.ccd.db.entity.VariableType; +import edu.pitt.dbmi.ccd.db.service.AnnotationTargetService; import edu.pitt.dbmi.ccd.db.service.DataFileService; import edu.pitt.dbmi.ccd.db.service.FileDelimiterService; import edu.pitt.dbmi.ccd.db.service.UserAccountService; @@ -43,6 +45,7 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -78,6 +81,8 @@ public class DataService { private final UserAccountService userAccountService; + private final AnnotationTargetService annotationTargetService; + @Autowired public DataService( @Value("${ccd.server.workspace}") String workspace, @@ -85,13 +90,15 @@ public DataService( DataFileService dataFileService, VariableTypeService variableTypeService, FileDelimiterService fileDelimiterService, - UserAccountService userAccountService) { + UserAccountService userAccountService, + AnnotationTargetService annotationTargetService) { this.workspace = workspace; this.dataFolder = dataFolder; this.dataFileService = dataFileService; this.variableTypeService = variableTypeService; this.fileDelimiterService = fileDelimiterService; this.userAccountService = userAccountService; + this.annotationTargetService = annotationTargetService; } public String getFileDelimiter(String fileName, String username) { @@ -165,6 +172,12 @@ public Map listPriorKnowledge(String username) { return map; } + public AnnotationTarget getAnnotationTarget(final String fileName, final String username) { + Path dataDir = Paths.get(workspace, username, dataFolder); + DataFile dataFile = dataFileService.findByAbsolutePathAndName(dataDir.toAbsolutePath().toString(), fileName); + return dataFile.getAnnotationTarget(); + } + public boolean saveDataSummary(final DataSummary dataSummary, final String username) { boolean success = false; @@ -462,6 +475,25 @@ public void refreshLocalFileDatabase(final Path dataDir, final String username) }); dataFileService.saveDataFile(list); } + + Set annotationTargets = getNewAnnotationTargets(userAccount); + if (!annotationTargets.isEmpty()) { + annotationTargetService.save(annotationTargets); + } + } + + private Set getNewAnnotationTargets(UserAccount userAccount) { + Set annotationTargets = new HashSet<>(); + + // get all the user's dataset from the database + List dataFiles = dataFileService.findByUserAccounts(Collections.singleton(userAccount)); + dataFiles.forEach(dataFile -> { + if (annotationTargetService.findByDataFile(dataFile) == null) { + annotationTargets.add(new AnnotationTarget(userAccount, dataFile.getName(), dataFile)); + } + }); + + return annotationTargets; } } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/FeedbackService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/FeedbackService.java new file mode 100644 index 00000000..dafbf982 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/FeedbackService.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service; + +import edu.pitt.dbmi.ccd.web.model.Feedback; +import edu.pitt.dbmi.ccd.web.service.mail.FeedbackMailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Oct 5, 2016 5:42:30 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class FeedbackService { + + private final FeedbackMailService feedbackMailService; + + @Autowired + public FeedbackService(FeedbackMailService feedbackMailService) { + this.feedbackMailService = feedbackMailService; + } + + public void sendFeedback(Feedback feedback, RedirectAttributes redirectAttributes) { + feedbackMailService.sendUserFeedback(feedback.getEmail(), feedback.getFeedbackMsg()); + redirectAttributes.addFlashAttribute("successMsg", "Thank you for your feedback!"); + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/LoginService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/LoginService.java new file mode 100644 index 00000000..d80061e1 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/LoginService.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service; + +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.web.model.LoginCredentials; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.apache.shiro.web.subject.WebSubject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * + * Oct 4, 2016 3:27:27 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class LoginService { + + private static final Logger LOGGER = LoggerFactory.getLogger(LoginService.class); + + public LoginService() { + } + + public Subject passwordLogin(LoginCredentials loginCredentials) { + String username = loginCredentials.getLoginUsername(); + String password = loginCredentials.getLoginPassword(); + boolean rememberMe = loginCredentials.isRememberMe(); + + Subject currentUser = SecurityUtils.getSubject(); + try { + currentUser.login(new UsernamePasswordToken(username, password, rememberMe)); + } catch (AuthenticationException exception) { + LOGGER.info(String.format("Failed login attempt from user %s.", username)); + } + + return currentUser; + } + + public Subject manualLogin(UserAccount userAccount, HttpServletRequest req, HttpServletResponse res) { + return new WebSubject.Builder(req, res).authenticated(true).sessionCreationEnabled(true).buildSubject(); + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/UserService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/UserService.java index 6f6f1108..63530791 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/service/UserService.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/UserService.java @@ -18,18 +18,6 @@ */ package edu.pitt.dbmi.ccd.web.service; -import edu.pitt.dbmi.ccd.db.entity.Person; -import edu.pitt.dbmi.ccd.db.entity.SecurityAnswer; -import edu.pitt.dbmi.ccd.db.entity.UserAccount; -import edu.pitt.dbmi.ccd.db.service.SecurityAnswerService; -import edu.pitt.dbmi.ccd.db.service.UserAccountService; -import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; -import edu.pitt.dbmi.ccd.web.service.mail.MailService; -import java.net.URI; -import java.util.Base64; -import java.util.Collections; -import java.util.Date; -import java.util.UUID; import org.apache.shiro.authc.credential.DefaultPasswordService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,7 +25,13 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.util.UriComponentsBuilder; + +import edu.pitt.dbmi.ccd.db.entity.SecurityAnswer; +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.db.service.SecurityAnswerService; +import edu.pitt.dbmi.ccd.db.service.UserAccountService; +import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; +import edu.pitt.dbmi.ccd.web.service.mail.MailService; /** * @@ -79,54 +73,6 @@ public boolean registerNewUser( final String requestURL) { boolean success = false; - String username = userRegistration.getUsername(); - String email = userRegistration.getEmail(); - String password = userRegistration.getPassword(); - - String accountId = UUID.randomUUID().toString(); - - try { - UriComponentsBuilder uriComponentsBuilder; - if (serverUrl.isEmpty()) { - uriComponentsBuilder = UriComponentsBuilder.fromHttpUrl(requestURL); - } else { - String[] paths = new URI(requestURL).getPath().split("/"); - uriComponentsBuilder = UriComponentsBuilder.fromHttpUrl(serverUrl).pathSegment(paths); - } - - String url = uriComponentsBuilder - .pathSegment("activate") - .queryParam("account", Base64.getUrlEncoder().encodeToString(accountId.getBytes())) - .build().normalize().toString(); - - Person person = new Person(); - person.setFirstName(""); - person.setLastName(""); - person.setEmail(email); - person.setWorkspace(""); - - UserAccount userAccount = new UserAccount(); - userAccount.setAccountId(accountId); - userAccount.setActive(Boolean.FALSE); - userAccount.setCreatedDate(new Date(System.currentTimeMillis())); - userAccount.setLastLoginDate(new Date(System.currentTimeMillis())); - userAccount.setPassword(passwordService.encryptPassword(password)); - userAccount.setPerson(person); - userAccount.setUsername(username); - - SecurityAnswer securityAnswer = new SecurityAnswer(); - securityAnswer.setAnswer(userRegistration.getSecureAns()); - securityAnswer.setSecurityQuestion(userRegistration.getSecureQues()); - securityAnswer.setUserAccounts(Collections.singleton(userAccount)); - - success = persistUserRegistration(userAccount, securityAnswer); - if (success) { - mailService.sendRegistrationActivation(username, email, url); - } - } catch (Exception exception) { - LOGGER.warn(exception.getMessage()); - } - return success; } @@ -135,7 +81,7 @@ private boolean persistUserRegistration(UserAccount userAccount, SecurityAnswer boolean flag = false; try { - userAccountService.saveUserAccount(userAccount); + userAccountService.save(userAccount); securityAnswerService.saveSecurityAnswer(securityAnswer); flag = true; } catch (Exception exception) { diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/account/AccountRecoveryService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/AccountRecoveryService.java new file mode 100644 index 00000000..b54646cf --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/AccountRecoveryService.java @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.account; + +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.db.service.UserAccountService; +import edu.pitt.dbmi.ccd.web.model.account.PasswordRecovery; +import edu.pitt.dbmi.ccd.web.model.account.PasswordReset; +import edu.pitt.dbmi.ccd.web.service.mail.AccountRecoveryMailService; +import edu.pitt.dbmi.ccd.web.util.UriTool; +import java.util.Base64; +import java.util.UUID; +import javax.servlet.http.HttpServletRequest; +import org.apache.shiro.authc.credential.DefaultPasswordService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Oct 6, 2016 12:54:36 AM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class AccountRecoveryService { + + private static final Logger LOGGER = LoggerFactory.getLogger(AccountRecoveryService.class); + + private static final String[] UNACTIVATED_ACCOUNT = {"Login Failed!", "Your account has not been activated."}; + private static final String[] USER_NOT_FOUND = {"Password Reset Failed!", "No such user found."}; + + private final UserAccountService userAccountService; + private final AccountRecoveryMailService accountRecoveryMailService; + private final DefaultPasswordService passwordService; + + @Autowired + public AccountRecoveryService(UserAccountService userAccountService, AccountRecoveryMailService accountRecoveryMailService, DefaultPasswordService passwordService) { + this.userAccountService = userAccountService; + this.accountRecoveryMailService = accountRecoveryMailService; + this.passwordService = passwordService; + } + + public void resetPassword(PasswordReset passwordReset, RedirectAttributes redirectAttributes) { + String activationKey = passwordReset.getActivationKey(); + String password = passwordReset.getPassword(); + + UserAccount userAccount = userAccountService.findByActivationKey(activationKey); + userAccount.setPassword(passwordService.encryptPassword(password)); + userAccount.setActivationKey(null); + try { + userAccountService.save(userAccount); + + redirectAttributes.addFlashAttribute("header", "Password Reset Success!"); + redirectAttributes.addFlashAttribute("successMsg", "You have successfully reset your password."); + } catch (Exception exception) { + LOGGER.error("Unable to reset password for user.", exception); + + redirectAttributes.addFlashAttribute("header", "Password Reset Failed!"); + redirectAttributes.addFlashAttribute("errorMsg", "Unable to reset password."); + } + } + + public boolean isValidActivationKey(String activationKey) { + return (userAccountService.findByActivationKey(activationKey) != null); + } + + public void recoverPasswordRequest(PasswordRecovery passwordRecovery, RedirectAttributes redirectAttributes, HttpServletRequest request) { + String email = passwordRecovery.getUsernameRecover(); + UserAccount userAccount = userAccountService.findByEmail(email); + if (userAccount == null) { + redirectAttributes.addFlashAttribute("passwordRecovery", passwordRecovery); + redirectAttributes.addFlashAttribute("errorMsg", USER_NOT_FOUND); + } else if (!userAccount.getActive()) { + redirectAttributes.addFlashAttribute("passwordRecovery", passwordRecovery); + redirectAttributes.addFlashAttribute("errorMsg", UNACTIVATED_ACCOUNT); + } else { + String activationKey = UUID.randomUUID().toString(); + String resetPasswordURL = UriTool.buildURI(request) + .pathSegment("user", "account", "recovery", "password") + .queryParam("reset", Base64.getUrlEncoder().encodeToString(activationKey.getBytes())) + .build().toString(); + try { + userAccount.setActivationKey(activationKey); + userAccount = userAccountService.save(userAccount); + + accountRecoveryMailService.sendUserPasswordRecovery(email, resetPasswordURL); + + redirectAttributes.addFlashAttribute("successMsg", "E-mail for password reset has been sent out."); + } catch (Exception exception) { + LOGGER.error(String.format("Unable to save activation key to reset password for '%s'.", userAccount.getUsername()), exception); + redirectAttributes.addFlashAttribute("passwordRecovery", passwordRecovery); + redirectAttributes.addFlashAttribute("errorMsg", String.format("Unable to reset password for '%s'.", userAccount.getUsername())); + } + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/account/Auth0UserRegistrationService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/Auth0UserRegistrationService.java new file mode 100644 index 00000000..66570a07 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/Auth0UserRegistrationService.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.account; + +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; +import edu.pitt.dbmi.ccd.web.util.PasswordTool; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Service; +import org.springframework.ui.Model; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Jun 29, 2016 4:07:58 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Profile("auth0") +@Service +public class Auth0UserRegistrationService { + + private final UserRegistrationService userRegistrationService; + + @Autowired + public Auth0UserRegistrationService(UserRegistrationService userRegistrationService) { + this.userRegistrationService = userRegistrationService; + } + + public void registerNewUser(AppUser appUser, final Model model, RedirectAttributes redirectAttributes, HttpServletRequest req, final HttpServletResponse res) { + String username = appUser.getUsername(); + String firstName = appUser.getFirstName(); + String lastName = appUser.getLastName(); + String password = PasswordTool.generatePassword(20); + + UserRegistration userRegistration = new UserRegistration(); + userRegistration.setAgree(true); + userRegistration.setConfirmPassword(password); + userRegistration.setFirstName(firstName); + userRegistration.setLastName(lastName); + userRegistration.setPassword(password); + userRegistration.setUsername(username); + + userRegistrationService.registerNewRegularUser(userRegistration, true, model, redirectAttributes, req, res); + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/account/UserProfileService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/UserProfileService.java new file mode 100644 index 00000000..8804ee6c --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/UserProfileService.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.account; + +import edu.pitt.dbmi.ccd.db.entity.Person; +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.db.service.UserAccountService; +import edu.pitt.dbmi.ccd.web.model.AppUser; +import edu.pitt.dbmi.ccd.web.model.user.PasswordChange; +import edu.pitt.dbmi.ccd.web.model.user.UserInfo; +import edu.pitt.dbmi.ccd.web.service.AppUserService; +import javax.servlet.http.HttpServletRequest; +import org.apache.shiro.authc.credential.DefaultPasswordService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.ui.Model; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Oct 5, 2016 4:06:29 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class UserProfileService { + + private static final Logger LOGGER = LoggerFactory.getLogger(UserProfileService.class); + + private static final String[] USER_PROFILE_UPDATE_FAILED = {"User Profile Update Failed!", "Unable to update user information."}; + private static final String[] PASSWORD_UPDATE_FAILED = {"Password Update Failed!", "Unable to change password."}; + + private final UserAccountService userAccountService; + private final AppUserService appUserService; + private final DefaultPasswordService passwordService; + + @Autowired + public UserProfileService(UserAccountService userAccountService, AppUserService appUserService, DefaultPasswordService passwordService) { + this.userAccountService = userAccountService; + this.appUserService = appUserService; + this.passwordService = passwordService; + } + + public UserInfo createUserInfo(AppUser appUser) { + UserAccount userAccount = userAccountService.findByUsername(appUser.getUsername()); + Person person = userAccount.getPerson(); + + UserInfo userInfo = new UserInfo(); + userInfo.setEmail(person.getEmail()); + userInfo.setFirstName(person.getFirstName()); + userInfo.setMiddleName(person.getMiddleName()); + userInfo.setLastName(person.getLastName()); + userInfo.setUsername(userAccount.getUsername()); + + return userInfo; + } + + public void updateUserProfile(UserInfo userInfo, AppUser appUser, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) { + String username = appUser.getUsername(); + UserAccount userAccount = userAccountService.findByUsername(username); + if (userAccount != null) { + try { + Person person = userAccount.getPerson(); + person.setFirstName(userInfo.getFirstName()); + person.setMiddleName(userInfo.getMiddleName()); + person.setLastName(userInfo.getLastName()); + person = userAccountService.updatePerson(userAccount); + + model.addAttribute("appUser", appUserService.updateUserProfile(appUser, person)); + } catch (Exception exception) { + LOGGER.error(String.format("Unable to update user '%s' information.", username), exception); + redirectAttributes.addFlashAttribute("profileChangeError", USER_PROFILE_UPDATE_FAILED); + } + } + } + + public void updateUserPassword(PasswordChange passwordChange, AppUser appUser, RedirectAttributes redirectAttributes, HttpServletRequest request) { + String username = appUser.getUsername(); + UserAccount userAccount = userAccountService.findByUsername(username); + if (userAccount != null) { + String currentPwd = passwordChange.getCurrentPassword(); + String encryptedPwd = userAccount.getPassword(); + if (passwordService.passwordsMatch(currentPwd, encryptedPwd)) { + userAccount.setPassword(passwordService.encryptPassword(passwordChange.getNewPassword())); + try { + userAccountService.updateAccount(userAccount); + } catch (Exception exception) { + LOGGER.error(String.format("Unable to update user '%s' password.", username), exception); + redirectAttributes.addFlashAttribute("pwdChangeErrMsg", PASSWORD_UPDATE_FAILED); + redirectAttributes.addFlashAttribute("pwdChangeErr", true); + } + } else { + redirectAttributes.addFlashAttribute("errInvalidPwd", "Invalid password."); + redirectAttributes.addFlashAttribute("pwdChangeErr", true); + } + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/account/UserRegistrationService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/UserRegistrationService.java new file mode 100644 index 00000000..55561342 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/account/UserRegistrationService.java @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.account; + +import edu.pitt.dbmi.ccd.db.domain.AccountRegistration; +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.db.service.PersonService; +import edu.pitt.dbmi.ccd.db.service.UserAccountService; +import edu.pitt.dbmi.ccd.web.exception.ResourceNotFoundException; +import edu.pitt.dbmi.ccd.web.model.user.UserRegistration; +import edu.pitt.dbmi.ccd.web.prop.CcdProperties; +import edu.pitt.dbmi.ccd.web.service.AppUserService; +import edu.pitt.dbmi.ccd.web.service.LoginService; +import edu.pitt.dbmi.ccd.web.service.file.FileManagementService; +import edu.pitt.dbmi.ccd.web.service.mail.UserRegistrationMailService; +import edu.pitt.dbmi.ccd.web.util.UriTool; +import java.util.Base64; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.shiro.authc.credential.DefaultPasswordService; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.ui.Model; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * + * Oct 4, 2016 2:49:02 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class UserRegistrationService { + + private static final Logger LOGGER = LoggerFactory.getLogger(UserRegistrationService.class); + + public static final String[] LOGIN_FAILED = {"Login Failed!", "Unable to log in at this time."}; + private static final String[] REGISTRATION_SUCCESS = {"Registration Success!", "Check your email to activate your account."}; + private static final String[] REGISTRATION_FAILED = {"Registration Failed!", "Unable to register new user."}; + private static final String[] USERNAME_EXISTED = {"Registration Failed!", "Account already existed for that email."}; + + private final CcdProperties ccdProperties; + private final DefaultPasswordService passwordService; + + private final UserAccountService userAccountService; + private final PersonService personService; + private final LoginService loginService; + private final AppUserService appUserService; + private final UserRegistrationMailService userRegistrationMailService; + private final FileManagementService fileManagementService; + + @Autowired + public UserRegistrationService(CcdProperties ccdProperties, DefaultPasswordService passwordService, UserAccountService userAccountService, PersonService personService, LoginService loginService, AppUserService appUserService, UserRegistrationMailService userRegistrationMailService, FileManagementService fileManagementService) { + this.ccdProperties = ccdProperties; + this.passwordService = passwordService; + this.userAccountService = userAccountService; + this.personService = personService; + this.loginService = loginService; + this.appUserService = appUserService; + this.userRegistrationMailService = userRegistrationMailService; + this.fileManagementService = fileManagementService; + } + + public void activateNewUser(String accountId, HttpServletRequest request, RedirectAttributes redirectAttributes) throws ResourceNotFoundException { + UserAccount userAccount = userAccountService.findByActivationKey(accountId); + if (userAccount == null || userAccount.getActive()) { + throw new ResourceNotFoundException(); + } + + try { + userAccount.setActive(Boolean.TRUE); + userAccount.setActivationKey(null); + userAccountService.save(userAccount); + + redirectAttributes.addFlashAttribute("header", "User Activation Success!"); + redirectAttributes.addFlashAttribute("successMsg", String.format("You have successfully activated user '%s'.", userAccount.getUsername())); + } catch (Exception exception) { + LOGGER.error(String.format("Unable to activate user account '%s'.", userAccount.getUsername()), exception); + + redirectAttributes.addFlashAttribute("header", "User Activation Failed!"); + redirectAttributes.addFlashAttribute("errorMsg", String.format("Unable to activate user '%s'.", userAccount.getUsername())); + } + } + + public void registerNewRegularUser(UserRegistration userRegistration, boolean federatedUser, Model model, RedirectAttributes redirectAttributes, HttpServletRequest req, HttpServletResponse res) { + String username = userRegistration.getUsername(); + boolean existed = personService.countByEmail(username) > 0; + if (existed) { + redirectAttributes.addFlashAttribute("userRegistration", userRegistration); + redirectAttributes.addFlashAttribute("errorMsg", USERNAME_EXISTED); + } else { + UserAccount userAccount = regesterUser(userRegistration, federatedUser); + if (userAccount == null) { + redirectAttributes.addFlashAttribute("errorMsg", REGISTRATION_FAILED); + } else { + // send e-mail notification to admin + userRegistrationMailService.sendAdminNewUserRegistrationNotification(userAccount); + if (userAccount.getActive()) { + Subject subject = loginService.manualLogin(userAccount, req, res); + if (subject.isAuthenticated()) { + fileManagementService.createUserDirectories(userAccount); + redirectAttributes.addFlashAttribute("appUser", appUserService.createAppUser(userAccount, federatedUser)); + } else { + redirectAttributes.addFlashAttribute("errorMsg", LOGIN_FAILED); + } + } else { + // send e-mail notification to user + String activationLink = createActivationLink(userAccount, req); + userRegistrationMailService.sendUserSelfActivation(userAccount, activationLink); + redirectAttributes.addFlashAttribute("successMsg", REGISTRATION_SUCCESS); + } + } + } + } + + protected String createActivationLink(UserAccount userAccount, HttpServletRequest req) { + String accountId = userAccount.getActivationKey(); + + String activationLink = UriTool.buildURI(req) + .pathSegment("user", "account", "registration", "activate") + .queryParam("activation", Base64.getUrlEncoder().encodeToString(accountId.getBytes())) + .build().toString(); + + return activationLink; + } + + public UserAccount regesterUser(UserRegistration userRegistration, boolean federatedUser) { + String username = userRegistration.getUsername().split("@")[0]; + String password = passwordService.encryptPassword(userRegistration.getPassword()); + boolean activated = !ccdProperties.isRequireActivation() || federatedUser; + String email = userRegistration.getUsername(); + String firstName = userRegistration.getFirstName(); + String lastName = userRegistration.getLastName(); + String workspace = ccdProperties.getWorkspaceDir(); + + AccountRegistration registration = new AccountRegistration(); + registration.setActivated(activated); + registration.setEmail(email); + registration.setFirstName(firstName); + registration.setLastName(lastName); + registration.setPassword(password); + registration.setUsername(username); + registration.setWorkspace(workspace); + + UserAccount userAccount = null; + try { + userAccount = userAccountService.createNewAccount(registration); + } catch (Exception exception) { + LOGGER.error("Failed to register new user.", exception); + } + + return userAccount; + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/algo/AlgorithmResultService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/algo/AlgorithmResultService.java index b76fcaf2..654dc76a 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/service/algo/AlgorithmResultService.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/algo/AlgorithmResultService.java @@ -140,14 +140,16 @@ public List listResultFileInfo(final String username) { List results = FileInfos.listBasicPathInfo(files); results.forEach(result -> { String fileName = result.getFilename(); - - ResultFileInfo fileInfo = new ResultFileInfo(); - fileInfo.setCreationDate(new Date(result.getCreationTime())); - fileInfo.setFileName(fileName); - fileInfo.setFileSize(result.getSize()); - fileInfo.setError(fileName.startsWith("error")); - - resultFileInfos.add(fileInfo); + // only accept files that ends in .txt + if (fileName.endsWith(".txt")) { + ResultFileInfo fileInfo = new ResultFileInfo(); + fileInfo.setCreationDate(new Date(result.getCreationTime())); + fileInfo.setFileName(fileName); + fileInfo.setFileSize(result.getSize()); + fileInfo.setError(fileName.startsWith("error")); + + resultFileInfos.add(fileInfo); + } }); } catch (IOException exception) { LOGGER.error(exception.getMessage()); @@ -178,12 +180,10 @@ public Map> extractDataCategories(final String fileN if (isCategory) { if (line.isEmpty()) { isCategory = false; - } else { - if (map != null) { - String[] data = equalDelim.split(line); - if (data.length == 2) { - map.put(data[0].trim(), data[1].trim()); - } + } else if (map != null) { + String[] data = equalDelim.split(line); + if (data.length == 2) { + map.put(data[0].trim(), data[1].trim()); } } } else if (line.endsWith(":")) { diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/data/DataFileManagerService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/data/DataFileManagerService.java index bcab4191..6565fb65 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/service/data/DataFileManagerService.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/data/DataFileManagerService.java @@ -24,8 +24,10 @@ import edu.pitt.dbmi.ccd.db.entity.DataFile; import edu.pitt.dbmi.ccd.db.entity.DataFileInfo; import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.db.entity.AnnotationTarget; import edu.pitt.dbmi.ccd.db.service.DataFileService; import edu.pitt.dbmi.ccd.db.service.UserAccountService; +import edu.pitt.dbmi.ccd.db.service.AnnotationTargetService; import edu.pitt.dbmi.ccd.web.model.data.ResumableChunk; import java.io.BufferedOutputStream; import java.io.FileOutputStream; @@ -65,16 +67,20 @@ public class DataFileManagerService { private final DataFileService dataFileService; + private final AnnotationTargetService annotationTargetService; + @Autowired public DataFileManagerService( @Value("${ccd.server.workspace}") String workspace, @Value("${ccd.folder.data:data}") String dataFolder, UserAccountService userAccountService, - DataFileService dataFileService) { + DataFileService dataFileService, + AnnotationTargetService annotationTargetService) { this.workspace = workspace; this.dataFolder = dataFolder; this.userAccountService = userAccountService; this.dataFileService = dataFileService; + this.annotationTargetService = annotationTargetService; } public boolean isSupported(ResumableChunk chunk) { @@ -138,11 +144,21 @@ private String saveDataFile(Path file, String username) throws IOException { synchronized (dataFileService) { DataFile dataFile = dataFileService.findByAbsolutePathAndName(absolutePath, name); + AnnotationTarget annotationTarget; if (dataFile == null) { dataFile = new DataFile(); dataFile.setAbsolutePath(absolutePath); dataFile.setName(name); dataFile.setUserAccounts(Collections.singleton(userAccount)); + + // create new Annotatable entity + annotationTarget = new AnnotationTarget(userAccount, dataFile.getName(), dataFile); + }else { + // Get annotatable entity from Data File + annotationTarget = annotationTargetService.findByDataFile(dataFile); + if (annotationTarget == null) { + annotationTarget = new AnnotationTarget(userAccount, dataFile.getName(), dataFile); + } } dataFile.setCreationTime(creationTime); dataFile.setFileSize(fileSize); @@ -166,6 +182,7 @@ private String saveDataFile(Path file, String username) throws IOException { } dataFileService.saveDataFile(dataFile); + annotationTargetService.save(annotationTarget); } return md5checkSum; diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/file/FileManagementService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/file/FileManagementService.java new file mode 100644 index 00000000..577aaf5f --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/file/FileManagementService.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.file; + +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.web.prop.CcdProperties; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * + * Oct 5, 2016 12:11:29 AM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class FileManagementService { + + private static final Logger LOGGER = LoggerFactory.getLogger(FileManagementService.class); + + private final CcdProperties ccdProperties; + + @Autowired + public FileManagementService(CcdProperties ccdProperties) { + this.ccdProperties = ccdProperties; + } + + public void createUserDirectories(UserAccount userAccount) { + String workspace = ccdProperties.getWorkspaceDir(); + String username = userAccount.getUsername(); + String resultFolder = ccdProperties.getResultFolder(); + Path[] directories = { + Paths.get(workspace, username, ccdProperties.getDataFolder()), + Paths.get(workspace, username, resultFolder), + Paths.get(workspace, ccdProperties.getLibFolder()), + Paths.get(workspace, username, ccdProperties.getTmpFolder()), + Paths.get(workspace, username, resultFolder, ccdProperties.getResultAlgorithmFolder()), + Paths.get(workspace, username, resultFolder, ccdProperties.getResultComparisonFolder()) + }; + for (Path directory : directories) { + if (Files.notExists(directory)) { + try { + Files.createDirectories(directory); + } catch (IOException exception) { + LOGGER.error(String.format("Unable to create directory '%s'.", directory), exception); + } + } + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/AbstractMailService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/AbstractMailService.java new file mode 100644 index 00000000..98193158 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/AbstractMailService.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.mail; + +import edu.pitt.dbmi.ccd.mail.AbstractBasicMail; +import edu.pitt.dbmi.ccd.web.prop.CcdEmailProperties; +import java.util.Locale; +import java.util.Map; +import javax.mail.MessagingException; +import org.springframework.mail.javamail.JavaMailSender; +import org.thymeleaf.context.Context; +import org.thymeleaf.spring4.SpringTemplateEngine; + +/** + * + * Oct 4, 2016 3:17:47 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public abstract class AbstractMailService extends AbstractBasicMail { + + protected static final Locale LOCALE = new Locale("en", "US"); + + protected final CcdEmailProperties ccdEmailProperties; + protected final SpringTemplateEngine templateEngine; + + public AbstractMailService(CcdEmailProperties ccdEmailProperties, SpringTemplateEngine templateEngine, JavaMailSender javaMailSender) { + super(javaMailSender); + this.ccdEmailProperties = ccdEmailProperties; + this.templateEngine = templateEngine; + } + + protected void sendMail(Map variables, String template, String subject, String... to) throws MessagingException { + Context context = new Context(LOCALE); + context.setVariables(variables); + + String body = this.templateEngine.process(template, context); + + send(to, subject, body, true); + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/AccountRecoveryMailService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/AccountRecoveryMailService.java new file mode 100644 index 00000000..ab107549 --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/AccountRecoveryMailService.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.mail; + +import edu.pitt.dbmi.ccd.web.prop.CcdEmailProperties; +import java.util.HashMap; +import java.util.Map; +import javax.mail.MessagingException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.thymeleaf.spring4.SpringTemplateEngine; + +/** + * + * Oct 6, 2016 12:57:16 AM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class AccountRecoveryMailService extends AbstractMailService { + + private static final Logger LOGGER = LoggerFactory.getLogger(AccountRecoveryMailService.class); + + @Autowired + public AccountRecoveryMailService(CcdEmailProperties ccdEmailProperties, SpringTemplateEngine templateEngine, JavaMailSender javaMailSender) { + super(ccdEmailProperties, templateEngine, javaMailSender); + } + + @Async + public void sendUserPasswordRecovery(String email, String resetPasswordURL) { + Map msgVariables = new HashMap<>(); + msgVariables.put("username", email); + msgVariables.put("resetPasswordURL", resetPasswordURL); + + String subject = "Causal Web: Account Recovery"; + String template = "email/account/recovery/password_recovery"; + try { + sendMail(msgVariables, template, subject, email); + } catch (MessagingException exception) { + LOGGER.error("Failed to send email to notify user of success activation.", exception); + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/FeedbackMailService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/FeedbackMailService.java new file mode 100644 index 00000000..536c62ce --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/FeedbackMailService.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.mail; + +import edu.pitt.dbmi.ccd.web.prop.CcdEmailProperties; +import java.util.HashMap; +import java.util.Map; +import javax.mail.MessagingException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.thymeleaf.spring4.SpringTemplateEngine; + +/** + * + * Oct 5, 2016 5:43:12 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class FeedbackMailService extends AbstractMailService { + + private static final Logger LOGGER = LoggerFactory.getLogger(FeedbackMailService.class); + + @Autowired + public FeedbackMailService(CcdEmailProperties ccdEmailProperties, SpringTemplateEngine templateEngine, JavaMailSender javaMailSender) { + super(ccdEmailProperties, templateEngine, javaMailSender); + } + + @Async + public void sendUserFeedback(String email, String feedback) { + email = (email == null) ? "" : email.trim(); + if (email.isEmpty()) { + email = "anonymous"; + } + + feedback = (feedback == null) ? "" : feedback.trim(); + + Map msgVariables = new HashMap<>(); + msgVariables.put("user", email); + msgVariables.put("feedback", feedback); + + String[] emailTo = ccdEmailProperties.getAdminSendTo(); + String subject = "Causal Web: User Feedback"; + String template = "email/feedback"; + try { + sendMail(msgVariables, template, subject, emailTo); + } catch (MessagingException exception) { + LOGGER.error("Failed to send user feedback.", exception); + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/UserRegistrationMailService.java b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/UserRegistrationMailService.java new file mode 100644 index 00000000..2c4b7a9d --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/service/mail/UserRegistrationMailService.java @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.service.mail; + +import edu.pitt.dbmi.ccd.db.entity.UserAccount; +import edu.pitt.dbmi.ccd.web.prop.CcdEmailProperties; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import javax.mail.MessagingException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.thymeleaf.spring4.SpringTemplateEngine; + +/** + * + * Oct 4, 2016 4:04:08 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +@Service +public class UserRegistrationMailService extends AbstractMailService { + + private static final Logger LOGGER = LoggerFactory.getLogger(UserRegistrationMailService.class); + + @Autowired + public UserRegistrationMailService(CcdEmailProperties ccdEmailProperties, SpringTemplateEngine templateEngine, JavaMailSender javaMailSender) { + super(ccdEmailProperties, templateEngine, javaMailSender); + } + + @Async + public void sendAdminNewUserRegistrationNotification(final UserAccount userAccount) { + String email = userAccount.getPerson().getEmail(); + Date registrationDate = userAccount.getCreatedDate(); + + Map variables = new HashMap<>(); + variables.put("email", email); + variables.put("registrationDate", registrationDate); + + String[] sendTo = ccdEmailProperties.getAdminSendTo(); + String subject = "Causal Web: New User Registration"; + String template = "email/account/registration/admin_new_registration_notification"; + try { + sendMail(variables, template, subject, sendTo); + } catch (MessagingException exception) { + LOGGER.error("Failed to email new user activation link.", exception); + } + } + + @Async + public void sendUserSelfActivation(final UserAccount userAccount, String activationLink) { + String email = userAccount.getPerson().getEmail(); + Date registrationDate = userAccount.getCreatedDate(); + + Map variables = new HashMap<>(); + variables.put("email", email); + variables.put("registrationDate", registrationDate); + variables.put("activationLink", activationLink); + + String sendTo = email; + String subject = "Causal Web: User Activation"; + String template = "email/account/registration/user_activation"; + try { + sendMail(variables, template, subject, sendTo); + } catch (MessagingException exception) { + LOGGER.error("Failed to email new user activation link.", exception); + } + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/shiro/CCDAuthorizingRealm.java b/src/main/java/edu/pitt/dbmi/ccd/web/shiro/CCDAuthorizingRealm.java index d7f1d65b..46472fc2 100644 --- a/src/main/java/edu/pitt/dbmi/ccd/web/shiro/CCDAuthorizingRealm.java +++ b/src/main/java/edu/pitt/dbmi/ccd/web/shiro/CCDAuthorizingRealm.java @@ -50,7 +50,7 @@ public class CCDAuthorizingRealm extends AuthorizingRealm { @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { final String username = (String) principalCollection.getPrimaryPrincipal(); - final UserAccount userAccount = userAccountService.findByUsername(username); + final UserAccount userAccount = userAccountService.findByEmail(username); if (userAccount == null) { throw new UnknownAccountException("Account does not exist"); } @@ -73,7 +73,7 @@ protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) if (username == null) { throw new UnknownAccountException("Username not provided"); } - final UserAccount userAccount = userAccountService.findByUsername(username); + final UserAccount userAccount = userAccountService.findByEmail(username); if (userAccount == null) { throw new UnknownAccountException("Account does not exist"); } diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/util/CmdOptions.java b/src/main/java/edu/pitt/dbmi/ccd/web/util/CmdOptions.java new file mode 100644 index 00000000..8f8b7fea --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/util/CmdOptions.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.util; + +/** + * This is for temporary used. + * + * Oct 26, 2016 3:44:59 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public class CmdOptions { + + private CmdOptions() { + } + + public static final String DATA = "--data"; + public static final String EXCLUDE_VARS = "--exclude-variables"; + public static final String DELIMITER = "--delimiter"; + public static final String VERBOSE = "--verbose"; + + public static final String PENALTY_DISCOUNT = "--penalty-discount"; + public static final String MAX_DEGREE = "--max-degree"; + public static final String MAX_INDEGREE = "--max-indegree"; + public static final String MAX_OUTDEGREE = "--max-outdegree"; + public static final String FAITHFULNESS_ASSUMED = "--faithfulness-assumed"; + public static final String ALPHA = "--alpha"; + public static final String STRUCTURE_PRIOR = "--structure-prior"; + public static final String SAMPLE_PRIOR = "--sample-prior"; + + public static final String LATENT = "--latent"; + public static final String AVG_DEGREE = "--avg-degree"; + public static final String CONNECTED = "--connected"; + + public static final String MIN_CATEGORIES = "--min-categories"; + public static final String MAX_CATEGORIES = "--max-categories"; + + public static final String SKIP_UNIQUE_VAR_NAME = "--skip-unique-var-name"; + public static final String SKIP_NONZERO_VARIANCE = "--skip-nonzero-variance"; + public static final String SKIP_CATEGORY_LIMIT = "--skip-category-limit"; + + public static final double PENALTY_DISCOUNT_DEFAULT = 4.0; + public static final double ALPHA_DEFAULT = 0.01; + public static final double STRUCTURE_PRIOR_DEFAULT = 1.0; + public static final double SAMPLE_PRIOR_DEFAULT = 1.0; + + public static final int MAX_DEGREE_DEFAULT = -1; + + public static final boolean FAITHFULNESS_ASSUMED_DEFAULT = true; + public static final boolean VERBOSE_DEFAULT = true; + + public static final boolean SKIP_NONZERO_VARIANCE_DEFAULT = false; + public static final boolean SKIP_CATEGORY_LIMIT_DEFAULT = false; + public static final boolean SKIP_UNIQUE_VAR_NAME_DEFAULT = false; + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/util/PasswordTool.java b/src/main/java/edu/pitt/dbmi/ccd/web/util/PasswordTool.java new file mode 100644 index 00000000..e9c0c84d --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/util/PasswordTool.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.util; + +import java.util.Random; + +/** + * + * Oct 6, 2016 3:24:09 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public class PasswordTool { + + private PasswordTool() { + } + + public static String generatePassword(int length) { + StringBuilder sb = new StringBuilder("ccd"); + + String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<>?/;:/*-+.#$%^&£!"; + int bound = alphabet.length(); + Random random = new Random(System.currentTimeMillis()); + for (int i = 0; i < length; i++) { + sb.append(alphabet.charAt(random.nextInt(bound))); + } + + return sb.toString(); + } + +} diff --git a/src/main/java/edu/pitt/dbmi/ccd/web/util/UriTool.java b/src/main/java/edu/pitt/dbmi/ccd/web/util/UriTool.java new file mode 100644 index 00000000..800f148d --- /dev/null +++ b/src/main/java/edu/pitt/dbmi/ccd/web/util/UriTool.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2016 University of Pittsburgh. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package edu.pitt.dbmi.ccd.web.util; + +import java.net.URI; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.util.UriComponentsBuilder; + +/** + * + * Oct 4, 2016 4:21:15 PM + * + * @author Kevin V. Bui (kvb2@pitt.edu) + */ +public class UriTool { + + private UriTool() { + } + + public static UriComponentsBuilder buildURI(HttpServletRequest req) { + String uri = req.getRequestURL().toString().replace(req.getRequestURI(), ""); + UriComponentsBuilder uriBuilder = UriComponentsBuilder.newInstance().uri(URI.create(uri)); + + String contextPath = req.getContextPath(); + if (!(contextPath == null || contextPath.isEmpty())) { + uriBuilder = uriBuilder.path(contextPath); + } + + return uriBuilder; + } + +} diff --git a/src/main/resources/application-annotations.properties b/src/main/resources/application-annotations.properties new file mode 100644 index 00000000..f9bb9cbb --- /dev/null +++ b/src/main/resources/application-annotations.properties @@ -0,0 +1,22 @@ +# Copyright (C) 2016 University of Pittsburgh. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301 USA + +# Environments +annotations.api.url=http://localhost:4040/annotations/ +annotations.api.clientId=causal-web +annotations.api.clientSecret= + diff --git a/src/main/resources/application-auth0.properties b/src/main/resources/application-auth0.properties new file mode 100644 index 00000000..2c2a6703 --- /dev/null +++ b/src/main/resources/application-auth0.properties @@ -0,0 +1,28 @@ +# Copyright (C) 2016 University of Pittsburgh. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301 USA + +auth0.domain= +auth0.issuer=https://${auth0.domain}/ +auth0.clientId= +auth0.clientSecret= + +auth0.onLogoutRedirectTo=/login +auth0.securedRoute=/portal/* +auth0.loginCallback=/callback +auth0.loginRedirectOnSuccess=/portal/home +auth0.loginRedirectOnFail=/login +auth0.servletFilterEnabled=true diff --git a/src/main/resources/application-hsqldb.properties b/src/main/resources/application-hsqldb.properties index 8d474716..d12945d1 100644 --- a/src/main/resources/application-hsqldb.properties +++ b/src/main/resources/application-hsqldb.properties @@ -1,4 +1,4 @@ -# Copyright (C) 2015 University of Pittsburgh. +# Copyright (C) 2016 University of Pittsburgh. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -15,9 +15,9 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA -# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) +# DATASOURCE (DataSourceProperties) spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver spring.datasource.url=jdbc:hsqldb:mem:ccd;ifexists=false;shutdown=true -# JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration) -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.HSQLDialect +# JPA (JpaBaseConfiguration) +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.HSQLDialect diff --git a/src/main/resources/application-mysql.properties b/src/main/resources/application-mysql.properties index 2887baf0..15b0f1ce 100644 --- a/src/main/resources/application-mysql.properties +++ b/src/main/resources/application-mysql.properties @@ -1,4 +1,4 @@ -# Copyright (C) 2015 University of Pittsburgh. +# Copyright (C) 2016 University of Pittsburgh. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -15,7 +15,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA -# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) +# DATASOURCE (DataSourceProperties) spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/ccd?zeroDateTimeBehavior=convertToNull spring.datasource.username= @@ -23,5 +23,5 @@ spring.datasource.password= spring.datasource.validation-query=SELECT 1 spring.datasource.test-on-borrow=true -# JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration) -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect +# JPA (JpaBaseConfiguration) +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 0ffe04e8..45cba6a6 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -15,13 +15,12 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA -# APPLICATION SETTINGS (SpringApplication) -spring.main.show-banner=false - # PROFILES # scheduler, slurm # hsqldb, mysql -spring.profiles.active=scheduler,hsqldb +# authentication: shiro,auth0 +# services: annotations +spring.profiles.active=scheduler,hsqldb,shiro,annotations # LOGGING logging.file=causal_web.log @@ -29,20 +28,21 @@ logging.level.*=INFO logging.level.org.springframework.web=INFO logging.level.org.hibernate=ERROR -server.port=8080 -server.session-timeout=1800 +# EMBEDDED SERVER CONFIGURATION (ServerProperties) server.context-path=/ccd +server.port=8010 +server.session.timeout=1800 +server.use-forward-headers=true # MULTIPART (MultipartProperties) -multipart.enabled=true -multipart.max-file-size=-1 -multipart.max-request-size=-1 +spring.http.multipart.enabled=true +spring.http.multipart.max-file-size=-1 +spring.http.multipart.max-request-size=-1 # JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration) -# Hibernate ddl auto (create, create-drop, update) +# Hibernate ddl auto (create,create-drop,update) spring.jpa.hibernate.ddl-auto=update -spring.jpa.properties.hibernate.globally_quoted_identifiers=true -spring.jpa.show-sql=false +spring.jpa.show-sql=true # Email (MailProperties) spring.mail.host=smtp.gmail.com @@ -53,3 +53,6 @@ spring.mail.properties.mail.smtp.socketFactory.port=465 spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.socketFactory.fallback=false spring.mail.properties.mail.smtp.ssl.enable=true + +# TRACING (TraceProperties) +management.trace.include=request-headers,response-headers,errors diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt new file mode 100644 index 00000000..c60193ab --- /dev/null +++ b/src/main/resources/banner.txt @@ -0,0 +1,6 @@ + ██████╗ █████╗ ██╗ ██╗███████╗ █████╗ ██╗ ██╗ ██╗███████╗██████╗ ██╗ ██████╗ ██████╗ +██╔════╝██╔══██╗██║ ██║██╔════╝██╔══██╗██║ ██║ ██║██╔════╝██╔══██╗ ███║ ╚════██╗ ██╔═████╗ +██║ ███████║██║ ██║███████╗███████║██║ ██║ █╗ ██║█████╗ ██████╔╝ ╚██║ █████╔╝ ██║██╔██║ +██║ ██╔══██║██║ ██║╚════██║██╔══██║██║ ██║███╗██║██╔══╝ ██╔══██╗ ██║ ╚═══██╗ ████╔╝██║ +╚██████╗██║ ██║╚██████╔╝███████║██║ ██║███████╗ ╚███╔███╔╝███████╗██████╔╝ ██║██╗██████╔╝██╗╚██████╔╝ + ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═╝╚═╝╚═════╝ ╚═╝ ╚═════╝ \ No newline at end of file diff --git a/src/main/resources/ccd.properties b/src/main/resources/ccd.properties index d11af2d8..d4a4677f 100644 --- a/src/main/resources/ccd.properties +++ b/src/main/resources/ccd.properties @@ -16,11 +16,12 @@ # MA 02110-1301 USA # JAR LIBRARIES -ccd.jar.algorithm=causal-cmd-5.3.0.jar +ccd.jar.algorithm= # ALGORITHMS -ccd.algorithm.fgs=fgs -ccd.algorithm.fgs.discrete=fgs-discrete +ccd.algorithm.fgs=fgsc +ccd.algorithm.fgs.discrete=fgsd +ccd.algorithm.gfci=gfcic # JOB QUEUE ccd.queue.size=5 @@ -34,25 +35,29 @@ ccd.folder.results=results ccd.folder.results.algorithm=algorithm ccd.folder.results.comparison=comparison -# OPTIONAL PROPERTIES -ccd.server.url= +# EMAIL +ccd.email.admin.sendto=${spring.mail.username} + +# USER REGISTRATION SETTINGS +# require activation after account setup +ccd.acct.reg.activ.required=false # LABELS -ccd.title=Causal Web v1.2.2 -ccd.copyright=University of Pittsburgh and Carnegie Mellon University +ccd.app.title=CCD Application v1.3.0 +ccd.app.copyright=University of Pittsburgh and Carnegie Mellon University -ccd.agreement=TERMS AND CONDITIONS \ +ccd.app.agreement=TERMS AND CONDITIONS \ \ This program is free software; you can redistribute it and/or \ modify it under the terms of the GNU General Public License \ as published by the Free Software Foundation; either version 2 \ -of the License, or (at your option) any later version.. \ +of the License, or (at your option) any later version. \ \ This program is distributed in the hope that it will be useful, \ but WITHOUT ANY WARRANTY; without even the implied warranty of \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \ -GNU General Public License for more details.. \ +GNU General Public License for more details. \ \ You should have received a copy of the GNU General Public License \ along with this program; if not, write to the Free Software \ -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.. \ +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. \ diff --git a/src/main/resources/remote_scheduler_client.properties b/src/main/resources/remote_scheduler_client.properties new file mode 100644 index 00000000..3514168e --- /dev/null +++ b/src/main/resources/remote_scheduler_client.properties @@ -0,0 +1,10 @@ +username= +password= +public_key_file= +passphrase= +hostname= +port= +logging= +known_hosts= +template_path= +scratch_directory= diff --git a/src/main/resources/static/css/algo/algorithm.css b/src/main/resources/static/css/algo/algorithm.css index 7bcbb1b6..e478bf37 100644 --- a/src/main/resources/static/css/algo/algorithm.css +++ b/src/main/resources/static/css/algo/algorithm.css @@ -1,8 +1,3 @@ .clickable{ cursor: pointer; } - -.panel-heading span { - margin-top: -20px; - font-size: 15px; -} diff --git a/src/main/resources/static/css/algo/algorithm.min.css b/src/main/resources/static/css/algo/algorithm.min.css index 08913542..92e2b7c8 100644 --- a/src/main/resources/static/css/algo/algorithm.min.css +++ b/src/main/resources/static/css/algo/algorithm.min.css @@ -1 +1 @@ -.clickable{cursor:pointer}.panel-heading span{margin-top:-20px;font-size:15px} \ No newline at end of file +.clickable{cursor:pointer} \ No newline at end of file diff --git a/src/main/resources/static/css/data/dataAnnotations.css b/src/main/resources/static/css/data/dataAnnotations.css new file mode 100644 index 00000000..1054f2fb --- /dev/null +++ b/src/main/resources/static/css/data/dataAnnotations.css @@ -0,0 +1,89 @@ +#new-annotation { + margin-bottom: 40px; +} + +#anno-adv-search { + bottom: 0; + right: 0; +} + +#anno-search-input-clear { + position: absolute; + right: 5px; + top: 0; + bottom: 0; + height: 14px; + margin: auto; + font-size: 14px; + cursor: pointer; + color: #444; +} + +form fieldset { + margin-bottom: 20px; +} + +form .control-group { + margin-bottom: 10px; +} + +.anno-date{ + font-size:12px; +} + +.media { + margin-top: 20px !important; + margin-bottom: 10px; +} + +.media-left { + padding-left: 10px; +} + +.annotation { + margin-bottom: 10px; +} + +.anno-vocab { + margin-bottom: 10px; +} + +.anno-data-attribute { + margin-bottom: 10px; + margin-left: 1em; +} + +.anno-data-attribute p { + margin: 0; + margin-bottom: 5px; +} + +.anno-data-value { + margin-bottom: 15px; + margin-left: 2em; +} + +.clickable{ + cursor: pointer; +} + +.panel-heading span { + margin-top: -18px; + font-size: 15px; +} + +.panel-footer { + padding-top: 0; + padding-bottom: 0; + padding-left: 5px; + padding-right: 5px; +} + +.panel-footer button { + padding: 5px; +} + +.error { + color: rgb(180, 101, 106); + display: none; +} diff --git a/src/main/resources/static/css/login.css b/src/main/resources/static/css/login.css index 4bc6aa87..5dd1c618 100644 --- a/src/main/resources/static/css/login.css +++ b/src/main/resources/static/css/login.css @@ -1,5 +1,5 @@ -.login-panel { - margin-top: 25%; +body { + margin-top: 100px; } .profile-img { width: 120px; @@ -7,19 +7,6 @@ margin: 0 auto 20px; display: block; } -.forgot-password { - color: rgb(104, 145, 162); -} -.forgot-password:hover, -.forgot-password:active, -.forgot-password:focus{ - color: rgb(12, 97, 33); -} -iframe { - width: 100%; - height: 400px; - border: none; -} textarea#agreement { width: 100%; height: 200px; @@ -30,18 +17,24 @@ textarea#agreement { color: #333; resize: none; } - -fieldset.security_qa_border { - border: 1px groove #ddd !important; - padding: 0 1.4em 1.4em 1.4em !important; - margin: 0 0 1.5em 0 !important; -} - -legend.security_qa_border { - font-size: 1.2em !important; - font-weight: bold !important; - text-align: left !important; - width:auto; - padding:0 10px; - border-bottom:none; -} \ No newline at end of file +footer { + padding-top: 50px; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #797979; +} +.fa { + color: #111150; +} +.registration { + text-align: center; +} +.auth0 { + display: block; + margin-top: 20px; + margin-bottom: 15px; + text-align: center; +} diff --git a/src/main/resources/static/css/login.min.css b/src/main/resources/static/css/login.min.css index a33098a8..7bcfa99b 100644 --- a/src/main/resources/static/css/login.min.css +++ b/src/main/resources/static/css/login.min.css @@ -1 +1 @@ -.login-panel{margin-top:25%}.profile-img{width:120px;height:120px;margin:0 auto 20px;display:block}.forgot-password{color:#6891a2}.forgot-password:hover,.forgot-password:active,.forgot-password:focus{color:#0c6121}iframe{width:100%;height:400px;border:0}textarea#agreement{width:100%;height:200px;border:1px solid #ccc;background:#f2f2f2;font:normal arial;padding:6px;color:#333;resize:none}fieldset.security_qa_border{border:1px groove #ddd!important;padding:0 1.4em 1.4em 1.4em!important;margin:0 0 1.5em 0!important}legend.security_qa_border{font-size:1.2em!important;font-weight:bold!important;text-align:left!important;width:auto;padding:0 10px;border-bottom:0} \ No newline at end of file +body{margin-top:100px}.profile-img{width:120px;height:120px;margin:0 auto 20px;display:block}textarea#agreement{width:100%;height:200px;border:1px solid #ccc;background:#f2f2f2;font:normal arial;padding:6px;color:#333;resize:none}footer{padding-top:50px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #797979}.fa{color:#111150}.registration{text-align:center}.auth0{display:block;margin-top:20px;margin-bottom:15px;text-align:center} \ No newline at end of file diff --git a/src/main/resources/static/css/styles.css b/src/main/resources/static/css/styles.css index c0a84a8c..dfa94d05 100644 --- a/src/main/resources/static/css/styles.css +++ b/src/main/resources/static/css/styles.css @@ -1,42 +1,87 @@ -.navbar-pitt { - background-color: #111150; - border-color: #e7e7e7; -} -.navbar-pitt .navbar-brand { - color: #f8f8f8; +@import url(https://fonts.googleapis.com/css?family=Ruda:400,700,900); +body { + font-family: 'Ruda', sans-serif; } -.pitt-color { +.pitt_color { color: #111150; } -.pitt-bg-color { - background-color: #111150; +.panel-default_pitt { + border-color: #111150; } -.color-white { - color: #ffffff; +.panel-default_pitt > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #111150; } -.btn-pitt { - color: #ffffff; - background-color: #111150; +.panel-default_pitt > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #111150; } -.btn-pitt:hover, -.btn-pitt:active, -.btn-pitt:focus{ - color: #ffffff; +.panel-default_pitt > .panel-heading { + background-image: -webkit-linear-gradient(top, #000094 0%, #111150 100%); + background-image: -o-linear-gradient(top, #000094 0%, #111150 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#000094), to(#111150)); + background-image: linear-gradient(to bottom, #000094 0%, #111150 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000094', endColorstr='#111150', GradientType=0); + background-repeat: repeat-x; + color: #f5f5f5; + border-color: #111150; +} +.btn-default_pitt { + text-shadow: 0 1px 0 #000094; + background-image: -webkit-linear-gradient(top, #000094 0%, #111150 100%); + background-image: -o-linear-gradient(top, #000094 0%, #111150 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#000094), to(#111150)); + background-image: linear-gradient(to bottom, #000094 0%, #111150 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000094fffff', endColorstr='#ffe0e0e0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #dbdbdb; + border-color: #111150; } -.panel-pitt { +.btn-default_pitt:hover, +.btn-default_pitt:focus { + background-color: #111150; + background-position: 0 -15px; border-color: #111150; } -.panel-pitt > .panel-heading { - color: #f8f8f8; +.btn-default_pitt:active, +.btn-default_pitt.active { background-color: #111150; border-color: #111150; } - +.btn-default_pitt { + color: #f5f5f5; +} +.btn-default_pitt:focus, +.btn-default_pitt.focus { + color: #f5f5f5; +} +.btn-default_pitt:hover { + color: #f5f5f5; +} a:link { text-decoration: none; } - -.fitted { - width: 1px; - white-space: nowrap; +.modal-header { + background-image: -webkit-linear-gradient(top, #000094 0%, #111150 100%); + background-image: -o-linear-gradient(top, #000094 0%, #111150 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#000094), to(#111150)); + background-image: linear-gradient(to bottom, #000094 0%, #111150 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000094', endColorstr='#111150', GradientType=0); + background-repeat: repeat-x; + color: #f5f5f5; + border-color: #111150; +} +.modal-content { + -webkit-border-radius: 0px !important; + -moz-border-radius: 0px !important; + border-radius: 0px !important; +} +.close_pitt { + color: #fff; +} +.close_pitt:hover, +.close_pitt:focus { + color: #fff; +} +.white { + color: #fff; } diff --git a/src/main/resources/static/css/styles.min.css b/src/main/resources/static/css/styles.min.css index c954bd12..a2cbd458 100644 --- a/src/main/resources/static/css/styles.min.css +++ b/src/main/resources/static/css/styles.min.css @@ -1 +1 @@ -.navbar-pitt{background-color:#111150;border-color:#e7e7e7}.navbar-pitt .navbar-brand{color:#f8f8f8}.pitt-color{color:#111150}.pitt-bg-color{background-color:#111150}.color-white{color:#fff}.btn-pitt{color:#fff;background-color:#111150}.btn-pitt:hover,.btn-pitt:active,.btn-pitt:focus{color:#fff}.panel-pitt{border-color:#111150}.panel-pitt>.panel-heading{color:#f8f8f8;background-color:#111150;border-color:#111150}a:link{text-decoration:none}.fitted{width:1px;white-space:nowrap} \ No newline at end of file +@import url(https://fonts.googleapis.com/css?family=Ruda:400,700,900);body{font-family:'Ruda',sans-serif}.pitt_color{color:#111150}.panel-default_pitt{border-color:#111150}.panel-default_pitt>.panel-heading+.panel-collapse>.panel-body{border-top-color:#111150}.panel-default_pitt>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#111150}.panel-default_pitt>.panel-heading{background-image:-webkit-linear-gradient(top,#000094 0,#111150 100%);background-image:-o-linear-gradient(top,#000094 0,#111150 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#000094),to(#111150));background-image:linear-gradient(to bottom,#000094 0,#111150 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000094',endColorstr='#111150',GradientType=0);background-repeat:repeat-x;color:#f5f5f5;border-color:#111150}.btn-default_pitt{text-shadow:0 1px 0 #000094;background-image:-webkit-linear-gradient(top,#000094 0,#111150 100%);background-image:-o-linear-gradient(top,#000094 0,#111150 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#000094),to(#111150));background-image:linear-gradient(to bottom,#000094 0,#111150 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000094fffff',endColorstr='#ffe0e0e0',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#111150}.btn-default_pitt:hover,.btn-default_pitt:focus{background-color:#111150;background-position:0 -15px;border-color:#111150}.btn-default_pitt:active,.btn-default_pitt.active{background-color:#111150;border-color:#111150}.btn-default_pitt{color:#f5f5f5}.btn-default_pitt:focus,.btn-default_pitt.focus{color:#f5f5f5}.btn-default_pitt:hover{color:#f5f5f5}a:link{text-decoration:none}.modal-header{background-image:-webkit-linear-gradient(top,#000094 0,#111150 100%);background-image:-o-linear-gradient(top,#000094 0,#111150 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#000094),to(#111150));background-image:linear-gradient(to bottom,#000094 0,#111150 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000094',endColorstr='#111150',GradientType=0);background-repeat:repeat-x;color:#f5f5f5;border-color:#111150}.modal-content{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.close_pitt{color:#fff}.close_pitt:hover,.close_pitt:focus{color:#fff}.white{color:#fff} \ No newline at end of file diff --git a/src/main/resources/static/js/algo/algorithm.js b/src/main/resources/static/js/algo/algorithm.js index 7a1bd8b0..6d8f796c 100644 --- a/src/main/resources/static/js/algo/algorithm.js +++ b/src/main/resources/static/js/algo/algorithm.js @@ -1,37 +1,3 @@ -$(document).on('click', '.panel-heading span.clickable', function (e) { - var $this = $(this); - if (!$this.hasClass('panel-collapsed')) { - $this.parents('.panel').find('.panel-body').slideUp(); - $this.addClass('panel-collapsed'); - $this.find('i').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down'); - } else { - $this.parents('.panel').find('.panel-body').slideDown(); - $this.removeClass('panel-collapsed'); - $this.find('i').removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up'); - } -}); - -function sync() { - var selection = ''; - $('#dataset option:selected').each(function () { - if (selection !== '') { - selection += ','; - } - selection += $(this).val(); - }); - $('#datasetSelection').text(selection); -} - -$(document).ready(function () { - $("#continuous").prop("disabled", true); - $('#dataset').multiselect({ - includeSelectAllOption: true, - enableFiltering: true, - disableIfEmpty: true, - buttonWidth: '100%', - onChange: function (option, checked) { - $('#datasetSelection').text($('.multiselect-selected-text').text()); - } - }); - sync(); +$(document).on('click', '#optJvm', function (e) { + collapseAction(this); }); diff --git a/src/main/resources/static/js/algo/algorithm.min.js b/src/main/resources/static/js/algo/algorithm.min.js index b3339009..a8ddab49 100644 --- a/src/main/resources/static/js/algo/algorithm.min.js +++ b/src/main/resources/static/js/algo/algorithm.min.js @@ -1 +1 @@ -$(document).on("click", ".panel-heading span.clickable", function(b){var a = $(this); if (!a.hasClass("panel-collapsed")){a.parents(".panel").find(".panel-body").slideUp(); a.addClass("panel-collapsed"); a.find("i").removeClass("glyphicon-chevron-up").addClass("glyphicon-chevron-down")} else{a.parents(".panel").find(".panel-body").slideDown(); a.removeClass("panel-collapsed"); a.find("i").removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up")}}); function sync(){var a = ""; $("#dataset option:selected").each(function(){if (a !== ""){a += ","}a += $(this).val()}); $("#datasetSelection").text(a)}$(document).ready(function(){$("#continuous").prop("disabled", true); $("#dataset").multiselect({includeSelectAllOption:true, enableFiltering:true, disableIfEmpty:true, buttonWidth:"100%", onChange:function(a, b){$("#datasetSelection").text($(".multiselect-selected-text").text())}}); sync()}); \ No newline at end of file +$(document).on("click","#optJvm",function(a){collapseAction(this)}); \ No newline at end of file diff --git a/src/main/resources/static/js/algo/fgsDiscreteValidate.js b/src/main/resources/static/js/algo/fgsDiscreteValidate.js index c433f75d..a969e1ba 100644 --- a/src/main/resources/static/js/algo/fgsDiscreteValidate.js +++ b/src/main/resources/static/js/algo/fgsDiscreteValidate.js @@ -7,12 +7,12 @@ $(document).ready(function () { structurePrior: { required: true, number: true, - greaterThan: 0 + min: 1.0 }, samplePrior: { required: true, number: true, - greaterThan: 0 + min: 1.0 }, maxDegree: { required: true, @@ -32,19 +32,20 @@ $(document).ready(function () { }, structurePrior: { required: "Please set the structure prior.", - greaterThan: "Value must be greater than 0." + min: "Must be at least 1.0." }, samplePrior: { required: "Please set the sample prior.", - greaterThan: "Value must be greater than 0." + min: "Must be at least 1.0." }, maxDegree: { - required: "Please select the search max degree." + required: "Please select the search max degree.", + min: "Must be at least -1." }, jvmMaxMem: { required: "Must be a number between 0 and 128.", - min: "Must between 0 and 128.", - max: "Must between 0 and 128." + min: "Must be at least 0.", + max: "Must be at most 128." } }, highlight: function (element) { diff --git a/src/main/resources/static/js/algo/fgsDiscreteValidate.min.js b/src/main/resources/static/js/algo/fgsDiscreteValidate.min.js index c05465f3..4c4282f3 100644 --- a/src/main/resources/static/js/algo/fgsDiscreteValidate.min.js +++ b/src/main/resources/static/js/algo/fgsDiscreteValidate.min.js @@ -1 +1 @@ -$(document).ready(function(){$("#algoForm").validate({rules:{dataset:{required:true},structurePrior:{required:true,number:true,greaterThan:0},samplePrior:{required:true,number:true,greaterThan:0},maxDegree:{required:true,number:true,min:-1},jvmMaxMem:{required:true,number:true,min:0,max:128}},messages:{dataset:{required:"Please select a dataset."},structurePrior:{required:"Please set the structure prior.",greaterThan:"Value must be greater than 0."},samplePrior:{required:"Please set the sample prior.",greaterThan:"Value must be greater than 0."},maxDegree:{required:"Please select the search max degree."},jvmMaxMem:{required:"Must be a number between 0 and 128.",min:"Must between 0 and 128.",max:"Must between 0 and 128."}},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}})}); \ No newline at end of file +$(document).ready(function(){$("#algoForm").validate({rules:{dataset:{required:true},structurePrior:{required:true,number:true,min:1},samplePrior:{required:true,number:true,min:1},maxDegree:{required:true,number:true,min:-1},jvmMaxMem:{required:true,number:true,min:0,max:128}},messages:{dataset:{required:"Please select a dataset."},structurePrior:{required:"Please set the structure prior.",min:"Must be at least 1.0."},samplePrior:{required:"Please set the sample prior.",min:"Must be at least 1.0."},maxDegree:{required:"Please select the search max degree.",min:"Must be at least -1."},jvmMaxMem:{required:"Must be a number between 0 and 128.",min:"Must be at least 0.",max:"Must be at most 128."}},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}})}); \ No newline at end of file diff --git a/src/main/resources/static/js/algo/fgsValidate.js b/src/main/resources/static/js/algo/fgsValidate.js index f86236fb..1721c552 100644 --- a/src/main/resources/static/js/algo/fgsValidate.js +++ b/src/main/resources/static/js/algo/fgsValidate.js @@ -7,7 +7,7 @@ $(document).ready(function () { penaltyDiscount: { required: true, number: true, - greaterThan: 0 + min: 0 }, maxDegree: { required: true, @@ -27,15 +27,16 @@ $(document).ready(function () { }, penaltyDiscount: { required: "Please set the penalty discount.", - greaterThan: "Value must be greater than 0." + min: "Must be at least 0." }, maxDegree: { - required: "Please select the search max degree." + required: "Please select the search max degree.", + min: "Must be at least -1." }, jvmMaxMem: { required: "Must be a number between 0 and 128.", - min: "Must between 0 and 128.", - max: "Must between 0 and 128." + min: "Must be at least 0.", + max: "Must be at most 128." } }, highlight: function (element) { diff --git a/src/main/resources/static/js/algo/fgsValidate.min.js b/src/main/resources/static/js/algo/fgsValidate.min.js index 4f231631..ced30740 100644 --- a/src/main/resources/static/js/algo/fgsValidate.min.js +++ b/src/main/resources/static/js/algo/fgsValidate.min.js @@ -1 +1 @@ -$(document).ready(function(){$("#algoForm").validate({rules:{dataset:{required:true},penaltyDiscount:{required:true,number:true,greaterThan:0},maxDegree:{required:true,number:true,min:-1},jvmMaxMem:{required:true,number:true,min:0,max:128}},messages:{dataset:{required:"Please select a dataset."},penaltyDiscount:{required:"Please set the penalty discount.",greaterThan:"Value must be greater than 0."},maxDegree:{required:"Please select the search max degree."},jvmMaxMem:{required:"Must be a number between 0 and 128.",min:"Must between 0 and 128.",max:"Must between 0 and 128."}},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}})}); \ No newline at end of file +$(document).ready(function(){$("#algoForm").validate({rules:{dataset:{required:true},penaltyDiscount:{required:true,number:true,min:0},maxDegree:{required:true,number:true,min:-1},jvmMaxMem:{required:true,number:true,min:0,max:128}},messages:{dataset:{required:"Please select a dataset."},penaltyDiscount:{required:"Please set the penalty discount.",min:"Must be at least 0."},maxDegree:{required:"Please select the search max degree.",min:"Must be at least -1."},jvmMaxMem:{required:"Must be a number between 0 and 128.",min:"Must be at least 0.",max:"Must be at most 128."}},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}})}); \ No newline at end of file diff --git a/src/main/resources/static/js/algo/gfciValidate.js b/src/main/resources/static/js/algo/gfciValidate.js index 3c099f61..7d1e1906 100644 --- a/src/main/resources/static/js/algo/gfciValidate.js +++ b/src/main/resources/static/js/algo/gfciValidate.js @@ -7,14 +7,15 @@ $(document).ready(function () { alpha: { required: true, number: true, - min: 0 + min: 0.0, + max: 1.0 }, penaltyDiscount: { required: true, number: true, - greaterThan: 0 + min: 0 }, - maxInDegree: { + maxDegree: { required: true, number: true, min: -1 @@ -32,19 +33,21 @@ $(document).ready(function () { }, alpha: { required: "Please set the alpha.", - greaterThan: "Value must be greater than 0." + min: "Must be at least 0.0.", + max: "Must be at most 1.0." }, penaltyDiscount: { required: "Please set the penalty discount.", - greaterThan: "Value must be greater than 0." + min: "Must be at least 0." }, - maxInDegree: { - required: "Please select the search maximum in-degree." + maxDegree: { + required: "Please select the search max degree.", + min: "Must be at least -1." }, jvmMaxMem: { required: "Must be a number between 0 and 128.", - min: "Must between 0 and 128.", - max: "Must between 0 and 128." + min: "Must be at least 0.", + max: "Must be at most 128." } }, highlight: function (element) { diff --git a/src/main/resources/static/js/algo/gfciValidate.min.js b/src/main/resources/static/js/algo/gfciValidate.min.js index 10cb4b5a..f2051391 100644 --- a/src/main/resources/static/js/algo/gfciValidate.min.js +++ b/src/main/resources/static/js/algo/gfciValidate.min.js @@ -1 +1 @@ -$(document).ready(function(){$("#algoForm").validate({rules:{dataset:{required:!0},alpha:{required:!0,number:!0,min:0},penaltyDiscount:{required:!0,number:!0,greaterThan:0},maxInDegree:{required:!0,number:!0,min:-1},jvmMaxMem:{required:!0,number:!0,min:0,max:128}},messages:{dataset:{required:"Please select a dataset."},alpha:{required:"Please set the alpha.",greaterThan:"Value must be greater than 0."},penaltyDiscount:{required:"Please set the penalty discount.",greaterThan:"Value must be greater than 0."},maxInDegree:{required:"Please select the search maximum in-degree."},jvmMaxMem:{required:"Must be a number between 0 and 128.",min:"Must between 0 and 128.",max:"Must between 0 and 128."}},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){b.parent(".input-group").length?a.insertAfter(b.parent()):a.insertAfter(b)}})}); \ No newline at end of file +$(document).ready(function(){$("#algoForm").validate({rules:{dataset:{required:true},alpha:{required:true,number:true,min:0,max:1},penaltyDiscount:{required:true,number:true,min:0},maxDegree:{required:true,number:true,min:-1},jvmMaxMem:{required:true,number:true,min:0,max:128}},messages:{dataset:{required:"Please select a dataset."},alpha:{required:"Please set the alpha.",min:"Must be at least 0.0.",max:"Must be at most 1.0."},penaltyDiscount:{required:"Please set the penalty discount.",min:"Must be at least 0."},maxDegree:{required:"Please select the search max degree.",min:"Must be at least -1."},jvmMaxMem:{required:"Must be a number between 0 and 128.",min:"Must be at least 0.",max:"Must be at most 128."}},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}})}); \ No newline at end of file diff --git a/src/main/resources/static/js/annotations.js b/src/main/resources/static/js/annotations.js new file mode 100644 index 00000000..22c6d6a2 --- /dev/null +++ b/src/main/resources/static/js/annotations.js @@ -0,0 +1,260 @@ +/** + * @author Mark Silvis (marksilvis@pitt.edu) + */ + +const passwordGrant = "password"; +const refreshGrant = "refresh_token"; +const tokenURL = "oauth/token"; +const annoURL = "annotations"; +const vocabURL = "vocabularies"; + + +/** + * Generic ajax GET request to CCD Annotations API + * @param {string} url request url + * @param {object} parameters HTTP parameters + * @param {boolean} async asynchronous request (default true) + * @param {closure} beforeSendCallback function performed before sending + * @return ajax + */ +function getRequest(url, parameters, async, beforeSendCallback) { + // get HTTP parameters + var params = (typeof parameters === 'undefined') ? '' : '?' + $.param(parameters); + params = params.replace(/%2B/g, '+'); // replace %2B with + + params = params.replace(/%5F/g, '_'); // replace %5F with _ + params = params.replace(/%2C/g, ','); // replace %2C with , + + // get async setting + var a = (typeof async === 'undefined') ? true : async; + return $.ajax({ + url: annoApiUrl + url + params, + type: 'get', + async: a, + beforeSend: function(xhr) { + xhr.setRequestHeader('Authorization', 'Bearer ' + getAccessToken()); + typeof beforeSendCallback === 'function' && beforeSendCallback(); + }, + dataType: 'json', + error: function(xhr) { + var json = JSON.parse(xhr.responseText); + if(json.error === 'invalid_token') { + console.log('Access token expired. Fetching a new one.') + requestAccessToken(false); + return getRequest(url, parameters, false, beforeSendCallback); + } + } + }); +} + +/** + * ajax GET request where entire link is supplied + * @param {string} link link to request + * @return ajax + */ +function getRequestByLink(link) { + return $.ajax({ + url: link, + type: 'get', + beforeSend: function(xhr) { + xhr.setRequestHeader('Authorization', 'Bearer ' + getAccessToken()); + }, + dataType: 'json', + error: function(xhr) { + var json = JSON.parse(xhr.responseText); + if (json.error === 'invalid_token') { + console.log('Access token expired. Fetching a new one.') + requestAccessToken(false); + return getRequestByLink(link); + } + } + }); +} + +/** + * Generic ajax POST request to CCD Annotations API + * @param {string} url request url + * @param {object} parameters HTTP body parameters + * @param {boolean} async asynchronous request (optional, default true) + * @param {closure} beforeSendCallback function performed before sending (optional) + * @return ajax + */ +function postRequest(url, parameters, async, beforeSendCallback) { + var a = (typeof async === 'undefined') ? true : async; + return $.ajax({ + url: annoApiUrl + url, + type: 'post', + async: a, + beforeSend: function(xhr) { + xhr.setRequestHeader('Authorization', 'Bearer ' + getAccessToken()); + xhr.setRequestHeader('Content-Type', 'application/json'); + typeof beforeSendCallback === 'function' && beforeSendCallback(); + }, + data: JSON.stringify(parameters), + contentType: 'application/json', + dataType: 'json', + error: function(xhr) { + var json = JSON.parse(xhr.responseText); + if(json.error === 'invalid_token') { + requestAccessToken(false); + return postRequest(url, parameters, false, beforeSendCallback); + } + } + }); +} + +/** + * Fetch refresh and access tokens from Annotations API + */ +function requestAnnotationsTokens(async) { + var a = (typeof async === 'undefined') ? true : async; + $.ajax({ + url: annoApiUrl + tokenURL, + type: 'post', + async: a, + data: { + grant_type: passwordGrant, + username: document.getElementById("login").loginUsername.value, + password: document.getElementById("login").loginPassword.value + }, + beforeSend: function(xhr) { + xhr.setRequestHeader('Authorization', 'Basic ' + btoa(annoClientId + ':' + annoClientSecret)); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + }, + dataType: 'json', + success: function(data) { + storeAccessToken(data['access_token'], data['expires_in']); + storeRefreshToken(data['refresh_token']); + } + }); + return false; +} + +/** + * Fetch new access token using refresh token + * @return {string} access token + */ +function requestAccessToken(async) { + var a = (typeof async === 'undefined') ? true : async; + $.ajax({ + url: annoApiUrl + tokenURL, + type: 'post', + async: a, + data: { + grant_type: refreshGrant, + refresh_token: getRefreshToken() + }, + beforeSend: function (xhr) { + xhr.setRequestHeader('Authorization', 'Basic ' + btoa(annoClientId + ':' + annoClientSecret)); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + }, + dataType: 'json', + success: function(data) { + var accessToken = data['access_token']; + var expires = data['expires_in']; + storeAccessToken(accessToken, expires); + return accessToken; + }, + error: function(data) { + return ""; + } + }); +} + +/** + * Save access token in cookie + * @param {string} token access token + * @param {int} expires token expiration in seconds + */ +function storeAccessToken(token, expires) { + var date = new Date(); + // set expiration date to current time + expiration + date.setTime(date.getTime() + expires*1000); + date = date.toGMTString(); + // delete old cookie + deleteAccessToken(); + // save new cookie + document.cookie = 'access_token=' + token + "; path=/ccd; expires=" + date + "; max_age=" + date; +} + +/** + * Get access token from cookies + * @return {string} access token + */ +function getAccessToken() { + var value = "; " + document.cookie; + var parts = value.split("; access_token="); + if (parts.length == 2) { + return parts.pop().split(";").shift(); + } else { + return requestAccessToken(); + } +} + +/** + * Delete access token + */ +function deleteAccessToken() { + document.cookie = 'access_token=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/ccd'; +} + +/** + * Save refresh token in cookie + * @param {string} token refresh token + */ +function storeRefreshToken(token) { + // sessionStorage.setItem('refresh_token', token); + // delete old cookie + deleteRefreshToken(); + // save new cookie + document.cookie = 'refresh_token=' + token + "; path=/ccd"; +} + +/** + * Get refresh token from cookie + * @return {string} refresh token + */ +function getRefreshToken() { + // return sessionStorage.getItem('refresh_token'); + var value = "; " + document.cookie; + var parts = value.split("; refresh_token="); + if (parts.length == 2) { + return parts.pop().split(";").shift(); + } else { + return ""; + } +} + +/** + * Delete refresh token + */ +function deleteRefreshToken() { + // sessionStorage.removeItem('refresh_token'); + document.cookie = 'refresh_token=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/ccd'; +} + +/** + * Delete all tokens + */ +function deleteTokens() { + deleteAccessToken(); + deleteRefreshToken(); +} + +// function getUser() { +// getRequest('/users/12'); +// // $.ajax({ +// // url: annoApiUrl+"/users/12", +// // type: 'get', +// // beforeSend: function (xhr) { +// // xhr.setRequestHeader('Authorization', 'Bearer ' + getAccessToken()); +// // }, +// // dataType: 'json', +// // success: function(data) { +// // console.log("Success fetching user: " + data['username']); +// // }, +// // error: function(xhr, textStatus, errorThrown) { +// // console.log('text: ' + textStatus + '\n error: ' + errorThrown); +// // console.log(xhr.responseText); +// // } +// // }); +// } diff --git a/src/main/resources/static/js/collapse_panel.js b/src/main/resources/static/js/collapse_panel.js new file mode 100644 index 00000000..38c87cd4 --- /dev/null +++ b/src/main/resources/static/js/collapse_panel.js @@ -0,0 +1,8 @@ +function collapseAction(panel) { + var $this = $(panel); + if ($this.hasClass('collapsed')) { + $this.find('i').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down'); + } else { + $this.find('i').removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up'); + } +} diff --git a/src/main/resources/static/js/collapse_panel.min.js b/src/main/resources/static/js/collapse_panel.min.js new file mode 100644 index 00000000..caece5d7 --- /dev/null +++ b/src/main/resources/static/js/collapse_panel.min.js @@ -0,0 +1 @@ +function collapseAction(a){var b=$(a);if(b.hasClass("collapsed")){b.find("i").removeClass("glyphicon-chevron-up").addClass("glyphicon-chevron-down")}else{b.find("i").removeClass("glyphicon-chevron-down").addClass("glyphicon-chevron-up")}}; \ No newline at end of file diff --git a/src/main/resources/static/js/data/dataset.js b/src/main/resources/static/js/data/dataset.js index 351f8d09..1877f2a6 100644 --- a/src/main/resources/static/js/data/dataset.js +++ b/src/main/resources/static/js/data/dataset.js @@ -10,7 +10,7 @@ $('#fileInfo').on('show.bs.modal', function (event) { var modal = $(this); modal.find('.modal-title').text(filename); - modal.find('#fileInfoFrame').attr('src', 'data/fileInfo?file=' + filename); + modal.find('#fileInfoFrame').attr('src', encodeURI('data/fileInfo?file=' + filename)); }); $('#priorFileInfo').on('show.bs.modal', function (event) { var link = $(event.relatedTarget); @@ -18,5 +18,5 @@ $('#priorFileInfo').on('show.bs.modal', function (event) { var modal = $(this); modal.find('.modal-title').text(filename); - modal.find('#priorFileInfoFrame').attr('src', 'fileInfo?file=' + filename); + modal.find('#priorFileInfoFrame').attr('src', encodeURI('fileInfo?file=' + filename)); }); diff --git a/src/main/resources/static/js/data/dataset.min.js b/src/main/resources/static/js/data/dataset.min.js index af3a4486..2e1df870 100644 --- a/src/main/resources/static/js/data/dataset.min.js +++ b/src/main/resources/static/js/data/dataset.min.js @@ -1 +1 @@ -$(document).ready(function(){$("[data-toggle=tooltip]").tooltip()});$("#confirm-delete").on("show.bs.modal",function(a){$(this).find(".btn_ok").attr("href",$(a.relatedTarget).data("href"))});$("#fileInfo").on("show.bs.modal",function(d){var c=$(d.relatedTarget);var a=c.data("filename");var b=$(this);b.find(".modal-title").text(a);b.find("#fileInfoFrame").attr("src","data/fileInfo?file="+a)});$("#priorFileInfo").on("show.bs.modal",function(d){var c=$(d.relatedTarget);var a=c.data("filename");var b=$(this);b.find(".modal-title").text(a);b.find("#priorFileInfoFrame").attr("src","fileInfo?file="+a)}); \ No newline at end of file +$(document).ready(function(){$("[data-toggle=tooltip]").tooltip()}),$("#confirm-delete").on("show.bs.modal",function(t){$(this).find(".btn_ok").attr("href",$(t.relatedTarget).data("href"))}),$("#fileInfo").on("show.bs.modal",function(t){var e=$(t.relatedTarget),o=e.data("filename"),a=$(this);a.find(".modal-title").text(o),a.find("#fileInfoFrame").attr("src",encodeURI("data/fileInfo?file="+o))}),$("#priorFileInfo").on("show.bs.modal",function(t){var e=$(t.relatedTarget),o=e.data("filename"),a=$(this);a.find(".modal-title").text(o),a.find("#priorFileInfoFrame").attr("src",encodeURI("fileInfo?file="+o))}); \ No newline at end of file diff --git a/src/main/resources/static/js/feedback.js b/src/main/resources/static/js/feedback.js new file mode 100644 index 00000000..ddfad0ab --- /dev/null +++ b/src/main/resources/static/js/feedback.js @@ -0,0 +1,10 @@ +$(document).ready(function () { + $('#submitFeedback').prop('disabled', $('#feedbackMsg').val().length === 0); +}); +$('#feedbackMsg').on("input", function () { + if ($('#feedbackMsg').val().length > 0) { + $('#submitFeedback').removeAttr('disabled'); + } else { + $('#submitFeedback').prop('disabled', true); + } +}); diff --git a/src/main/resources/static/js/feedback.min.js b/src/main/resources/static/js/feedback.min.js new file mode 100644 index 00000000..b39e3cf4 --- /dev/null +++ b/src/main/resources/static/js/feedback.min.js @@ -0,0 +1 @@ +$(document).ready(function(){$("#submitFeedback").prop("disabled",$("#feedbackMsg").val().length===0)});$("#feedbackMsg").on("input",function(){if($("#feedbackMsg").val().length>0){$("#submitFeedback").removeAttr("disabled")}else{$("#submitFeedback").prop("disabled",true)}}); \ No newline at end of file diff --git a/src/main/resources/static/js/login.js b/src/main/resources/static/js/login.js index 582df6a2..818e5d28 100644 --- a/src/main/resources/static/js/login.js +++ b/src/main/resources/static/js/login.js @@ -1,21 +1,49 @@ $(document).ready(function () { $('#login').validate({ rules: { - username: { - minlength: 3, - nowhitespace: true, + loginUsername: { + email: true, required: true }, - password: { - minlength: 5, - maxlength: 25, - nowhitespace: true, + loginPassword: { required: true } }, messages: { - username: "Please enter a valid username.", - password: "Please enter your password." + loginUsername: { + email: "Please enter a valid email.", + required: "E-mail is required." + }, + loginPassword: "Please enter your password." + }, + highlight: function (element) { + $(element).closest('.form-group').addClass('has-error'); + }, + unhighlight: function (element) { + $(element).closest('.form-group').removeClass('has-error'); + }, + errorElement: 'span', + errorClass: 'help-block', + errorPlacement: function (error, element) { + if (element.parent('.input-group').length) { + error.insertAfter(element.parent()); + } else { + error.insertAfter(element); + } + } + }); + $('#pwd_reset').validate({ + rules: { + usernameRecover: { + email: true, + required: true + } + }, + messages: { + usernameRecover: { + email: "Please enter a valid email.", + required: "Email is required." + } }, highlight: function (element) { $(element).closest('.form-group').addClass('has-error'); @@ -36,11 +64,6 @@ $(document).ready(function () { $('#registration').validate({ rules: { username: { - minlength: 3, - nowhitespace: true, - required: true - }, - email: { email: true, required: true }, @@ -52,22 +75,12 @@ $(document).ready(function () { }, confirmPassword: { equalTo: "#password" - }, - secureQues: { - required: true - }, - secureAns: { - maxlength: 25, - required: true } }, messages: { - username: "Please enter a valid username (no white space).", - email: "Please enter a valid email.", + username: "Please enter a valid email.", password: "Please enter valid a password (5-25 chars).", confirmPassword: "Please reenter password.", - secureQues: "Please select a security question.", - secureAns: "Please enter the security answer." }, highlight: function (element) { $(element).closest('.form-group').addClass('has-error'); @@ -85,10 +98,9 @@ $(document).ready(function () { } } }); - $('#register').prop('disabled', !$('#agree').prop('checked')); $('#agree').click(function () { $('#register').prop('disabled', !$(this).prop('checked')); }) -}); \ No newline at end of file +}); diff --git a/src/main/resources/static/js/login.min.js b/src/main/resources/static/js/login.min.js index 48d09500..4df7f973 100644 --- a/src/main/resources/static/js/login.min.js +++ b/src/main/resources/static/js/login.min.js @@ -1 +1 @@ -$(document).ready(function(){$("#login").validate({rules:{username:{minlength:3,nowhitespace:true,required:true},password:{minlength:5,maxlength:25,nowhitespace:true,required:true}},messages:{username:"Please enter a valid username.",password:"Please enter your password."},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}});$("#registration").validate({rules:{username:{minlength:3,nowhitespace:true,required:true},email:{email:true,required:true},password:{minlength:5,maxlength:25,nowhitespace:true,required:true},confirmPassword:{equalTo:"#password"},secureQues:{required:true},secureAns:{maxlength:25,required:true}},messages:{username:"Please enter a valid username (no white space).",email:"Please enter a valid email.",password:"Please enter valid a password (5-25 chars).",confirmPassword:"Please reenter password.",secureQues:"Please select a security question.",secureAns:"Please enter the security answer."},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}});$("#register").prop("disabled",!$("#agree").prop("checked"));$("#agree").click(function(){$("#register").prop("disabled",!$(this).prop("checked"))})}); \ No newline at end of file +$(document).ready(function(){$("#login").validate({rules:{loginUsername:{email:true,required:true},loginPassword:{required:true}},messages:{loginUsername:{email:"Please enter a valid email.",required:"E-mail is required."},loginPassword:"Please enter your password."},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}});$("#pwd_reset").validate({rules:{usernameRecover:{email:true,required:true}},messages:{usernameRecover:{email:"Please enter a valid email.",required:"Email is required."}},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}});$("#registration").validate({rules:{username:{email:true,required:true},password:{minlength:5,maxlength:25,nowhitespace:true,required:true},confirmPassword:{equalTo:"#password"}},messages:{username:"Please enter a valid email.",password:"Please enter valid a password (5-25 chars).",confirmPassword:"Please reenter password.",},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}});$("#register").prop("disabled",!$("#agree").prop("checked"));$("#agree").click(function(){$("#register").prop("disabled",!$(this).prop("checked"))})}); \ No newline at end of file diff --git a/src/main/resources/static/js/password_reset.js b/src/main/resources/static/js/password_reset.js new file mode 100644 index 00000000..9be40857 --- /dev/null +++ b/src/main/resources/static/js/password_reset.js @@ -0,0 +1,34 @@ +$(document).ready(function () { + $('#password_reset').validate({ + rules: { + password: { + minlength: 5, + maxlength: 25, + nowhitespace: true, + required: true + }, + confirmPassword: { + equalTo: "#password" + } + }, + messages: { + password: "Please enter valid a password (5-25 chars).", + confirmPassword: "Please reenter password.", + }, + highlight: function (element) { + $(element).closest('.form-group').addClass('has-error'); + }, + unhighlight: function (element) { + $(element).closest('.form-group').removeClass('has-error'); + }, + errorElement: 'span', + errorClass: 'help-block', + errorPlacement: function (error, element) { + if (element.parent('.input-group').length) { + error.insertAfter(element.parent()); + } else { + error.insertAfter(element); + } + } + }); +}); diff --git a/src/main/resources/static/js/password_reset.min.js b/src/main/resources/static/js/password_reset.min.js new file mode 100644 index 00000000..1d563de6 --- /dev/null +++ b/src/main/resources/static/js/password_reset.min.js @@ -0,0 +1 @@ +$(document).ready(function(){$("#password_reset").validate({rules:{password:{minlength:5,maxlength:25,nowhitespace:true,required:true},confirmPassword:{equalTo:"#password"}},messages:{password:"Please enter valid a password (5-25 chars).",confirmPassword:"Please reenter password.",},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block",errorPlacement:function(a,b){if(b.parent(".input-group").length){a.insertAfter(b.parent())}else{a.insertAfter(b)}}})}); \ No newline at end of file diff --git a/src/main/resources/static/js/terms.js b/src/main/resources/static/js/terms.js new file mode 100644 index 00000000..52ff78b3 --- /dev/null +++ b/src/main/resources/static/js/terms.js @@ -0,0 +1,7 @@ +$(document).ready(function () { + $('#accept').prop('disabled', !$('#agree').prop('checked')); + + $('#agree').click(function () { + $('#accept').prop('disabled', !$(this).prop('checked')); + }) +}); diff --git a/src/main/resources/static/js/terms.min.js b/src/main/resources/static/js/terms.min.js new file mode 100644 index 00000000..0479f16f --- /dev/null +++ b/src/main/resources/static/js/terms.min.js @@ -0,0 +1 @@ +$(document).ready(function(){$("#accept").prop("disabled",!$("#agree").prop("checked"));$("#agree").click(function(){$("#accept").prop("disabled",!$(this).prop("checked"))})}); \ No newline at end of file diff --git a/src/main/resources/static/js/userProfile.js b/src/main/resources/static/js/userProfile.js new file mode 100644 index 00000000..93e47978 --- /dev/null +++ b/src/main/resources/static/js/userProfile.js @@ -0,0 +1,48 @@ +$(document).on('click', '#collapse_link', function (e) { + collapseAction(this); +}); +$(document).ready(function () { + $("#view_info_panel").show(); + $("#edit_info_panel").hide(); + + $("#edit_info").click(function () { + $("#view_info_panel").hide(); + $("#edit_info_panel").show(); + }); + $("#cancel_info").click(function () { + $("#view_info_panel").show(); + $("#edit_info_panel").hide(); + }); +}); +$('#passwordChange').validate({ + rules: { + currentPassword: { + minlength: 5, + maxlength: 25, + nowhitespace: true, + required: true + }, + newPassword: { + minlength: 5, + maxlength: 25, + nowhitespace: true, + required: true + }, + newConfirmPassword: { + equalTo: "#newPassword" + } + }, + messages: { + currentPassword: "Please enter your password", + newPassword: "Please enter a new, valid password.", + newConfirmPassword: "Password does not match." + }, + highlight: function (element) { + $(element).closest('.form-group').addClass('has-error'); + }, + unhighlight: function (element) { + $(element).closest('.form-group').removeClass('has-error'); + }, + errorElement: 'span', + errorClass: 'help-block' +}); diff --git a/src/main/resources/static/js/userProfile.min.js b/src/main/resources/static/js/userProfile.min.js new file mode 100644 index 00000000..de41d663 --- /dev/null +++ b/src/main/resources/static/js/userProfile.min.js @@ -0,0 +1 @@ +$(document).on("click","#collapse_link",function(a){collapseAction(this)});$(document).ready(function(){$("#view_info_panel").show();$("#edit_info_panel").hide();$("#edit_info").click(function(){$("#view_info_panel").hide();$("#edit_info_panel").show()});$("#cancel_info").click(function(){$("#view_info_panel").show();$("#edit_info_panel").hide()})});$("#passwordChange").validate({rules:{currentPassword:{minlength:5,maxlength:25,nowhitespace:true,required:true},newPassword:{minlength:5,maxlength:25,nowhitespace:true,required:true},newConfirmPassword:{equalTo:"#newPassword"}},messages:{currentPassword:"Please enter your password",newPassword:"Please enter a new, valid password.",newConfirmPassword:"Password does not match."},highlight:function(a){$(a).closest(".form-group").addClass("has-error")},unhighlight:function(a){$(a).closest(".form-group").removeClass("has-error")},errorElement:"span",errorClass:"help-block"}); \ No newline at end of file diff --git a/src/main/resources/static/vendors/angularjs/angular.min.js b/src/main/resources/static/vendors/angularjs/angular.min.js index 272101ec..bf50a288 100644 --- a/src/main/resources/static/vendors/angularjs/angular.min.js +++ b/src/main/resources/static/vendors/angularjs/angular.min.js @@ -1,294 +1,318 @@ /* - AngularJS v1.4.7 - (c) 2010-2015 Google, Inc. http://angularjs.org + AngularJS v1.5.8 + (c) 2010-2016 Google, Inc. http://angularjs.org License: MIT */ -(function(Q,X,w){'use strict';function I(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.4.7/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===Pa?F(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+F(b)})}catch(d){return F(c)}}function xc(b){try{return decodeURIComponent(b)}catch(a){}} -function yc(b){var a={};m((b||"").split("&"),function(b){var d,e,f;b&&(e=b=b.replace(/\+/g,"%20"),d=b.indexOf("="),-1!==d&&(e=b.substring(0,d),f=b.substring(d+1)),e=xc(e),A(e)&&(f=A(f)?xc(f):!0,ta.call(a,e)?J(a[e])?a[e].push(f):a[e]=[a[e],f]:a[e]=f))});return a}function Pb(b){var a=[];m(b,function(b,d){J(b)?m(b,function(b){a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))}):a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))});return a.length?a.join("&"):""}function ob(b){return la(b,!0).replace(/%26/gi,"&").replace(/%3D/gi, -"=").replace(/%2B/gi,"+")}function la(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Yd(b,a){var c,d,e=Qa.length;for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=fb(a,c.strictDi);d.invoke(["$rootScope", -"$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;Q&&e.test(Q.name)&&(c.debugInfoEnabled=!0,Q.name=Q.name.replace(e,""));if(Q&&!f.test(Q.name))return d();Q.name=Q.name.replace(f,"");da.resumeBootstrap=function(b){m(b,function(b){a.push(b)});return d()};x(da.resumeDeferredBootstrap)&&da.resumeDeferredBootstrap()}function $d(){Q.name="NG_ENABLE_DEBUG_INFO!"+Q.name;Q.location.reload()} -function ae(b){b=da.element(b).injector();if(!b)throw Ea("test");return b.get("$$testability")}function Ac(b,a){a=a||"_";return b.replace(be,function(b,d){return(d?a:"")+b.toLowerCase()})}function ce(){var b;if(!Bc){var a=pb();(ra=v(a)?Q.jQuery:a?Q[a]:w)&&ra.fn.on?(B=ra,P(ra.fn,{scope:Ra.scope,isolateScope:Ra.isolateScope,controller:Ra.controller,injector:Ra.injector,inheritedData:Ra.inheritedData}),b=ra.cleanData,ra.cleanData=function(a){var d;if(Qb)Qb=!1;else for(var e=0,f;null!=(f=a[e]);e++)(d= -ra._data(f,"events"))&&d.$destroy&&ra(f).triggerHandler("$destroy");b(a)}):B=R;da.element=B;Bc=!0}}function qb(b,a,c){if(!b)throw Ea("areq",a||"?",c||"required");return b}function Sa(b,a,c){c&&J(b)&&(b=b[b.length-1]);qb(x(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ta(b,a){if("hasOwnProperty"===b)throw Ea("badname",a);}function Cc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,h=0;h")+d[2];for(d=d[0];d--;)c=c.lastChild;f=db(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";m(f,function(a){e.appendChild(a)});return e}function R(b){if(b instanceof R)return b;var a;G(b)&&(b=T(b), -a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new R(b)}if(a){a=X;var c;b=(c=Ef.exec(b))?[a.createElement(c[1])]:(c=Mc(b,a))?c.childNodes:[]}Nc(this,b)}function Ub(b){return b.cloneNode(!0)}function ub(b,a){a||vb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;dk&&this.remove(r.key);return b}},get:function(a){if(k").parent()[0])});var f= -S(a,b,a,c,d,e);W.$$addScopeClass(a);var g=null;return function(b,c,d){qb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Xb(g,B("
").append(a).html())):c?Ra.clone.call(a):a;if(h)for(var k in h)d.data("$"+k+"Controller",h[k].instance);W.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function S(a, -b,c,d,e,f){function g(a,c,d,e){var f,k,l,r,n,t,O;if(q)for(O=Array(c.length),r=0;rD.priority)break;if(M=D.scope)D.templateUrl||(C(M)?(Q("new/isolated scope", -u||S,D,v),u=D):Q("new/isolated scope",u,D,v)),S=S||D;y=D.name;!D.templateUrl&&D.controller&&(M=D.controller,ba=ba||fa(),Q("'"+y+"' controller",ba[y],D,v),ba[y]=D);if(M=D.transclude)N=!0,D.$$tlb||(Q("transclusion",z,D,v),z=D),"element"==M?(ia=!0,H=D.priority,M=v,v=d.$$element=B(X.createComment(" "+y+": "+d[y]+" ")),b=v[0],U(f,ua.call(M,0),b),Ka=W(M,e,H,g&&g.name,{nonTlbTranscludeDirective:z})):(M=B(Ub(b)).contents(),v.empty(),Ka=W(M,e));if(D.template)if(m=!0,Q("template",L,D,v),L=D,M=x(D.template)? -D.template(v,d):D.template,M=ha(M),D.replace){g=D;M=Sb.test(M)?Xc(Xb(D.templateNamespace,T(M))):[];b=M[0];if(1!=M.length||b.nodeType!==pa)throw ga("tplrt",y,"");U(f,v,b);F={$attr:{}};M=ca(b,[],F);var Lf=a.splice(I+1,a.length-(I+1));u&&A(M);a=a.concat(M).concat(Lf);Yc(d,F);F=a.length}else v.html(M);if(D.templateUrl)m=!0,Q("template",L,D,v),L=D,D.replace&&(g=D),K=Mf(a.splice(I,a.length-I),v,d,f,N&&Ka,h,k,{controllerDirectives:ba,newScopeDirective:S!==D&&S,newIsolateScopeDirective:u,templateDirective:L, -nonTlbTranscludeDirective:z}),F=a.length;else if(D.compile)try{na=D.compile(v,d,Ka),x(na)?n(null,na,P,R):na&&n(na.pre,na.post,P,R)}catch(V){c(V,xa(v))}D.terminal&&(K.terminal=!0,H=Math.max(H,D.priority))}K.scope=S&&!0===S.scope;K.transcludeOnThisElement=N;K.templateOnThisElement=m;K.transclude=Ka;r.hasElementTranscludeDirective=ia;return K}function A(a){for(var b=0,c=a.length;bn.priority)&&-1!=n.restrict.indexOf(f)&&(k&&(n=Nb(n,{$$start:k,$$end:l})),b.push(n),h=n)}catch(H){c(H)}}return h}function I(b){if(e.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==b)return ia.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b|| -"ngSrc"==b))return ia.RESOURCE_URL}function V(a,c,d,e,f){var h=R(a,e);f=g[e]||f;var l=b(d,!0,h,f);if(l){if("multiple"===e&&"select"===wa(a))throw ga("selmulti",xa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,g){c=g.$$observers||(g.$$observers=fa());if(k.test(e))throw ga("nodomevents");var r=g[e];r!==d&&(l=r&&b(r,!0,h,f),d=r);l&&(g[e]=l(a),(c[e]||(c[e]=[])).$$inter=!0,(g.$$observers&&g.$$observers[e].$$scope||a).$watch(l,function(a,b){"class"===e&&a!=b?g.$updateClass(a,b):g.$set(e, -a)}))}}}})}}function U(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&Nf.call(b,a,1);return b}function Xe(){var b={},a=!1;this.register=function(a,d){Ta(a,"controller");C(a)?P(b,a):b[a]=d};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(c,d){function e(a,b,c,d){if(!a||!C(a.$scope))throw I("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,h,g,l){var k,n,p;g=!0===g;l&&G(l)&&(p=l);if(G(f)){l=f.match(Vc);if(!l)throw Of("ctrlfmt",f); -n=l[1];p=p||l[3];f=b.hasOwnProperty(n)?b[n]:Cc(h.$scope,n,!0)||(a?Cc(d,n,!0):w);Sa(f,n,!0)}if(g)return g=(J(f)?f[f.length-1]:f).prototype,k=Object.create(g||null),p&&e(h,p,k,n||f.name),P(function(){var a=c.invoke(f,k,h,n);a!==k&&(C(a)||x(a))&&(k=a,p&&e(h,p,k,n||f.name));return k},{instance:k,identifier:p});k=c.instantiate(f,h,n);p&&e(h,p,k,n||f.name);return k}}]}function Ye(){this.$get=["$window",function(b){return B(b.document)}]}function Ze(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b, -arguments)}}]}function Yb(b){return C(b)?ea(b)?b.toISOString():eb(b):b}function df(){this.$get=function(){return function(b){if(!b)return"";var a=[];nc(b,function(b,d){null===b||v(b)||(J(b)?m(b,function(b,c){a.push(la(d)+"="+la(Yb(b)))}):a.push(la(d)+"="+la(Yb(b))))});return a.join("&")}}}function ef(){this.$get=function(){return function(b){function a(b,e,f){null===b||v(b)||(J(b)?m(b,function(b,c){a(b,e+"["+(C(b)?c:"")+"]")}):C(b)&&!ea(b)?nc(b,function(b,c){a(b,e+(f?"":"[")+c+(f?"":"]"))}):c.push(la(e)+ -"="+la(Yb(b))))}if(!b)return"";var c=[];a(b,"",!0);return c.join("&")}}}function Zb(b,a){if(G(b)){var c=b.replace(Pf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(ad))||(d=(d=c.match(Qf))&&Rf[d[0]].test(c));d&&(b=vc(c))}}return b}function bd(b){var a=fa(),c;G(b)?m(b.split("\n"),function(b){c=b.indexOf(":");var e=F(T(b.substr(0,c)));b=T(b.substr(c+1));e&&(a[e]=a[e]?a[e]+", "+b:b)}):C(b)&&m(b,function(b,c){var f=F(c),h=T(b);f&&(a[f]=a[f]?a[f]+", "+h:h)});return a}function cd(b){var a; -return function(c){a||(a=bd(b));return c?(c=a[F(c)],void 0===c&&(c=null),c):a}}function dd(b,a,c,d){if(x(d))return d(b,a,c);m(d,function(d){b=d(b,a,c)});return b}function cf(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return C(a)&&"[object File]"!==va.call(a)&&"[object Blob]"!==va.call(a)&&"[object FormData]"!==va.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ja($b),put:ja($b),patch:ja($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN", -paramSerializer:"$httpParamSerializer"},a=!1;this.useApplyAsync=function(b){return A(b)?(a=!!b,this):a};var c=!0;this.useLegacyPromiseExtensions=function(a){return A(a)?(c=!!a,this):c};var d=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,h,g,l,k){function n(a){function d(a){var b=P({},a);b.data=a.data?dd(a.data,a.headers,a.status,f.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:l.reject(b)}function e(a,b){var c, -d={};m(a,function(a,e){x(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!da.isObject(a))throw I("$http")("badreq",a);var f=P({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse,paramSerializer:b.paramSerializer},a);f.headers=function(a){var c=b.headers,d=P({},a.headers),f,g,h,c=P({},c.common,c[F(a.method)]);a:for(f in c){g=F(f);for(h in d)if(F(h)===g)continue a;d[f]=c[f]}return e(d,ja(a))}(a);f.method=sb(f.method);f.paramSerializer=G(f.paramSerializer)?k.get(f.paramSerializer): -f.paramSerializer;var g=[function(a){var c=a.headers,e=dd(a.data,cd(c),w,a.transformRequest);v(e)&&m(c,function(a,b){"content-type"===F(b)&&delete c[b]});v(a.withCredentials)&&!v(b.withCredentials)&&(a.withCredentials=b.withCredentials);return p(a,e).then(d,d)},w],h=l.when(f);for(m(E,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){a=g.shift();var r=g.shift(),h=h.then(a,r)}c?(h.success=function(a){Sa(a, -"fn");h.then(function(b){a(b.data,b.status,b.headers,f)});return h},h.error=function(a){Sa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=ed("success"),h.error=ed("error"));return h}function p(c,d){function h(b,c,d,e){function f(){k(c,b,d,e)}L&&(200<=b&&300>b?L.put(ba,[b,c,bd(d),e]):L.remove(ba));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function k(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?O.resolve:O.reject)({data:a,status:b,headers:cd(d),config:c,statusText:e})} -function p(a){k(a.data,a.status,ja(a.headers()),a.statusText)}function E(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var O=l.defer(),H=O.promise,L,m,S=c.headers,ba=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);H.then(E,E);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(L=C(c.cache)?c.cache:C(b.cache)?b.cache:t);L&&(m=L.get(ba),A(m)?m&&x(m.then)?m.then(p,p):J(m)?k(m[1],m[0],ja(m[2]),m[3]):k(m,200,{},"OK"):L.put(ba,H));v(m)&&((m= -fd(c.url)?f()[c.xsrfCookieName||b.xsrfCookieName]:w)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=m),e(c.method,ba,d,h,S,c.timeout,c.withCredentials,c.responseType));return H}function r(a,b){0=l&&(u.resolve(E), -t(q.$$intervalId),delete f[q.$$intervalId]);K||b.$apply()},g);f[q.$$intervalId]=u;return q}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function ac(b){b=b.split("/");for(var a=b.length;a--;)b[a]=ob(b[a]);return b.join("/")}function gd(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=Y(c.port)||Tf[c.protocol]||null}function hd(b,a){var c="/"!==b.charAt(0); -c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=yc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function sa(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ja(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Cb(b){return b.replace(/(#.+)|#$/,"$1")}function bc(b,a,c){this.$$html5=!0;c=c||"";gd(b,this);this.$$parse=function(b){var c=sa(a, -b);if(!G(c))throw Db("ipthprfx",b,a);hd(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,h;A(f=sa(b,d))?(h=f,h=A(f=sa(c,f))?a+(sa("/",f)||f):b+h):A(f=sa(a,d))?h=a+f:a==d+"/"&&(h=a);h&&this.$$parse(h);return!!h}}function cc(b,a,c){gd(b,this); -this.$$parse=function(d){var e=sa(b,d)||sa(a,d),f;v(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",v(e)&&(b=d,this.replace())):(f=sa(c,e),v(f)&&(f=e));hd(f,this);d=this.$$path;var e=b,h=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));h.exec(f)||(d=(f=h.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl= -function(a,c){return Ja(b)==Ja(a)?(this.$$parse(a),!0):!1}}function id(b,a,c){this.$$html5=!0;cc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,h;b==Ja(d)?f=d:(h=sa(a,d))?f=b+c+h:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Eb(b){return function(){return this[b]}}function jd(b, -a){return function(c){if(v(c))return this[b];this[b]=a(c);this.$$compose();return this}}function hf(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return A(a)?(b=a,this):b};this.html5Mode=function(b){return bb(b)?(a.enabled=b,this):C(b)?(bb(b.enabled)&&(a.enabled=b.enabled),bb(b.requireBase)&&(a.requireBase=b.requireBase),bb(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c, -d,e,f,h){function g(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),r;if(a.enabled){if(!n&&a.requireBase)throw Db("nobase");r=p.substring(0,p.indexOf("/",p.indexOf("//")+2))+(n||"/");n=e.history?bc:id}else r=Ja(p),n=cc;var t=r.substr(0,Ja(r).lastIndexOf("/")+1);k=new n(r,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state(); -var E=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=B(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var g=e.prop("href"),l=e.attr("href")||e.attr("xlink:href");C(g)&&"[object SVGAnimatedString]"===g.toString()&&(g=Aa(g.animVal).href);E.test(g)||!g||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(g,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),h.angular["ff-684208-preventDefault"]= -!0))}});Cb(k.absUrl())!=Cb(p)&&d.url(k.absUrl(),!0);var K=!0;d.onUrlChange(function(a,b){v(sa(t,a))?h.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,g(d,!1,e)):(K=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Cb(d.url()),b=Cb(k.absUrl()),f=d.state(),h=k.$$replace,r=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(K||r)K=!1, -c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(r&&g(b,h,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function jf(){var b=!0,a=this;this.debugEnabled=function(a){return A(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a= -a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||y;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];m(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Xa(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"=== -b||"__proto__"===b)throw Z("isecfld",a);return b}function kd(b,a){b+="";if(!G(b))throw Z("iseccst",a);return b}function Ba(b,a){if(b){if(b.constructor===b)throw Z("isecfn",a);if(b.window===b)throw Z("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw Z("isecdom",a);if(b===Object)throw Z("isecobj",a);}return b}function ld(b,a){if(b){if(b.constructor===b)throw Z("isecfn",a);if(b===Uf||b===Vf||b===Wf)throw Z("isecff",a);}}function md(b,a){if(b&&(b===(0).constructor||b===(!1).constructor|| -b==="".constructor||b==={}.constructor||b===[].constructor||b===Function.constructor))throw Z("isecaf",a);}function Xf(b,a){return"undefined"!==typeof b?b:a}function nd(b,a){return"undefined"===typeof b?a:"undefined"===typeof a?b:b+a}function U(b,a){var c,d;switch(b.type){case s.Program:c=!0;m(b.body,function(b){U(b.expression,a);c=c&&b.expression.constant});b.constant=c;break;case s.Literal:b.constant=!0;b.toWatch=[];break;case s.UnaryExpression:U(b.argument,a);b.constant=b.argument.constant;b.toWatch= -b.argument.toWatch;break;case s.BinaryExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.left.toWatch.concat(b.right.toWatch);break;case s.LogicalExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.constant?[]:[b];break;case s.ConditionalExpression:U(b.test,a);U(b.alternate,a);U(b.consequent,a);b.constant=b.test.constant&&b.alternate.constant&&b.consequent.constant;b.toWatch=b.constant?[]:[b];break;case s.Identifier:b.constant= -!1;b.toWatch=[b];break;case s.MemberExpression:U(b.object,a);b.computed&&U(b.property,a);b.constant=b.object.constant&&(!b.computed||b.property.constant);b.toWatch=[b];break;case s.CallExpression:c=b.filter?!a(b.callee.name).$stateful:!1;d=[];m(b.arguments,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=b.filter&&!a(b.callee.name).$stateful?d:[b];break;case s.AssignmentExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant; -b.toWatch=[b];break;case s.ArrayExpression:c=!0;d=[];m(b.elements,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=d;break;case s.ObjectExpression:c=!0;d=[];m(b.properties,function(b){U(b.value,a);c=c&&b.value.constant;b.value.constant||d.push.apply(d,b.value.toWatch)});b.constant=c;b.toWatch=d;break;case s.ThisExpression:b.constant=!1,b.toWatch=[]}}function od(b){if(1==b.length){b=b[0].expression;var a=b.toWatch;return 1!==a.length?a:a[0]!==b?a:w}} -function pd(b){return b.type===s.Identifier||b.type===s.MemberExpression}function qd(b){if(1===b.body.length&&pd(b.body[0].expression))return{type:s.AssignmentExpression,left:b.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function rd(b){return 0===b.body.length||1===b.body.length&&(b.body[0].expression.type===s.Literal||b.body[0].expression.type===s.ArrayExpression||b.body[0].expression.type===s.ObjectExpression)}function sd(b,a){this.astBuilder=b;this.$filter=a}function td(b, -a){this.astBuilder=b;this.$filter=a}function Fb(b){return"constructor"==b}function dc(b){return x(b.valueOf)?b.valueOf():Yf.call(b)}function kf(){var b=fa(),a=fa();this.$get=["$filter",function(c){function d(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=dc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function e(a,b,c,e,f){var g=e.inputs,h;if(1===g.length){var k=d,g=g[0];return a.$watch(function(a){var b=g(a);d(b,k)||(h=e(a,w,w,[b]),k=b&&dc(b));return h},b,c,f)}for(var l=[],n=[],p=0, -m=g.length;p=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in l++,f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,h,k=1 -t&&(D=4-t,u[D]||(u[D]=[]),u[D].push({msg:x(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:g}));else if(b===d){r=!1;break a}}catch(y){h(y)}if(!(k=m.$$watchersCount&&m.$$childHead||m!==this&&m.$$nextSibling))for(;m!==this&&!(k=m.$$nextSibling);)m=m.$parent}while(m=k);if((r||z.length)&&!t--)throw q.$$phase=null,c("infdig",a,u);}while(r||z.length);for(q.$$phase=null;N.length;)try{N.shift()()}catch(A){h(A)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy"); -this.$$destroyed=!0;this===q&&l.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)t(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=y;this.$on= -this.$watch=this.$watchGroup=function(){return y};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){q.$$phase||z.length||l.defer(function(){z.length&&q.$digest()});z.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){N.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{q.$$phase=null}}catch(b){h(b)}finally{try{q.$digest()}catch(c){throw h(c), -c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&w.push(b);u()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,t(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,g={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){g.defaultPrevented=!0},defaultPrevented:!1}, -k=db([g],arguments,1),l,n;do{d=e.$$listeners[a]||c;g.currentScope=e;l=0;for(n=d.length;lWa)throw Ca("iequirks");var d=ja(oa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=$a);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,h=d.trustAs;m(oa,function(a,b){var c=F(b);d[gb("parse_as_"+c)]=function(b){return e(a,b)};d[gb("get_trusted_"+c)]=function(b){return f(a,b)};d[gb("trust_as_"+ -c)]=function(b){return h(a,b)}});return d}]}function qf(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(F((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},h,g=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=g.exec(p)){h=k[0];h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||h+"Transition"in l);n=!!("animation"in l||h+"Animation"in -l);!d||k&&n||(k=G(l.webkitTransition),n=G(l.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Wa)return!1;if(v(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Fa(),vendorPrefix:h,transitions:k,animations:n,android:d}}]}function sf(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,h){e.totalPendingRequests++;G(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var g=a.defaults&&a.defaults.transformResponse; -J(g)?g=g.filter(function(a){return a!==Zb}):g===Zb&&(g=null);return a.get(f,{cache:b,transformResponse:g})["finally"](function(){e.totalPendingRequests--}).then(function(a){b.put(f,a.data);return a.data},function(a){if(!h)throw ga("tpload",f,a.status,a.statusText);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function tf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var h=[];m(a,function(a){var d= -da.element(a).data("$binding");d&&m(d,function(d){c?(new RegExp("(^|\\s)"+vd(b)+"(\\s|\\||$)")).test(d)&&h.push(a):-1!=d.indexOf(b)&&h.push(a)})});return h},findModels:function(a,b,c){for(var h=["ng-","data-ng-","ng\\:"],g=0;gb;b=Math.abs(b);var h=Infinity===b;if(!h&&!isFinite(b))return"";var g=b+"",l="",k=!1,n=[];h&&(l="\u221e");if(!h&&-1!==g.indexOf("e")){var p=g.match(/([\d\.]+)e(-?)(\d+)/);p&&"-"==p[2]&&p[3]>e+1?b=0:(l=g,k=!0)}if(h||k)0b&&(l=b.toFixed(e),b=parseFloat(l),l=l.replace(hc,d));else{h=(g.split(hc)[1]||"").length;v(e)&&(e=Math.min(Math.max(a.minFrac,h),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var h=(""+b).split(hc),g=h[0],h=h[1]||"",p=0, -r=a.lgSize,t=a.gSize;if(g.length>=r+t)for(p=g.length-r,k=0;kb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Gb(e,a,d)}}function Hb(b,a){return function(c,d){var e=c["get"+b](),f=sb(a?"SHORT"+b:b);return d[f][e]}}function Ed(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function Fd(b){return function(a){var c=Ed(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Gb(a,b)}}function ic(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function Ad(b){function a(a){var b;if(b= -a.match(c)){a=new Date(0);var f=0,h=0,g=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Y(b[9]+b[10]),h=Y(b[9]+b[11]));g.call(a,Y(b[1]),Y(b[2])-1,Y(b[3]));f=Y(b[4]||0)-f;h=Y(b[5]||0)-h;g=Y(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,h,g,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var h="",g=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;G(c)&&(c= -fg.test(c)?Y(c):a(c));V(c)&&(c=new Date(c));if(!ea(c)||!isFinite(c.getTime()))return c;for(;e;)(k=gg.exec(e))?(g=db(g,k,1),e=g.pop()):(g.push(e),e=null);var n=c.getTimezoneOffset();f&&(n=wc(f,c.getTimezoneOffset()),c=Ob(c,f,!0));m(g,function(a){l=hg[a];h+=l?l(c,b.DATETIME_FORMATS,n):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return h}}function ag(){return function(b,a){v(a)&&(a=2);return eb(b,a)}}function bg(){return function(b,a,c){a=Infinity===Math.abs(Number(a))?Number(a):Y(a);if(isNaN(a))return b; -V(b)&&(b=b.toString());if(!J(b)&&!G(b))return b;c=!c||isNaN(c)?0:Y(c);c=0>c&&c>=-b.length?b.length+c:c;return 0<=a?b.slice(c,c+a):0===c?b.slice(a,b.length):b.slice(Math.max(0,c+a),c)}}function Cd(b){function a(a,c){c=c?-1:1;return a.map(function(a){var d=1,g=$a;if(x(a))g=a;else if(G(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))d="-"==a.charAt(0)?-1:1,a=a.substring(1);if(""!==a&&(g=b(a),g.constant))var l=g(),g=function(a){return a[l]}}return{get:g,descending:d*c}})}function c(a){switch(typeof a){case "number":case "boolean":case "string":return!0; -default:return!1}}return function(b,e,f){if(!Da(b))return b;J(e)||(e=[e]);0===e.length&&(e=["+"]);var h=a(e,f);h.push({get:function(){return{}},descending:f?-1:1});b=Array.prototype.map.call(b,function(a,b){return{value:a,predicateValues:h.map(function(d){var e=d.get(a);d=typeof e;if(null===e)d="string",e="null";else if("string"===d)e=e.toLowerCase();else if("object"===d)a:{if("function"===typeof e.valueOf&&(e=e.valueOf(),c(e)))break a;if(qc(e)&&(e=e.toString(),c(e)))break a;e=b}return{value:e,type:d}})}}); -b.sort(function(a,b){for(var c=0,d=0,e=h.length;db||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){var b=d.$isEmpty(d.$viewValue)? -"":d.$viewValue;a.val()!==b&&a.val(b)}}function Kb(b,a){return function(c,d){var e,f;if(ea(c))return c;if(G(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(ig.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},m(e,function(b,c){c=s};h.$observe("min",function(a){s=r(a);g.$validate()})}if(A(h.max)||h.ngMax){var u;g.$validators.max=function(a){return!p(a)||v(u)||c(a)<=u};h.$observe("max",function(a){u=r(a);g.$validate()})}}}function Id(b,a,c,d){(d.$$hasNativeValidators=C(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?w:b})}function Jd(b,a,c,d,e){if(A(d)){b= -b(d);if(!b.constant)throw lb("constexpr",c,d);return b(a)}return e}function kc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,Cf=/<([\w:-]+)/,Df=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, -ma={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option;ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead;ma.th=ma.td;var Ra=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===X.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(Q).on("load",a))}, -toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:kg,sort:[].sort,splice:[].splice},Bb={};m("multiple selected checked disabled readOnly required open".split(" "),function(b){Bb[F(b)]=b});var Sc={};m("input select option textarea button form details".split(" "),function(b){Sc[b]=!0});var $c={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"}; -m({data:Vb,removeData:vb,hasData:function(b){for(var a in hb[b.ng339])return!0;return!1}},function(b,a){R[a]=b});m({data:Vb,inheritedData:Ab,scope:function(b){return B.data(b,"$scope")||Ab(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Pc,injector:function(b){return Ab(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:xb,css:function(b,a,c){a=gb(a);if(A(c))b.style[a]=c;else return b.style[a]}, -attr:function(b,a,c){var d=b.nodeType;if(d!==Pa&&2!==d&&8!==d)if(d=F(a),Bb[d])if(A(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||y).specified?d:w;else if(A(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?w:b},prop:function(b,a,c){if(A(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(v(b)){var d=a.nodeType;return d===pa||d===Pa?a.textContent:""}a.textContent=b}b.$dv="";return b}(), -val:function(b,a){if(v(a)){if(b.multiple&&"select"===wa(b)){var c=[];m(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(v(a))return b.innerHTML;ub(b,!0);b.innerHTML=a},empty:Qc},function(b,a){R.prototype[a]=function(a,d){var e,f,h=this.length;if(b!==Qc&&v(2==b.length&&b!==xb&&b!==Pc?a:d)){if(C(a)){for(e=0;e <= >= && || ! = |".split(" "),function(a){Lb[a]=!0});var rg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},ec=function(a){this.options=a};ec.prototype={constructor:ec,lex:function(a){this.text=a;this.index=0;for(this.tokens= -[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"=== -a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=A(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw Z("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">=");)a={type:s.BinaryExpression,operator:c.text, -left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()}, -primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=ha(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var c;c=this.expect("(","[",".");)"("===c.text?(a={type:s.CallExpression,callee:a,arguments:this.parseArguments()}, -this.consume(")")):"["===c.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===c.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var c={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.expression()); -while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},object:function(){var a=[],c;if("}"!==this.peekToken().text){do{if(this.peek("}"))break; -c={type:s.Property,kind:"init"};this.peek().constant?c.key=this.constant():this.peek().identifier?c.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");c.value=this.expression();a.push(c)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},throwError:function(a,c){throw Z("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw Z("ueoe",this.text);var c=this.expect(a); -c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},peekToken:function(){if(0===this.tokens.length)throw Z("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a];var h=a.text;if(h===c||h===d||h===e||h===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},constants:{"true":{type:s.Literal,value:!0}, -"false":{type:s.Literal,value:!1},"null":{type:s.Literal,value:null},undefined:{type:s.Literal,value:w},"this":{type:s.ThisExpression}}};sd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:c,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};U(e,d.$filter);var f="",h;this.stage="assign";if(h=qd(e))this.state.computing="assign",f=this.nextId(),this.recurse(h,f),this.return_(f),f="fn.assign="+this.generateFunction("assign", -"s,v,l");h=od(e.body);d.stage="inputs";m(h,function(a,c){var e="fn"+c;d.state[e]={vars:[],body:[],own:{}};d.state.computing=e;var f=d.nextId();d.recurse(a,f);d.return_(f);d.state.inputs.push(e);a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(e);f='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+f+this.watchFns()+"return fn;";f=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue", -"ensureSafeAssignContext","ifDefined","plus","text",f))(this.$filter,Xa,Ba,ld,kd,md,Xf,nd,a);this.state=this.stage=w;f.literal=rd(e);f.constant=e.constant;return f},USE:"use",STRICT:"strict",watchFns:function(){var a=[],c=this.state.inputs,d=this;m(c,function(c){a.push("var "+c+"="+d.generateFunction(c,"s"))});c.length&&a.push("fn.inputs=["+c.join(",")+"];");return a.join("")},generateFunction:function(a,c){return"function("+c+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a= -[],c=this;m(this.state.filters,function(d,e){a.push(d+"=$filter("+c.escape(e)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,c,d,e,f,h){var g,l,k=this,n,p;e=e||y;if(!h&&A(a.watchId))c=c||this.nextId(),this.if_("i",this.lazyAssign(c,this.computedMember("i",a.watchId)),this.lazyRecurse(a,c,d,e,f,!0));else switch(a.type){case s.Program:m(a.body, -function(c,d){k.recurse(c.expression,w,w,function(a){l=a});d!==a.body.length-1?k.current().body.push(l,";"):k.return_(l)});break;case s.Literal:p=this.escape(a.value);this.assign(c,p);e(p);break;case s.UnaryExpression:this.recurse(a.argument,w,w,function(a){l=a});p=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,p);e(p);break;case s.BinaryExpression:this.recurse(a.left,w,w,function(a){g=a});this.recurse(a.right,w,w,function(a){l=a});p="+"===a.operator?this.plus(g,l):"-"===a.operator?this.ifDefined(g, -0)+a.operator+this.ifDefined(l,0):"("+g+")"+a.operator+"("+l+")";this.assign(c,p);e(p);break;case s.LogicalExpression:c=c||this.nextId();k.recurse(a.left,c);k.if_("&&"===a.operator?c:k.not(c),k.lazyRecurse(a.right,c));e(c);break;case s.ConditionalExpression:c=c||this.nextId();k.recurse(a.test,c);k.if_(c,k.lazyRecurse(a.alternate,c),k.lazyRecurse(a.consequent,c));e(c);break;case s.Identifier:c=c||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l", -a.name)+"?l:s"),d.computed=!1,d.name=a.name);Xa(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){f&&1!==f&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(c,k.nonComputedMember("s",a.name))})},c&&k.lazyAssign(c,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(c);e(c);break;case s.MemberExpression:g=d&&(d.context=this.nextId())|| -this.nextId();c=c||this.nextId();k.recurse(a.object,g,w,function(){k.if_(k.notNull(g),function(){if(a.computed)l=k.nextId(),k.recurse(a.property,l),k.getStringValue(l),k.addEnsureSafeMemberName(l),f&&1!==f&&k.if_(k.not(k.computedMember(g,l)),k.lazyAssign(k.computedMember(g,l),"{}")),p=k.ensureSafeObject(k.computedMember(g,l)),k.assign(c,p),d&&(d.computed=!0,d.name=l);else{Xa(a.property.name);f&&1!==f&&k.if_(k.not(k.nonComputedMember(g,a.property.name)),k.lazyAssign(k.nonComputedMember(g,a.property.name), -"{}"));p=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))p=k.ensureSafeObject(p);k.assign(c,p);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(c,"undefined")});e(c)},!!f);break;case s.CallExpression:c=c||this.nextId();a.filter?(l=k.filter(a.callee.name),n=[],m(a.arguments,function(a){var c=k.nextId();k.recurse(a,c);n.push(c)}),p=l+"("+n.join(",")+")",k.assign(c,p),e(c)):(l=k.nextId(),g={},n=[],k.recurse(a.callee,l,g,function(){k.if_(k.notNull(l), -function(){k.addEnsureSafeFunction(l);m(a.arguments,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),p=k.member(g.context,g.name,g.computed)+"("+n.join(",")+")"):p=l+"("+n.join(",")+")";p=k.ensureSafeObject(p);k.assign(c,p)},function(){k.assign(c,"undefined")});e(c)}));break;case s.AssignmentExpression:l=this.nextId();g={};if(!pd(a.left))throw Z("lval");this.recurse(a.left,w,g,function(){k.if_(k.notNull(g.context), -function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);p=k.member(g.context,g.name,g.computed)+a.operator+l;k.assign(c,p);e(c||p)})},1);break;case s.ArrayExpression:n=[];m(a.elements,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(a)})});p="["+n.join(",")+"]";this.assign(c,p);e(p);break;case s.ObjectExpression:n=[];m(a.properties,function(a){k.recurse(a.value,k.nextId(),w,function(c){n.push(k.escape(a.key.type=== -s.Identifier?a.key.name:""+a.key.value)+":"+c)})});p="{"+n.join(",")+"}";this.assign(c,p);e(p);break;case s.ThisExpression:this.assign(c,"s");e("s");break;case s.NGValueParameter:this.assign(c,"v"),e("v")}},getHasOwnProperty:function(a,c){var d=a+"."+c,e=this.current().own;e.hasOwnProperty(d)||(e[d]=this.nextId(!1,a+"&&("+this.escape(c)+" in "+a+")"));return e[d]},assign:function(a,c){if(a)return this.current().body.push(a,"=",c,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]= -this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,c){return"ifDefined("+a+","+this.escape(c)+")"},plus:function(a,c){return"plus("+a+","+c+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,c,d){if(!0===a)c();else{var e=this.current().body;e.push("if(",a,"){");c();e.push("}");d&&(e.push("else{"),d(),e.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,c){return a+"."+c},computedMember:function(a, -c){return a+"["+c+"]"},member:function(a,c,d){return d?this.computedMember(a,c):this.nonComputedMember(a,c)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+ -a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+",text)")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,c,d,e,f,h){var g=this;return function(){g.recurse(a,c,d,e,f,h)}},lazyAssign:function(a,c){var d=this;return function(){d.assign(a,c)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g, -stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(G(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(V(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Z("esc");},nextId:function(a,c){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(c?"="+c:""));return d},current:function(){return this.state[this.state.computing]}}; -td.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=c;U(e,d.$filter);var f,h;if(f=qd(e))h=this.recurse(f);f=od(e.body);var g;f&&(g=[],m(f,function(a,c){var e=d.recurse(a);a.input=e;g.push(e);a.watchId=c}));var l=[];m(e.body,function(a){l.push(d.recurse(a.expression))});f=0===e.body.length?function(){}:1===e.body.length?l[0]:function(a,c){var d;m(l,function(e){d=e(a,c)});return d};h&&(f.assign=function(a,c,d){return h(a,d,c)});g&&(f.inputs= -g);f.literal=rd(e);f.constant=e.constant;return f},recurse:function(a,c,d){var e,f,h=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,c);case s.UnaryExpression:return f=this.recurse(a.argument),this["unary"+a.operator](f,c);case s.BinaryExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case s.LogicalExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e, -f,c);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),c);case s.Identifier:return Xa(a.name,h.expression),h.identifier(a.name,h.expensiveChecks||Fb(a.name),c,d,h.expression);case s.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Xa(a.property.name,h.expression),f=a.property.name),a.computed&&(f=this.recurse(a.property)),a.computed?this.computedMember(e,f,c,d,h.expression):this.nonComputedMember(e,f, -h.expensiveChecks,c,d,h.expression);case s.CallExpression:return g=[],m(a.arguments,function(a){g.push(h.recurse(a))}),a.filter&&(f=this.$filter(a.callee.name)),a.filter||(f=this.recurse(a.callee,!0)),a.filter?function(a,d,e,h){for(var r=[],m=0;m":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)>c(e,f,h,g);return d?{value:e}:e}},"binary<=":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)<=c(e,f,h,g);return d?{value:e}:e}},"binary>=":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)>=c(e,f,h,g);return d?{value:e}:e}},"binary&&":function(a,c,d){return function(e, -f,h,g){e=a(e,f,h,g)&&c(e,f,h,g);return d?{value:e}:e}},"binary||":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)||c(e,f,h,g);return d?{value:e}:e}},"ternary?:":function(a,c,d,e){return function(f,h,g,l){f=a(f,h,g,l)?c(f,h,g,l):d(f,h,g,l);return e?{value:f}:f}},value:function(a,c){return function(){return c?{context:w,name:w,value:a}:a}},identifier:function(a,c,d,e,f){return function(h,g,l,k){h=g&&a in g?g:h;e&&1!==e&&h&&!h[a]&&(h[a]={});g=h?h[a]:w;c&&Ba(g,f);return d?{context:h,name:a,value:g}: -g}},computedMember:function(a,c,d,e,f){return function(h,g,l,k){var n=a(h,g,l,k),p,m;null!=n&&(p=c(h,g,l,k),p=kd(p),Xa(p,f),e&&1!==e&&n&&!n[p]&&(n[p]={}),m=n[p],Ba(m,f));return d?{context:n,name:p,value:m}:m}},nonComputedMember:function(a,c,d,e,f,h){return function(g,l,k,n){g=a(g,l,k,n);f&&1!==f&&g&&!g[c]&&(g[c]={});l=null!=g?g[c]:w;(d||Fb(c))&&Ba(l,h);return e?{context:g,name:c,value:l}:l}},inputs:function(a,c){return function(d,e,f,h){return h?h[c]:a(d,e,f)}}};var fc=function(a,c,d){this.lexer= -a;this.$filter=c;this.options=d;this.ast=new s(this.lexer);this.astCompiler=d.csp?new td(this.ast,c):new sd(this.ast,c)};fc.prototype={constructor:fc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};fa();fa();var Yf=Object.prototype.valueOf,Ca=I("$sce"),oa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ga=I("$compile"),$=X.createElement("a"),xd=Aa(Q.location.href);yd.$inject=["$document"];Kc.$inject=["$provide"];zd.$inject=["$locale"];Bd.$inject= -["$locale"];var hc=".",hg={yyyy:aa("FullYear",4),yy:aa("FullYear",2,0,!0),y:aa("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:aa("Month",2,1),M:aa("Month",1,1),dd:aa("Date",2),d:aa("Date",1),HH:aa("Hours",2),H:aa("Hours",1),hh:aa("Hours",2,-12),h:aa("Hours",1,-12),mm:aa("Minutes",2),m:aa("Minutes",1),ss:aa("Seconds",2),s:aa("Seconds",1),sss:aa("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a,c,d){a=-1*d;return a=(0<= -a?"+":"")+(Gb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},gg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,fg=/^\-?\d+$/;Ad.$inject=["$locale"];var cg=qa(F),dg=qa(sb);Cd.$inject=["$parse"];var he=qa({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"=== -va.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),tb={};m(Bb,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=ya("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});tb[e]=function(){return{restrict:"A",priority:100,link:f}}}});m($c,function(a,c){tb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(jg))){f.$set("ngPattern", -new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});m(["src","srcset","href"],function(a){var c=ya("ng-"+a);tb[c]=function(){return{priority:99,link:function(d,e,f){var h=a,g=a;"href"===a&&"[object SVGAnimatedString]"===va.call(e.prop("href"))&&(g="xlinkHref",f.$attr[g]="xlink:href",h=null);f.$observe(c,function(c){c?(f.$set(g,c),Wa&&h&&e.prop(h,f[g])):"href"===a&&f.$set(g,null)})}}}});var Ib={$addControl:y,$$renameControl:function(a,c){a.$name=c},$removeControl:y,$setValidity:y, -$setDirty:y,$setPristine:y,$setSubmitted:y};Gd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Od=function(a){return["$timeout","$parse",function(c,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||y}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Gd,compile:function(d,h){d.addClass(Ya).addClass(mb);var g=h.name?"name":a&&h.ngForm?"ngForm":!1;return{pre:function(a,d,f,h){var m=h[0];if(!("action"in f)){var t=function(c){a.$apply(function(){m.$commitViewValue(); -m.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",t,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",t,!1)},0,!1)})}(h[1]||m.$$parentForm).$addControl(m);var s=g?e(m.$name):y;g&&(s(a,m),f.$observe(g,function(c){m.$name!==c&&(s(a,w),m.$$parentForm.$$renameControl(m,c),s=e(m.$name),s(a,m))}));d.on("$destroy",function(){m.$$parentForm.$removeControl(m);s(a,w);P(m,Ib)})}}}}}]},ie=Od(),ve=Od(!0),ig=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/, -sg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,tg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ug=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Pd=/^(\d{4})-(\d{2})-(\d{2})$/,Qd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,lc=/^(\d{4})-W(\d\d)$/,Rd=/^(\d{4})-(\d\d)$/,Sd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Td={text:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e)},date:kb("date", -Pd,Kb(Pd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Qd,Kb(Qd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Sd,Kb(Sd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",lc,function(a,c){if(ea(a))return a;if(G(a)){lc.lastIndex=0;var d=lc.exec(a);if(d){var e=+d[1],f=+d[2],h=d=0,g=0,l=0,k=Ed(e),f=7*(f-1);c&&(d=c.getHours(),h=c.getMinutes(),g=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,h,g,l)}}return NaN},"yyyy-Www"), -month:kb("month",Rd,Kb(Rd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,h){Id(a,c,d,e);jb(a,c,d,e,f,h);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:ug.test(a)?parseFloat(a):w});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!V(a))throw lb("numfmt",a);a=a.toString()}return a});if(A(d.min)||d.ngMin){var g;e.$validators.min=function(a){return e.$isEmpty(a)||v(g)||a>=g};d.$observe("min",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));g=V(a)&&!isNaN(a)?a:w;e.$validate()})}if(A(d.max)|| -d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||v(l)||a<=l};d.$observe("max",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));l=V(a)&&!isNaN(a)?a:w;e.$validate()})}},url:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||sg.test(d)}},email:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||tg.test(d)}},radio:function(a,c, -d,e){v(d.name)&&c.attr("name",++nb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,h,g,l){var k=Jd(l,a,"ngTrueValue",d.ngTrueValue,!0),n=Jd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ka(a, -k)});e.$parsers.push(function(a){return a?k:n})},hidden:y,button:y,submit:y,reset:y,file:y},Ec=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,h,g,l){l[0]&&(Td[F(g.type)]||Td.text)(f,h,g,l[0],c,a,d,e)}}}}],vg=/^(true|false|\d+)$/,Ne=function(){return{restrict:"A",priority:100,compile:function(a,c){return vg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value", -a)})}}}},ne=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=v(a)?"":a})}}}}],pe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,h){d=a(f.attr(h.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];h.$observe("ngBindTemplate",function(a){f.textContent=v(a)?"":a})}}}}],oe=["$sce","$parse", -"$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var h=c(f.ngBindHtml),g=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(g,function(){e.html(a.getTrustedHtml(h(c))||"")})}}}}],Me=qa({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),qe=kc("",!0),se=kc("Odd",0),re=kc("Even",1),te=Na({compile:function(a,c){c.$set("ngCloak", -w);a.removeClass("ng-cloak")}}),ue=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Jc={},wg={blur:!0,focus:!0};m("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Jc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,h){var g=d(h[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){g(c,{$event:d})}; -wg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var xe=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,h){var g,l,k;c.$watch(e.ngIf,function(c){c?l||h(function(c,f){l=f;c[c.length++]=X.createComment(" end ngIf: "+e.ngIf+" ");g={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),g&&(k=rb(g.clone),a.leave(k).then(function(){k=null}),g=null))})}}}],ye=["$templateRequest","$anchorScroll", -"$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:da.noop,compile:function(e,f){var h=f.ngInclude||f.src,g=f.onload||"",l=f.autoscroll;return function(e,f,m,r,t){var s=0,v,u,q,z=function(){u&&(u.remove(),u=null);v&&(v.$destroy(),v=null);q&&(d.leave(q).then(function(){u=null}),u=q,q=null)};e.$watch(h,function(h){var m=function(){!A(l)||l&&!e.$eval(l)||c()},p=++s;h?(a(h,!0).then(function(a){if(p===s){var c=e.$new();r.template=a;a=t(c,function(a){z(); -d.enter(a,null,f).then(m)});v=c;q=a;v.$emit("$includeContentLoaded",h);e.$eval(g)}},function(){p===s&&(z(),e.$emit("$includeContentError",h))}),e.$emit("$includeContentRequested",h)):(z(),r.template=null)})}}}}],Pe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Mc(f.template,X).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ze=Na({priority:450, -compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Le=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",h="false"!==d.ngTrim,g=h?T(f):f;e.$parsers.push(function(a){if(!v(a)){var c=[];a&&m(a.split(g),function(a){a&&c.push(h?T(a):a)});return c}});e.$formatters.push(function(a){return J(a)?a.join(f):w});e.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",Kd="ng-invalid",Ya="ng-pristine",Jb="ng-dirty",Md= -"ng-pending",lb=I("ngModel"),xg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,h,g,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=w;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending= -w;this.$name=n(d.name||"",!1)(a);this.$$parentForm=Ib;var p=f(d.ngModel),r=p.assign,t=p,s=r,K=null,u,q=this;this.$$setOptions=function(a){if((q.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);x(d)&&(d=c(a));return d};s=function(a,c){x(p(a))?g(a,{$$$p:q.$modelValue}):r(a,q.$modelValue)}}else if(!p.assign)throw lb("nonassign",d.ngModel,xa(e));};this.$render=y;this.$isEmpty=function(a){return v(a)||""===a||null===a||a!==a};var z=0;Hd({ctrl:this,$element:e, -set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},$animate:h});this.$setPristine=function(){q.$dirty=!1;q.$pristine=!0;h.removeClass(e,Jb);h.addClass(e,Ya)};this.$setDirty=function(){q.$dirty=!0;q.$pristine=!1;h.removeClass(e,Ya);h.addClass(e,Jb);q.$$parentForm.$setDirty()};this.$setUntouched=function(){q.$touched=!1;q.$untouched=!0;h.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){q.$touched=!0;q.$untouched=!1;h.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue= -function(){g.cancel(K);q.$viewValue=q.$$lastCommittedViewValue;q.$render()};this.$validate=function(){if(!V(q.$modelValue)||!isNaN(q.$modelValue)){var a=q.$$rawModelValue,c=q.$valid,d=q.$modelValue,e=q.$options&&q.$options.allowInvalid;q.$$runValidators(a,q.$$lastCommittedViewValue,function(f){e||c===f||(q.$modelValue=f?a:w,q.$modelValue!==d&&q.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d){function e(){var d=!0;m(q.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d? -!0:(m(q.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;m(q.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!x(k.then))throw lb("$asyncValidators",k);g(h,w);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},y):h(!0)}function g(a,c){l===z&&q.$setValidity(a,c)}function h(a){l===z&&d(a)}z++;var l=z;(function(){var a=q.$$parserName||"parse";if(v(u))g(a,null);else return u||(m(q.$validators,function(a,c){g(c,null)}),m(q.$asyncValidators, -function(a,c){g(c,null)})),g(a,u),u;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=q.$viewValue;g.cancel(K);if(q.$$lastCommittedViewValue!==a||""===a&&q.$$hasNativeValidators)q.$$lastCommittedViewValue=a,q.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=q.$$lastCommittedViewValue;if(u=v(c)?w:!0)for(var d=0;df||e.$isEmpty(c)||c.length<=f}}}}},Hc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=Y(a)||0;e.$validate()}); -e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};Q.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ce(),ee(da),da.module("ngLocale",[],["$provide",function(a){function c(a){a+="";var c=a.indexOf(".");return-1==c?0:a.length-c-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "), -SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3, -maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",pluralCat:function(a,e){var f=a|0,h=e;w===h&&(h=Math.min(c(a),3));Math.pow(10,h);return 1==f&&0==h?"one":"other"}})}]),B(X).ready(function(){Zd(X,zc)}))})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); +(function(C){'use strict';function N(a){return function(){var b=arguments[0],d;d="["+(a?a+":":"")+b+"] http://errors.angularjs.org/1.5.8/"+(a?a+"/":"")+b;for(b=1;b").append(a).html();try{return a[0].nodeType===Ma?Q(d):d.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+Q(b)})}catch(c){return Q(d)}}function zc(a){try{return decodeURIComponent(a)}catch(b){}}function Ac(a){var b={};q((a||"").split("&"),function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"), +c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=zc(e),w(e)&&(f=w(f)?zc(f):!0,ua.call(b,e)?L(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Tb(a){var b=[];q(a,function(a,c){L(a)?q(a,function(a){b.push(ea(c,!0)+(!0===a?"":"="+ea(a,!0)))}):b.push(ea(c,!0)+(!0===a?"":"="+ea(a,!0)))});return b.length?b.join("&"):""}function qb(a){return ea(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ea(a,b){return encodeURIComponent(a).replace(/%40/gi, +"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function ee(a,b){var d,c,e=Na.length;for(c=0;c/,">"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=cb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", +d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;C&&e.test(C.name)&&(d.debugInfoEnabled=!0,C.name=C.name.replace(e,""));if(C&&!f.test(C.name))return c();C.name=C.name.replace(f,"");ca.resumeBootstrap=function(a){q(a,function(a){b.push(a)});return c()};z(ca.resumeDeferredBootstrap)&&ca.resumeDeferredBootstrap()}function ge(){C.name="NG_ENABLE_DEBUG_INFO!"+C.name;C.location.reload()}function he(a){a=ca.element(a).injector();if(!a)throw xa("test");return a.get("$$testability")} +function Cc(a,b){b=b||"_";return a.replace(ie,function(a,c){return(c?b:"")+a.toLowerCase()})}function je(){var a;if(!Dc){var b=rb();(qa=y(b)?C.jQuery:b?C[b]:void 0)&&qa.fn.on?(F=qa,S(qa.fn,{scope:Oa.scope,isolateScope:Oa.isolateScope,controller:Oa.controller,injector:Oa.injector,inheritedData:Oa.inheritedData}),a=qa.cleanData,qa.cleanData=function(b){for(var c,e=0,f;null!=(f=b[e]);e++)(c=qa._data(f,"events"))&&c.$destroy&&qa(f).triggerHandler("$destroy");a(b)}):F=O;ca.element=F;Dc=!0}}function sb(a, +b,d){if(!a)throw xa("areq",b||"?",d||"required");return a}function Pa(a,b,d){d&&L(a)&&(a=a[a.length-1]);sb(z(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Qa(a,b){if("hasOwnProperty"===a)throw xa("badname",b);}function Ec(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g")+c[2];for(c=c[0];c--;)d=d.lastChild;f=$a(f,d.childNodes);d=e.firstChild; +d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";q(f,function(a){e.appendChild(a)});return e}function Pc(a,b){var d=a.parentNode;d&&d.replaceChild(b,a);b.appendChild(a)}function O(a){if(a instanceof O)return a;var b;G(a)&&(a=W(a),b=!0);if(!(this instanceof O)){if(b&&"<"!=a.charAt(0))throw Wb("nosel");return new O(a)}if(b){b=C.document;var d;a=(d=Of.exec(a))?[b.createElement(d[1])]:(d=Oc(a,b))?d.childNodes:[]}Qc(this,a)}function Xb(a){return a.cloneNode(!0)}function wb(a, +b){b||eb(a);if(a.querySelectorAll)for(var d=a.querySelectorAll("*"),c=0,e=d.length;c=Ea?!1:"function"===typeof a&&/^(?:class\b|constructor\()/.test(Function.prototype.toString.call(a)+" ");return d?(c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d= +L(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d,a))},get:d,annotate:cb.$$annotate,has:function(b){return n.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var k={},l=[],m=new Ra([],!0),n={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,ha(b),!1)}),constant:d(function(a,b){Qa(a,"constant");n[a]=b;u[a]=b}),decorator:function(a,b){var c= +p.get(a+"Provider"),d=c.$get;c.$get=function(){var a=B.invoke(d,c);return B.invoke(b,null,{$delegate:a})}}}},p=n.$injector=h(n,function(a,b){ca.isString(b)&&l.push(b);throw Ha("unpr",l.join(" <- "));}),u={},R=h(u,function(a,b){var c=p.get(a+"Provider",b);return B.invoke(c.$get,c,void 0,a)}),B=R;n.$injectorProvider={$get:ha(R)};var r=g(a),B=R.get("$injector");B.strictDi=b;q(r,function(a){a&&B.invoke(a)});return B}function Xe(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window", +"$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===wa(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;z(c)?c=c():Qb(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):T(c)||(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=G(a)?a:d.hash();var b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"=== +a&&f(null):f(null)}var h=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a===b&&""===a||Qf(function(){c.$evalAsync(g)})});return g}]}function gb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;L(a)&&(a=a.join(" "));L(b)&&(b=b.join(" "));return a+" "+b}function Zf(a){G(a)&&(a=a.split(" "));var b=U();q(a,function(a){a.length&&(b[a]=!0)});return b}function Ia(a){return D(a)?a:{}}function $f(a,b,d,c){function e(a){try{a.apply(null,va.call(arguments,1))}finally{if(R--,0===R)for(;B.length;)try{B.pop()()}catch(b){d.error(b)}}} +function f(){t=null;g();h()}function g(){r=K();r=y(r)?null:r;na(r,E)&&(r=E);E=r}function h(){if(v!==k.url()||J!==r)v=k.url(),J=r,q(M,function(a){a(k.url(),r)})}var k=this,l=a.location,m=a.history,n=a.setTimeout,p=a.clearTimeout,u={};k.isMock=!1;var R=0,B=[];k.$$completeOutstandingRequest=e;k.$$incOutstandingRequestCount=function(){R++};k.notifyWhenNoOutstandingRequests=function(a){0===R?a():B.push(a)};var r,J,v=l.href,fa=b.find("base"),t=null,K=c.history?function(){try{return m.state}catch(a){}}: +A;g();J=r;k.url=function(b,d,e){y(e)&&(e=null);l!==a.location&&(l=a.location);m!==a.history&&(m=a.history);if(b){var f=J===e;if(v===b&&(!c.history||f))return k;var h=v&&Ja(v)===Ja(b);v=b;J=e;!c.history||h&&f?(h||(t=b),d?l.replace(b):h?(d=l,e=b.indexOf("#"),e=-1===e?"":b.substr(e),d.hash=e):l.href=b,l.href!==b&&(t=b)):(m[d?"replaceState":"pushState"](e,"",b),g(),J=r);t&&(t=b);return k}return t||l.href.replace(/%27/g,"'")};k.state=function(){return r};var M=[],H=!1,E=null;k.onUrlChange=function(b){if(!H){if(c.history)F(a).on("popstate", +f);F(a).on("hashchange",f);H=!0}M.push(b);return b};k.$$applicationDestroyed=function(){F(a).off("hashchange popstate",f)};k.$$checkUrlChange=h;k.baseHref=function(){var a=fa.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};k.defer=function(a,b){var c;R++;c=n(function(){delete u[c];e(a)},b||0);u[c]=!0;return c};k.defer.cancel=function(a){return u[a]?(delete u[a],p(a),e(A),!0):!1}}function df(){this.$get=["$window","$log","$sniffer","$document",function(a,b,d,c){return new $f(a,c,b, +d)}]}function ef(){this.$get=function(){function a(a,c){function e(a){a!=n&&(p?p==a&&(p=a.n):p=a,f(a.n,a.p),f(a,n),n=a,n.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw N("$cacheFactory")("iid",a);var g=0,h=S({},c,{id:a}),k=U(),l=c&&c.capacity||Number.MAX_VALUE,m=U(),n=null,p=null;return b[a]={put:function(a,b){if(!y(b)){if(ll&&this.remove(p.key);return b}},get:function(a){if(l";b=pa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function x(a,b){try{a.addClass(b)}catch(c){}}function aa(a,b,c,d,e){a instanceof F||(a=F(a));for(var f=/\S+/,g=0,h=a.length;g< +h;g++){var k=a[g];k.nodeType===Ma&&k.nodeValue.match(f)&&Pc(k,a[g]=C.document.createElement("span"))}var l=s(a,b,a,c,d,e);aa.$$addScopeClass(a);var m=null;return function(b,c,d){sb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var f=d.parentBoundTranscludeFn,g=d.transcludeControllers;d=d.futureParentElement;f&&f.$$boundTransclude&&(f=f.$$boundTransclude);m||(m=(d=d&&d[0])?"foreignobject"!==wa(d)&&ma.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==m?F(da(m,F("
").append(a).html())): +c?Oa.clone.call(a):a;if(g)for(var h in g)d.data("$"+h+"Controller",g[h].instance);aa.$$addScopeInfo(d,b);c&&c(d,b);l&&l(b,d,d,f);return d}}function s(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,r,v;if(n)for(v=Array(c.length),m=0;mx.priority)break;if(w=x.scope)x.templateUrl||(D(w)?(X("new/isolated scope",u||r,x,t),u=x):X("new/isolated scope",u,x,t)),r=r||x;I=x.name;if(!Fa&&(x.replace&&(x.templateUrl||x.template)||x.transclude&& +!x.$$tlb)){for(w=A+1;Fa=a[w++];)if(Fa.transclude&&!Fa.$$tlb||Fa.replace&&(Fa.templateUrl||Fa.template)){za=!0;break}Fa=!0}!x.templateUrl&&x.controller&&(w=x.controller,v=v||U(),X("'"+I+"' controller",v[I],x,t),v[I]=x);if(w=x.transclude)if(M=!0,x.$$tlb||(X("transclusion",E,x,t),E=x),"element"==w)fa=!0,n=x.priority,P=t,t=d.$$element=F(aa.$$createComment(I,d[I])),b=t[0],ea(f,va.call(P,0),b),P[0].$$parentNode=P[0].parentNode,K=ac(za,P,e,n,g&&g.name,{nonTlbTranscludeDirective:E});else{var oa=U();P=F(Xb(b)).contents(); +if(D(w)){P=[];var Q=U(),O=U();q(w,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Q[a]=b;oa[b]=null;O[b]=c});q(t.contents(),function(a){var b=Q[Aa(wa(a))];b?(O[b]=!0,oa[b]=oa[b]||[],oa[b].push(a)):P.push(a)});q(O,function(a,b){if(!a)throw ga("reqslot",b);});for(var V in oa)oa[V]&&(oa[V]=ac(za,oa[V],e))}t.empty();K=ac(za,P,e,void 0,void 0,{needsNewScope:x.$$isolateScope||x.$$newScope});K.$$slots=oa}if(x.template)if(B=!0,X("template",H,x,t),H=x,w=z(x.template)?x.template(t,d):x.template, +w=xa(w),x.replace){g=x;P=Vb.test(w)?$c(da(x.templateNamespace,W(w))):[];b=P[0];if(1!=P.length||1!==b.nodeType)throw ga("tplrt",I,"");ea(f,t,b);C={$attr:{}};w=$b(b,[],C);var Z=a.splice(A+1,a.length-(A+1));(u||r)&&T(w,u,r);a=a.concat(w).concat(Z);$(d,C);C=a.length}else t.html(w);if(x.templateUrl)B=!0,X("template",H,x,t),H=x,x.replace&&(g=x),p=ba(a.splice(A,a.length-A),t,d,f,M&&K,h,k,{controllerDirectives:v,newScopeDirective:r!==x&&r,newIsolateScopeDirective:u,templateDirective:H,nonTlbTranscludeDirective:E}), +C=a.length;else if(x.compile)try{s=x.compile(t,d,K);var Y=x.$$originalDirective||x;z(s)?m(null,ab(Y,s),G,hb):s&&m(ab(Y,s.pre),ab(Y,s.post),G,hb)}catch(ca){c(ca,ya(t))}x.terminal&&(p.terminal=!0,n=Math.max(n,x.priority))}p.scope=r&&!0===r.scope;p.transcludeOnThisElement=M;p.templateOnThisElement=B;p.transclude=K;l.hasElementTranscludeDirective=fa;return p}function ib(a,b,c,d){var e;if(G(b)){var f=b.match(l);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&& +e.instance;if(!e){var h="$"+b+"Controller";e=g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw ga("ctreq",b,a);}else if(L(b))for(e=[],g=0,f=b.length;gp.priority)&&-1!=p.restrict.indexOf(g)){l&&(p=Rb(p,{$$start:l,$$end:m}));if(!p.$$bindings){var u=p,v=p,x=p.name,H={isolateScope:null,bindToController:null};D(v.scope)&&(!0===v.bindToController?(H.bindToController=d(v.scope,x,!0),H.isolateScope={}): +H.isolateScope=d(v.scope,x,!1));D(v.bindToController)&&(H.bindToController=d(v.bindToController,x,!0));if(D(H.bindToController)){var E=v.controller,M=v.controllerAs;if(!E)throw ga("noctrl",x);if(!Xc(E,M))throw ga("noident",x);}var t=u.$$bindings=H;D(t.isolateScope)&&(p.$$isolateBindings=t.isolateScope)}b.push(p);k=p}}catch(I){c(I)}}return k}function V(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function ha(a,b){if("srcdoc"==b)return M.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!= +c&&("src"==b||"ngSrc"==b))return M.RESOURCE_URL}function ia(a,c,d,e,f){var g=ha(a,e);f=k[e]||f;var h=b(d,!0,g,f);if(h){if("multiple"===e&&"select"===wa(a))throw ga("selmulti",ya(a));c.push({priority:100,compile:function(){return{pre:function(a,c,k){c=k.$$observers||(k.$$observers=U());if(m.test(e))throw ga("nodomevents");var l=k[e];l!==d&&(h=l&&b(l,!0,g,f),d=l);h&&(k[e]=h(a),(c[e]||(c[e]=[])).$$inter=!0,(k.$$observers&&k.$$observers[e].$$scope||a).$watch(h,function(a,b){"class"===e&&a!=b?k.$updateClass(a, +b):k.$set(e,a)}))}}}})}}function ea(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=b)return a;for(;b--;)8===a[b].nodeType&&bg.call(a,b,1);return a}function Xc(a,b){if(b&&G(b))return b;if(G(a)){var d=cd.exec(a);if(d)return d[3]}}function ff(){var a={},b=!1;this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,c){Qa(b,"controller");D(b)?S(a,b):a[b]=c};this.allowGlobals=function(){b=!0};this.$get=["$injector", +"$window",function(d,c){function e(a,b,c,d){if(!a||!D(a.$scope))throw N("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,k){var l,m,n;h=!0===h;k&&G(k)&&(n=k);if(G(f)){k=f.match(cd);if(!k)throw cg("ctrlfmt",f);m=k[1];n=n||k[3];f=a.hasOwnProperty(m)?a[m]:Ec(g.$scope,m,!0)||(b?Ec(c,m,!0):void 0);Pa(f,m,!0)}if(h)return h=(L(f)?f[f.length-1]:f).prototype,l=Object.create(h||null),n&&e(g,n,l,m||f.name),S(function(){var a=d.invoke(f,l,g,m);a!==l&&(D(a)||z(a))&&(l=a,n&&e(g,n,l,m||f.name));return l}, +{instance:l,identifier:n});l=d.instantiate(f,g,m);n&&e(g,n,l,m||f.name);return l}}]}function gf(){this.$get=["$window",function(a){return F(a.document)}]}function hf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,arguments)}}]}function cc(a){return D(a)?da(a)?a.toISOString():bb(a):a}function nf(){this.$get=function(){return function(a){if(!a)return"";var b=[];tc(a,function(a,c){null===a||y(a)||(L(a)?q(a,function(a){b.push(ea(c)+"="+ea(cc(a)))}):b.push(ea(c)+"="+ea(cc(a))))}); +return b.join("&")}}}function of(){this.$get=function(){return function(a){function b(a,e,f){null===a||y(a)||(L(a)?q(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!da(a)?tc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):d.push(ea(e)+"="+ea(cc(a))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function dc(a,b){if(G(a)){var d=a.replace(dg,"").trim();if(d){var c=b("Content-Type");(c=c&&0===c.indexOf(dd))||(c=(c=d.match(eg))&&fg[c[0]].test(d));c&&(a=xc(d))}}return a}function ed(a){var b= +U(),d;G(a)?q(a.split("\n"),function(a){d=a.indexOf(":");var e=Q(W(a.substr(0,d)));a=W(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&q(a,function(a,d){var f=Q(d),g=W(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function fd(a){var b;return function(d){b||(b=ed(a));return d?(d=b[Q(d)],void 0===d&&(d=null),d):b}}function gd(a,b,d,c){if(z(c))return c(a,b,d);q(c,function(c){a=c(a,b,d)});return a}function mf(){var a=this.defaults={transformResponse:[dc],transformRequest:[function(a){return D(a)&&"[object File]"!== +ma.call(a)&&"[object Blob]"!==ma.call(a)&&"[object FormData]"!==ma.call(a)?bb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ia(ec),put:ia(ec),patch:ia(ec)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=!0;this.useLegacyPromiseExtensions=function(a){return w(a)?(d=!!a,this):d};var c=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory", +"$rootScope","$q","$injector",function(e,f,g,h,k,l){function m(b){function c(a,b){for(var d=0,e=b.length;da?b:k.reject(b)}if(!D(b))throw N("$http")("badreq",b);if(!G(b.url))throw N("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest, +transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);g.headers=function(b){var c=a.headers,d=S({},b.headers),f,g,h,c=S({},c.common,c[Q(b.method)]);a:for(f in c){g=Q(f);for(h in d)if(Q(h)===g)continue a;d[f]=c[f]}return e(d,ia(b))}(b);g.method=ub(g.method);g.paramSerializer=G(g.paramSerializer)?l.get(g.paramSerializer):g.paramSerializer;var h=[],m=[],p=k.when(g);q(R,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&m.push(a.response, +a.responseError)});p=c(p,h);p=p.then(function(b){var c=b.headers,d=gd(b.data,fd(c),void 0,b.transformRequest);y(d)&&q(c,function(a,b){"content-type"===Q(b)&&delete c[b]});y(b.withCredentials)&&!y(a.withCredentials)&&(b.withCredentials=a.withCredentials);return n(b,d).then(f,f)});p=c(p,m);d?(p.success=function(a){Pa(a,"fn");p.then(function(b){a(b.data,b.status,b.headers,g)});return p},p.error=function(a){Pa(a,"fn");p.then(null,function(b){a(b.data,b.status,b.headers,g)});return p}):(p.success=hd("success"), +p.error=hd("error"));return p}function n(c,d){function g(a){if(a){var c={};q(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function l(a,c,d,e){function f(){n(c,a,d,e)}E&&(200<=a&&300>a?E.put(P,[a,c,ed(d),e]):E.remove(P));b?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function n(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?M.resolve:M.reject)({data:a,status:b,headers:fd(d),config:c,statusText:e})}function t(a){n(a.data,a.status,ia(a.headers()), +a.statusText)}function R(){var a=m.pendingRequests.indexOf(c);-1!==a&&m.pendingRequests.splice(a,1)}var M=k.defer(),H=M.promise,E,I,Da=c.headers,P=p(c.url,c.paramSerializer(c.params));m.pendingRequests.push(c);H.then(R,R);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(E=D(c.cache)?c.cache:D(a.cache)?a.cache:u);E&&(I=E.get(P),w(I)?I&&z(I.then)?I.then(t,t):L(I)?n(I[1],I[0],ia(I[2]),I[3]):n(I,200,{},"OK"):E.put(P,H));y(I)&&((I=id(c.url)?f()[c.xsrfCookieName||a.xsrfCookieName]: +void 0)&&(Da[c.xsrfHeaderName||a.xsrfHeaderName]=I),e(c.method,P,d,l,Da,c.timeout,c.withCredentials,c.responseType,g(c.eventHandlers),g(c.uploadEventHandlers)));return H}function p(a,b){0=l&&(v.resolve(r),q(fa.$$intervalId),delete g[fa.$$intervalId]);J||a.$apply()},k);g[fa.$$intervalId]=v;return fa}var g={};f.cancel=function(a){return a&&a.$$intervalId in g?(g[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId), +delete g[a.$$intervalId],!0):!1};return f}]}function fc(a){a=a.split("/");for(var b=a.length;b--;)a[b]=qb(a[b]);return a.join("/")}function jd(a,b){var d=Y(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=Z(d.port)||hg[d.protocol]||null}function kd(a,b){var d="/"!==a.charAt(0);d&&(a="/"+a);var c=Y(a);b.$$path=decodeURIComponent(d&&"/"===c.pathname.charAt(0)?c.pathname.substring(1):c.pathname);b.$$search=Ac(c.search);b.$$hash=decodeURIComponent(c.hash);b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path= +"/"+b.$$path)}function ka(a,b){if(0===b.lastIndexOf(a,0))return b.substr(a.length)}function Ja(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function jb(a){return a.replace(/(#.+)|#$/,"$1")}function gc(a,b,d){this.$$html5=!0;d=d||"";jd(a,this);this.$$parse=function(a){var d=ka(b,a);if(!G(d))throw Gb("ipthprfx",a,b);kd(d,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Tb(this.$$search),d=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=fc(this.$$path)+(a?"?"+ +a:"")+d;this.$$absUrl=b+this.$$url.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;w(f=ka(a,c))?(g=f,g=w(f=ka(d,f))?b+(ka("/",f)||f):a+g):w(f=ka(b,c))?g=b+f:b==c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function hc(a,b,d){jd(a,this);this.$$parse=function(c){var e=ka(a,c)||ka(b,c),f;y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(a=c,this.replace())):(f=ka(d,e),y(f)&&(f=e));kd(f,this);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;0===f.lastIndexOf(e, +0)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$compose=function(){var b=Tb(this.$$search),e=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=fc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+(this.$$url?d+this.$$url:"")};this.$$parseLinkUrl=function(b,d){return Ja(a)==Ja(b)?(this.$$parse(b),!0):!1}}function ld(a,b,d){this.$$html5=!0;hc.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a==Ja(c)? +f=c:(g=ka(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$compose=function(){var b=Tb(this.$$search),e=this.$$hash?"#"+qb(this.$$hash):"";this.$$url=fc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+d+this.$$url}}function Hb(a){return function(){return this[a]}}function md(a,b){return function(d){if(y(d))return this[a];this[a]=b(d);this.$$compose();return this}}function sf(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this): +a};this.html5Mode=function(a){return Ga(a)?(b.enabled=a,this):D(a)?(Ga(a.enabled)&&(b.enabled=a.enabled),Ga(a.requireBase)&&(b.requireBase=a.requireBase),Ga(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d,c,e,f,g){function h(a,b,d){var e=l.url(),f=l.$$state;try{c.url(a,b,d),l.$$state=c.state()}catch(g){throw l.url(e),l.$$state=f,g;}}function k(a,b){d.$broadcast("$locationChangeSuccess",l.absUrl(),a,l.$$state, +b)}var l,m;m=c.baseHref();var n=c.url(),p;if(b.enabled){if(!m&&b.requireBase)throw Gb("nobase");p=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(m||"/");m=e.history?gc:ld}else p=Ja(n),m=hc;var u=p.substr(0,Ja(p).lastIndexOf("/")+1);l=new m(p,u,"#"+a);l.$$parseLinkUrl(n,n);l.$$state=c.state();var R=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(b.rewriteLinks&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!=a.which&&2!=a.button){for(var e=F(a.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return; +var h=e.prop("href"),k=e.attr("href")||e.attr("xlink:href");D(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Y(h.animVal).href);R.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||!l.$$parseLinkUrl(h,k)||(a.preventDefault(),l.absUrl()!=c.url()&&(d.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});jb(l.absUrl())!=jb(n)&&c.url(l.absUrl(),!0);var q=!0;c.onUrlChange(function(a,b){y(ka(u,a))?g.location.href=a:(d.$evalAsync(function(){var c=l.absUrl(),e=l.$$state,f;a=jb(a);l.$$parse(a);l.$$state= +b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;l.absUrl()===a&&(f?(l.$$parse(c),l.$$state=e,h(c,!1,e)):(q=!1,k(c,e)))}),d.$$phase||d.$digest())});d.$watch(function(){var a=jb(c.url()),b=jb(l.absUrl()),f=c.state(),g=l.$$replace,m=a!==b||l.$$html5&&e.history&&f!==l.$$state;if(q||m)q=!1,d.$evalAsync(function(){var b=l.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,l.$$state,f).defaultPrevented;l.absUrl()===b&&(c?(l.$$parse(a),l.$$state=f):(m&&h(b,g,f===l.$$state?null:l.$$state), +k(a,f)))});l.$$replace=!1});return l}]}function tf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(k){}return a?function(){var a=[];q(arguments,function(b){a.push(c(b))}); +return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Sa(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"===a||"__proto__"===a)throw X("isecfld",b);return a}function ig(a){return a+""}function ra(a,b){if(a){if(a.constructor===a)throw X("isecfn",b);if(a.window===a)throw X("isecwindow",b);if(a.children&& +(a.nodeName||a.prop&&a.attr&&a.find))throw X("isecdom",b);if(a===Object)throw X("isecobj",b);}return a}function nd(a,b){if(a){if(a.constructor===a)throw X("isecfn",b);if(a===jg||a===kg||a===lg)throw X("isecff",b);}}function Ib(a,b){if(a&&(a===(0).constructor||a===(!1).constructor||a==="".constructor||a==={}.constructor||a===[].constructor||a===Function.constructor))throw X("isecaf",b);}function mg(a,b){return"undefined"!==typeof a?a:b}function od(a,b){return"undefined"===typeof a?b:"undefined"=== +typeof b?a:a+b}function V(a,b){var d,c;switch(a.type){case s.Program:d=!0;q(a.body,function(a){V(a.expression,b);d=d&&a.expression.constant});a.constant=d;break;case s.Literal:a.constant=!0;a.toWatch=[];break;case s.UnaryExpression:V(a.argument,b);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;break;case s.BinaryExpression:V(a.left,b);V(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case s.LogicalExpression:V(a.left,b);V(a.right, +b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case s.ConditionalExpression:V(a.test,b);V(a.alternate,b);V(a.consequent,b);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case s.Identifier:a.constant=!1;a.toWatch=[a];break;case s.MemberExpression:V(a.object,b);a.computed&&V(a.property,b);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=[a];break;case s.CallExpression:d=a.filter?!b(a.callee.name).$stateful: +!1;c=[];q(a.arguments,function(a){V(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=a.filter&&!b(a.callee.name).$stateful?c:[a];break;case s.AssignmentExpression:V(a.left,b);V(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=[a];break;case s.ArrayExpression:d=!0;c=[];q(a.elements,function(a){V(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=c;break;case s.ObjectExpression:d=!0;c=[];q(a.properties,function(a){V(a.value, +b);d=d&&a.value.constant&&!a.computed;a.value.constant||c.push.apply(c,a.value.toWatch)});a.constant=d;a.toWatch=c;break;case s.ThisExpression:a.constant=!1;a.toWatch=[];break;case s.LocalsExpression:a.constant=!1,a.toWatch=[]}}function pd(a){if(1==a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function qd(a){return a.type===s.Identifier||a.type===s.MemberExpression}function rd(a){if(1===a.body.length&&qd(a.body[0].expression))return{type:s.AssignmentExpression, +left:a.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function sd(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===s.Literal||a.body[0].expression.type===s.ArrayExpression||a.body[0].expression.type===s.ObjectExpression)}function td(a,b){this.astBuilder=a;this.$filter=b}function ud(a,b){this.astBuilder=a;this.$filter=b}function Jb(a){return"constructor"==a}function ic(a){return z(a.valueOf)?a.valueOf():ng.call(a)}function uf(){var a=U(),b=U(),d={"true":!0, +"false":!1,"null":null,undefined:void 0},c,e;this.addLiteral=function(a,b){d[a]=b};this.setIdentifierFns=function(a,b){c=a;e=b;return this};this.$get=["$filter",function(f){function g(c,d,e){var g,k,H;e=e||J;switch(typeof c){case "string":H=c=c.trim();var E=e?b:a;g=E[H];if(!g){":"===c.charAt(0)&&":"===c.charAt(1)&&(k=!0,c=c.substring(2));g=e?r:B;var q=new jc(g);g=(new kc(q,f,g)).parse(c);g.constant?g.$$watchDelegate=p:k?g.$$watchDelegate=g.literal?n:m:g.inputs&&(g.$$watchDelegate=l);e&&(g=h(g));E[H]= +g}return u(g,d);case "function":return u(c,d);default:return u(A,d)}}function h(a){function b(c,d,e,f){var g=J;J=!0;try{return a(c,d,e,f)}finally{J=g}}if(!a)return a;b.$$watchDelegate=a.$$watchDelegate;b.assign=h(a.assign);b.constant=a.constant;b.literal=a.literal;for(var c=0;a.inputs&&c=this.promise.$$state.status&&d&&d.length&&a(function(){for(var a,e,f=0,g=d.length;fa)for(b in l++,f)ua.call(e,b)||(u--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,h,k=1q&&(A=4-q,y[A]||(y[A]=[]),y[A].push({msg:z(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:k}));else if(a===c){r=!1;break a}}catch(G){f(G)}if(!(p=t.$$watchersCount&&t.$$childHead||t!==this&&t.$$nextSibling))for(;t!==this&&!(p=t.$$nextSibling);)t=t.$parent}while(t=p);if((r||v.length)&& +!q--)throw J.$$phase=null,d("infdig",b,y);}while(r||v.length);for(J.$$phase=null;KEa)throw sa("iequirks");var c=ia(la);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Xa);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs, +f=c.getTrusted,g=c.trustAs;q(la,function(a,b){var d=Q(b);c[db("parse_as_"+d)]=function(b){return e(a,b)};c[db("get_trusted_"+d)]=function(b){return f(a,b)};c[db("trust_as_"+d)]=function(b){return g(a,b)}});return c}]}function Af(){this.$get=["$window","$document",function(a,b){var d={},c=!(a.chrome&&a.chrome.app&&a.chrome.app.runtime)&&a.history&&a.history.pushState,e=Z((/android (\d+)/.exec(Q((a.navigator||{}).userAgent))||[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},h,k=/^(Moz|webkit|ms)(?=[A-Z])/, +l=g.body&&g.body.style,m=!1,n=!1;if(l){for(var p in l)if(m=k.exec(p)){h=m[0];h=h[0].toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in l&&"webkit");m=!!("transition"in l||h+"Transition"in l);n=!!("animation"in l||h+"Animation"in l);!e||m&&n||(m=G(l.webkitTransition),n=G(l.webkitAnimation))}return{history:!(!c||4>e||f),hasEvent:function(a){if("input"===a&&11>=Ea)return!1;if(y(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ba(),vendorPrefix:h,transitions:m,animations:n,android:e}}]} +function Cf(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$templateCache","$http","$q","$sce",function(b,d,c,e){function f(g,h){f.totalPendingRequests++;if(!G(g)||y(b.get(g)))g=e.getTrustedResourceUrl(g);var k=d.defaults&&d.defaults.transformResponse;L(k)?k=k.filter(function(a){return a!==dc}):k===dc&&(k=null);return d.get(g,S({cache:b,transformResponse:k},a))["finally"](function(){f.totalPendingRequests--}).then(function(a){b.put(g,a.data);return a.data},function(a){if(!h)throw pg("tpload", +g,a.status,a.statusText);return c.reject(a)})}f.totalPendingRequests=0;return f}]}function Df(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];q(a,function(a){var c=ca.element(a).data("$binding");c&&q(c,function(c){d?(new RegExp("(^|\\s)"+wd(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!=c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],h=0;hc&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)==mc;e++); +if(e==(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)==mc;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Gd&&(d=d.splice(0,Gd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function xg(a,b,d,c){var e=a.d,f=e.length-a.i;b=y(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++; +for(;fh;)k.unshift(0),h++;0=b.lgSize&&h.unshift(k.splice(-b.lgSize,k.length).join(""));k.length> +b.gSize;)h.unshift(k.splice(-b.gSize,k.length).join(""));k.length&&h.unshift(k.join(""));k=h.join(d);f.length&&(k+=c+f.join(""));e&&(k+="e+"+e)}return 0>a&&!g?b.negPre+k+b.negSuf:b.posPre+k+b.posSuf}function Kb(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length-d)f+=d;0===f&&-12==d&&(f=12);return Kb(f,b,c,e)}}function kb(a,b,d){return function(c,e){var f= +c["get"+a](),g=ub((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Hd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Id(a){return function(b){var d=Hd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Kb(b,a)}}function nc(a,b){return 0>=a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function Bd(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear, +k=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Z(b[9]+b[10]),g=Z(b[9]+b[11]));h.call(a,Z(b[1]),Z(b[2])-1,Z(b[3]));f=Z(b[4]||0)-f;g=Z(b[5]||0)-g;h=Z(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));k.call(a,f,g,h,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,f){var g="",h=[],k,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;G(c)&&(c=yg.test(c)?Z(c):b(c));T(c)&&(c=new Date(c));if(!da(c)||!isFinite(c.getTime()))return c; +for(;d;)(l=zg.exec(d))?(h=$a(h,l,1),d=h.pop()):(h.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=yc(f,m),c=Sb(c,f,!0));q(h,function(b){k=Ag[b];g+=k?k(c,a.DATETIME_FORMATS,m):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function rg(){return function(a,b){y(b)&&(b=2);return bb(a,b)}}function sg(){return function(a,b,d){b=Infinity===Math.abs(Number(b))?Number(b):Z(b);if(isNaN(b))return a;T(a)&&(a=a.toString());if(!ta(a))return a;d=!d||isNaN(d)?0:Z(d);d=0>d?Math.max(0,a.length+ +d):d;return 0<=b?oc(a,d,d+b):0===d?oc(a,b,a.length):oc(a,Math.max(0,d+b),d)}}function oc(a,b,d){return G(a)?a.slice(b,d):va.call(a,b,d)}function Dd(a){function b(b){return b.map(function(b){var c=1,d=Xa;if(z(b))d=b;else if(G(b)){if("+"==b.charAt(0)||"-"==b.charAt(0))c="-"==b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(d=a(b),d.constant))var e=d(),d=function(a){return a[e]}}return{get:d,descending:c}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}} +function c(a,b){var c=0,d=a.type,k=b.type;if(d===k){var k=a.value,l=b.value;"string"===d?(k=k.toLowerCase(),l=l.toLowerCase()):"object"===d&&(D(k)&&(k=a.index),D(l)&&(l=b.index));k!==l&&(c=kb||37<=b&&40>=b|| +m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut",m)}b.on("change",l);if(Ld[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!k){var b=this.validity,c=b.badInput,d=b.typeMismatch;k=f.defer(function(){k=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Nb(a,b){return function(d,c){var e,f;if(da(d))return d;if(G(d)){'"'==d.charAt(0)&&'"'==d.charAt(d.length- +1)&&(d=d.substring(1,d.length-1));if(Bg.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},q(e,function(a,c){c=s};g.$observe("min", +function(a){s=p(a);h.$validate()})}if(w(g.max)||g.ngMax){var r;h.$validators.max=function(a){return!n(a)||y(r)||d(a)<=r};g.$observe("max",function(a){r=p(a);h.$validate()})}}}function Md(a,b,d,c){(c.$$hasNativeValidators=D(b[0].validity))&&c.$parsers.push(function(a){var c=b.prop("validity")||{};return c.badInput||c.typeMismatch?void 0:a})}function Nd(a,b,d,c,e){if(w(c)){a=a(c);if(!a.constant)throw nb("constexpr",d,c);return a(b)}return e}function qc(a,b){a="ngClass"+a;return["$animate",function(d){function c(a, +b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Vb=/<|&#?\w+;/,Mf=/<([\w:-]+)/,Nf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, +ja={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ja.optgroup=ja.option;ja.tbody=ja.tfoot=ja.colgroup=ja.caption=ja.thead;ja.th=ja.td;var Uf=C.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Oa=O.prototype={ready:function(a){function b(){d||(d=!0,a())}var d=!1;"complete"=== +C.document.readyState?C.setTimeout(b):(this.on("DOMContentLoaded",b),O(C).on("load",b))},toString:function(){var a=[];q(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?F(this[a]):F(this[this.length+a])},length:0,push:Dg,sort:[].sort,splice:[].splice},Eb={};q("multiple selected checked disabled readOnly required open".split(" "),function(a){Eb[Q(a)]=a});var Vc={};q("input select option textarea button form details".split(" "),function(a){Vc[a]=!0});var bd={ngMinlength:"minlength", +ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};q({data:Yb,removeData:eb,hasData:function(a){for(var b in fb[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b/,Xf=/^[^\(]*\(\s*([^\)]*)\)/m,Eg=/,/,Fg=/^\s*(_?)(\S+?)\1\s*$/,Vf=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ha=N("$injector");cb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw G(d)&&d||(d=a.name||Yf(a)),Ha("strictdi",d); +b=Wc(a);q(b[1].split(Eg),function(a){a.replace(Fg,function(a,b,d){c.push(d)})})}a.$inject=c}}else L(a)?(b=a.length-1,Pa(a[b],"fn"),c=a.slice(0,b)):Pa(a,"fn",!0);return c};var Rd=N("$animate"),$e=function(){this.$get=A},af=function(){var a=new Ra,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=G(b)?b.split(" "):L(b)?b:[],q(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){q(b,function(b){var c=a.get(b);if(c){var d=Zf(b.attr("class")),e="",f="";q(c, +function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});q(b,function(a){e&&Bb(a,e);f&&Ab(a,f)});a.remove(b)}});b.length=0}return{enabled:A,on:A,off:A,pin:A,push:function(g,h,k,l){l&&l();k=k||{};k.from&&g.css(k.from);k.to&&g.css(k.to);if(k.addClass||k.removeClass)if(h=k.addClass,l=k.removeClass,k=a.get(g)||{},h=e(k,h,!0),l=e(k,l,!1),h||l)a.put(g,k),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},Ye=["$provide",function(a){var b=this;this.$$registeredAnimations= +Object.create(null);this.register=function(d,c){if(d&&"."!==d.charAt(0))throw Rd("notcsel",d);var e=d+"-animation";b.$$registeredAnimations[d.substr(1)]=e;a.factory(e,c)};this.classNameFilter=function(a){if(1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null)&&/(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString()))throw Rd("nongcls","ng-animate");return this.$$classNameFilter};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var h;a:{for(h=0;h <= >= && || ! = |".split(" "),function(a){Ob[a]=!0});var Jg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},jc=function(a){this.options=a};jc.prototype={constructor:jc, +lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart? +this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0): +(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=w(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw X("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index< +this.text.length;){var d=Q(this.text.charAt(this.index));if("."==d||this.isNumber(d))a+=d;else{var c=this.peek();if("e"==d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},readIdent:function(){var a=this.index;for(this.index+=this.peekMultichar().length;this.index< +this.text.length;){var b=this.peekMultichar();if(!this.isIdentifierContinue(b))break;this.index+=b.length}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var d="",c=a,e=!1;this.index","<=",">=");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:s.BinaryExpression,operator:b.text, +left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object(): +this.selfReferential.hasOwnProperty(this.peek().text)?a=pa(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:s.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:s.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")): +"["===b.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return b},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.filterChain());while(this.expect(",")) +}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break; +b={type:s.Property,kind:"init"};this.peek().constant?(b.key=this.constant(),b.computed=!1,this.consume(":"),b.value=this.expression()):this.peek().identifier?(b.key=this.identifier(),b.computed=!1,this.peek(":")?(this.consume(":"),b.value=this.expression()):b.value=b.key):this.peek("[")?(this.consume("["),b.key=this.expression(),this.consume("]"),b.computed=!0,this.consume(":"),b.value=this.expression()):this.throwError("invalid key",this.peek());a.push(b)}while(this.expect(","))}this.consume("}"); +return{type:s.ObjectExpression,properties:a}},throwError:function(a,b){throw X("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw X("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw X("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length> +a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},selfReferential:{"this":{type:s.ThisExpression},$locals:{type:s.LocalsExpression}}};td.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:b,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};V(c,d.$filter);var e="",f;this.stage="assign"; +if(f=rd(c))this.state.computing="assign",e=this.nextId(),this.recurse(f,e),this.return_(e),e="fn.assign="+this.generateFunction("assign","s,v,l");f=pd(c.body);d.stage="inputs";q(f,function(a,b){var c="fn"+b;d.state[c]={vars:[],body:[],own:{}};d.state.computing=c;var e=d.nextId();d.recurse(a,e);d.return_(e);d.state.inputs.push(c);a.watchId=b});this.state.computing="fn";this.stage="main";this.recurse(c);e='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+ +e+this.watchFns()+"return fn;";e=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",e))(this.$filter,Sa,ra,nd,ig,Ib,mg,od,a);this.state=this.stage=void 0;e.literal=sd(c);e.constant=c.constant;return e},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;q(b,function(b){a.push("var "+b+"="+d.generateFunction(b,"s"))});b.length&&a.push("fn.inputs=["+b.join(",")+"];"); +return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;q(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,c,e,f){var g,h,k=this,l,m,n;c=c||A;if(!f&&w(a.watchId))b= +b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case s.Program:q(a.body,function(b,c){k.recurse(b.expression,void 0,void 0,function(a){h=a});c!==a.body.length-1?k.current().body.push(h,";"):k.return_(h)});break;case s.Literal:m=this.escape(a.value);this.assign(b,m);c(m);break;case s.UnaryExpression:this.recurse(a.argument,void 0,void 0,function(a){h=a});m=a.operator+"("+this.ifDefined(h,0)+")";this.assign(b,m); +c(m);break;case s.BinaryExpression:this.recurse(a.left,void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){h=a});m="+"===a.operator?this.plus(g,h):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(h,0):"("+g+")"+a.operator+"("+h+")";this.assign(b,m);c(m);break;case s.LogicalExpression:b=b||this.nextId();k.recurse(a.left,b);k.if_("&&"===a.operator?b:k.not(b),k.lazyRecurse(a.right,b));c(b);break;case s.ConditionalExpression:b=b||this.nextId();k.recurse(a.test, +b);k.if_(b,k.lazyRecurse(a.alternate,b),k.lazyRecurse(a.consequent,b));c(b);break;case s.Identifier:b=b||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);Sa(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){e&&1!==e&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(b,k.nonComputedMember("s", +a.name))})},b&&k.lazyAssign(b,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Jb(a.name))&&k.addEnsureSafeObject(b);c(b);break;case s.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();k.recurse(a.object,g,void 0,function(){k.if_(k.notNull(g),function(){e&&1!==e&&k.addEnsureSafeAssignContext(g);if(a.computed)h=k.nextId(),k.recurse(a.property,h),k.getStringValue(h),k.addEnsureSafeMemberName(h),e&&1!==e&&k.if_(k.not(k.computedMember(g,h)),k.lazyAssign(k.computedMember(g, +h),"{}")),m=k.ensureSafeObject(k.computedMember(g,h)),k.assign(b,m),d&&(d.computed=!0,d.name=h);else{Sa(a.property.name);e&&1!==e&&k.if_(k.not(k.nonComputedMember(g,a.property.name)),k.lazyAssign(k.nonComputedMember(g,a.property.name),"{}"));m=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Jb(a.property.name))m=k.ensureSafeObject(m);k.assign(b,m);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(b,"undefined")});c(b)},!!e);break;case s.CallExpression:b=b||this.nextId(); +a.filter?(h=k.filter(a.callee.name),l=[],q(a.arguments,function(a){var b=k.nextId();k.recurse(a,b);l.push(b)}),m=h+"("+l.join(",")+")",k.assign(b,m),c(b)):(h=k.nextId(),g={},l=[],k.recurse(a.callee,h,g,function(){k.if_(k.notNull(h),function(){k.addEnsureSafeFunction(h);q(a.arguments,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),m=k.member(g.context,g.name,g.computed)+"("+l.join(",")+")"):m= +h+"("+l.join(",")+")";m=k.ensureSafeObject(m);k.assign(b,m)},function(){k.assign(b,"undefined")});c(b)}));break;case s.AssignmentExpression:h=this.nextId();g={};if(!qd(a.left))throw X("lval");this.recurse(a.left,void 0,g,function(){k.if_(k.notNull(g.context),function(){k.recurse(a.right,h);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);m=k.member(g.context,g.name,g.computed)+a.operator+h;k.assign(b,m);c(b||m)})},1);break;case s.ArrayExpression:l= +[];q(a.elements,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(a)})});m="["+l.join(",")+"]";this.assign(b,m);c(m);break;case s.ObjectExpression:l=[];n=!1;q(a.properties,function(a){a.computed&&(n=!0)});n?(b=b||this.nextId(),this.assign(b,"{}"),q(a.properties,function(a){a.computed?(g=k.nextId(),k.recurse(a.key,g)):g=a.key.type===s.Identifier?a.key.name:""+a.key.value;h=k.nextId();k.recurse(a.value,h);k.assign(k.member(b,g,a.computed),h)})):(q(a.properties,function(b){k.recurse(b.value, +a.constant?void 0:k.nextId(),void 0,function(a){l.push(k.escape(b.key.type===s.Identifier?b.key.name:""+b.key.value)+":"+a)})}),m="{"+l.join(",")+"}",this.assign(b,m));c(b||m);break;case s.ThisExpression:this.assign(b,"s");c("s");break;case s.LocalsExpression:this.assign(b,"l");c("l");break;case s.NGValueParameter:this.assign(b,"v"),c("v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]}, +assign:function(a,b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"), +d(),c.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/[$_a-zA-Z][$_a-zA-Z0-9]*/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,b)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a), +";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+ +a+",text)"},lazyRecurse:function(a,b,d,c,e,f){var g=this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(G(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(T(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"=== +typeof a)return"undefined";throw X("esc");},nextId:function(a,b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};ud.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=b;V(c,d.$filter);var e,f;if(e=rd(c))f=this.recurse(e);e=pd(c.body);var g;e&&(g=[],q(e,function(a,b){var c=d.recurse(a);a.input=c;g.push(c);a.watchId=b}));var h=[];q(c.body,function(a){h.push(d.recurse(a.expression))}); +e=0===c.body.length?A:1===c.body.length?h[0]:function(a,b){var c;q(h,function(d){c=d(a,b)});return c};f&&(e.assign=function(a,b,c){return f(a,c,b)});g&&(e.inputs=g);e.literal=sd(c);e.constant=c.constant;return e},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,b);case s.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case s.BinaryExpression:return c=this.recurse(a.left), +e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case s.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case s.Identifier:return Sa(a.name,f.expression),f.identifier(a.name,f.expensiveChecks||Jb(a.name),b,d,f.expression);case s.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(Sa(a.property.name, +f.expression),e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d,f.expression):this.nonComputedMember(c,e,f.expensiveChecks,b,d,f.expression);case s.CallExpression:return g=[],q(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var n=[],p=0;p":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)|| +b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,h){e=a(e,f,g,h)?b(e,f,g,h):d(e,f,g,h);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,name:void 0,value:a}:a}},identifier:function(a,b,d,c,e){return function(f,g,h,k){f=g&&a in g?g:f;c&&1!==c&&f&&!f[a]&&(f[a]={});g=f?f[a]:void 0;b&&ra(g,e);return d?{context:f,name:a,value:g}:g}},computedMember:function(a,b,d,c,e){return function(f,g,h,k){var l=a(f,g,h,k),m,n;null!=l&&(m=b(f, +g,h,k),m+="",Sa(m,e),c&&1!==c&&(Ib(l),l&&!l[m]&&(l[m]={})),n=l[m],ra(n,e));return d?{context:l,name:m,value:n}:n}},nonComputedMember:function(a,b,d,c,e,f){return function(g,h,k,l){g=a(g,h,k,l);e&&1!==e&&(Ib(g),g&&!g[b]&&(g[b]={}));h=null!=g?g[b]:void 0;(d||Jb(b))&&ra(h,f);return c?{context:g,name:b,value:h}:h}},inputs:function(a,b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};var kc=function(a,b,d){this.lexer=a;this.$filter=b;this.options=d;this.ast=new s(a,d);this.astCompiler=d.csp?new ud(this.ast, +b):new td(this.ast,b)};kc.prototype={constructor:kc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};var ng=Object.prototype.valueOf,sa=N("$sce"),la={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},pg=N("$compile"),$=C.document.createElement("a"),yd=Y(C.location.href);zd.$inject=["$document"];Mc.$inject=["$provide"];var Gd=22,Fd=".",mc="0";Ad.$inject=["$locale"];Cd.$inject=["$locale"];var Ag={yyyy:ba("FullYear",4,0,!1,!0),yy:ba("FullYear",2,0, +!0,!0),y:ba("FullYear",1,0,!1,!0),MMMM:kb("Month"),MMM:kb("Month",!0),MM:ba("Month",2,1),M:ba("Month",1,1),LLLL:kb("Month",!1,!0),dd:ba("Date",2),d:ba("Date",1),HH:ba("Hours",2),H:ba("Hours",1),hh:ba("Hours",2,-12),h:ba("Hours",1,-12),mm:ba("Minutes",2),m:ba("Minutes",1),ss:ba("Seconds",2),s:ba("Seconds",1),sss:ba("Milliseconds",3),EEEE:kb("Day"),EEE:kb("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Kb(Math[0=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},zg=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,yg=/^\-?\d+$/;Bd.$inject=["$locale"];var tg=ha(Q),ug=ha(ub);Dd.$inject=["$parse"];var oe=ha({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===ma.call(b.prop("href"))? +"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),vb={};q(Eb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!=a){var c=Aa("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});vb[c]=function(){return{restrict:"A",priority:100,link:e}}}});q(bd,function(a,b){vb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"==e.ngPattern.charAt(0)&&(c=e.ngPattern.match(Cg))){e.$set("ngPattern", +new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});q(["src","srcset","href"],function(a){var b=Aa("ng-"+a);vb[b]=function(){return{priority:99,link:function(d,c,e){var f=a,g=a;"href"===a&&"[object SVGAnimatedString]"===ma.call(c.prop("href"))&&(g="xlinkHref",e.$attr[g]="xlink:href",f=null);e.$observe(b,function(b){b?(e.$set(g,b),Ea&&f&&c.prop(f,e[g])):"href"===a&&e.$set(g,null)})}}}});var Lb={$addControl:A,$$renameControl:function(a,b){a.$name=b},$removeControl:A,$setValidity:A, +$setDirty:A,$setPristine:A,$setSubmitted:A};Jd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Sd=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||A}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Jd,compile:function(d,f){d.addClass(Ua).addClass(ob);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var n=f[0];if(!("action"in e)){var p=function(b){a.$apply(function(){n.$commitViewValue(); +n.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",p,!1);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",p,!1)},0,!1)})}(f[1]||n.$$parentForm).$addControl(n);var q=g?c(n.$name):A;g&&(q(a,n),e.$observe(g,function(b){n.$name!==b&&(q(a,void 0),n.$$parentForm.$$renameControl(n,b),q=c(n.$name),q(a,n))}));d.on("$destroy",function(){n.$$parentForm.$removeControl(n);q(a,void 0);S(n,Lb)})}}}}}]},pe=Sd(),Ce=Sd(!0),Bg=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/, +Kg=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Lg=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,Mg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Td=/^(\d{4,})-(\d{2})-(\d{2})$/,Ud=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,rc=/^(\d{4,})-W(\d\d)$/,Vd=/^(\d{4,})-(\d\d)$/, +Wd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Ld=U();q(["date","datetime-local","month","time","week"],function(a){Ld[a]=!0});var Xd={text:function(a,b,d,c,e,f){lb(a,b,d,c,e,f);pc(c)},date:mb("date",Td,Nb(Td,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":mb("datetimelocal",Ud,Nb(Ud,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:mb("time",Wd,Nb(Wd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:mb("week",rc,function(a,b){if(da(a))return a;if(G(a)){rc.lastIndex=0;var d=rc.exec(a); +if(d){var c=+d[1],e=+d[2],f=d=0,g=0,h=0,k=Hd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),h=b.getMilliseconds());return new Date(c,0,k.getDate()+e,d,f,g,h)}}return NaN},"yyyy-Www"),month:mb("month",Vd,Nb(Vd,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f){Md(a,b,d,c);lb(a,b,d,c,e,f);c.$$parserName="number";c.$parsers.push(function(a){if(c.$isEmpty(a))return null;if(Mg.test(a))return parseFloat(a)});c.$formatters.push(function(a){if(!c.$isEmpty(a)){if(!T(a))throw nb("numfmt", +a);a=a.toString()}return a});if(w(d.min)||d.ngMin){var g;c.$validators.min=function(a){return c.$isEmpty(a)||y(g)||a>=g};d.$observe("min",function(a){w(a)&&!T(a)&&(a=parseFloat(a));g=T(a)&&!isNaN(a)?a:void 0;c.$validate()})}if(w(d.max)||d.ngMax){var h;c.$validators.max=function(a){return c.$isEmpty(a)||y(h)||a<=h};d.$observe("max",function(a){w(a)&&!T(a)&&(a=parseFloat(a));h=T(a)&&!isNaN(a)?a:void 0;c.$validate()})}},url:function(a,b,d,c,e,f){lb(a,b,d,c,e,f);pc(c);c.$$parserName="url";c.$validators.url= +function(a,b){var d=a||b;return c.$isEmpty(d)||Kg.test(d)}},email:function(a,b,d,c,e,f){lb(a,b,d,c,e,f);pc(c);c.$$parserName="email";c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||Lg.test(d)}},radio:function(a,b,d,c){y(d.name)&&b.attr("name",++pb);b.on("click",function(a){b[0].checked&&c.$setViewValue(d.value,a&&a.type)});c.$render=function(){b[0].checked=d.value==c.$viewValue};d.$observe("value",c.$render)},checkbox:function(a,b,d,c,e,f,g,h){var k=Nd(h,a,"ngTrueValue",d.ngTrueValue, +!0),l=Nd(h,a,"ngFalseValue",d.ngFalseValue,!1);b.on("click",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return na(a,k)});c.$parsers.push(function(a){return a?k:l})},hidden:A,button:A,submit:A,reset:A,file:A},Gc=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,h){h[0]&&(Xd[Q(g.type)]||Xd.text)(e,f, +g,h[0],b,a,d,c)}}}}],Ng=/^(true|false|\d+)$/,Ue=function(){return{restrict:"A",priority:100,compile:function(a,b){return Ng.test(b.ngValue)?function(a,b,e){e.$set("value",a.$eval(e.ngValue))}:function(a,b,e){a.$watch(e.ngValue,function(a){e.$set("value",a)})}}}},ue=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=y(a)?"":a})}}}}],we=["$interpolate","$compile", +function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=y(a)?"":a})}}}}],ve=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(b){return a.valueOf(b)});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){var d= +f(b);c.html(a.getTrustedHtml(d)||"")})}}}}],Te=ha({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),xe=qc("",!0),ze=qc("Odd",0),ye=qc("Even",1),Ae=Ta({compile:function(a,b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),Be=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Lc={},Og={blur:!0,focus:!0};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), +function(a){var b=Aa("ng-"+a);Lc[b]=["$parse","$rootScope",function(d,c){return{restrict:"A",compile:function(e,f){var g=d(f[b],null,!0);return function(b,d){d.on(a,function(d){var e=function(){g(b,{$event:d})};Og[a]&&c.$$phase?b.$evalAsync(e):b.$apply(e)})}}}}]});var Ee=["$animate","$compile",function(a,b){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var h,k,l;d.$watch(e.ngIf,function(d){d?k||g(function(d,f){k=f;d[d.length++]= +b.$$createComment("end ngIf",e.ngIf);h={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),k&&(k.$destroy(),k=null),h&&(l=tb(h.clone),a.leave(l).then(function(){l=null}),h=null))})}}}],Fe=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",h=e.autoscroll;return function(c,e,m,n,p){var q=0,s,B,r,y=function(){B&&(B.remove(),B=null);s&& +(s.$destroy(),s=null);r&&(d.leave(r).then(function(){B=null}),B=r,r=null)};c.$watch(f,function(f){var m=function(){!w(h)||h&&!c.$eval(h)||b()},t=++q;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&t===q){var b=c.$new();n.template=a;a=p(b,function(a){y();d.enter(a,null,e).then(m)});s=b;r=a;s.$emit("$includeContentLoaded",f);c.$eval(g)}},function(){c.$$destroyed||t!==q||(y(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(y(),n.template=null)})}}}}],We=["$compile",function(a){return{restrict:"ECA", +priority:-400,require:"ngInclude",link:function(b,d,c,e){ma.call(d[0]).match(/SVG/)?(d.empty(),a(Oc(e.template,C.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],Ge=Ta({priority:450,compile:function(){return{pre:function(a,b,d){a.$eval(d.ngInit)}}}}),Se=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=b.attr(d.$attr.ngList)||", ",f="false"!==d.ngTrim,g=f?W(e):e;c.$parsers.push(function(a){if(!y(a)){var b= +[];a&&q(a.split(g),function(a){a&&b.push(f?W(a):a)});return b}});c.$formatters.push(function(a){if(L(a))return a.join(e)});c.$isEmpty=function(a){return!a||!a.length}}}},ob="ng-valid",Od="ng-invalid",Ua="ng-pristine",Mb="ng-dirty",Qd="ng-pending",nb=N("ngModel"),Pg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,b,d,c,e,f,g,h,k,l){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={}; +this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=void 0;this.$name=l(d.name||"",!1)(a);this.$$parentForm=Lb;var m=e(d.ngModel),n=m.assign,p=m,u=n,s=null,B,r=this;this.$$setOptions=function(a){if((r.$options=a)&&a.getterSetter){var b=e(d.ngModel+"()"),f=e(d.ngModel+"($$$p)");p=function(a){var c=m(a);z(c)&&(c=b(a)); +return c};u=function(a,b){z(m(a))?f(a,{$$$p:b}):n(a,b)}}else if(!m.assign)throw nb("nonassign",d.ngModel,ya(c));};this.$render=A;this.$isEmpty=function(a){return y(a)||""===a||null===a||a!==a};this.$$updateEmptyClasses=function(a){r.$isEmpty(a)?(f.removeClass(c,"ng-not-empty"),f.addClass(c,"ng-empty")):(f.removeClass(c,"ng-empty"),f.addClass(c,"ng-not-empty"))};var J=0;Kd({ctrl:this,$element:c,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]},$animate:f});this.$setPristine=function(){r.$dirty= +!1;r.$pristine=!0;f.removeClass(c,Mb);f.addClass(c,Ua)};this.$setDirty=function(){r.$dirty=!0;r.$pristine=!1;f.removeClass(c,Ua);f.addClass(c,Mb);r.$$parentForm.$setDirty()};this.$setUntouched=function(){r.$touched=!1;r.$untouched=!0;f.setClass(c,"ng-untouched","ng-touched")};this.$setTouched=function(){r.$touched=!0;r.$untouched=!1;f.setClass(c,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){g.cancel(s);r.$viewValue=r.$$lastCommittedViewValue;r.$render()};this.$validate=function(){if(!T(r.$modelValue)|| +!isNaN(r.$modelValue)){var a=r.$$rawModelValue,b=r.$valid,c=r.$modelValue,d=r.$options&&r.$options.allowInvalid;r.$$runValidators(a,r.$$lastCommittedViewValue,function(e){d||b===e||(r.$modelValue=e?a:void 0,r.$modelValue!==c&&r.$$writeModelToScope())})}};this.$$runValidators=function(a,b,c){function d(){var c=!0;q(r.$validators,function(d,e){var g=d(a,b);c=c&&g;f(e,g)});return c?!0:(q(r.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;q(r.$asyncValidators,function(e,g){var h= +e(a,b);if(!h||!z(h.then))throw nb("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?k.all(c).then(function(){g(d)},A):g(!0)}function f(a,b){h===J&&r.$setValidity(a,b)}function g(a){h===J&&c(a)}J++;var h=J;(function(){var a=r.$$parserName||"parse";if(y(B))f(a,null);else return B||(q(r.$validators,function(a,b){f(b,null)}),q(r.$asyncValidators,function(a,b){f(b,null)})),f(a,B),B;return!0})()?d()?e():g(!1):g(!1)};this.$commitViewValue=function(){var a= +r.$viewValue;g.cancel(s);if(r.$$lastCommittedViewValue!==a||""===a&&r.$$hasNativeValidators)r.$$updateEmptyClasses(a),r.$$lastCommittedViewValue=a,r.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var b=r.$$lastCommittedViewValue;if(B=y(b)?void 0:!0)for(var c=0;ce||c.$isEmpty(b)||b.length<=e}}}}},Jc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=0;d.$observe("minlength",function(a){e=Z(a)||0;c.$validate()});c.$validators.minlength=function(a,b){return c.$isEmpty(b)||b.length>=e}}}}};C.angular.bootstrap? +C.console&&console.log("WARNING: Tried to load angular more than once."):(je(),le(ca),ca.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1==b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "), +SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",", +PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a,c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),F(C.document).ready(function(){fe(C.document,Bc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); //# sourceMappingURL=angular.min.js.map diff --git a/src/main/resources/static/vendors/angularjs/angular.min.js.map b/src/main/resources/static/vendors/angularjs/angular.min.js.map new file mode 100644 index 00000000..fab63263 --- /dev/null +++ b/src/main/resources/static/vendors/angularjs/angular.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular.min.js", +"lineCount":317, +"mappings":"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", +"sources":["angular.js"], +"names":["window","minErr","isArrayLike","obj","isWindow","isArray","isString","jqLite","length","Object","isNumber","Array","item","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","baseExtend","dst","objs","deep","h","$$hashKey","ii","isObject","j","jj","src","isDate","Date","valueOf","isRegExp","RegExp","nodeName","cloneNode","isElement","clone","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","valueRef","hasCustomToString","toString","isUndefined","isDefined","getPrototypeOf","isScope","$evalAsync","$watch","isBoolean","isTypedArray","TYPED_ARRAY_REGEXP","test","node","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","copyRecurse","push","copyElement","stackSource","stackDest","ngMinErr","needsRecurse","copyType","undefined","constructor","buffer","byteOffset","copied","ArrayBuffer","byteLength","set","Uint8Array","re","match","lastIndex","type","equals","o1","o2","t1","t2","getTime","keySet","createMap","charAt","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","document","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","replace","ALL_COLONS","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","dateTimezoneOffset","getTimezoneOffset","timezoneOffset","setMinutes","getMinutes","minutes","startingTag","empty","e","elemHtml","append","html","nodeType","NODE_TYPE_TEXT","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","substring","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","component","run","block","shallowCopy","publishExternalAPI","version","uppercase","$$counter","csp","angularModule","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateJs","$$CoreAnimateJsProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$AnimateRunnerFactoryProvider","$$animateAsyncRun","$$AnimateAsyncRunFactoryProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$xhrFactory","$xhrFactoryProvider","$jsonpCallbacks","$jsonpCallbacksProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_ELEMENT","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","jqLiteWrapNode","wrapper","parentNode","replaceChild","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","unsupported","expandoStore","jqLiteExpandoStore","handle","removeHandler","listenerFns","removeEventListener","MOUSE_EVENT_MAP","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","handlerWrapper","specialHandlerWrapper","defaultHandlerWrapper","handler","specialMouseHandlerWrapper","target","related","relatedTarget","jqLiteContains","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","extractArgs","fnText","Function","prototype","STRIP_COMMENTS","ARROW_ARG","FN_ARGS","anonFn","args","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","injectionArgs","locals","$inject","$$annotate","msie","Type","ctor","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","protoInstanceInjector","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","pendingLocation","cacheState","fireUrlChange","cachedState","getCurrentState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","history","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","state","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","bindingCache","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","getDirectiveRequire","require","REQUIRE_PREFIX_REGEXP","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","restrict","this.component","makeInjectable","tElement","tAttrs","$element","$attrs","template","templateUrl","ddo","controllerAs","identifierForController","transclude","bindToController","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","TTL","onChangesTtl","this.onChangesTtl","flushOnChangesQueue","onChangesQueue","errors","Attributes","attributesToCopy","$attr","$$element","setSpecialAttr","specialAttrHolder","attributes","attribute","removeNamedItem","setNamedItem","safeAddClass","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","NOT_EMPTY","domNode","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","needsNewScope","$parent","$new","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","instance","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","transcludeOnThisElement","createBoundTranscludeFn","templateOnThisElement","attrs","linkFnFound","collectDirectives","applyDirectivesToNode","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","boundSlots","$$slots","slotName","attrsMap","addDirective","directiveNormalize","isNgAttr","nAttrs","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","multiElementMatch","MULTI_ELEMENT_DIR_RE","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","NODE_TYPE_COMMENT","collectCommentDirectives","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","groupedElementsLink","compilationGenerator","eager","compiled","lazyCompilation","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","elementControllers","slotTranscludeFn","scopeToChild","controllerScope","newScopeDirective","isSlotFilled","transcludeFn.isSlotFilled","controllerDirectives","setupControllers","templateDirective","$$originalDirective","$$isolateBindings","scopeBindingInfo","initializeDirectiveBindings","removeWatches","$on","controllerDirective","$$bindings","bindingInfo","identifier","controllerResult","getControllers","controllerInstance","$onChanges","initialChanges","$onInit","$doCheck","$onDestroy","callOnDestroyHook","invokeLinkFn","$postLink","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","didScanForMultipleTransclusion","mightHaveMultipleTransclusionError","directiveValue","$$start","$$end","assertNoDuplicate","$$tlb","scanningIndex","candidateDirective","$$createComment","replaceWith","$$parentNode","replaceDirective","slots","contents","slotMap","filledSlots","elementSelector","filled","$$newScope","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectiveScope","mergeTemplateAttributes","compileTemplateUrl","Math","max","inheritType","dataName","property","controllerKey","$scope","$transclude","newScope","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","hasData","annotation","recordChanges","currentValue","previousValue","$$postDigest","changes","triggerOnChangesHook","SimpleChange","removeWatchCollection","initializeBinding","lastValue","parentGet","parentSet","compare","$observe","_UNINITIALIZED_VALUE","literal","assign","parentValueWatch","parentValue","$stateful","removeWatch","$watchCollection","initialValue","parentValueWatchAction","SIMPLE_ATTR_NAME","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","ALIASED_ATTR","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","compile.$$createComment","comment","createComment","previous","current","str1","str2","values","tokens1","tokens2","token","jqNodes","ident","CNTRL_REG","globals","this.has","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","$controllerMinErr","controllerPrototype","$controllerInit","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","this.useLegacyPromiseExtensions","interceptorFactories","interceptors","requestConfig","chainInterceptors","promise","thenFn","rejectFn","executeHeaderFns","headerContent","processedHeaders","headerFn","header","response","resp","reject","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","requestInterceptors","responseInterceptors","when","reversedInterceptors","interceptor","request","requestError","responseError","serverRequest","reqData","withCredentials","sendReq","success","promise.success","promise.error","$httpMinErrLegacyFn","createApplyHandlers","eventHandlers","applyHandlers","callEventHandler","$applyAsync","$$phase","done","headersString","statusText","resolveHttpPromise","resolvePromise","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","uploadEventHandlers","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","$browserDefer","callbacks","rawDocument","jsonpReq","callbackPath","async","body","wasCalled","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","createCallback","getResponse","removeCallback","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","upload","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","constantWatchDelegate","objectEquality","constantInterp","unwatch","constantInterpolateWatch","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","unescapedText","exp","$$watchDelegate","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","endSymbolLength","throwNoconcat","compute","interpolationFn","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","iteration","setInterval","clearInterval","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","stripBaseUrl","base","lastIndexOf","trimEmptyHash","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","getStringValue","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ensureSafeAssignContext","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","LocalsExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","literals","identStart","identContinue","addLiteral","this.addLiteral","literalName","literalValue","setIdentifierFns","this.setIdentifierFns","identifierStart","identifierContinue","interceptorFn","expensiveChecks","parsedExpression","oneTime","cacheKey","runningChecksEnabled","parseOptions","$parseOptionsExpensive","$parseOptions","lexer","Lexer","parser","Parser","oneTimeLiteralWatchDelegate","oneTimeWatchDelegate","inputs","inputsWatchDelegate","expensiveChecksInterceptor","addInterceptor","expensiveCheckFn","expensiveCheckOldValue","expressionInputDirtyCheck","oldValueOfValue","prettyPrintExpression","inputExpressions","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatch","oneTimeListener","old","isAllDefined","allDefined","constantWatch","watchDelegate","useInputs","regularInterceptedExpression","oneTimeInterceptedExpression","noUnsafeEval","isIdentifierStart","isIdentifierContinue","$$runningExpensiveChecks","$parse.$$runningExpensiveChecks","qFactory","nextTick","exceptionHandler","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","that","rejectPromise","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","resolver","resolveFn","all","promises","counter","results","race","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","cleanUpScope","$$prevSibling","$root","Scope","beginPhase","phase","incrementWatchersCount","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueuePosition","asyncQueue","$eval","msg","next","postDigestQueuePosition","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","hasHistoryPushState","chrome","app","runtime","pushState","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","hasEvent","divElm","httpOptions","this.httpOptions","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","handleError","$templateRequestMinErr","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","anyPropertyKey","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","DECIMAL_SEP","number","numStr","exponent","digits","numberOfIntegerDigits","zeros","ZERO_CHAR","MAX_DIGITS","roundNumber","parsedNumber","minFrac","fractionLen","min","roundAt","digit","k","carry","reduceRight","groupSep","decimalSep","isInfinity","isFinite","isZero","abs","formattedText","integerLen","decimals","reduce","groups","lgSize","gSize","negPre","negSuf","posPre","posSuf","padNumber","num","negWrap","neg","dateGetter","dateStrGetter","shortForm","standAlone","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","round","eraGetter","ERAS","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","parseFloat","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","DATE_FORMATS","spacing","limit","begin","Infinity","sliceFn","end","processPredicates","sortPredicates","map","predicate","descending","defaultCompare","v1","v2","type1","type2","value1","value2","sortPredicate","reverseOrder","compareFn","predicates","compareValues","getComparisonObject","tieBreaker","predicateValues","doComparison","ngDirective","FormController","controls","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$$parentForm","nullFormCtrl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","$addControl","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","PARTIAL_VALIDATION_TYPES","PARTIAL_VALIDATION_EVENTS","validity","origBadInput","badInput","origTypeMismatch","typeMismatch","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","VALIDITY_STATE_PROPERTY","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","addClasses","digestClassCounts","classCounts","classesToUpdate","updateClasses","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","rules","ngCspElement","ngCspAttribute","noInlineStyle","name_","el","full","major","minor","dot","codeName","expando","JQLite._data","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","Node","contains","compareDocumentPosition","ready","trigger","fired","removeData","jqLiteHasData","jqLiteCleanData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","addHandler","noEventListener","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","postDigestElements","updateData","handleCSSClassChanges","existing","pin","domOperation","from","to","classesAdded","add","classesRemoved","runner","complete","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","enter","move","leave","addclass","animate","tempClasses","waitForTick","waitQueue","passed","AnimateRunner","setHost","rafTick","_doneCallbacks","_tick","this._tick","doc","hidden","_state","chain","AnimateRunner.chain","AnimateRunner.all","runners","onProgress","DONE_COMPLETE_STATE","getPromise","resolveHandler","rejectHandler","pause","resume","_resolve","INITIAL_STATE","DONE_PENDING_STATE","initialOptions","closed","$$prepared","cleanupStyles","start","UNINITIALIZED_VALUE","isFirstChange","SimpleChange.prototype.isFirstChange","offsetWidth","APPLICATION_JSON","$httpMinErr","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","callbackId","called","callbackMap","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","peekMultichar","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","codePointAt","isValidIdentifierStart","isValidIdentifierContinue","cp","charCodeAt","cp1","cp2","isExpOperator","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","selfReferential","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","return_","generateFunction","fnKey","intoId","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeAssignContext","addEnsureSafeMemberName","addEnsureSafeFunction","member","filterName","defaultValue","UNSAFE_CHARACTERS","SAFE_IDENTIFIER","stringEscapeFn","stringEscapeRegex","c","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","LLLL","H","hh","EEEE","EEE","ampmGetter","AMPMS","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","ERANAMES","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","getSetter","ngFormCompile","formElement","nameAttr","ngFormPreLink","ctrls","handleFormSubmission","setter","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","ngBindHtmlGetter","ngBindHtmlWatch","sceValueOf","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","$$updateEmptyClasses","this.$$updateEmptyClasses","NOT_EMPTY_CLASS","EMPTY_CLASS","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","group","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","ngOptionsPreLink","registerOption","ngOptionsPostLink","updateOptionElement","updateOptions","selectCtrl","readValue","groupElementMap","providedEmptyOption","emptyOption","addOption","groupElement","listFragment","optionElement","ngModelCtrl","nextValue","unknownOption","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngTranscludeMinErr","ngTranscludeCompile","fallbackLinkFn","ngTranscludePostLink","useFallbackContent","ngTranscludeSlot","ngTranscludeCloneAttachFn","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","self.addOption","removeOption","self.removeOption","self.hasOption","self.registerOption","optionScope","optionAttrs","interpolateValueFn","interpolateTextFn","valueAttributeObserveAction","interpolateWatchAction","selectPreLink","lastView","lastViewRef","selectMultipleWatch","selectPostLink","ngModelCtrl.$render","selectCtrlName","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] +} diff --git a/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css index c19cd5c4..31d88826 100644 --- a/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css +++ b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ .btn-default, diff --git a/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css.map b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css.map index 75353114..d876f60f 100644 --- a/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css.map +++ b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.css.map @@ -1 +1 @@ -{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file +{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.min.css b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.min.css index 61358b13..5e394019 100644 --- a/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.min.css +++ b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.min.css @@ -1,5 +1,6 @@ /*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file + */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} +/*# sourceMappingURL=bootstrap-theme.min.css.map */ \ No newline at end of file diff --git a/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.min.css.map b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.min.css.map new file mode 100644 index 00000000..94813e90 --- /dev/null +++ b/src/main/resources/static/vendors/bootstrap/css/bootstrap-theme.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/src/main/resources/static/vendors/bootstrap/css/bootstrap.css b/src/main/resources/static/vendors/bootstrap/css/bootstrap.css index 680e7687..6167622c 100644 --- a/src/main/resources/static/vendors/bootstrap/css/bootstrap.css +++ b/src/main/resources/static/vendors/bootstrap/css/bootstrap.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ @@ -279,10 +279,10 @@ th { -moz-osx-font-smoothing: grayscale; } .glyphicon-asterisk:before { - content: "\2a"; + content: "\002a"; } .glyphicon-plus:before { - content: "\2b"; + content: "\002b"; } .glyphicon-euro:before, .glyphicon-eur:before { @@ -1106,7 +1106,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2537,7 +2536,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2582,6 +2580,10 @@ output { .form-control::-webkit-input-placeholder { color: #999; } +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { @@ -2988,7 +2990,7 @@ select[multiple].input-lg { } @media (min-width: 768px) { .form-horizontal .form-group-lg .control-label { - padding-top: 14.333333px; + padding-top: 11px; font-size: 18px; } } @@ -3025,7 +3027,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -3096,9 +3097,6 @@ fieldset[disabled] a.btn { .open > .dropdown-toggle.btn-default { background-image: none; } -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, @@ -3107,13 +3105,7 @@ fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, .btn-default.disabled.focus, .btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { +fieldset[disabled] .btn-default.focus { background-color: #fff; border-color: #ccc; } @@ -3162,9 +3154,6 @@ fieldset[disabled] .btn-default.active { .open > .dropdown-toggle.btn-primary { background-image: none; } -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, @@ -3173,13 +3162,7 @@ fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled.focus, .btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { +fieldset[disabled] .btn-primary.focus { background-color: #337ab7; border-color: #2e6da4; } @@ -3228,9 +3211,6 @@ fieldset[disabled] .btn-primary.active { .open > .dropdown-toggle.btn-success { background-image: none; } -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, @@ -3239,13 +3219,7 @@ fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, .btn-success.disabled.focus, .btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { +fieldset[disabled] .btn-success.focus { background-color: #5cb85c; border-color: #4cae4c; } @@ -3294,9 +3268,6 @@ fieldset[disabled] .btn-success.active { .open > .dropdown-toggle.btn-info { background-image: none; } -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, @@ -3305,13 +3276,7 @@ fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, .btn-info.disabled.focus, .btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { +fieldset[disabled] .btn-info.focus { background-color: #5bc0de; border-color: #46b8da; } @@ -3360,9 +3325,6 @@ fieldset[disabled] .btn-info.active { .open > .dropdown-toggle.btn-warning { background-image: none; } -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, @@ -3371,13 +3333,7 @@ fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled.focus, .btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { +fieldset[disabled] .btn-warning.focus { background-color: #f0ad4e; border-color: #eea236; } @@ -3426,9 +3382,6 @@ fieldset[disabled] .btn-warning.active { .open > .dropdown-toggle.btn-danger { background-image: none; } -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, @@ -3437,13 +3390,7 @@ fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled.focus, .btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { +fieldset[disabled] .btn-danger.focus { background-color: #d9534f; border-color: #d43f3a; } @@ -3817,6 +3764,7 @@ tbody.collapse.in { border-radius: 0; } .btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; @@ -3824,6 +3772,7 @@ tbody.collapse.in { .btn-group-vertical > .btn:last-child:not(:first-child) { border-top-left-radius: 0; border-top-right-radius: 0; + border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { @@ -3881,6 +3830,9 @@ tbody.collapse.in { width: 100%; margin-bottom: 0; } +.input-group .form-control:focus { + z-index: 3; +} .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { @@ -4792,7 +4744,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { - z-index: 3; + z-index: 2; color: #23527c; background-color: #eee; border-color: #ddd; @@ -4803,7 +4755,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { - z-index: 2; + z-index: 3; color: #fff; cursor: default; background-color: #337ab7; @@ -5024,6 +4976,8 @@ a.badge:focus { } .container .jumbotron, .container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; border-radius: 6px; } .jumbotron .container { @@ -5978,7 +5932,6 @@ button.close { opacity: .5; } .modal-header { - min-height: 16.42857143px; padding: 15px; border-bottom: 1px solid #e5e5e5; } @@ -6371,6 +6324,7 @@ button.close { color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + background-color: rgba(0, 0, 0, 0); filter: alpha(opacity=50); opacity: .5; } @@ -6484,16 +6438,16 @@ button.close { .carousel-control .icon-next { width: 30px; height: 30px; - margin-top: -15px; + margin-top: -10px; font-size: 30px; } .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { - margin-left: -15px; + margin-left: -10px; } .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { - margin-right: -15px; + margin-right: -10px; } .carousel-caption { right: 20%; @@ -6532,6 +6486,8 @@ button.close { .pager:after, .panel-body:before, .panel-body:after, +.modal-header:before, +.modal-header:after, .modal-footer:before, .modal-footer:after { display: table; @@ -6551,6 +6507,7 @@ button.close { .navbar-collapse:after, .pager:after, .panel-body:after, +.modal-header:after, .modal-footer:after { clear: both; } diff --git a/src/main/resources/static/vendors/bootstrap/css/bootstrap.css.map b/src/main/resources/static/vendors/bootstrap/css/bootstrap.css.map index 9f60ed2b..f010c82d 100644 --- a/src/main/resources/static/vendors/bootstrap/css/bootstrap.css.map +++ b/src/main/resources/static/vendors/bootstrap/css/bootstrap.css.map @@ -1 +1 @@ -{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"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,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,0BAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EErDA,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNqkCD;AIxgCD;EACE,UAAA;CJ0gCD;AIpgCD;EACE,uBAAA;CJsgCD;AIlgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CPglCD;AItgCD;EACE,mBAAA;CJwgCD;AIlgCD;EACE,aAAA;EACA,wBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CPgmCD;AIlgCD;EACE,mBAAA;CJogCD;AI9/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJggCD;AIx/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJ0/BD;AIl/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJo/BH;AIz+BD;EACE,gBAAA;CJ2+BD;AQloCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR8oCD;AQnpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRoqCH;AQhqCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRqqCD;AQzqCD;;;;;;;;;;;;EAQI,eAAA;CR+qCH;AQ5qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRirCD;AQrrCD;;;;;;;;;;;;EAQI,eAAA;CR2rCH;AQvrCD;;EAAU,gBAAA;CR2rCT;AQ1rCD;;EAAU,gBAAA;CR8rCT;AQ7rCD;;EAAU,gBAAA;CRisCT;AQhsCD;;EAAU,gBAAA;CRosCT;AQnsCD;;EAAU,gBAAA;CRusCT;AQtsCD;;EAAU,gBAAA;CR0sCT;AQpsCD;EACE,iBAAA;CRssCD;AQnsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRqsCD;AQhsCD;EAAA;IAFI,gBAAA;GRssCD;CACF;AQ9rCD;;EAEE,eAAA;CRgsCD;AQ7rCD;;EAEE,0BAAA;EACA,cAAA;CR+rCD;AQ3rCD;EAAuB,iBAAA;CR8rCtB;AQ7rCD;EAAuB,kBAAA;CRgsCtB;AQ/rCD;EAAuB,mBAAA;CRksCtB;AQjsCD;EAAuB,oBAAA;CRosCtB;AQnsCD;EAAuB,oBAAA;CRssCtB;AQnsCD;EAAuB,0BAAA;CRssCtB;AQrsCD;EAAuB,0BAAA;CRwsCtB;AQvsCD;EAAuB,2BAAA;CR0sCtB;AQvsCD;EACE,eAAA;CRysCD;AQvsCD;ECrGE,eAAA;CT+yCD;AS9yCC;;EAEE,eAAA;CTgzCH;AQ3sCD;ECxGE,eAAA;CTszCD;ASrzCC;;EAEE,eAAA;CTuzCH;AQ/sCD;EC3GE,eAAA;CT6zCD;AS5zCC;;EAEE,eAAA;CT8zCH;AQntCD;EC9GE,eAAA;CTo0CD;ASn0CC;;EAEE,eAAA;CTq0CH;AQvtCD;ECjHE,eAAA;CT20CD;AS10CC;;EAEE,eAAA;CT40CH;AQvtCD;EAGE,YAAA;EE3HA,0BAAA;CVm1CD;AUl1CC;;EAEE,0BAAA;CVo1CH;AQztCD;EE9HE,0BAAA;CV01CD;AUz1CC;;EAEE,0BAAA;CV21CH;AQ7tCD;EEjIE,0BAAA;CVi2CD;AUh2CC;;EAEE,0BAAA;CVk2CH;AQjuCD;EEpIE,0BAAA;CVw2CD;AUv2CC;;EAEE,0BAAA;CVy2CH;AQruCD;EEvIE,0BAAA;CV+2CD;AU92CC;;EAEE,0BAAA;CVg3CH;AQpuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRsuCD;AQ9tCD;;EAEE,cAAA;EACA,oBAAA;CRguCD;AQnuCD;;;;EAMI,iBAAA;CRmuCH;AQ5tCD;EACE,gBAAA;EACA,iBAAA;CR8tCD;AQ1tCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR6tCD;AQ/tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR6tCH;AQxtCD;EACE,cAAA;EACA,oBAAA;CR0tCD;AQxtCD;;EAEE,wBAAA;CR0tCD;AQxtCD;EACE,kBAAA;CR0tCD;AQxtCD;EACE,eAAA;CR0tCD;AQjsCD;EAAA;IAVM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXs6CC;EQ3sCH;IAHM,mBAAA;GRitCH;CACF;AQxsCD;;EAGE,aAAA;EACA,kCAAA;CRysCD;AQvsCD;EACE,eAAA;EA9IqB,0BAAA;CRw1CtB;AQrsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRusCD;AQlsCG;;;EACE,iBAAA;CRssCL;AQhtCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRksCH;AQhsCG;;;EACE,uBAAA;CRosCL;AQ5rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR8rCD;AQxrCG;;;;;;EAAW,YAAA;CRgsCd;AQ/rCG;;;;;;EACE,uBAAA;CRssCL;AQhsCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRksCD;AYx+CD;;;;EAIE,+DAAA;CZ0+CD;AYt+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZw+CD;AYp+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZs+CD;AY5+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZs+CH;AYj+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;CZm+CD;AY9+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZk+CH;AY79CD;EACE,kBAAA;EACA,mBAAA;CZ+9CD;AazhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd+hDD;AazhDC;EAAA;IAFE,aAAA;Gb+hDD;CACF;Aa3hDC;EAAA;IAFE,aAAA;GbiiDD;CACF;Aa7hDD;EAAA;IAFI,cAAA;GbmiDD;CACF;Aa1hDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdojDD;AavhDD;ECvBE,mBAAA;EACA,oBAAA;CdijDD;AejjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfijDL;AejiDG;EACE,YAAA;CfmiDL;Ae5hDC;EACE,YAAA;Cf8hDH;Ae/hDC;EACE,oBAAA;CfiiDH;AeliDC;EACE,oBAAA;CfoiDH;AeriDC;EACE,WAAA;CfuiDH;AexiDC;EACE,oBAAA;Cf0iDH;Ae3iDC;EACE,oBAAA;Cf6iDH;Ae9iDC;EACE,WAAA;CfgjDH;AejjDC;EACE,oBAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,WAAA;CfyjDH;Ae1jDC;EACE,oBAAA;Cf4jDH;Ae7jDC;EACE,mBAAA;Cf+jDH;AejjDC;EACE,YAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,oBAAA;CfyjDH;Ae1jDC;EACE,WAAA;Cf4jDH;Ae7jDC;EACE,oBAAA;Cf+jDH;AehkDC;EACE,oBAAA;CfkkDH;AenkDC;EACE,WAAA;CfqkDH;AetkDC;EACE,oBAAA;CfwkDH;AezkDC;EACE,oBAAA;Cf2kDH;Ae5kDC;EACE,WAAA;Cf8kDH;Ae/kDC;EACE,oBAAA;CfilDH;AellDC;EACE,mBAAA;CfolDH;AehlDC;EACE,YAAA;CfklDH;AelmDC;EACE,WAAA;CfomDH;AermDC;EACE,mBAAA;CfumDH;AexmDC;EACE,mBAAA;Cf0mDH;Ae3mDC;EACE,UAAA;Cf6mDH;Ae9mDC;EACE,mBAAA;CfgnDH;AejnDC;EACE,mBAAA;CfmnDH;AepnDC;EACE,UAAA;CfsnDH;AevnDC;EACE,mBAAA;CfynDH;Ae1nDC;EACE,mBAAA;Cf4nDH;Ae7nDC;EACE,UAAA;Cf+nDH;AehoDC;EACE,mBAAA;CfkoDH;AenoDC;EACE,kBAAA;CfqoDH;AejoDC;EACE,WAAA;CfmoDH;AernDC;EACE,kBAAA;CfunDH;AexnDC;EACE,0BAAA;Cf0nDH;Ae3nDC;EACE,0BAAA;Cf6nDH;Ae9nDC;EACE,iBAAA;CfgoDH;AejoDC;EACE,0BAAA;CfmoDH;AepoDC;EACE,0BAAA;CfsoDH;AevoDC;EACE,iBAAA;CfyoDH;Ae1oDC;EACE,0BAAA;Cf4oDH;Ae7oDC;EACE,0BAAA;Cf+oDH;AehpDC;EACE,iBAAA;CfkpDH;AenpDC;EACE,0BAAA;CfqpDH;AetpDC;EACE,yBAAA;CfwpDH;AezpDC;EACE,gBAAA;Cf2pDH;Aa3pDD;EElCI;IACE,YAAA;GfgsDH;EezrDD;IACE,YAAA;Gf2rDD;Ee5rDD;IACE,oBAAA;Gf8rDD;Ee/rDD;IACE,oBAAA;GfisDD;EelsDD;IACE,WAAA;GfosDD;EersDD;IACE,oBAAA;GfusDD;EexsDD;IACE,oBAAA;Gf0sDD;Ee3sDD;IACE,WAAA;Gf6sDD;Ee9sDD;IACE,oBAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,WAAA;GfstDD;EevtDD;IACE,oBAAA;GfytDD;Ee1tDD;IACE,mBAAA;Gf4tDD;Ee9sDD;IACE,YAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,oBAAA;GfstDD;EevtDD;IACE,WAAA;GfytDD;Ee1tDD;IACE,oBAAA;Gf4tDD;Ee7tDD;IACE,oBAAA;Gf+tDD;EehuDD;IACE,WAAA;GfkuDD;EenuDD;IACE,oBAAA;GfquDD;EetuDD;IACE,oBAAA;GfwuDD;EezuDD;IACE,WAAA;Gf2uDD;Ee5uDD;IACE,oBAAA;Gf8uDD;Ee/uDD;IACE,mBAAA;GfivDD;Ee7uDD;IACE,YAAA;Gf+uDD;Ee/vDD;IACE,WAAA;GfiwDD;EelwDD;IACE,mBAAA;GfowDD;EerwDD;IACE,mBAAA;GfuwDD;EexwDD;IACE,UAAA;Gf0wDD;Ee3wDD;IACE,mBAAA;Gf6wDD;Ee9wDD;IACE,mBAAA;GfgxDD;EejxDD;IACE,UAAA;GfmxDD;EepxDD;IACE,mBAAA;GfsxDD;EevxDD;IACE,mBAAA;GfyxDD;Ee1xDD;IACE,UAAA;Gf4xDD;Ee7xDD;IACE,mBAAA;Gf+xDD;EehyDD;IACE,kBAAA;GfkyDD;Ee9xDD;IACE,WAAA;GfgyDD;EelxDD;IACE,kBAAA;GfoxDD;EerxDD;IACE,0BAAA;GfuxDD;EexxDD;IACE,0BAAA;Gf0xDD;Ee3xDD;IACE,iBAAA;Gf6xDD;Ee9xDD;IACE,0BAAA;GfgyDD;EejyDD;IACE,0BAAA;GfmyDD;EepyDD;IACE,iBAAA;GfsyDD;EevyDD;IACE,0BAAA;GfyyDD;Ee1yDD;IACE,0BAAA;Gf4yDD;Ee7yDD;IACE,iBAAA;Gf+yDD;EehzDD;IACE,0BAAA;GfkzDD;EenzDD;IACE,yBAAA;GfqzDD;EetzDD;IACE,gBAAA;GfwzDD;CACF;AahzDD;EE3CI;IACE,YAAA;Gf81DH;Eev1DD;IACE,YAAA;Gfy1DD;Ee11DD;IACE,oBAAA;Gf41DD;Ee71DD;IACE,oBAAA;Gf+1DD;Eeh2DD;IACE,WAAA;Gfk2DD;Een2DD;IACE,oBAAA;Gfq2DD;Eet2DD;IACE,oBAAA;Gfw2DD;Eez2DD;IACE,WAAA;Gf22DD;Ee52DD;IACE,oBAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,WAAA;Gfo3DD;Eer3DD;IACE,oBAAA;Gfu3DD;Eex3DD;IACE,mBAAA;Gf03DD;Ee52DD;IACE,YAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,oBAAA;Gfo3DD;Eer3DD;IACE,WAAA;Gfu3DD;Eex3DD;IACE,oBAAA;Gf03DD;Ee33DD;IACE,oBAAA;Gf63DD;Ee93DD;IACE,WAAA;Gfg4DD;Eej4DD;IACE,oBAAA;Gfm4DD;Eep4DD;IACE,oBAAA;Gfs4DD;Eev4DD;IACE,WAAA;Gfy4DD;Ee14DD;IACE,oBAAA;Gf44DD;Ee74DD;IACE,mBAAA;Gf+4DD;Ee34DD;IACE,YAAA;Gf64DD;Ee75DD;IACE,WAAA;Gf+5DD;Eeh6DD;IACE,mBAAA;Gfk6DD;Een6DD;IACE,mBAAA;Gfq6DD;Eet6DD;IACE,UAAA;Gfw6DD;Eez6DD;IACE,mBAAA;Gf26DD;Ee56DD;IACE,mBAAA;Gf86DD;Ee/6DD;IACE,UAAA;Gfi7DD;Eel7DD;IACE,mBAAA;Gfo7DD;Eer7DD;IACE,mBAAA;Gfu7DD;Eex7DD;IACE,UAAA;Gf07DD;Ee37DD;IACE,mBAAA;Gf67DD;Ee97DD;IACE,kBAAA;Gfg8DD;Ee57DD;IACE,WAAA;Gf87DD;Eeh7DD;IACE,kBAAA;Gfk7DD;Een7DD;IACE,0BAAA;Gfq7DD;Eet7DD;IACE,0BAAA;Gfw7DD;Eez7DD;IACE,iBAAA;Gf27DD;Ee57DD;IACE,0BAAA;Gf87DD;Ee/7DD;IACE,0BAAA;Gfi8DD;Eel8DD;IACE,iBAAA;Gfo8DD;Eer8DD;IACE,0BAAA;Gfu8DD;Eex8DD;IACE,0BAAA;Gf08DD;Ee38DD;IACE,iBAAA;Gf68DD;Ee98DD;IACE,0BAAA;Gfg9DD;Eej9DD;IACE,yBAAA;Gfm9DD;Eep9DD;IACE,gBAAA;Gfs9DD;CACF;Aa38DD;EE9CI;IACE,YAAA;Gf4/DH;Eer/DD;IACE,YAAA;Gfu/DD;Eex/DD;IACE,oBAAA;Gf0/DD;Ee3/DD;IACE,oBAAA;Gf6/DD;Ee9/DD;IACE,WAAA;GfggED;EejgED;IACE,oBAAA;GfmgED;EepgED;IACE,oBAAA;GfsgED;EevgED;IACE,WAAA;GfygED;Ee1gED;IACE,oBAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,WAAA;GfkhED;EenhED;IACE,oBAAA;GfqhED;EethED;IACE,mBAAA;GfwhED;Ee1gED;IACE,YAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,oBAAA;GfkhED;EenhED;IACE,WAAA;GfqhED;EethED;IACE,oBAAA;GfwhED;EezhED;IACE,oBAAA;Gf2hED;Ee5hED;IACE,WAAA;Gf8hED;Ee/hED;IACE,oBAAA;GfiiED;EeliED;IACE,oBAAA;GfoiED;EeriED;IACE,WAAA;GfuiED;EexiED;IACE,oBAAA;Gf0iED;Ee3iED;IACE,mBAAA;Gf6iED;EeziED;IACE,YAAA;Gf2iED;Ee3jED;IACE,WAAA;Gf6jED;Ee9jED;IACE,mBAAA;GfgkED;EejkED;IACE,mBAAA;GfmkED;EepkED;IACE,UAAA;GfskED;EevkED;IACE,mBAAA;GfykED;Ee1kED;IACE,mBAAA;Gf4kED;Ee7kED;IACE,UAAA;Gf+kED;EehlED;IACE,mBAAA;GfklED;EenlED;IACE,mBAAA;GfqlED;EetlED;IACE,UAAA;GfwlED;EezlED;IACE,mBAAA;Gf2lED;Ee5lED;IACE,kBAAA;Gf8lED;Ee1lED;IACE,WAAA;Gf4lED;Ee9kED;IACE,kBAAA;GfglED;EejlED;IACE,0BAAA;GfmlED;EeplED;IACE,0BAAA;GfslED;EevlED;IACE,iBAAA;GfylED;Ee1lED;IACE,0BAAA;Gf4lED;Ee7lED;IACE,0BAAA;Gf+lED;EehmED;IACE,iBAAA;GfkmED;EenmED;IACE,0BAAA;GfqmED;EetmED;IACE,0BAAA;GfwmED;EezmED;IACE,iBAAA;Gf2mED;Ee5mED;IACE,0BAAA;Gf8mED;Ee/mED;IACE,yBAAA;GfinED;EelnED;IACE,gBAAA;GfonED;CACF;AgBxrED;EACE,8BAAA;ChB0rED;AgBxrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChB0rED;AgBxrED;EACE,iBAAA;ChB0rED;AgBprED;EACE,YAAA;EACA,gBAAA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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\2a\";\n}\n.glyphicon-plus:before {\n content: \"\\2b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #ffffff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #ffffff;\n background-color: #333333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #dddddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #dddddd;\n}\n.table .table {\n background-color: #ffffff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #dddddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #ffffff;\n background-image: none;\n border: 1px solid #cccccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999999;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333333;\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default .badge {\n color: #ffffff;\n background-color: #333333;\n}\n.btn-primary {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #ffffff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #ffffff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.btn-success {\n color: #ffffff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #ffffff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #ffffff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #ffffff;\n}\n.btn-info {\n color: #ffffff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #ffffff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #ffffff;\n}\n.btn-warning {\n color: #ffffff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #ffffff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #ffffff;\n}\n.btn-danger {\n color: #ffffff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #ffffff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #ffffff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #ffffff;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #ffffff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-bottom-left-radius: 4px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #dddddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #dddddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #ffffff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #dddddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #dddddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777777;\n}\n.navbar-default .navbar-link:hover {\n color: #333333;\n}\n.navbar-default .btn-link {\n color: #777777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #cccccc;\n}\n.navbar-inverse {\n background-color: #222222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #ffffff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #ffffff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #ffffff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #cccccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 3;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #dddddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #ffffff;\n border-color: #dddddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #ffffff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #ffffff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #ffffff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #ffffff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #ffffff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #dddddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #dddddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #dddddd;\n}\n.panel-default {\n border-color: #dddddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #dddddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #dddddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #dddddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000000;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #ffffff;\n border: 1px solid #999999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n min-height: 16.42857143px;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #ffffff;\n text-align: center;\n background-color: #000000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #ffffff;\n background-clip: padding-box;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #ffffff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #ffffff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #ffffff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #ffffff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #ffffff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #ffffff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #ffffff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\2a\"; } }\n.glyphicon-plus { &:before { content: \"\\2b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @grid-float-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 8.3, iOS doesn't support `datetime` or `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because
@@ -76,9 +79,6 @@

Result Summary

- - - diff --git a/src/main/resources/templates/auth0ShiroLogin.html b/src/main/resources/templates/auth0ShiroLogin.html new file mode 100644 index 00000000..cf8f3def --- /dev/null +++ b/src/main/resources/templates/auth0ShiroLogin.html @@ -0,0 +1,208 @@ + + + + + + CCD + + + + + + + + + + + + + +
+
+
+
+
+

Causal Web

+
+
+ profile picture + + +
+
+
+
+ + +
+ Please enter a valid e-mail. +
+
+
+ + +
+ Please enter your password. +
+
+
+ + Forgot Password? +
+
+
+ +
+
+
+
+
+ Don't have an account yet?
+ Create an account +
+
+

or you can sign in/up via your university account

+ +
+
+
+
+
+
+
+
+

Copyright © 1900 University of Pittsburgh Department of Biomedical Informatics

+
+
+
+
+ + + + + + + + + + + + diff --git a/src/main/resources/templates/data/dataAnnotations.html b/src/main/resources/templates/data/dataAnnotations.html new file mode 100644 index 00000000..a93bef86 --- /dev/null +++ b/src/main/resources/templates/data/dataAnnotations.html @@ -0,0 +1,718 @@ + + + + + + + CCD: Data Annotations + + + + + + + + + + + + + +
+ +
+
+
+ + +
+ + +
+
    + +
    +
    +
    + + + +
    + + + + + diff --git a/src/main/resources/templates/data/dataSummary.html b/src/main/resources/templates/data/dataSummary.html index f25e38a3..8810c97d 100644 --- a/src/main/resources/templates/data/dataSummary.html +++ b/src/main/resources/templates/data/dataSummary.html @@ -13,6 +13,9 @@ + + +
    @@ -93,9 +96,6 @@

    - - diff --git a/src/main/resources/templates/data/dataUpload.html b/src/main/resources/templates/data/dataUpload.html index b5b1697d..aa66a48f 100644 --- a/src/main/resources/templates/data/dataUpload.html +++ b/src/main/resources/templates/data/dataUpload.html @@ -14,6 +14,9 @@ + + +
    @@ -188,10 +191,7 @@

    - - - diff --git a/src/main/resources/templates/data/dataset.html b/src/main/resources/templates/data/dataset.html index c5ee4e6a..dd8921ce 100644 --- a/src/main/resources/templates/data/dataset.html +++ b/src/main/resources/templates/data/dataset.html @@ -14,6 +14,9 @@ + + +
    @@ -34,6 +37,7 @@ Name Size Summarized + Annotations Delete @@ -50,6 +54,13 @@

    + +

    + + + +

    +

    @@ -106,10 +117,7 @@

    - - - diff --git a/src/main/resources/templates/data/example/csv.html b/src/main/resources/templates/data/example/csv.html index 05888486..7727fb3c 100644 --- a/src/main/resources/templates/data/example/csv.html +++ b/src/main/resources/templates/data/example/csv.html @@ -20,6 +20,8 @@ padding-right: 5px; } + +
    @@ -42,7 +44,5 @@
    - - diff --git a/src/main/resources/templates/data/example/tabular.html b/src/main/resources/templates/data/example/tabular.html index 64e1d250..485ec61d 100644 --- a/src/main/resources/templates/data/example/tabular.html +++ b/src/main/resources/templates/data/example/tabular.html @@ -15,6 +15,8 @@ border: none !important; } + +
    @@ -53,7 +55,5 @@
    - - diff --git a/src/main/resources/templates/data/prior.html b/src/main/resources/templates/data/prior.html index 96582808..fc375ca8 100644 --- a/src/main/resources/templates/data/prior.html +++ b/src/main/resources/templates/data/prior.html @@ -14,6 +14,9 @@ + + +
    @@ -98,10 +101,7 @@
    - - - diff --git a/src/main/resources/templates/email/account/recovery/password_recovery.html b/src/main/resources/templates/email/account/recovery/password_recovery.html new file mode 100644 index 00000000..0a911bfb --- /dev/null +++ b/src/main/resources/templates/email/account/recovery/password_recovery.html @@ -0,0 +1,23 @@ + + + + + + Password Recovery + + + + +

    + Dear username, +

    +

    You have made a request to reset your password. Please click on the following link to reset your password.

    +

    + Reset Password +

    +

    + Thanks again for your registration,
    + Causal Web administrator +

    + + diff --git a/src/main/resources/templates/email/account/registration/admin_new_registration_notification.html b/src/main/resources/templates/email/account/registration/admin_new_registration_notification.html new file mode 100644 index 00000000..2c4c25de --- /dev/null +++ b/src/main/resources/templates/email/account/registration/admin_new_registration_notification.html @@ -0,0 +1,33 @@ + + + + + + New User Registration + + + + + +

    New User Registration

    + + + + + + + + + +
    Emailtuser@localhost.com
    Registration DateWed, February 24, 2016 03:38:40 PM
    + + diff --git a/src/main/resources/templates/email/account/registration/user_activation.html b/src/main/resources/templates/email/account/registration/user_activation.html new file mode 100644 index 00000000..897a2fa2 --- /dev/null +++ b/src/main/resources/templates/email/account/registration/user_activation.html @@ -0,0 +1,36 @@ + + + + + + New User Activation + + + + + +

    Thank you for registering Causal Web account! Your account needs to be activated before logging in. Please click the link below to activate your account.

    + + + + + + + + + +
    Emailtuser@localhost.com
    Registration DateWed, February 24, 2016 03:38:40 PM
    +

    + Click to activate account: http://localhost/activate?account=OWY2NmQwZWQtMmRhOS00NTljLThiZDAtODNjMmVhZWE4Y2Q2 +

    + + diff --git a/src/main/resources/templates/email/feedback.html b/src/main/resources/templates/email/feedback.html new file mode 100644 index 00000000..737ffd46 --- /dev/null +++ b/src/main/resources/templates/email/feedback.html @@ -0,0 +1,14 @@ + + + + + + User Feedback + + + + +

    Feedback from [[${user}]]:

    +

    [[${feedback}]]

    + + diff --git a/src/main/resources/templates/email/registration-activation.html b/src/main/resources/templates/email/registration-activation.html deleted file mode 100644 index 7f758984..00000000 --- a/src/main/resources/templates/email/registration-activation.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - Registration Activation - - - - -

    Hello [[${username}]],

    -

    - Thank you for your registration. Below is the summary of your registration: -

    - - - - - - - - - - - - -

    User Information

    Username:username
    Email:email
    -

    - Please click here to activate your account. -

    - - diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html new file mode 100644 index 00000000..e35cb611 --- /dev/null +++ b/src/main/resources/templates/error.html @@ -0,0 +1,17 @@ + + + + + + CCD: Error + + + + + + + +

    Oopsy-daisy!

    +

    An error has occurred.

    + + diff --git a/src/main/resources/templates/feedback.html b/src/main/resources/templates/feedback.html index 306a42c1..678c748a 100644 --- a/src/main/resources/templates/feedback.html +++ b/src/main/resources/templates/feedback.html @@ -14,28 +14,28 @@ + +
    - +
    - +

    - Please enter any suggestions, bugs or comments about the application into the area below. Thank you. + Please enter any suggestions, bugs or comments about the application into the area below. Thank you.

    -
    Send Us Feedback
    @@ -50,29 +50,20 @@
    - +
    - +
    -
    -
    -
    - -

    Copyright © 1900 University of Pittsburgh Department of Biomedical Informatics

    -
    -
    -
    - - + - + \ No newline at end of file diff --git a/src/main/resources/templates/fragments/centerFooter.html b/src/main/resources/templates/fragments/centerFooter.html index 48aa3e38..c22445e6 100644 --- a/src/main/resources/templates/fragments/centerFooter.html +++ b/src/main/resources/templates/fragments/centerFooter.html @@ -1,11 +1,10 @@ - - + + + CCD: Footer - - @@ -15,7 +14,7 @@
    -

    Copyright © [[${#dates.year(#dates.createNow())} + ' ' + ${@environment.getProperty('ccd.copyright')}]]

    +

    Copyright © [[${#dates.year(#dates.createNow())} + ' ' + ${@environment.getProperty('ccd.app.copyright')}]]

    diff --git a/src/main/resources/templates/fragments/footer.html b/src/main/resources/templates/fragments/footer.html index a53d669c..f5d587d5 100644 --- a/src/main/resources/templates/fragments/footer.html +++ b/src/main/resources/templates/fragments/footer.html @@ -1,11 +1,10 @@ - - + + + CCD: Footer - - @@ -16,7 +15,7 @@
    -

    Copyright © [[${#dates.year(#dates.createNow())} + ' ' + ${@environment.getProperty('ccd.copyright')}]]

    +

    Copyright © [[${#dates.year(#dates.createNow())} + ' ' + ${@environment.getProperty('ccd.app.copyright')}]]

    diff --git a/src/main/resources/templates/fragments/navigator.html b/src/main/resources/templates/fragments/navigator.html index a6a09bfe..a204364d 100644 --- a/src/main/resources/templates/fragments/navigator.html +++ b/src/main/resources/templates/fragments/navigator.html @@ -1,17 +1,19 @@ - - + + + CCD: Navigator - - + + +