copy server new client version
authornowmad@23.1.168.192.in-addr.arpa
Wed, 02 Dec 2015 19:38:02 +0100
changeset 202 58b71002c2e2
parent 201 5f54f408cc44
child 203 786cdb826f09
copy server new client version
server/ammicosrv/ammico/static/ammico/css/app.css
server/ammicosrv/ammico/static/ammico/css/lib.css
server/ammicosrv/ammico/static/ammico/css/lib.min.css
server/ammicosrv/ammico/static/ammico/js/app.js
server/ammicosrv/ammico/static/ammico/js/lib.js
server/ammicosrv/ammico/static/ammico/js/lib.min.js
server/ammicosrv/ammico/static/ammico/js/templates.js
server/ammicosrv/ammico/templates/indexAmmico.html
--- a/server/ammicosrv/ammico/static/ammico/css/app.css	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/static/ammico/css/app.css	Wed Dec 02 19:38:02 2015 +0100
@@ -158,16 +158,22 @@
 
 
 .search-item {
-  min-height: 250px;
+  min-height: 150px;
   border-bottom: 1px solid #000;
   padding-bottom: 10px;
 }
 .search-item:not(:first-child){
   padding-top: 10px;
 }
+.search-item .img-wrap{
+  text-align: center;
+}
 .search-item img {
   max-width: 100%;
 }
+.search-item img.no-img {
+  max-height: 150px;
+}
 .search-img-max {
   max-height: 230px;
 }
@@ -183,6 +189,7 @@
 .modal-body a{
     cursor: pointer;
 }
+
 .slide {
     margin-top: -20px;
 }
--- a/server/ammicosrv/ammico/static/ammico/css/lib.css	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/static/ammico/css/lib.css	Wed Dec 02 19:38:02 2015 +0100
@@ -27,11 +27,10 @@
   transition: 0s ease-in-out left
 }
 /*!
- * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
  * Copyright 2011-2015 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
-
 .btn-default,
 .btn-primary,
 .btn-success,
@@ -57,6 +56,27 @@
   -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
           box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
 }
+.btn-default.disabled,
+.btn-primary.disabled,
+.btn-success.disabled,
+.btn-info.disabled,
+.btn-warning.disabled,
+.btn-danger.disabled,
+.btn-default[disabled],
+.btn-primary[disabled],
+.btn-success[disabled],
+.btn-info[disabled],
+.btn-warning[disabled],
+.btn-danger[disabled],
+fieldset[disabled] .btn-default,
+fieldset[disabled] .btn-primary,
+fieldset[disabled] .btn-success,
+fieldset[disabled] .btn-info,
+fieldset[disabled] .btn-warning,
+fieldset[disabled] .btn-danger {
+  -webkit-box-shadow: none;
+          box-shadow: none;
+}
 .btn-default .badge,
 .btn-primary .badge,
 .btn-success .badge,
@@ -92,8 +112,23 @@
   border-color: #dbdbdb;
 }
 .btn-default.disabled,
-.btn-default:disabled,
-.btn-default[disabled] {
+.btn-default[disabled],
+fieldset[disabled] .btn-default,
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+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 {
   background-color: #e0e0e0;
   background-image: none;
 }
@@ -118,8 +153,23 @@
   border-color: #245580;
 }
 .btn-primary.disabled,
-.btn-primary:disabled,
-.btn-primary[disabled] {
+.btn-primary[disabled],
+fieldset[disabled] .btn-primary,
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+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 {
   background-color: #265a88;
   background-image: none;
 }
@@ -144,8 +194,23 @@
   border-color: #3e8f3e;
 }
 .btn-success.disabled,
-.btn-success:disabled,
-.btn-success[disabled] {
+.btn-success[disabled],
+fieldset[disabled] .btn-success,
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+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 {
   background-color: #419641;
   background-image: none;
 }
@@ -170,8 +235,23 @@
   border-color: #28a4c9;
 }
 .btn-info.disabled,
-.btn-info:disabled,
-.btn-info[disabled] {
+.btn-info[disabled],
+fieldset[disabled] .btn-info,
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+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 {
   background-color: #2aabd2;
   background-image: none;
 }
@@ -196,8 +276,23 @@
   border-color: #e38d13;
 }
 .btn-warning.disabled,
-.btn-warning:disabled,
-.btn-warning[disabled] {
+.btn-warning[disabled],
+fieldset[disabled] .btn-warning,
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+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 {
   background-color: #eb9316;
   background-image: none;
 }
@@ -222,8 +317,23 @@
   border-color: #b92c28;
 }
 .btn-danger.disabled,
-.btn-danger:disabled,
-.btn-danger[disabled] {
+.btn-danger[disabled],
+fieldset[disabled] .btn-danger,
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+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 {
   background-color: #c12e2a;
   background-image: none;
 }
@@ -288,6 +398,7 @@
   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 > .open > a,
 .navbar-inverse .navbar-nav > .active > a {
@@ -504,12 +615,11 @@
 /*# sourceMappingURL=bootstrap-theme.css.map */
 
 /*!
- * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
  * Copyright 2011-2015 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
-
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 html {
   font-family: sans-serif;
   -webkit-text-size-adjust: 100%;
@@ -744,9 +854,6 @@
   h3 {
     page-break-after: avoid;
   }
-  select {
-    background: #fff !important;
-  }
   .navbar {
     display: none;
   }
@@ -1849,62 +1956,72 @@
 .text-primary {
   color: #337ab7;
 }
-a.text-primary:hover {
+a.text-primary:hover,
+a.text-primary:focus {
   color: #286090;
 }
 .text-success {
   color: #3c763d;
 }
-a.text-success:hover {
+a.text-success:hover,
+a.text-success:focus {
   color: #2b542c;
 }
 .text-info {
   color: #31708f;
 }
-a.text-info:hover {
+a.text-info:hover,
+a.text-info:focus {
   color: #245269;
 }
 .text-warning {
   color: #8a6d3b;
 }
-a.text-warning:hover {
+a.text-warning:hover,
+a.text-warning:focus {
   color: #66512c;
 }
 .text-danger {
   color: #a94442;
 }
-a.text-danger:hover {
+a.text-danger:hover,
+a.text-danger:focus {
   color: #843534;
 }
 .bg-primary {
   color: #fff;
   background-color: #337ab7;
 }
-a.bg-primary:hover {
+a.bg-primary:hover,
+a.bg-primary:focus {
   background-color: #286090;
 }
 .bg-success {
   background-color: #dff0d8;
 }
-a.bg-success:hover {
+a.bg-success:hover,
+a.bg-success:focus {
   background-color: #c1e2b3;
 }
 .bg-info {
   background-color: #d9edf7;
 }
-a.bg-info:hover {
+a.bg-info:hover,
+a.bg-info:focus {
   background-color: #afd9ee;
 }
 .bg-warning {
   background-color: #fcf8e3;
 }
-a.bg-warning:hover {
+a.bg-warning:hover,
+a.bg-warning:focus {
   background-color: #f7ecb5;
 }
 .bg-danger {
   background-color: #f2dede;
 }
-a.bg-danger:hover {
+a.bg-danger:hover,
+a.bg-danger:focus {
   background-color: #e4b9b9;
 }
 .page-header {
@@ -3098,10 +3215,10 @@
   -webkit-appearance: none;
 }
 @media screen and (-webkit-min-device-pixel-ratio: 0) {
-  input[type="date"],
-  input[type="time"],
-  input[type="datetime-local"],
-  input[type="month"] {
+  input[type="date"].form-control,
+  input[type="time"].form-control,
+  input[type="datetime-local"].form-control,
+  input[type="month"].form-control {
     line-height: 34px;
   }
   input[type="date"].input-sm,
@@ -3223,18 +3340,18 @@
   line-height: 1.5;
   border-radius: 3px;
 }
-select.form-group-sm .form-control {
+.form-group-sm select.form-control {
   height: 30px;
   line-height: 30px;
 }
-textarea.form-group-sm .form-control,
-select[multiple].form-group-sm .form-control {
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
   height: auto;
 }
 .form-group-sm .form-control-static {
   height: 30px;
   min-height: 32px;
-  padding: 5px 10px;
+  padding: 6px 10px;
   font-size: 12px;
   line-height: 1.5;
 }
@@ -3260,18 +3377,18 @@
   line-height: 1.3333333;
   border-radius: 6px;
 }
-select.form-group-lg .form-control {
+.form-group-lg select.form-control {
   height: 46px;
   line-height: 46px;
 }
-textarea.form-group-lg .form-control,
-select[multiple].form-group-lg .form-control {
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
   height: auto;
 }
 .form-group-lg .form-control-static {
   height: 46px;
   min-height: 38px;
-  padding: 10px 16px;
+  padding: 11px 16px;
   font-size: 18px;
   line-height: 1.3333333;
 }
@@ -3293,12 +3410,16 @@
   text-align: center;
   pointer-events: none;
 }
-.input-lg + .form-control-feedback {
+.input-lg + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
   width: 46px;
   height: 46px;
   line-height: 46px;
 }
-.input-sm + .form-control-feedback {
+.input-sm + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
   width: 30px;
   height: 30px;
   line-height: 30px;
@@ -3484,11 +3605,13 @@
 @media (min-width: 768px) {
   .form-horizontal .form-group-lg .control-label {
     padding-top: 14.333333px;
+    font-size: 18px;
   }
 }
 @media (min-width: 768px) {
   .form-horizontal .form-group-sm .control-label {
     padding-top: 6px;
+    font-size: 12px;
   }
 }
 .btn {
@@ -3538,21 +3661,32 @@
 .btn.disabled,
 .btn[disabled],
 fieldset[disabled] .btn {
-  pointer-events: none;
   cursor: not-allowed;
   filter: alpha(opacity=65);
   -webkit-box-shadow: none;
           box-shadow: none;
   opacity: .65;
 }
+a.btn.disabled,
+fieldset[disabled] a.btn {
+  pointer-events: none;
+}
 .btn-default {
   color: #333;
   background-color: #fff;
   border-color: #ccc;
 }
-.btn-default:hover,
 .btn-default:focus,
-.btn-default.focus,
+.btn-default.focus {
+  color: #333;
+  background-color: #e6e6e6;
+  border-color: #8c8c8c;
+}
+.btn-default:hover {
+  color: #333;
+  background-color: #e6e6e6;
+  border-color: #adadad;
+}
 .btn-default:active,
 .btn-default.active,
 .open > .dropdown-toggle.btn-default {
@@ -3560,6 +3694,19 @@
   background-color: #e6e6e6;
   border-color: #adadad;
 }
+.btn-default:active:hover,
+.btn-default.active:hover,
+.open > .dropdown-toggle.btn-default:hover,
+.btn-default:active:focus,
+.btn-default.active:focus,
+.open > .dropdown-toggle.btn-default:focus,
+.btn-default:active.focus,
+.btn-default.active.focus,
+.open > .dropdown-toggle.btn-default.focus {
+  color: #333;
+  background-color: #d4d4d4;
+  border-color: #8c8c8c;
+}
 .btn-default:active,
 .btn-default.active,
 .open > .dropdown-toggle.btn-default {
@@ -3595,9 +3742,17 @@
   background-color: #337ab7;
   border-color: #2e6da4;
 }
-.btn-primary:hover,
 .btn-primary:focus,
-.btn-primary.focus,
+.btn-primary.focus {
+  color: #fff;
+  background-color: #286090;
+  border-color: #122b40;
+}
+.btn-primary:hover {
+  color: #fff;
+  background-color: #286090;
+  border-color: #204d74;
+}
 .btn-primary:active,
 .btn-primary.active,
 .open > .dropdown-toggle.btn-primary {
@@ -3605,6 +3760,19 @@
   background-color: #286090;
   border-color: #204d74;
 }
+.btn-primary:active:hover,
+.btn-primary.active:hover,
+.open > .dropdown-toggle.btn-primary:hover,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.open > .dropdown-toggle.btn-primary:focus,
+.btn-primary:active.focus,
+.btn-primary.active.focus,
+.open > .dropdown-toggle.btn-primary.focus {
+  color: #fff;
+  background-color: #204d74;
+  border-color: #122b40;
+}
 .btn-primary:active,
 .btn-primary.active,
 .open > .dropdown-toggle.btn-primary {
@@ -3640,9 +3808,17 @@
   background-color: #5cb85c;
   border-color: #4cae4c;
 }
-.btn-success:hover,
 .btn-success:focus,
-.btn-success.focus,
+.btn-success.focus {
+  color: #fff;
+  background-color: #449d44;
+  border-color: #255625;
+}
+.btn-success:hover {
+  color: #fff;
+  background-color: #449d44;
+  border-color: #398439;
+}
 .btn-success:active,
 .btn-success.active,
 .open > .dropdown-toggle.btn-success {
@@ -3650,6 +3826,19 @@
   background-color: #449d44;
   border-color: #398439;
 }
+.btn-success:active:hover,
+.btn-success.active:hover,
+.open > .dropdown-toggle.btn-success:hover,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.open > .dropdown-toggle.btn-success:focus,
+.btn-success:active.focus,
+.btn-success.active.focus,
+.open > .dropdown-toggle.btn-success.focus {
+  color: #fff;
+  background-color: #398439;
+  border-color: #255625;
+}
 .btn-success:active,
 .btn-success.active,
 .open > .dropdown-toggle.btn-success {
@@ -3685,9 +3874,17 @@
   background-color: #5bc0de;
   border-color: #46b8da;
 }
-.btn-info:hover,
 .btn-info:focus,
-.btn-info.focus,
+.btn-info.focus {
+  color: #fff;
+  background-color: #31b0d5;
+  border-color: #1b6d85;
+}
+.btn-info:hover {
+  color: #fff;
+  background-color: #31b0d5;
+  border-color: #269abc;
+}
 .btn-info:active,
 .btn-info.active,
 .open > .dropdown-toggle.btn-info {
@@ -3695,6 +3892,19 @@
   background-color: #31b0d5;
   border-color: #269abc;
 }
+.btn-info:active:hover,
+.btn-info.active:hover,
+.open > .dropdown-toggle.btn-info:hover,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.open > .dropdown-toggle.btn-info:focus,
+.btn-info:active.focus,
+.btn-info.active.focus,
+.open > .dropdown-toggle.btn-info.focus {
+  color: #fff;
+  background-color: #269abc;
+  border-color: #1b6d85;
+}
 .btn-info:active,
 .btn-info.active,
 .open > .dropdown-toggle.btn-info {
@@ -3730,9 +3940,17 @@
   background-color: #f0ad4e;
   border-color: #eea236;
 }
-.btn-warning:hover,
 .btn-warning:focus,
-.btn-warning.focus,
+.btn-warning.focus {
+  color: #fff;
+  background-color: #ec971f;
+  border-color: #985f0d;
+}
+.btn-warning:hover {
+  color: #fff;
+  background-color: #ec971f;
+  border-color: #d58512;
+}
 .btn-warning:active,
 .btn-warning.active,
 .open > .dropdown-toggle.btn-warning {
@@ -3740,6 +3958,19 @@
   background-color: #ec971f;
   border-color: #d58512;
 }
+.btn-warning:active:hover,
+.btn-warning.active:hover,
+.open > .dropdown-toggle.btn-warning:hover,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.open > .dropdown-toggle.btn-warning:focus,
+.btn-warning:active.focus,
+.btn-warning.active.focus,
+.open > .dropdown-toggle.btn-warning.focus {
+  color: #fff;
+  background-color: #d58512;
+  border-color: #985f0d;
+}
 .btn-warning:active,
 .btn-warning.active,
 .open > .dropdown-toggle.btn-warning {
@@ -3775,9 +4006,17 @@
   background-color: #d9534f;
   border-color: #d43f3a;
 }
-.btn-danger:hover,
 .btn-danger:focus,
-.btn-danger.focus,
+.btn-danger.focus {
+  color: #fff;
+  background-color: #c9302c;
+  border-color: #761c19;
+}
+.btn-danger:hover {
+  color: #fff;
+  background-color: #c9302c;
+  border-color: #ac2925;
+}
 .btn-danger:active,
 .btn-danger.active,
 .open > .dropdown-toggle.btn-danger {
@@ -3785,6 +4024,19 @@
   background-color: #c9302c;
   border-color: #ac2925;
 }
+.btn-danger:active:hover,
+.btn-danger.active:hover,
+.open > .dropdown-toggle.btn-danger:hover,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.open > .dropdown-toggle.btn-danger:focus,
+.btn-danger:active.focus,
+.btn-danger.active.focus,
+.open > .dropdown-toggle.btn-danger.focus {
+  color: #fff;
+  background-color: #ac2925;
+  border-color: #761c19;
+}
 .btn-danger:active,
 .btn-danger.active,
 .open > .dropdown-toggle.btn-danger {
@@ -3923,6 +4175,7 @@
   margin-left: 2px;
   vertical-align: middle;
   border-top: 4px dashed;
+  border-top: 4px solid \9;
   border-right: 4px solid transparent;
   border-left: 4px solid transparent;
 }
@@ -4039,7 +4292,8 @@
 .navbar-fixed-bottom .dropdown .caret {
   content: "";
   border-top: 0;
-  border-bottom: 4px solid;
+  border-bottom: 4px dashed;
+  border-bottom: 4px solid \9;
 }
 .dropup .dropdown-menu,
 .navbar-fixed-bottom .dropdown .dropdown-menu {
@@ -4087,6 +4341,7 @@
 .btn-toolbar {
   margin-left: -5px;
 }
+.btn-toolbar .btn,
 .btn-toolbar .btn-group,
 .btn-toolbar .input-group {
   float: left;
@@ -4377,6 +4632,7 @@
 }
 .input-group-btn:last-child > .btn,
 .input-group-btn:last-child > .btn-group {
+  z-index: 2;
   margin-left: -1px;
 }
 .nav {
@@ -5152,6 +5408,7 @@
 .pagination > li > span:hover,
 .pagination > li > a:focus,
 .pagination > li > span:focus {
+  z-index: 3;
   color: #23527c;
   background-color: #eee;
   border-color: #ddd;
@@ -5183,6 +5440,7 @@
 .pagination-lg > li > span {
   padding: 10px 16px;
   font-size: 18px;
+  line-height: 1.3333333;
 }
 .pagination-lg > li:first-child > a,
 .pagination-lg > li:first-child > span {
@@ -5198,6 +5456,7 @@
 .pagination-sm > li > span {
   padding: 5px 10px;
   font-size: 12px;
+  line-height: 1.5;
 }
 .pagination-sm > li:first-child > a,
 .pagination-sm > li:first-child > span {
@@ -5324,7 +5583,7 @@
   color: #fff;
   text-align: center;
   white-space: nowrap;
-  vertical-align: baseline;
+  vertical-align: middle;
   background-color: #777;
   border-radius: 10px;
 }
@@ -5361,7 +5620,8 @@
   margin-left: 3px;
 }
 .jumbotron {
-  padding: 30px 15px;
+  padding-top: 30px;
+  padding-bottom: 30px;
   margin-bottom: 30px;
   color: inherit;
   background-color: #eee;
@@ -5387,7 +5647,8 @@
 }
 @media screen and (min-width: 768px) {
   .jumbotron {
-    padding: 48px 0;
+    padding-top: 48px;
+    padding-bottom: 48px;
   }
   .container .jumbotron,
   .container-fluid .jumbotron {
@@ -5611,6 +5872,9 @@
 .media-object {
   display: block;
 }
+.media-object.img-thumbnail {
+  max-width: none;
+}
 .media-right,
 .media > .pull-right {
   padding-left: 10px;
@@ -5660,18 +5924,26 @@
   border-bottom-right-radius: 4px;
   border-bottom-left-radius: 4px;
 }
-a.list-group-item {
+a.list-group-item,
+button.list-group-item {
   color: #555;
 }
-a.list-group-item .list-group-item-heading {
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
   color: #333;
 }
 a.list-group-item:hover,
-a.list-group-item:focus {
+button.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:focus {
   color: #555;
   text-decoration: none;
   background-color: #f5f5f5;
 }
+button.list-group-item {
+  width: 100%;
+  text-align: left;
+}
 .list-group-item.disabled,
 .list-group-item.disabled:hover,
 .list-group-item.disabled:focus {
@@ -5717,20 +5989,27 @@
   color: #3c763d;
   background-color: #dff0d8;
 }
-a.list-group-item-success {
+a.list-group-item-success,
+button.list-group-item-success {
   color: #3c763d;
 }
-a.list-group-item-success .list-group-item-heading {
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
   color: inherit;
 }
 a.list-group-item-success:hover,
-a.list-group-item-success:focus {
+button.list-group-item-success:hover,
+a.list-group-item-success:focus,
+button.list-group-item-success:focus {
   color: #3c763d;
   background-color: #d0e9c6;
 }
 a.list-group-item-success.active,
+button.list-group-item-success.active,
 a.list-group-item-success.active:hover,
-a.list-group-item-success.active:focus {
+button.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus,
+button.list-group-item-success.active:focus {
   color: #fff;
   background-color: #3c763d;
   border-color: #3c763d;
@@ -5739,20 +6018,27 @@
   color: #31708f;
   background-color: #d9edf7;
 }
-a.list-group-item-info {
+a.list-group-item-info,
+button.list-group-item-info {
   color: #31708f;
 }
-a.list-group-item-info .list-group-item-heading {
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
   color: inherit;
 }
 a.list-group-item-info:hover,
-a.list-group-item-info:focus {
+button.list-group-item-info:hover,
+a.list-group-item-info:focus,
+button.list-group-item-info:focus {
   color: #31708f;
   background-color: #c4e3f3;
 }
 a.list-group-item-info.active,
+button.list-group-item-info.active,
 a.list-group-item-info.active:hover,
-a.list-group-item-info.active:focus {
+button.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus,
+button.list-group-item-info.active:focus {
   color: #fff;
   background-color: #31708f;
   border-color: #31708f;
@@ -5761,20 +6047,27 @@
   color: #8a6d3b;
   background-color: #fcf8e3;
 }
-a.list-group-item-warning {
+a.list-group-item-warning,
+button.list-group-item-warning {
   color: #8a6d3b;
 }
-a.list-group-item-warning .list-group-item-heading {
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
   color: inherit;
 }
 a.list-group-item-warning:hover,
-a.list-group-item-warning:focus {
+button.list-group-item-warning:hover,
+a.list-group-item-warning:focus,
+button.list-group-item-warning:focus {
   color: #8a6d3b;
   background-color: #faf2cc;
 }
 a.list-group-item-warning.active,
+button.list-group-item-warning.active,
 a.list-group-item-warning.active:hover,
-a.list-group-item-warning.active:focus {
+button.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active:focus {
   color: #fff;
   background-color: #8a6d3b;
   border-color: #8a6d3b;
@@ -5783,20 +6076,27 @@
   color: #a94442;
   background-color: #f2dede;
 }
-a.list-group-item-danger {
+a.list-group-item-danger,
+button.list-group-item-danger {
   color: #a94442;
 }
-a.list-group-item-danger .list-group-item-heading {
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
   color: inherit;
 }
 a.list-group-item-danger:hover,
-a.list-group-item-danger:focus {
+button.list-group-item-danger:hover,
+a.list-group-item-danger:focus,
+button.list-group-item-danger:focus {
   color: #a94442;
   background-color: #ebcccc;
 }
 a.list-group-item-danger.active,
+button.list-group-item-danger.active,
 a.list-group-item-danger.active:hover,
-a.list-group-item-danger.active:focus {
+button.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active:focus {
   color: #fff;
   background-color: #a94442;
   border-color: #a94442;
@@ -5870,6 +6170,10 @@
   border-bottom-right-radius: 3px;
   border-bottom-left-radius: 3px;
 }
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
 .panel-heading + .list-group .list-group-item:first-child {
   border-top-width: 0;
 }
@@ -6351,10 +6655,23 @@
   display: block;
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
   font-size: 12px;
+  font-style: normal;
   font-weight: normal;
-  line-height: 1.4;
+  line-height: 1.42857143;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  letter-spacing: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+  white-space: normal;
   filter: alpha(opacity=0);
   opacity: 0;
+
+  line-break: auto;
 }
 .tooltip.in {
   filter: alpha(opacity=90);
@@ -6381,7 +6698,6 @@
   padding: 3px 8px;
   color: #fff;
   text-align: center;
-  text-decoration: none;
   background-color: #000;
   border-radius: 4px;
 }
@@ -6458,9 +6774,18 @@
   padding: 1px;
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
   font-size: 14px;
+  font-style: normal;
   font-weight: normal;
   line-height: 1.42857143;
   text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  letter-spacing: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
   white-space: normal;
   background-color: #fff;
   -webkit-background-clip: padding-box;
@@ -6470,6 +6795,8 @@
   border-radius: 6px;
   -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
           box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+
+  line-break: auto;
 }
 .popover.top {
   margin-top: -10px;
@@ -6597,8 +6924,8 @@
 
     -webkit-backface-visibility: hidden;
             backface-visibility: hidden;
-    -webkit-perspective: 1000;
-            perspective: 1000;
+    -webkit-perspective: 1000px;
+            perspective: 1000px;
   }
   .carousel-inner > .item.next,
   .carousel-inner > .item.active.right {
@@ -6697,6 +7024,7 @@
   top: 50%;
   z-index: 5;
   display: inline-block;
+  margin-top: -10px;
 }
 .carousel-control .icon-prev,
 .carousel-control .glyphicon-chevron-left {
@@ -6712,7 +7040,6 @@
 .carousel-control .icon-next {
   width: 20px;
   height: 20px;
-  margin-top: -10px;
   font-family: serif;
   line-height: 1;
 }
@@ -6904,7 +7231,7 @@
     display: block !important;
   }
   table.visible-xs {
-    display: table;
+    display: table !important;
   }
   tr.visible-xs {
     display: table-row !important;
@@ -6934,7 +7261,7 @@
     display: block !important;
   }
   table.visible-sm {
-    display: table;
+    display: table !important;
   }
   tr.visible-sm {
     display: table-row !important;
@@ -6964,7 +7291,7 @@
     display: block !important;
   }
   table.visible-md {
-    display: table;
+    display: table !important;
   }
   tr.visible-md {
     display: table-row !important;
@@ -6994,7 +7321,7 @@
     display: block !important;
   }
   table.visible-lg {
-    display: table;
+    display: table !important;
   }
   tr.visible-lg {
     display: table-row !important;
@@ -7047,7 +7374,7 @@
     display: block !important;
   }
   table.visible-print {
-    display: table;
+    display: table !important;
   }
   tr.visible-print {
     display: table-row !important;
@@ -7088,1643 +7415,6 @@
 }
 /*# sourceMappingURL=bootstrap.css.map */
 
-/*! jQuery UI - v1.11.4 - 2015-03-11
-* http://jqueryui.com
-* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
-* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden {
-	display: none;
-}
-.ui-helper-hidden-accessible {
-	border: 0;
-	clip: rect(0 0 0 0);
-	height: 1px;
-	margin: -1px;
-	overflow: hidden;
-	padding: 0;
-	position: absolute;
-	width: 1px;
-}
-.ui-helper-reset {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	outline: 0;
-	line-height: 1.3;
-	text-decoration: none;
-	font-size: 100%;
-	list-style: none;
-}
-.ui-helper-clearfix:before,
-.ui-helper-clearfix:after {
-	content: "";
-	display: table;
-	border-collapse: collapse;
-}
-.ui-helper-clearfix:after {
-	clear: both;
-}
-.ui-helper-clearfix {
-	min-height: 0; /* support: IE7 */
-}
-.ui-helper-zfix {
-	width: 100%;
-	height: 100%;
-	top: 0;
-	left: 0;
-	position: absolute;
-	opacity: 0;
-	filter:Alpha(Opacity=0); /* support: IE8 */
-}
-
-.ui-front {
-	z-index: 100;
-}
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled {
-	cursor: default !important;
-}
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-	display: block;
-	text-indent: -99999px;
-	overflow: hidden;
-	background-repeat: no-repeat;
-}
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay {
-	position: fixed;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-}
-.ui-accordion .ui-accordion-header {
-	display: block;
-	cursor: pointer;
-	position: relative;
-	margin: 2px 0 0 0;
-	padding: .5em .5em .5em .7em;
-	min-height: 0; /* support: IE7 */
-	font-size: 100%;
-}
-.ui-accordion .ui-accordion-icons {
-	padding-left: 2.2em;
-}
-.ui-accordion .ui-accordion-icons .ui-accordion-icons {
-	padding-left: 2.2em;
-}
-.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
-	position: absolute;
-	left: .5em;
-	top: 50%;
-	margin-top: -8px;
-}
-.ui-accordion .ui-accordion-content {
-	padding: 1em 2.2em;
-	border-top: 0;
-	overflow: auto;
-}
-.ui-autocomplete {
-	position: absolute;
-	top: 0;
-	left: 0;
-	cursor: default;
-}
-.ui-button {
-	display: inline-block;
-	position: relative;
-	padding: 0;
-	line-height: normal;
-	margin-right: .1em;
-	cursor: pointer;
-	vertical-align: middle;
-	text-align: center;
-	overflow: visible; /* removes extra width in IE */
-}
-.ui-button,
-.ui-button:link,
-.ui-button:visited,
-.ui-button:hover,
-.ui-button:active {
-	text-decoration: none;
-}
-/* to make room for the icon, a width needs to be set here */
-.ui-button-icon-only {
-	width: 2.2em;
-}
-/* button elements seem to need a little more width */
-button.ui-button-icon-only {
-	width: 2.4em;
-}
-.ui-button-icons-only {
-	width: 3.4em;
-}
-button.ui-button-icons-only {
-	width: 3.7em;
-}
-
-/* button text element */
-.ui-button .ui-button-text {
-	display: block;
-	line-height: normal;
-}
-.ui-button-text-only .ui-button-text {
-	padding: .4em 1em;
-}
-.ui-button-icon-only .ui-button-text,
-.ui-button-icons-only .ui-button-text {
-	padding: .4em;
-	text-indent: -9999999px;
-}
-.ui-button-text-icon-primary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
-	padding: .4em 1em .4em 2.1em;
-}
-.ui-button-text-icon-secondary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
-	padding: .4em 2.1em .4em 1em;
-}
-.ui-button-text-icons .ui-button-text {
-	padding-left: 2.1em;
-	padding-right: 2.1em;
-}
-/* no icon support for input elements, provide padding by default */
-input.ui-button {
-	padding: .4em 1em;
-}
-
-/* button icon element(s) */
-.ui-button-icon-only .ui-icon,
-.ui-button-text-icon-primary .ui-icon,
-.ui-button-text-icon-secondary .ui-icon,
-.ui-button-text-icons .ui-icon,
-.ui-button-icons-only .ui-icon {
-	position: absolute;
-	top: 50%;
-	margin-top: -8px;
-}
-.ui-button-icon-only .ui-icon {
-	left: 50%;
-	margin-left: -8px;
-}
-.ui-button-text-icon-primary .ui-button-icon-primary,
-.ui-button-text-icons .ui-button-icon-primary,
-.ui-button-icons-only .ui-button-icon-primary {
-	left: .5em;
-}
-.ui-button-text-icon-secondary .ui-button-icon-secondary,
-.ui-button-text-icons .ui-button-icon-secondary,
-.ui-button-icons-only .ui-button-icon-secondary {
-	right: .5em;
-}
-
-/* button sets */
-.ui-buttonset {
-	margin-right: 7px;
-}
-.ui-buttonset .ui-button {
-	margin-left: 0;
-	margin-right: -.3em;
-}
-
-/* workarounds */
-/* reset extra padding in Firefox, see h5bp.com/l */
-input.ui-button::-moz-focus-inner,
-button.ui-button::-moz-focus-inner {
-	border: 0;
-	padding: 0;
-}
-.ui-datepicker {
-	width: 17em;
-	padding: .2em .2em 0;
-	display: none;
-}
-.ui-datepicker .ui-datepicker-header {
-	position: relative;
-	padding: .2em 0;
-}
-.ui-datepicker .ui-datepicker-prev,
-.ui-datepicker .ui-datepicker-next {
-	position: absolute;
-	top: 2px;
-	width: 1.8em;
-	height: 1.8em;
-}
-.ui-datepicker .ui-datepicker-prev-hover,
-.ui-datepicker .ui-datepicker-next-hover {
-	top: 1px;
-}
-.ui-datepicker .ui-datepicker-prev {
-	left: 2px;
-}
-.ui-datepicker .ui-datepicker-next {
-	right: 2px;
-}
-.ui-datepicker .ui-datepicker-prev-hover {
-	left: 1px;
-}
-.ui-datepicker .ui-datepicker-next-hover {
-	right: 1px;
-}
-.ui-datepicker .ui-datepicker-prev span,
-.ui-datepicker .ui-datepicker-next span {
-	display: block;
-	position: absolute;
-	left: 50%;
-	margin-left: -8px;
-	top: 50%;
-	margin-top: -8px;
-}
-.ui-datepicker .ui-datepicker-title {
-	margin: 0 2.3em;
-	line-height: 1.8em;
-	text-align: center;
-}
-.ui-datepicker .ui-datepicker-title select {
-	font-size: 1em;
-	margin: 1px 0;
-}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year {
-	width: 45%;
-}
-.ui-datepicker table {
-	width: 100%;
-	font-size: .9em;
-	border-collapse: collapse;
-	margin: 0 0 .4em;
-}
-.ui-datepicker th {
-	padding: .7em .3em;
-	text-align: center;
-	font-weight: bold;
-	border: 0;
-}
-.ui-datepicker td {
-	border: 0;
-	padding: 1px;
-}
-.ui-datepicker td span,
-.ui-datepicker td a {
-	display: block;
-	padding: .2em;
-	text-align: right;
-	text-decoration: none;
-}
-.ui-datepicker .ui-datepicker-buttonpane {
-	background-image: none;
-	margin: .7em 0 0 0;
-	padding: 0 .2em;
-	border-left: 0;
-	border-right: 0;
-	border-bottom: 0;
-}
-.ui-datepicker .ui-datepicker-buttonpane button {
-	float: right;
-	margin: .5em .2em .4em;
-	cursor: pointer;
-	padding: .2em .6em .3em .6em;
-	width: auto;
-	overflow: visible;
-}
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
-	float: left;
-}
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi {
-	width: auto;
-}
-.ui-datepicker-multi .ui-datepicker-group {
-	float: left;
-}
-.ui-datepicker-multi .ui-datepicker-group table {
-	width: 95%;
-	margin: 0 auto .4em;
-}
-.ui-datepicker-multi-2 .ui-datepicker-group {
-	width: 50%;
-}
-.ui-datepicker-multi-3 .ui-datepicker-group {
-	width: 33.3%;
-}
-.ui-datepicker-multi-4 .ui-datepicker-group {
-	width: 25%;
-}
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
-	border-left-width: 0;
-}
-.ui-datepicker-multi .ui-datepicker-buttonpane {
-	clear: left;
-}
-.ui-datepicker-row-break {
-	clear: both;
-	width: 100%;
-	font-size: 0;
-}
-
-/* RTL support */
-.ui-datepicker-rtl {
-	direction: rtl;
-}
-.ui-datepicker-rtl .ui-datepicker-prev {
-	right: 2px;
-	left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next {
-	left: 2px;
-	right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-prev:hover {
-	right: 1px;
-	left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next:hover {
-	left: 1px;
-	right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane {
-	clear: right;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button {
-	float: left;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
-.ui-datepicker-rtl .ui-datepicker-group {
-	float: right;
-}
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
-	border-right-width: 0;
-	border-left-width: 1px;
-}
-.ui-dialog {
-	overflow: hidden;
-	position: absolute;
-	top: 0;
-	left: 0;
-	padding: .2em;
-	outline: 0;
-}
-.ui-dialog .ui-dialog-titlebar {
-	padding: .4em 1em;
-	position: relative;
-}
-.ui-dialog .ui-dialog-title {
-	float: left;
-	margin: .1em 0;
-	white-space: nowrap;
-	width: 90%;
-	overflow: hidden;
-	text-overflow: ellipsis;
-}
-.ui-dialog .ui-dialog-titlebar-close {
-	position: absolute;
-	right: .3em;
-	top: 50%;
-	width: 20px;
-	margin: -10px 0 0 0;
-	padding: 1px;
-	height: 20px;
-}
-.ui-dialog .ui-dialog-content {
-	position: relative;
-	border: 0;
-	padding: .5em 1em;
-	background: none;
-	overflow: auto;
-}
-.ui-dialog .ui-dialog-buttonpane {
-	text-align: left;
-	border-width: 1px 0 0 0;
-	background-image: none;
-	margin-top: .5em;
-	padding: .3em 1em .5em .4em;
-}
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
-	float: right;
-}
-.ui-dialog .ui-dialog-buttonpane button {
-	margin: .5em .4em .5em 0;
-	cursor: pointer;
-}
-.ui-dialog .ui-resizable-se {
-	width: 12px;
-	height: 12px;
-	right: -5px;
-	bottom: -5px;
-	background-position: 16px 16px;
-}
-.ui-draggable .ui-dialog-titlebar {
-	cursor: move;
-}
-.ui-draggable-handle {
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-menu {
-	list-style: none;
-	padding: 0;
-	margin: 0;
-	display: block;
-	outline: none;
-}
-.ui-menu .ui-menu {
-	position: absolute;
-}
-.ui-menu .ui-menu-item {
-	position: relative;
-	margin: 0;
-	padding: 3px 1em 3px .4em;
-	cursor: pointer;
-	min-height: 0; /* support: IE7 */
-	/* support: IE10, see #8844 */
-	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
-}
-.ui-menu .ui-menu-divider {
-	margin: 5px 0;
-	height: 0;
-	font-size: 0;
-	line-height: 0;
-	border-width: 1px 0 0 0;
-}
-.ui-menu .ui-state-focus,
-.ui-menu .ui-state-active {
-	margin: -1px;
-}
-
-/* icon support */
-.ui-menu-icons {
-	position: relative;
-}
-.ui-menu-icons .ui-menu-item {
-	padding-left: 2em;
-}
-
-/* left-aligned */
-.ui-menu .ui-icon {
-	position: absolute;
-	top: 0;
-	bottom: 0;
-	left: .2em;
-	margin: auto 0;
-}
-
-/* right-aligned */
-.ui-menu .ui-menu-icon {
-	left: auto;
-	right: 0;
-}
-.ui-progressbar {
-	height: 2em;
-	text-align: left;
-	overflow: hidden;
-}
-.ui-progressbar .ui-progressbar-value {
-	margin: -1px;
-	height: 100%;
-}
-.ui-progressbar .ui-progressbar-overlay {
-	background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
-	height: 100%;
-	filter: alpha(opacity=25); /* support: IE8 */
-	opacity: 0.25;
-}
-.ui-progressbar-indeterminate .ui-progressbar-value {
-	background-image: none;
-}
-.ui-resizable {
-	position: relative;
-}
-.ui-resizable-handle {
-	position: absolute;
-	font-size: 0.1px;
-	display: block;
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-resizable-disabled .ui-resizable-handle,
-.ui-resizable-autohide .ui-resizable-handle {
-	display: none;
-}
-.ui-resizable-n {
-	cursor: n-resize;
-	height: 7px;
-	width: 100%;
-	top: -5px;
-	left: 0;
-}
-.ui-resizable-s {
-	cursor: s-resize;
-	height: 7px;
-	width: 100%;
-	bottom: -5px;
-	left: 0;
-}
-.ui-resizable-e {
-	cursor: e-resize;
-	width: 7px;
-	right: -5px;
-	top: 0;
-	height: 100%;
-}
-.ui-resizable-w {
-	cursor: w-resize;
-	width: 7px;
-	left: -5px;
-	top: 0;
-	height: 100%;
-}
-.ui-resizable-se {
-	cursor: se-resize;
-	width: 12px;
-	height: 12px;
-	right: 1px;
-	bottom: 1px;
-}
-.ui-resizable-sw {
-	cursor: sw-resize;
-	width: 9px;
-	height: 9px;
-	left: -5px;
-	bottom: -5px;
-}
-.ui-resizable-nw {
-	cursor: nw-resize;
-	width: 9px;
-	height: 9px;
-	left: -5px;
-	top: -5px;
-}
-.ui-resizable-ne {
-	cursor: ne-resize;
-	width: 9px;
-	height: 9px;
-	right: -5px;
-	top: -5px;
-}
-.ui-selectable {
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-selectable-helper {
-	position: absolute;
-	z-index: 100;
-	border: 1px dotted black;
-}
-.ui-selectmenu-menu {
-	padding: 0;
-	margin: 0;
-	position: absolute;
-	top: 0;
-	left: 0;
-	display: none;
-}
-.ui-selectmenu-menu .ui-menu {
-	overflow: auto;
-	/* Support: IE7 */
-	overflow-x: hidden;
-	padding-bottom: 1px;
-}
-.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
-	font-size: 1em;
-	font-weight: bold;
-	line-height: 1.5;
-	padding: 2px 0.4em;
-	margin: 0.5em 0 0 0;
-	height: auto;
-	border: 0;
-}
-.ui-selectmenu-open {
-	display: block;
-}
-.ui-selectmenu-button {
-	display: inline-block;
-	overflow: hidden;
-	position: relative;
-	text-decoration: none;
-	cursor: pointer;
-}
-.ui-selectmenu-button span.ui-icon {
-	right: 0.5em;
-	left: auto;
-	margin-top: -8px;
-	position: absolute;
-	top: 50%;
-}
-.ui-selectmenu-button span.ui-selectmenu-text {
-	text-align: left;
-	padding: 0.4em 2.1em 0.4em 1em;
-	display: block;
-	line-height: 1.4;
-	overflow: hidden;
-	text-overflow: ellipsis;
-	white-space: nowrap;
-}
-.ui-slider {
-	position: relative;
-	text-align: left;
-}
-.ui-slider .ui-slider-handle {
-	position: absolute;
-	z-index: 2;
-	width: 1.2em;
-	height: 1.2em;
-	cursor: default;
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-slider .ui-slider-range {
-	position: absolute;
-	z-index: 1;
-	font-size: .7em;
-	display: block;
-	border: 0;
-	background-position: 0 0;
-}
-
-/* support: IE8 - See #6727 */
-.ui-slider.ui-state-disabled .ui-slider-handle,
-.ui-slider.ui-state-disabled .ui-slider-range {
-	filter: inherit;
-}
-
-.ui-slider-horizontal {
-	height: .8em;
-}
-.ui-slider-horizontal .ui-slider-handle {
-	top: -.3em;
-	margin-left: -.6em;
-}
-.ui-slider-horizontal .ui-slider-range {
-	top: 0;
-	height: 100%;
-}
-.ui-slider-horizontal .ui-slider-range-min {
-	left: 0;
-}
-.ui-slider-horizontal .ui-slider-range-max {
-	right: 0;
-}
-
-.ui-slider-vertical {
-	width: .8em;
-	height: 100px;
-}
-.ui-slider-vertical .ui-slider-handle {
-	left: -.3em;
-	margin-left: 0;
-	margin-bottom: -.6em;
-}
-.ui-slider-vertical .ui-slider-range {
-	left: 0;
-	width: 100%;
-}
-.ui-slider-vertical .ui-slider-range-min {
-	bottom: 0;
-}
-.ui-slider-vertical .ui-slider-range-max {
-	top: 0;
-}
-.ui-sortable-handle {
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.ui-spinner {
-	position: relative;
-	display: inline-block;
-	overflow: hidden;
-	padding: 0;
-	vertical-align: middle;
-}
-.ui-spinner-input {
-	border: none;
-	background: none;
-	color: inherit;
-	padding: 0;
-	margin: .2em 0;
-	vertical-align: middle;
-	margin-left: .4em;
-	margin-right: 22px;
-}
-.ui-spinner-button {
-	width: 16px;
-	height: 50%;
-	font-size: .5em;
-	padding: 0;
-	margin: 0;
-	text-align: center;
-	position: absolute;
-	cursor: default;
-	display: block;
-	overflow: hidden;
-	right: 0;
-}
-/* more specificity required here to override default borders */
-.ui-spinner a.ui-spinner-button {
-	border-top: none;
-	border-bottom: none;
-	border-right: none;
-}
-/* vertically center icon */
-.ui-spinner .ui-icon {
-	position: absolute;
-	margin-top: -8px;
-	top: 50%;
-	left: 0;
-}
-.ui-spinner-up {
-	top: 0;
-}
-.ui-spinner-down {
-	bottom: 0;
-}
-
-/* TR overrides */
-.ui-spinner .ui-icon-triangle-1-s {
-	/* need to fix icons sprite */
-	background-position: -65px -16px;
-}
-.ui-tabs {
-	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-	padding: .2em;
-}
-.ui-tabs .ui-tabs-nav {
-	margin: 0;
-	padding: .2em .2em 0;
-}
-.ui-tabs .ui-tabs-nav li {
-	list-style: none;
-	float: left;
-	position: relative;
-	top: 0;
-	margin: 1px .2em 0 0;
-	border-bottom-width: 0;
-	padding: 0;
-	white-space: nowrap;
-}
-.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
-	float: left;
-	padding: .5em 1em;
-	text-decoration: none;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active {
-	margin-bottom: -1px;
-	padding-bottom: 1px;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
-	cursor: text;
-}
-.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
-	cursor: pointer;
-}
-.ui-tabs .ui-tabs-panel {
-	display: block;
-	border-width: 0;
-	padding: 1em 1.4em;
-	background: none;
-}
-.ui-tooltip {
-	padding: 8px;
-	position: absolute;
-	z-index: 9999;
-	max-width: 300px;
-	-webkit-box-shadow: 0 0 5px #aaa;
-	box-shadow: 0 0 5px #aaa;
-}
-body .ui-tooltip {
-	border-width: 2px;
-}
-
-/* Component containers
-----------------------------------*/
-.ui-widget {
-	font-family: Arial,sans-serif;
-	font-size: 1.1em;
-}
-.ui-widget .ui-widget {
-	font-size: 1em;
-}
-.ui-widget input,
-.ui-widget select,
-.ui-widget textarea,
-.ui-widget button {
-	font-family: Arial,sans-serif;
-	font-size: 1em;
-}
-.ui-widget-content {
-	border: 1px solid #eeeeee;
-	background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
-	color: #333333;
-}
-.ui-widget-content a {
-	color: #333333;
-}
-.ui-widget-header {
-	border: 1px solid #e3a1a1;
-	background: #cc0000 url("images/ui-bg_highlight-soft_15_cc0000_1x100.png") 50% 50% repeat-x;
-	color: #ffffff;
-	font-weight: bold;
-}
-.ui-widget-header a {
-	color: #ffffff;
-}
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default,
-.ui-widget-content .ui-state-default,
-.ui-widget-header .ui-state-default {
-	border: 1px solid #d8dcdf;
-	background: #eeeeee url("images/ui-bg_highlight-hard_100_eeeeee_1x100.png") 50% 50% repeat-x;
-	font-weight: bold;
-	color: #004276;
-}
-.ui-state-default a,
-.ui-state-default a:link,
-.ui-state-default a:visited {
-	color: #004276;
-	text-decoration: none;
-}
-.ui-state-hover,
-.ui-widget-content .ui-state-hover,
-.ui-widget-header .ui-state-hover,
-.ui-state-focus,
-.ui-widget-content .ui-state-focus,
-.ui-widget-header .ui-state-focus {
-	border: 1px solid #cdd5da;
-	background: #f6f6f6 url("images/ui-bg_highlight-hard_100_f6f6f6_1x100.png") 50% 50% repeat-x;
-	font-weight: bold;
-	color: #111111;
-}
-.ui-state-hover a,
-.ui-state-hover a:hover,
-.ui-state-hover a:link,
-.ui-state-hover a:visited,
-.ui-state-focus a,
-.ui-state-focus a:hover,
-.ui-state-focus a:link,
-.ui-state-focus a:visited {
-	color: #111111;
-	text-decoration: none;
-}
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active {
-	border: 1px solid #eeeeee;
-	background: #ffffff url("images/ui-bg_flat_65_ffffff_40x100.png") 50% 50% repeat-x;
-	font-weight: bold;
-	color: #cc0000;
-}
-.ui-state-active a,
-.ui-state-active a:link,
-.ui-state-active a:visited {
-	color: #cc0000;
-	text-decoration: none;
-}
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight,
-.ui-widget-content .ui-state-highlight,
-.ui-widget-header .ui-state-highlight {
-	border: 1px solid #fcd3a1;
-	background: #fbf8ee url("images/ui-bg_glass_55_fbf8ee_1x400.png") 50% 50% repeat-x;
-	color: #444444;
-}
-.ui-state-highlight a,
-.ui-widget-content .ui-state-highlight a,
-.ui-widget-header .ui-state-highlight a {
-	color: #444444;
-}
-.ui-state-error,
-.ui-widget-content .ui-state-error,
-.ui-widget-header .ui-state-error {
-	border: 1px solid #cc0000;
-	background: #f3d8d8 url("images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png") 50% 50% repeat;
-	color: #2e2e2e;
-}
-.ui-state-error a,
-.ui-widget-content .ui-state-error a,
-.ui-widget-header .ui-state-error a {
-	color: #2e2e2e;
-}
-.ui-state-error-text,
-.ui-widget-content .ui-state-error-text,
-.ui-widget-header .ui-state-error-text {
-	color: #2e2e2e;
-}
-.ui-priority-primary,
-.ui-widget-content .ui-priority-primary,
-.ui-widget-header .ui-priority-primary {
-	font-weight: bold;
-}
-.ui-priority-secondary,
-.ui-widget-content .ui-priority-secondary,
-.ui-widget-header .ui-priority-secondary {
-	opacity: .7;
-	filter:Alpha(Opacity=70); /* support: IE8 */
-	font-weight: normal;
-}
-.ui-state-disabled,
-.ui-widget-content .ui-state-disabled,
-.ui-widget-header .ui-state-disabled {
-	opacity: .35;
-	filter:Alpha(Opacity=35); /* support: IE8 */
-	background-image: none;
-}
-.ui-state-disabled .ui-icon {
-	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
-}
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-	width: 16px;
-	height: 16px;
-}
-.ui-icon,
-.ui-widget-content .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-widget-header .ui-icon {
-	background-image: url("images/ui-icons_ffffff_256x240.png");
-}
-.ui-state-default .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-state-hover .ui-icon,
-.ui-state-focus .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-state-active .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-state-highlight .ui-icon {
-	background-image: url("images/ui-icons_004276_256x240.png");
-}
-.ui-state-error .ui-icon,
-.ui-state-error-text .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-
-/* positioning */
-.ui-icon-blank { background-position: 16px 16px; }
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-left,
-.ui-corner-tl {
-	border-top-left-radius: 6px;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-right,
-.ui-corner-tr {
-	border-top-right-radius: 6px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-left,
-.ui-corner-bl {
-	border-bottom-left-radius: 6px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-right,
-.ui-corner-br {
-	border-bottom-right-radius: 6px;
-}
-
-/* Overlays */
-.ui-widget-overlay {
-	background: #a6a6a6 url("images/ui-bg_dots-small_65_a6a6a6_2x2.png") 50% 50% repeat;
-	opacity: .4;
-	filter: Alpha(Opacity=40); /* support: IE8 */
-}
-.ui-widget-shadow {
-	margin: -8px 0 0 -8px;
-	padding: 8px;
-	background: #333333 url("images/ui-bg_flat_0_333333_40x100.png") 50% 50% repeat-x;
-	opacity: .1;
-	filter: Alpha(Opacity=10); /* support: IE8 */
-	border-radius: 8px;
-}
-
-/*!
- * jQuery UI CSS Framework 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/category/theming/
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget {
-	font-family: Arial,sans-serif;
-	font-size: 1.1em;
-}
-.ui-widget .ui-widget {
-	font-size: 1em;
-}
-.ui-widget input,
-.ui-widget select,
-.ui-widget textarea,
-.ui-widget button {
-	font-family: Arial,sans-serif;
-	font-size: 1em;
-}
-.ui-widget-content {
-	border: 1px solid #eeeeee;
-	background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
-	color: #333333;
-}
-.ui-widget-content a {
-	color: #333333;
-}
-.ui-widget-header {
-	border: 1px solid #e3a1a1;
-	background: #cc0000 url("images/ui-bg_highlight-soft_15_cc0000_1x100.png") 50% 50% repeat-x;
-	color: #ffffff;
-	font-weight: bold;
-}
-.ui-widget-header a {
-	color: #ffffff;
-}
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default,
-.ui-widget-content .ui-state-default,
-.ui-widget-header .ui-state-default {
-	border: 1px solid #d8dcdf;
-	background: #eeeeee url("images/ui-bg_highlight-hard_100_eeeeee_1x100.png") 50% 50% repeat-x;
-	font-weight: bold;
-	color: #004276;
-}
-.ui-state-default a,
-.ui-state-default a:link,
-.ui-state-default a:visited {
-	color: #004276;
-	text-decoration: none;
-}
-.ui-state-hover,
-.ui-widget-content .ui-state-hover,
-.ui-widget-header .ui-state-hover,
-.ui-state-focus,
-.ui-widget-content .ui-state-focus,
-.ui-widget-header .ui-state-focus {
-	border: 1px solid #cdd5da;
-	background: #f6f6f6 url("images/ui-bg_highlight-hard_100_f6f6f6_1x100.png") 50% 50% repeat-x;
-	font-weight: bold;
-	color: #111111;
-}
-.ui-state-hover a,
-.ui-state-hover a:hover,
-.ui-state-hover a:link,
-.ui-state-hover a:visited,
-.ui-state-focus a,
-.ui-state-focus a:hover,
-.ui-state-focus a:link,
-.ui-state-focus a:visited {
-	color: #111111;
-	text-decoration: none;
-}
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active {
-	border: 1px solid #eeeeee;
-	background: #ffffff url("images/ui-bg_flat_65_ffffff_40x100.png") 50% 50% repeat-x;
-	font-weight: bold;
-	color: #cc0000;
-}
-.ui-state-active a,
-.ui-state-active a:link,
-.ui-state-active a:visited {
-	color: #cc0000;
-	text-decoration: none;
-}
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight,
-.ui-widget-content .ui-state-highlight,
-.ui-widget-header .ui-state-highlight {
-	border: 1px solid #fcd3a1;
-	background: #fbf8ee url("images/ui-bg_glass_55_fbf8ee_1x400.png") 50% 50% repeat-x;
-	color: #444444;
-}
-.ui-state-highlight a,
-.ui-widget-content .ui-state-highlight a,
-.ui-widget-header .ui-state-highlight a {
-	color: #444444;
-}
-.ui-state-error,
-.ui-widget-content .ui-state-error,
-.ui-widget-header .ui-state-error {
-	border: 1px solid #cc0000;
-	background: #f3d8d8 url("images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png") 50% 50% repeat;
-	color: #2e2e2e;
-}
-.ui-state-error a,
-.ui-widget-content .ui-state-error a,
-.ui-widget-header .ui-state-error a {
-	color: #2e2e2e;
-}
-.ui-state-error-text,
-.ui-widget-content .ui-state-error-text,
-.ui-widget-header .ui-state-error-text {
-	color: #2e2e2e;
-}
-.ui-priority-primary,
-.ui-widget-content .ui-priority-primary,
-.ui-widget-header .ui-priority-primary {
-	font-weight: bold;
-}
-.ui-priority-secondary,
-.ui-widget-content .ui-priority-secondary,
-.ui-widget-header .ui-priority-secondary {
-	opacity: .7;
-	filter:Alpha(Opacity=70); /* support: IE8 */
-	font-weight: normal;
-}
-.ui-state-disabled,
-.ui-widget-content .ui-state-disabled,
-.ui-widget-header .ui-state-disabled {
-	opacity: .35;
-	filter:Alpha(Opacity=35); /* support: IE8 */
-	background-image: none;
-}
-.ui-state-disabled .ui-icon {
-	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
-}
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-	width: 16px;
-	height: 16px;
-}
-.ui-icon,
-.ui-widget-content .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-widget-header .ui-icon {
-	background-image: url("images/ui-icons_ffffff_256x240.png");
-}
-.ui-state-default .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-state-hover .ui-icon,
-.ui-state-focus .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-state-active .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-.ui-state-highlight .ui-icon {
-	background-image: url("images/ui-icons_004276_256x240.png");
-}
-.ui-state-error .ui-icon,
-.ui-state-error-text .ui-icon {
-	background-image: url("images/ui-icons_cc0000_256x240.png");
-}
-
-/* positioning */
-.ui-icon-blank { background-position: 16px 16px; }
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-left,
-.ui-corner-tl {
-	border-top-left-radius: 6px;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-right,
-.ui-corner-tr {
-	border-top-right-radius: 6px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-left,
-.ui-corner-bl {
-	border-bottom-left-radius: 6px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-right,
-.ui-corner-br {
-	border-bottom-right-radius: 6px;
-}
-
-/* Overlays */
-.ui-widget-overlay {
-	background: #a6a6a6 url("images/ui-bg_dots-small_65_a6a6a6_2x2.png") 50% 50% repeat;
-	opacity: .4;
-	filter: Alpha(Opacity=40); /* support: IE8 */
-}
-.ui-widget-shadow {
-	margin: -8px 0 0 -8px;
-	padding: 8px;
-	background: #333333 url("images/ui-bg_flat_0_333333_40x100.png") 50% 50% repeat-x;
-	opacity: .1;
-	filter: Alpha(Opacity=10); /* support: IE8 */
-	border-radius: 8px;
-}
-
 /*!
  * jQuery UI Accordion 1.11.4
  * http://jqueryui.com
@@ -13046,6 +11736,1643 @@
 /*! jQuery UI - v1.11.4 - 2015-03-11
 * http://jqueryui.com
 * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-accordion .ui-accordion-header {
+	display: block;
+	cursor: pointer;
+	position: relative;
+	margin: 2px 0 0 0;
+	padding: .5em .5em .5em .7em;
+	min-height: 0; /* support: IE7 */
+	font-size: 100%;
+}
+.ui-accordion .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-icons .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
+	position: absolute;
+	left: .5em;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-accordion .ui-accordion-content {
+	padding: 1em 2.2em;
+	border-top: 0;
+	overflow: auto;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-button {
+	display: inline-block;
+	position: relative;
+	padding: 0;
+	line-height: normal;
+	margin-right: .1em;
+	cursor: pointer;
+	vertical-align: middle;
+	text-align: center;
+	overflow: visible; /* removes extra width in IE */
+}
+.ui-button,
+.ui-button:link,
+.ui-button:visited,
+.ui-button:hover,
+.ui-button:active {
+	text-decoration: none;
+}
+/* to make room for the icon, a width needs to be set here */
+.ui-button-icon-only {
+	width: 2.2em;
+}
+/* button elements seem to need a little more width */
+button.ui-button-icon-only {
+	width: 2.4em;
+}
+.ui-button-icons-only {
+	width: 3.4em;
+}
+button.ui-button-icons-only {
+	width: 3.7em;
+}
+
+/* button text element */
+.ui-button .ui-button-text {
+	display: block;
+	line-height: normal;
+}
+.ui-button-text-only .ui-button-text {
+	padding: .4em 1em;
+}
+.ui-button-icon-only .ui-button-text,
+.ui-button-icons-only .ui-button-text {
+	padding: .4em;
+	text-indent: -9999999px;
+}
+.ui-button-text-icon-primary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+	padding: .4em 1em .4em 2.1em;
+}
+.ui-button-text-icon-secondary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+	padding: .4em 2.1em .4em 1em;
+}
+.ui-button-text-icons .ui-button-text {
+	padding-left: 2.1em;
+	padding-right: 2.1em;
+}
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+	padding: .4em 1em;
+}
+
+/* button icon element(s) */
+.ui-button-icon-only .ui-icon,
+.ui-button-text-icon-primary .ui-icon,
+.ui-button-text-icon-secondary .ui-icon,
+.ui-button-text-icons .ui-icon,
+.ui-button-icons-only .ui-icon {
+	position: absolute;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-button-icon-only .ui-icon {
+	left: 50%;
+	margin-left: -8px;
+}
+.ui-button-text-icon-primary .ui-button-icon-primary,
+.ui-button-text-icons .ui-button-icon-primary,
+.ui-button-icons-only .ui-button-icon-primary {
+	left: .5em;
+}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,
+.ui-button-text-icons .ui-button-icon-secondary,
+.ui-button-icons-only .ui-button-icon-secondary {
+	right: .5em;
+}
+
+/* button sets */
+.ui-buttonset {
+	margin-right: 7px;
+}
+.ui-buttonset .ui-button {
+	margin-left: 0;
+	margin-right: -.3em;
+}
+
+/* workarounds */
+/* reset extra padding in Firefox, see h5bp.com/l */
+input.ui-button::-moz-focus-inner,
+button.ui-button::-moz-focus-inner {
+	border: 0;
+	padding: 0;
+}
+.ui-datepicker {
+	width: 17em;
+	padding: .2em .2em 0;
+	display: none;
+}
+.ui-datepicker .ui-datepicker-header {
+	position: relative;
+	padding: .2em 0;
+}
+.ui-datepicker .ui-datepicker-prev,
+.ui-datepicker .ui-datepicker-next {
+	position: absolute;
+	top: 2px;
+	width: 1.8em;
+	height: 1.8em;
+}
+.ui-datepicker .ui-datepicker-prev-hover,
+.ui-datepicker .ui-datepicker-next-hover {
+	top: 1px;
+}
+.ui-datepicker .ui-datepicker-prev {
+	left: 2px;
+}
+.ui-datepicker .ui-datepicker-next {
+	right: 2px;
+}
+.ui-datepicker .ui-datepicker-prev-hover {
+	left: 1px;
+}
+.ui-datepicker .ui-datepicker-next-hover {
+	right: 1px;
+}
+.ui-datepicker .ui-datepicker-prev span,
+.ui-datepicker .ui-datepicker-next span {
+	display: block;
+	position: absolute;
+	left: 50%;
+	margin-left: -8px;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-datepicker .ui-datepicker-title {
+	margin: 0 2.3em;
+	line-height: 1.8em;
+	text-align: center;
+}
+.ui-datepicker .ui-datepicker-title select {
+	font-size: 1em;
+	margin: 1px 0;
+}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year {
+	width: 45%;
+}
+.ui-datepicker table {
+	width: 100%;
+	font-size: .9em;
+	border-collapse: collapse;
+	margin: 0 0 .4em;
+}
+.ui-datepicker th {
+	padding: .7em .3em;
+	text-align: center;
+	font-weight: bold;
+	border: 0;
+}
+.ui-datepicker td {
+	border: 0;
+	padding: 1px;
+}
+.ui-datepicker td span,
+.ui-datepicker td a {
+	display: block;
+	padding: .2em;
+	text-align: right;
+	text-decoration: none;
+}
+.ui-datepicker .ui-datepicker-buttonpane {
+	background-image: none;
+	margin: .7em 0 0 0;
+	padding: 0 .2em;
+	border-left: 0;
+	border-right: 0;
+	border-bottom: 0;
+}
+.ui-datepicker .ui-datepicker-buttonpane button {
+	float: right;
+	margin: .5em .2em .4em;
+	cursor: pointer;
+	padding: .2em .6em .3em .6em;
+	width: auto;
+	overflow: visible;
+}
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
+	float: left;
+}
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi {
+	width: auto;
+}
+.ui-datepicker-multi .ui-datepicker-group {
+	float: left;
+}
+.ui-datepicker-multi .ui-datepicker-group table {
+	width: 95%;
+	margin: 0 auto .4em;
+}
+.ui-datepicker-multi-2 .ui-datepicker-group {
+	width: 50%;
+}
+.ui-datepicker-multi-3 .ui-datepicker-group {
+	width: 33.3%;
+}
+.ui-datepicker-multi-4 .ui-datepicker-group {
+	width: 25%;
+}
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
+	border-left-width: 0;
+}
+.ui-datepicker-multi .ui-datepicker-buttonpane {
+	clear: left;
+}
+.ui-datepicker-row-break {
+	clear: both;
+	width: 100%;
+	font-size: 0;
+}
+
+/* RTL support */
+.ui-datepicker-rtl {
+	direction: rtl;
+}
+.ui-datepicker-rtl .ui-datepicker-prev {
+	right: 2px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next {
+	left: 2px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+	right: 1px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+	left: 1px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+	clear: right;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+	float: left;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
+.ui-datepicker-rtl .ui-datepicker-group {
+	float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+	border-right-width: 0;
+	border-left-width: 1px;
+}
+.ui-dialog {
+	overflow: hidden;
+	position: absolute;
+	top: 0;
+	left: 0;
+	padding: .2em;
+	outline: 0;
+}
+.ui-dialog .ui-dialog-titlebar {
+	padding: .4em 1em;
+	position: relative;
+}
+.ui-dialog .ui-dialog-title {
+	float: left;
+	margin: .1em 0;
+	white-space: nowrap;
+	width: 90%;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+.ui-dialog .ui-dialog-titlebar-close {
+	position: absolute;
+	right: .3em;
+	top: 50%;
+	width: 20px;
+	margin: -10px 0 0 0;
+	padding: 1px;
+	height: 20px;
+}
+.ui-dialog .ui-dialog-content {
+	position: relative;
+	border: 0;
+	padding: .5em 1em;
+	background: none;
+	overflow: auto;
+}
+.ui-dialog .ui-dialog-buttonpane {
+	text-align: left;
+	border-width: 1px 0 0 0;
+	background-image: none;
+	margin-top: .5em;
+	padding: .3em 1em .5em .4em;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+	float: right;
+}
+.ui-dialog .ui-dialog-buttonpane button {
+	margin: .5em .4em .5em 0;
+	cursor: pointer;
+}
+.ui-dialog .ui-resizable-se {
+	width: 12px;
+	height: 12px;
+	right: -5px;
+	bottom: -5px;
+	background-position: 16px 16px;
+}
+.ui-draggable .ui-dialog-titlebar {
+	cursor: move;
+}
+.ui-draggable-handle {
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	position: relative;
+	margin: 0;
+	padding: 3px 1em 3px .4em;
+	cursor: pointer;
+	min-height: 0; /* support: IE7 */
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
+.ui-progressbar {
+	height: 2em;
+	text-align: left;
+	overflow: hidden;
+}
+.ui-progressbar .ui-progressbar-value {
+	margin: -1px;
+	height: 100%;
+}
+.ui-progressbar .ui-progressbar-overlay {
+	background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
+	height: 100%;
+	filter: alpha(opacity=25); /* support: IE8 */
+	opacity: 0.25;
+}
+.ui-progressbar-indeterminate .ui-progressbar-value {
+	background-image: none;
+}
+.ui-resizable {
+	position: relative;
+}
+.ui-resizable-handle {
+	position: absolute;
+	font-size: 0.1px;
+	display: block;
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-resizable-disabled .ui-resizable-handle,
+.ui-resizable-autohide .ui-resizable-handle {
+	display: none;
+}
+.ui-resizable-n {
+	cursor: n-resize;
+	height: 7px;
+	width: 100%;
+	top: -5px;
+	left: 0;
+}
+.ui-resizable-s {
+	cursor: s-resize;
+	height: 7px;
+	width: 100%;
+	bottom: -5px;
+	left: 0;
+}
+.ui-resizable-e {
+	cursor: e-resize;
+	width: 7px;
+	right: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-w {
+	cursor: w-resize;
+	width: 7px;
+	left: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-se {
+	cursor: se-resize;
+	width: 12px;
+	height: 12px;
+	right: 1px;
+	bottom: 1px;
+}
+.ui-resizable-sw {
+	cursor: sw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	bottom: -5px;
+}
+.ui-resizable-nw {
+	cursor: nw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	top: -5px;
+}
+.ui-resizable-ne {
+	cursor: ne-resize;
+	width: 9px;
+	height: 9px;
+	right: -5px;
+	top: -5px;
+}
+.ui-selectable {
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-selectable-helper {
+	position: absolute;
+	z-index: 100;
+	border: 1px dotted black;
+}
+.ui-selectmenu-menu {
+	padding: 0;
+	margin: 0;
+	position: absolute;
+	top: 0;
+	left: 0;
+	display: none;
+}
+.ui-selectmenu-menu .ui-menu {
+	overflow: auto;
+	/* Support: IE7 */
+	overflow-x: hidden;
+	padding-bottom: 1px;
+}
+.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
+	font-size: 1em;
+	font-weight: bold;
+	line-height: 1.5;
+	padding: 2px 0.4em;
+	margin: 0.5em 0 0 0;
+	height: auto;
+	border: 0;
+}
+.ui-selectmenu-open {
+	display: block;
+}
+.ui-selectmenu-button {
+	display: inline-block;
+	overflow: hidden;
+	position: relative;
+	text-decoration: none;
+	cursor: pointer;
+}
+.ui-selectmenu-button span.ui-icon {
+	right: 0.5em;
+	left: auto;
+	margin-top: -8px;
+	position: absolute;
+	top: 50%;
+}
+.ui-selectmenu-button span.ui-selectmenu-text {
+	text-align: left;
+	padding: 0.4em 2.1em 0.4em 1em;
+	display: block;
+	line-height: 1.4;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+}
+.ui-slider {
+	position: relative;
+	text-align: left;
+}
+.ui-slider .ui-slider-handle {
+	position: absolute;
+	z-index: 2;
+	width: 1.2em;
+	height: 1.2em;
+	cursor: default;
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-slider .ui-slider-range {
+	position: absolute;
+	z-index: 1;
+	font-size: .7em;
+	display: block;
+	border: 0;
+	background-position: 0 0;
+}
+
+/* support: IE8 - See #6727 */
+.ui-slider.ui-state-disabled .ui-slider-handle,
+.ui-slider.ui-state-disabled .ui-slider-range {
+	filter: inherit;
+}
+
+.ui-slider-horizontal {
+	height: .8em;
+}
+.ui-slider-horizontal .ui-slider-handle {
+	top: -.3em;
+	margin-left: -.6em;
+}
+.ui-slider-horizontal .ui-slider-range {
+	top: 0;
+	height: 100%;
+}
+.ui-slider-horizontal .ui-slider-range-min {
+	left: 0;
+}
+.ui-slider-horizontal .ui-slider-range-max {
+	right: 0;
+}
+
+.ui-slider-vertical {
+	width: .8em;
+	height: 100px;
+}
+.ui-slider-vertical .ui-slider-handle {
+	left: -.3em;
+	margin-left: 0;
+	margin-bottom: -.6em;
+}
+.ui-slider-vertical .ui-slider-range {
+	left: 0;
+	width: 100%;
+}
+.ui-slider-vertical .ui-slider-range-min {
+	bottom: 0;
+}
+.ui-slider-vertical .ui-slider-range-max {
+	top: 0;
+}
+.ui-sortable-handle {
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.ui-spinner {
+	position: relative;
+	display: inline-block;
+	overflow: hidden;
+	padding: 0;
+	vertical-align: middle;
+}
+.ui-spinner-input {
+	border: none;
+	background: none;
+	color: inherit;
+	padding: 0;
+	margin: .2em 0;
+	vertical-align: middle;
+	margin-left: .4em;
+	margin-right: 22px;
+}
+.ui-spinner-button {
+	width: 16px;
+	height: 50%;
+	font-size: .5em;
+	padding: 0;
+	margin: 0;
+	text-align: center;
+	position: absolute;
+	cursor: default;
+	display: block;
+	overflow: hidden;
+	right: 0;
+}
+/* more specificity required here to override default borders */
+.ui-spinner a.ui-spinner-button {
+	border-top: none;
+	border-bottom: none;
+	border-right: none;
+}
+/* vertically center icon */
+.ui-spinner .ui-icon {
+	position: absolute;
+	margin-top: -8px;
+	top: 50%;
+	left: 0;
+}
+.ui-spinner-up {
+	top: 0;
+}
+.ui-spinner-down {
+	bottom: 0;
+}
+
+/* TR overrides */
+.ui-spinner .ui-icon-triangle-1-s {
+	/* need to fix icons sprite */
+	background-position: -65px -16px;
+}
+.ui-tabs {
+	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+	padding: .2em;
+}
+.ui-tabs .ui-tabs-nav {
+	margin: 0;
+	padding: .2em .2em 0;
+}
+.ui-tabs .ui-tabs-nav li {
+	list-style: none;
+	float: left;
+	position: relative;
+	top: 0;
+	margin: 1px .2em 0 0;
+	border-bottom-width: 0;
+	padding: 0;
+	white-space: nowrap;
+}
+.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
+	float: left;
+	padding: .5em 1em;
+	text-decoration: none;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active {
+	margin-bottom: -1px;
+	padding-bottom: 1px;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
+.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
+.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
+	cursor: text;
+}
+.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
+	cursor: pointer;
+}
+.ui-tabs .ui-tabs-panel {
+	display: block;
+	border-width: 0;
+	padding: 1em 1.4em;
+	background: none;
+}
+.ui-tooltip {
+	padding: 8px;
+	position: absolute;
+	z-index: 9999;
+	max-width: 300px;
+	-webkit-box-shadow: 0 0 5px #aaa;
+	box-shadow: 0 0 5px #aaa;
+}
+body .ui-tooltip {
+	border-width: 2px;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #eeeeee;
+	background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
+	color: #333333;
+}
+.ui-widget-content a {
+	color: #333333;
+}
+.ui-widget-header {
+	border: 1px solid #e3a1a1;
+	background: #cc0000 url("images/ui-bg_highlight-soft_15_cc0000_1x100.png") 50% 50% repeat-x;
+	color: #ffffff;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #ffffff;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #d8dcdf;
+	background: #eeeeee url("images/ui-bg_highlight-hard_100_eeeeee_1x100.png") 50% 50% repeat-x;
+	font-weight: bold;
+	color: #004276;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #004276;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #cdd5da;
+	background: #f6f6f6 url("images/ui-bg_highlight-hard_100_f6f6f6_1x100.png") 50% 50% repeat-x;
+	font-weight: bold;
+	color: #111111;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #111111;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #eeeeee;
+	background: #ffffff url("images/ui-bg_flat_65_ffffff_40x100.png") 50% 50% repeat-x;
+	font-weight: bold;
+	color: #cc0000;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #cc0000;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fcd3a1;
+	background: #fbf8ee url("images/ui-bg_glass_55_fbf8ee_1x400.png") 50% 50% repeat-x;
+	color: #444444;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #444444;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cc0000;
+	background: #f3d8d8 url("images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png") 50% 50% repeat;
+	color: #2e2e2e;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #2e2e2e;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #2e2e2e;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70); /* support: IE8 */
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35); /* support: IE8 */
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-widget-header .ui-icon {
+	background-image: url("images/ui-icons_ffffff_256x240.png");
+}
+.ui-state-default .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-state-active .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-state-highlight .ui-icon {
+	background-image: url("images/ui-icons_004276_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 6px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #a6a6a6 url("images/ui-bg_dots-small_65_a6a6a6_2x2.png") 50% 50% repeat;
+	opacity: .4;
+	filter: Alpha(Opacity=40); /* support: IE8 */
+}
+.ui-widget-shadow {
+	margin: -8px 0 0 -8px;
+	padding: 8px;
+	background: #333333 url("images/ui-bg_flat_0_333333_40x100.png") 50% 50% repeat-x;
+	opacity: .1;
+	filter: Alpha(Opacity=10); /* support: IE8 */
+	border-radius: 8px;
+}
+
+/*!
+ * jQuery UI CSS Framework 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #eeeeee;
+	background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
+	color: #333333;
+}
+.ui-widget-content a {
+	color: #333333;
+}
+.ui-widget-header {
+	border: 1px solid #e3a1a1;
+	background: #cc0000 url("images/ui-bg_highlight-soft_15_cc0000_1x100.png") 50% 50% repeat-x;
+	color: #ffffff;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #ffffff;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #d8dcdf;
+	background: #eeeeee url("images/ui-bg_highlight-hard_100_eeeeee_1x100.png") 50% 50% repeat-x;
+	font-weight: bold;
+	color: #004276;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #004276;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #cdd5da;
+	background: #f6f6f6 url("images/ui-bg_highlight-hard_100_f6f6f6_1x100.png") 50% 50% repeat-x;
+	font-weight: bold;
+	color: #111111;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #111111;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #eeeeee;
+	background: #ffffff url("images/ui-bg_flat_65_ffffff_40x100.png") 50% 50% repeat-x;
+	font-weight: bold;
+	color: #cc0000;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #cc0000;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fcd3a1;
+	background: #fbf8ee url("images/ui-bg_glass_55_fbf8ee_1x400.png") 50% 50% repeat-x;
+	color: #444444;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #444444;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cc0000;
+	background: #f3d8d8 url("images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png") 50% 50% repeat;
+	color: #2e2e2e;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #2e2e2e;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #2e2e2e;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70); /* support: IE8 */
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35); /* support: IE8 */
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-widget-header .ui-icon {
+	background-image: url("images/ui-icons_ffffff_256x240.png");
+}
+.ui-state-default .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-state-active .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+.ui-state-highlight .ui-icon {
+	background-image: url("images/ui-icons_004276_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("images/ui-icons_cc0000_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 6px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #a6a6a6 url("images/ui-bg_dots-small_65_a6a6a6_2x2.png") 50% 50% repeat;
+	opacity: .4;
+	filter: Alpha(Opacity=40); /* support: IE8 */
+}
+.ui-widget-shadow {
+	margin: -8px 0 0 -8px;
+	padding: 8px;
+	background: #333333 url("images/ui-bg_flat_0_333333_40x100.png") 50% 50% repeat-x;
+	opacity: .1;
+	filter: Alpha(Opacity=10); /* support: IE8 */
+	border-radius: 8px;
+}
+
+/*! jQuery UI - v1.11.4 - 2015-03-11
+* http://jqueryui.com
+* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
 * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=highlight_soft&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=highlight_hard&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=glass&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=glass&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=flat&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=highlight_hard&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
 * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
 
--- a/server/ammicosrv/ammico/static/ammico/css/lib.min.css	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/static/ammico/css/lib.min.css	Wed Dec 02 19:38:02 2015 +0100
@@ -5,38 +5,39 @@
 .ng-anchor{position:absolute}
 .ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}
 /*!
- * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
  * Copyright 2011-2015 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-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}
 .btn-default:focus,.btn-default:hover{background-position:0 -15px}
-.btn-default.disabled,.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}
+.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-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}
 .btn-primary:focus,.btn-primary:hover{background-position:0 -15px}
-.btn-primary.disabled,.btn-primary:disabled,.btn-primary[disabled]{background-color:#265a88;background-image:none}
+.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-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}
 .btn-success:focus,.btn-success:hover{background-position:0 -15px}
-.btn-success.disabled,.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}
+.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-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}
 .btn-info:focus,.btn-info:hover{background-position:0 -15px}
-.btn-info.disabled,.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}
+.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-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}
 .btn-warning:focus,.btn-warning:hover{background-position:0 -15px}
-.btn-warning.disabled,.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}
+.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-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}
 .btn-danger:focus,.btn-danger:hover{background-position:0 -15px}
-.btn-danger.disabled,.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}
+.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-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-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-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}
+.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}
@@ -63,11 +64,11 @@
 .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}
 /*!
- * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
  * Copyright 2011-2015 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}
 body{margin:0}
 article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}
@@ -113,7 +114,6 @@
 img{max-width:100%!important}
 h2,h3,p{orphans:3;widows:3}
 h2,h3{page-break-after:avoid}
-select{background:#fff!important}
 .navbar{display:none}
 .btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}
 .label{border:1px solid #000}
@@ -424,25 +424,25 @@
 .text-capitalize{text-transform:capitalize}
 .text-muted{color:#777}
 .text-primary{color:#337ab7}
-a.text-primary:hover{color:#286090}
+a.text-primary:focus,a.text-primary:hover{color:#286090}
 .text-success{color:#3c763d}
-a.text-success:hover{color:#2b542c}
+a.text-success:focus,a.text-success:hover{color:#2b542c}
 .text-info{color:#31708f}
-a.text-info:hover{color:#245269}
+a.text-info:focus,a.text-info:hover{color:#245269}
 .text-warning{color:#8a6d3b}
-a.text-warning:hover{color:#66512c}
+a.text-warning:focus,a.text-warning:hover{color:#66512c}
 .text-danger{color:#a94442}
-a.text-danger:hover{color:#843534}
+a.text-danger:focus,a.text-danger:hover{color:#843534}
 .bg-primary{color:#fff;background-color:#337ab7}
-a.bg-primary:hover{background-color:#286090}
+a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}
 .bg-success{background-color:#dff0d8}
-a.bg-success:hover{background-color:#c1e2b3}
+a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}
 .bg-info{background-color:#d9edf7}
-a.bg-info:hover{background-color:#afd9ee}
+a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}
 .bg-warning{background-color:#fcf8e3}
-a.bg-warning:hover{background-color:#f7ecb5}
+a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}
 .bg-danger{background-color:#f2dede}
-a.bg-danger:hover{background-color:#e4b9b9}
+a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}
 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}
 ol,ul{margin-top:0;margin-bottom:10px}
 ol ol,ol ul,ul ol,ul ul{margin-bottom:0}
@@ -739,7 +739,7 @@
 .form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}
 textarea.form-control{height:auto}
 input[type=search]{-webkit-appearance:none}
-@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}
+@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}
 .input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}
 .input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}
 .form-group{margin-bottom:15px}
@@ -756,21 +756,21 @@
 select.input-sm{height:30px;line-height:30px}
 select[multiple].input-sm,textarea.input-sm{height:auto}
 .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}
-select.form-group-sm .form-control{height:30px;line-height:30px}
-select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}
-.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}
+.form-group-sm select.form-control{height:30px;line-height:30px}
+.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}
+.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}
 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}
 select.input-lg{height:46px;line-height:46px}
 select[multiple].input-lg,textarea.input-lg{height:auto}
 .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}
-select.form-group-lg .form-control{height:46px;line-height:46px}
-select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}
-.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}
+.form-group-lg select.form-control{height:46px;line-height:46px}
+.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}
+.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}
 .has-feedback{position:relative}
 .has-feedback .form-control{padding-right:42.5px}
 .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}
-.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}
-.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}
+.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}
+.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}
 .has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}
 .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}
 .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}
@@ -805,40 +805,53 @@
 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}
 @media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}
 .form-horizontal .has-feedback .form-control-feedback{right:15px}
-@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}
-@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}
+@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px;font-size:18px}}
+@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}
 .btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}
 .btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}
 .btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}
 .btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}
+.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}
+a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}
 .btn-default{color:#333;background-color:#fff;border-color:#ccc}
-.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}
+.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}
+.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}
+.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}
 .btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}
 .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:#fff;border-color:#ccc}
 .btn-default .badge{color:#fff;background-color:#333}
 .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}
-.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}
+.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}
+.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}
+.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}
 .btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}
 .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:#337ab7;border-color:#2e6da4}
 .btn-primary .badge{color:#337ab7;background-color:#fff}
 .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}
-.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}
+.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}
+.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}
+.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}
 .btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}
 .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:#5cb85c;border-color:#4cae4c}
 .btn-success .badge{color:#5cb85c;background-color:#fff}
 .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}
-.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}
+.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}
+.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}
+.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}
 .btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}
 .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:#5bc0de;border-color:#46b8da}
 .btn-info .badge{color:#5bc0de;background-color:#fff}
 .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}
-.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}
+.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}
+.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}
+.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}
 .btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}
 .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:#f0ad4e;border-color:#eea236}
 .btn-warning .badge{color:#f0ad4e;background-color:#fff}
 .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}
-.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}
+.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}
+.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}
+.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}
 .btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}
 .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:#d9534f;border-color:#d43f3a}
 .btn-danger .badge{color:#d9534f;background-color:#fff}
@@ -878,7 +891,7 @@
 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}
 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}
 .pull-right>.dropdown-menu{right:0;left:auto}
-.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}
+.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed}
 .dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}
 @media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}
 .navbar-right .dropdown-menu-left{right:auto;left:0}}
@@ -887,7 +900,7 @@
 .btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}
 .btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}
 .btn-toolbar{margin-left:-5px}
-.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}
+.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}
 .btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}
 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}
 .btn-group>.btn:first-child{margin-left:0}
@@ -944,7 +957,7 @@
 .input-group-btn>.btn+.btn{margin-left:-1px}
 .input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}
 .input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}
-.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}
+.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}
 .nav{padding-left:0;margin-bottom:0;list-style:none}
 .nav>li{position:relative;display:block}
 .nav>li>a{position:relative;display:block;padding:10px 15px}
@@ -1104,13 +1117,13 @@
 .pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}
 .pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}
 .pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}
-.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}
+.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}
 .pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}
 .pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}
-.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}
+.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}
 .pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}
 .pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}
-.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}
+.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}
 .pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}
 .pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}
 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}
@@ -1136,7 +1149,7 @@
 .label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}
 .label-danger{background-color:#d9534f}
 .label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}
-.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}
+.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}
 .badge:empty{display:none}
 .btn .badge{position:relative;top:-1px}
 .btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}
@@ -1145,13 +1158,13 @@
 .list-group-item>.badge{float:right}
 .list-group-item>.badge+.badge{margin-right:5px}
 .nav-pills>li>a>.badge{margin-left:3px}
-.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}
+.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}
 .jumbotron .h1,.jumbotron h1{color:inherit}
 .jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}
 .jumbotron>hr{border-top-color:#d5d5d5}
 .container .jumbotron,.container-fluid .jumbotron{border-radius:6px}
 .jumbotron .container{max-width:100%}
-@media screen and (min-width:768px){.jumbotron{padding:48px 0}
+@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}
 .container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}
 .jumbotron .h1,.jumbotron h1{font-size:63px}}
 .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}
@@ -1200,6 +1213,7 @@
 .media,.media-body{overflow:hidden;zoom:1}
 .media-body{width:10000px}
 .media-object{display:block}
+.media-object.img-thumbnail{max-width:none}
 .media-right,.media>.pull-right{padding-left:10px}
 .media-left,.media>.pull-left{padding-right:10px}
 .media-body,.media-left,.media-right{display:table-cell;vertical-align:top}
@@ -1211,9 +1225,10 @@
 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}
 .list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}
 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}
-a.list-group-item{color:#555}
-a.list-group-item .list-group-item-heading{color:#333}
-a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}
+a.list-group-item,button.list-group-item{color:#555}
+a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}
+a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}
+button.list-group-item{width:100%;text-align:left}
 .list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}
 .list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}
 .list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}
@@ -1221,25 +1236,25 @@
 .list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}
 .list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}
 .list-group-item-success{color:#3c763d;background-color:#dff0d8}
-a.list-group-item-success{color:#3c763d}
-a.list-group-item-success .list-group-item-heading{color:inherit}
-a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}
-a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}
+a.list-group-item-success,button.list-group-item-success{color:#3c763d}
+a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}
+a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}
+a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}
 .list-group-item-info{color:#31708f;background-color:#d9edf7}
-a.list-group-item-info{color:#31708f}
-a.list-group-item-info .list-group-item-heading{color:inherit}
-a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}
-a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}
+a.list-group-item-info,button.list-group-item-info{color:#31708f}
+a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}
+a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}
+a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}
 .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}
-a.list-group-item-warning{color:#8a6d3b}
-a.list-group-item-warning .list-group-item-heading{color:inherit}
-a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}
-a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}
+a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}
+a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}
+a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}
+a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}
 .list-group-item-danger{color:#a94442;background-color:#f2dede}
-a.list-group-item-danger{color:#a94442}
-a.list-group-item-danger .list-group-item-heading{color:inherit}
-a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}
-a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}
+a.list-group-item-danger,button.list-group-item-danger{color:#a94442}
+a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}
+a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}
+a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}
 .list-group-item-heading{margin-top:0;margin-bottom:5px}
 .list-group-item-text{margin-bottom:0;line-height:1.3}
 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}
@@ -1253,6 +1268,7 @@
 .panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}
 .panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}
 .panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}
+.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}
 .list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}
 .panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}
 .panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}
@@ -1340,13 +1356,13 @@
 .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}
 .modal-sm{width:300px}}
 @media (min-width:992px){.modal-lg{width:900px}}
-.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}
+.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}
 .tooltip.in{filter:alpha(opacity=90);opacity:.9}
 .tooltip.top{padding:5px 0;margin-top:-3px}
 .tooltip.right{padding:0 5px;margin-left:3px}
 .tooltip.bottom{padding:5px 0;margin-top:3px}
 .tooltip.left{padding:0 5px;margin-left:-3px}
-.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}
+.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}
 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}
 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}
 .tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}
@@ -1356,7 +1372,7 @@
 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}
 .tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}
 .tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}
-.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}
+.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}
 .popover.top{margin-top:-10px}
 .popover.right{margin-left:10px}
 .popover.bottom{margin-top:10px}
@@ -1378,7 +1394,7 @@
 .carousel-inner{position:relative;width:100%;overflow:hidden}
 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}
 .carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}
-@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}
+@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}
 .carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}
 .carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}
 .carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}
@@ -1394,10 +1410,10 @@
 .carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}
 .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}
 .carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}
-.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}
+.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}
 .carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}
 .carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}
-.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}
+.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}
 .carousel-control .icon-prev:before{content:'\2039'}
 .carousel-control .icon-next:before{content:'\203a'}
 .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}
@@ -1424,28 +1440,28 @@
 @-ms-viewport{width:device-width}
 .visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-print,.visible-print-block,.visible-print-inline,.visible-print-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}
 @media (max-width:767px){.visible-xs{display:block!important}
-table.visible-xs{display:table}
+table.visible-xs{display:table!important}
 tr.visible-xs{display:table-row!important}
 td.visible-xs,th.visible-xs{display:table-cell!important}}
 @media (max-width:767px){.visible-xs-block{display:block!important}}
 @media (max-width:767px){.visible-xs-inline{display:inline!important}}
 @media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}
 @media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}
-table.visible-sm{display:table}
+table.visible-sm{display:table!important}
 tr.visible-sm{display:table-row!important}
 td.visible-sm,th.visible-sm{display:table-cell!important}}
 @media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}
 @media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}
 @media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}
 @media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}
-table.visible-md{display:table}
+table.visible-md{display:table!important}
 tr.visible-md{display:table-row!important}
 td.visible-md,th.visible-md{display:table-cell!important}}
 @media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}
 @media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}
 @media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}
 @media (min-width:1200px){.visible-lg{display:block!important}
-table.visible-lg{display:table}
+table.visible-lg{display:table!important}
 tr.visible-lg{display:table-row!important}
 td.visible-lg,th.visible-lg{display:table-cell!important}}
 @media (min-width:1200px){.visible-lg-block{display:block!important}}
@@ -1456,30 +1472,13 @@
 @media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}
 @media (min-width:1200px){.hidden-lg{display:none!important}}
 @media print{.visible-print{display:block!important}
-table.visible-print{display:table}
+table.visible-print{display:table!important}
 tr.visible-print{display:table-row!important}
 td.visible-print,th.visible-print{display:table-cell!important}}
 @media print{.visible-print-block{display:block!important}}
 @media print{.visible-print-inline{display:inline!important}}
 @media print{.visible-print-inline-block{display:inline-block!important}}
 @media print{.hidden-print{display:none!important}}
-/*! jQuery UI - v1.11.4 - 2015-03-11
-* http://jqueryui.com
-* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
-* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
-/*!
- * jQuery UI CSS Framework 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/category/theming/
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
- */
 /*!
  * jQuery UI Accordion 1.11.4
  * http://jqueryui.com
@@ -1718,6 +1717,23 @@
 /*! jQuery UI - v1.11.4 - 2015-03-11
 * http://jqueryui.com
 * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+/*!
+ * jQuery UI CSS Framework 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=cc0000&bgTextureHeader=highlight_soft&bgImgOpacityHeader=15&borderColorHeader=e3a1a1&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=eeeeee&fcContent=333333&iconColorContent=cc0000&bgColorDefault=eeeeee&bgTextureDefault=highlight_hard&bgImgOpacityDefault=100&borderColorDefault=d8dcdf&fcDefault=004276&iconColorDefault=cc0000&bgColorHover=f6f6f6&bgTextureHover=highlight_hard&bgImgOpacityHover=100&borderColorHover=cdd5da&fcHover=111111&iconColorHover=cc0000&bgColorActive=ffffff&bgTextureActive=flat&bgImgOpacityActive=65&borderColorActive=eeeeee&fcActive=cc0000&iconColorActive=cc0000&bgColorHighlight=fbf8ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcd3a1&fcHighlight=444444&iconColorHighlight=004276&bgColorError=f3d8d8&bgTextureError=diagonals_thick&bgImgOpacityError=75&borderColorError=cc0000&fcError=2e2e2e&iconColorError=cc0000&bgColorOverlay=a6a6a6&bgTextureOverlay=dots_small&bgImgOpacityOverlay=65&opacityOverlay=40&bgColorShadow=333333&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=10&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+/*! jQuery UI - v1.11.4 - 2015-03-11
+* http://jqueryui.com
+* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
 * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=highlight_soft&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=highlight_hard&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=glass&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=glass&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=flat&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=highlight_hard&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
 * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
 /*!
--- a/server/ammicosrv/ammico/static/ammico/js/app.js	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/static/ammico/js/app.js	Wed Dec 02 19:38:02 2015 +0100
@@ -272,7 +272,7 @@
 
 (function(){
     'use strict';
-    
+
     angular.module('ammicoCommon', ['ngRoute'])
     .factory('Book', function($resource, context) {
         var books = $resource(context.urls.ammicoUrl+'books/:idBook', {idBook:'@id', idExpo: context.idExpo}, {update: { method: 'PUT'}});
@@ -280,7 +280,7 @@
     })
     .factory('Slide', function($resource, context, $modal) {
         var slides = $resource(context.urls.ammicoUrl+'slides/:idSlide', {idSlide:'@id'}, {update: { method: 'PUT'}});
-        
+
         angular.extend(slides.prototype, {
 
             toggleFavorite: function () {
@@ -322,7 +322,7 @@
                 }
             }
         });
-        
+
         return slides;
     })
     .factory('Order', function($resource, context) {
@@ -345,7 +345,7 @@
     })
     .service('searchApi', function($resource, context) {
         this.searchResource = function(params){
-            return $resource(context.urls.searchUrl,  
+            return $resource(context.urls.searchUrl,
                     {
                 callback: 'JSON_CALLBACK'
                     },
@@ -355,35 +355,20 @@
                             params: params,
                             isArray: false,
                             transformResponse: function(data){
-                                var i, j;
-                                // Transform meta list into meta dict
-                                if (typeof data.hits !== 'undefined'){
-                                    var nb = data.hits.length;
-                                    for(i=0;i<nb;i++){
-                                        var nb_metas = data.hits[i].metas.length;
-                                        data.hits[i].metas_dict = {};
-                                        for(j=0;j<nb_metas;j++){
-                                            if(typeof data.hits[i].metas[j].images==='undefined'){
-                                                data.hits[i].metas_dict[data.hits[i].metas[j].name] = data.hits[i].metas[j].value;
-                                            }
-                                            else{
-                                                data.hits[i].metas_dict.images = data.hits[i].metas[j].images[0].value;
-                                            }
-                                        }
-                                    }
-                                    return data;   
+                              if (data.success){
+                                data = data.response[0];
+                                for (var i=0; i<data.count; i++){
+                                  data.collect[i].name = data.collect[i].name || data.collect[i].title_stop || '';
+                                  data.collect[i].description = data.collect[i].description_record || data.collect[i].description_stop || '';
+                                  data.collect[i].url = data.collect[i].url_cnhi || '';
+                                  data.collect[i].date = data.collect[i].displaydates || '';
+                                  data.collect[i].id_stop = data.collect[i].id_stop || '';
+                                  data.collect[i].inventorynumber = data.collect[i].inventorynumber || '';
+                                  data.collect[i].tags = data.collect[i].tags_stop || [];
+                                  data.collect[i].images = data.collect[i].images || [];
                                 }
-                                if (typeof data.response !== 'undefined'){
-                                    var result = [];
-
-                                    angular.forEach(data.response[0].collect, function(value) {
-                                        var temp = {};
-                                        angular.forEach(value, function(value2, key2) {
-                                            temp[key2]= value2;
-                                        });
-                                        result.push(temp);
-                                    });
-                                }
+                              }
+                              return data;
                             }
                         }
                     });
@@ -407,7 +392,7 @@
             }
         };
     });
-    
+
 })();
 
 (function(){
@@ -501,9 +486,9 @@
     .controller('searchCtrl', function($scope, $location, $routeParams, searchApi, $modal, Slide){
         $scope.q = $routeParams.q || '';
         if ($scope.q !== ''){
-            $scope.results_ = searchApi.searchResource({q:$scope.q, of: 'json', synthesis: 'false', nresults:'10', callback: 'JSON_CALLBACK'}).getJsonp();
+          $scope.results = searchApi.searchResource({q:$scope.q, of: 'json', synthesis: 'false', nresults:'10', callback: 'JSON_CALLBACK'}).getJsonp();
         }
-        
+
         $scope.toggleModal = function (index) {
 
             var modalInstance = $modal.open({
@@ -513,17 +498,17 @@
             });
 
             modalInstance.result.then(function (idBook) {
-                var newSlide = {
-                    book: idBook,
-                    research_id: $scope.results.hits[index].metas_dict.inventorynumber
-                };
-                Slide.save(newSlide);
+              var newSlide = $scope.results.collect[index];
+              delete newSlide.date;
+              newSlide.book = idBook;
+              newSlide.research_id = (newSlide.inventorynumber || newSlide.id_stop);
+              Slide.save(newSlide);
             });
         };
     })
     .controller('ModalInstanceCtrl', function ($scope, $modalInstance, Book) {
         $scope.books = Book.query({format:'json'});
-        
+
         $scope.addToBook = function(idBook){
             $modalInstance.close(idBook);
         };
--- a/server/ammicosrv/ammico/static/ammico/js/lib.js	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/static/ammico/js/lib.js	Wed Dec 02 19:38:02 2015 +0100
@@ -25827,9 +25827,9 @@
 
 }));
 /*!
- * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
  * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * Licensed under the MIT license
  */
 
 if (typeof jQuery === 'undefined') {
@@ -25845,7 +25845,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: transition.js v3.3.4
+ * Bootstrap: transition.js v3.3.5
  * http://getbootstrap.com/javascript/#transitions
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -25905,7 +25905,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: alert.js v3.3.4
+ * Bootstrap: alert.js v3.3.5
  * http://getbootstrap.com/javascript/#alerts
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -25924,7 +25924,7 @@
     $(el).on('click', dismiss, this.close)
   }
 
-  Alert.VERSION = '3.3.4'
+  Alert.VERSION = '3.3.5'
 
   Alert.TRANSITION_DURATION = 150
 
@@ -26000,7 +26000,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: button.js v3.3.4
+ * Bootstrap: button.js v3.3.5
  * http://getbootstrap.com/javascript/#buttons
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -26020,7 +26020,7 @@
     this.isLoading = false
   }
 
-  Button.VERSION  = '3.3.4'
+  Button.VERSION  = '3.3.5'
 
   Button.DEFAULTS = {
     loadingText: 'loading...'
@@ -26032,7 +26032,7 @@
     var val  = $el.is('input') ? 'val' : 'html'
     var data = $el.data()
 
-    state = state + 'Text'
+    state += 'Text'
 
     if (data.resetText == null) $el.data('resetText', $el[val]())
 
@@ -26057,15 +26057,19 @@
     if ($parent.length) {
       var $input = this.$element.find('input')
       if ($input.prop('type') == 'radio') {
-        if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
-        else $parent.find('.active').removeClass('active')
-      }
-      if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
+        if ($input.prop('checked')) changed = false
+        $parent.find('.active').removeClass('active')
+        this.$element.addClass('active')
+      } else if ($input.prop('type') == 'checkbox') {
+        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
+        this.$element.toggleClass('active')
+      }
+      $input.prop('checked', this.$element.hasClass('active'))
+      if (changed) $input.trigger('change')
     } else {
       this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
-    }
-
-    if (changed) this.$element.toggleClass('active')
+      this.$element.toggleClass('active')
+    }
   }
 
 
@@ -26108,7 +26112,7 @@
       var $btn = $(e.target)
       if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
       Plugin.call($btn, 'toggle')
-      e.preventDefault()
+      if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
     })
     .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
       $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
@@ -26117,7 +26121,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: carousel.js v3.3.4
+ * Bootstrap: carousel.js v3.3.5
  * http://getbootstrap.com/javascript/#carousel
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -26148,7 +26152,7 @@
       .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
   }
 
-  Carousel.VERSION  = '3.3.4'
+  Carousel.VERSION  = '3.3.5'
 
   Carousel.TRANSITION_DURATION = 600
 
@@ -26355,7 +26359,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: collapse.js v3.3.4
+ * Bootstrap: collapse.js v3.3.5
  * http://getbootstrap.com/javascript/#collapse
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -26385,7 +26389,7 @@
     if (this.options.toggle) this.toggle()
   }
 
-  Collapse.VERSION  = '3.3.4'
+  Collapse.VERSION  = '3.3.5'
 
   Collapse.TRANSITION_DURATION = 350
 
@@ -26567,7 +26571,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: dropdown.js v3.3.4
+ * Bootstrap: dropdown.js v3.3.5
  * http://getbootstrap.com/javascript/#dropdowns
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -26587,7 +26591,41 @@
     $(element).on('click.bs.dropdown', this.toggle)
   }
 
-  Dropdown.VERSION = '3.3.4'
+  Dropdown.VERSION = '3.3.5'
+
+  function getParent($this) {
+    var selector = $this.attr('data-target')
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+    }
+
+    var $parent = selector && $(selector)
+
+    return $parent && $parent.length ? $parent : $this.parent()
+  }
+
+  function clearMenus(e) {
+    if (e && e.which === 3) return
+    $(backdrop).remove()
+    $(toggle).each(function () {
+      var $this         = $(this)
+      var $parent       = getParent($this)
+      var relatedTarget = { relatedTarget: this }
+
+      if (!$parent.hasClass('open')) return
+
+      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
+
+      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
+
+      if (e.isDefaultPrevented()) return
+
+      $this.attr('aria-expanded', 'false')
+      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
+    })
+  }
 
   Dropdown.prototype.toggle = function (e) {
     var $this = $(this)
@@ -26602,7 +26640,10 @@
     if (!isActive) {
       if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
         // if mobile we use a backdrop because click events don't delegate
-        $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
+        $(document.createElement('div'))
+          .addClass('dropdown-backdrop')
+          .insertAfter($(this))
+          .on('click', clearMenus)
       }
 
       var relatedTarget = { relatedTarget: this }
@@ -26635,57 +26676,25 @@
     var $parent  = getParent($this)
     var isActive = $parent.hasClass('open')
 
-    if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
+    if (!isActive && e.which != 27 || isActive && e.which == 27) {
       if (e.which == 27) $parent.find(toggle).trigger('focus')
       return $this.trigger('click')
     }
 
     var desc = ' li:not(.disabled):visible a'
-    var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
+    var $items = $parent.find('.dropdown-menu' + desc)
 
     if (!$items.length) return
 
     var index = $items.index(e.target)
 
-    if (e.which == 38 && index > 0)                 index--                        // up
-    if (e.which == 40 && index < $items.length - 1) index++                        // down
-    if (!~index)                                      index = 0
+    if (e.which == 38 && index > 0)                 index--         // up
+    if (e.which == 40 && index < $items.length - 1) index++         // down
+    if (!~index)                                    index = 0
 
     $items.eq(index).trigger('focus')
   }
 
-  function clearMenus(e) {
-    if (e && e.which === 3) return
-    $(backdrop).remove()
-    $(toggle).each(function () {
-      var $this         = $(this)
-      var $parent       = getParent($this)
-      var relatedTarget = { relatedTarget: this }
-
-      if (!$parent.hasClass('open')) return
-
-      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
-
-      if (e.isDefaultPrevented()) return
-
-      $this.attr('aria-expanded', 'false')
-      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
-    })
-  }
-
-  function getParent($this) {
-    var selector = $this.attr('data-target')
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
-    }
-
-    var $parent = selector && $(selector)
-
-    return $parent && $parent.length ? $parent : $this.parent()
-  }
-
 
   // DROPDOWN PLUGIN DEFINITION
   // ==========================
@@ -26723,13 +26732,12 @@
     .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
     .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
     .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
-    .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
-    .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
+    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
 
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: modal.js v3.3.4
+ * Bootstrap: modal.js v3.3.5
  * http://getbootstrap.com/javascript/#modals
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -26763,7 +26771,7 @@
     }
   }
 
-  Modal.VERSION  = '3.3.4'
+  Modal.VERSION  = '3.3.5'
 
   Modal.TRANSITION_DURATION = 300
   Modal.BACKDROP_TRANSITION_DURATION = 150
@@ -26820,9 +26828,7 @@
         that.$element[0].offsetWidth // force reflow
       }
 
-      that.$element
-        .addClass('in')
-        .attr('aria-hidden', false)
+      that.$element.addClass('in')
 
       that.enforceFocus()
 
@@ -26856,7 +26862,6 @@
 
     this.$element
       .removeClass('in')
-      .attr('aria-hidden', true)
       .off('click.dismiss.bs.modal')
       .off('mouseup.dismiss.bs.modal')
 
@@ -26920,7 +26925,8 @@
     if (this.isShown && this.options.backdrop) {
       var doAnimate = $.support.transition && animate
 
-      this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
+      this.$backdrop = $(document.createElement('div'))
+        .addClass('modal-backdrop ' + animate)
         .appendTo(this.$body)
 
       this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
@@ -27069,7 +27075,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: tooltip.js v3.3.4
+ * Bootstrap: tooltip.js v3.3.5
  * http://getbootstrap.com/javascript/#tooltip
  * Inspired by the original jQuery.tipsy by Jason Frame
  * ========================================================================
@@ -27091,11 +27097,12 @@
     this.timeout    = null
     this.hoverState = null
     this.$element   = null
+    this.inState    = null
 
     this.init('tooltip', element, options)
   }
 
-  Tooltip.VERSION  = '3.3.4'
+  Tooltip.VERSION  = '3.3.5'
 
   Tooltip.TRANSITION_DURATION = 150
 
@@ -27120,7 +27127,8 @@
     this.type      = type
     this.$element  = $(element)
     this.options   = this.getOptions(options)
-    this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
+    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
+    this.inState   = { click: false, hover: false, focus: false }
 
     if (this.$element[0] instanceof document.constructor && !this.options.selector) {
       throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
@@ -27179,16 +27187,20 @@
     var self = obj instanceof this.constructor ?
       obj : $(obj.currentTarget).data('bs.' + this.type)
 
-    if (self && self.$tip && self.$tip.is(':visible')) {
-      self.hoverState = 'in'
-      return
-    }
-
     if (!self) {
       self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
       $(obj.currentTarget).data('bs.' + this.type, self)
     }
 
+    if (obj instanceof $.Event) {
+      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
+    }
+
+    if (self.tip().hasClass('in') || self.hoverState == 'in') {
+      self.hoverState = 'in'
+      return
+    }
+
     clearTimeout(self.timeout)
 
     self.hoverState = 'in'
@@ -27200,6 +27212,14 @@
     }, self.options.delay.show)
   }
 
+  Tooltip.prototype.isInStateTrue = function () {
+    for (var key in this.inState) {
+      if (this.inState[key]) return true
+    }
+
+    return false
+  }
+
   Tooltip.prototype.leave = function (obj) {
     var self = obj instanceof this.constructor ?
       obj : $(obj.currentTarget).data('bs.' + this.type)
@@ -27209,6 +27229,12 @@
       $(obj.currentTarget).data('bs.' + this.type, self)
     }
 
+    if (obj instanceof $.Event) {
+      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
+    }
+
+    if (self.isInStateTrue()) return
+
     clearTimeout(self.timeout)
 
     self.hoverState = 'out'
@@ -27255,6 +27281,7 @@
         .data('bs.' + this.type, this)
 
       this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
+      this.$element.trigger('inserted.bs.' + this.type)
 
       var pos          = this.getPosition()
       var actualWidth  = $tip[0].offsetWidth
@@ -27262,13 +27289,12 @@
 
       if (autoPlace) {
         var orgPlacement = placement
-        var $container   = this.options.container ? $(this.options.container) : this.$element.parent()
-        var containerDim = this.getPosition($container)
-
-        placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top'    :
-                    placement == 'top'    && pos.top    - actualHeight < containerDim.top    ? 'bottom' :
-                    placement == 'right'  && pos.right  + actualWidth  > containerDim.width  ? 'left'   :
-                    placement == 'left'   && pos.left   - actualWidth  < containerDim.left   ? 'right'  :
+        var viewportDim = this.getPosition(this.$viewport)
+
+        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :
+                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :
+                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :
+                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :
                     placement
 
         $tip
@@ -27309,8 +27335,8 @@
     if (isNaN(marginTop))  marginTop  = 0
     if (isNaN(marginLeft)) marginLeft = 0
 
-    offset.top  = offset.top  + marginTop
-    offset.left = offset.left + marginLeft
+    offset.top  += marginTop
+    offset.left += marginLeft
 
     // $.fn.offset doesn't round pixel values
     // so we use setOffset directly with our own function B-0
@@ -27392,7 +27418,7 @@
 
   Tooltip.prototype.fixTitle = function () {
     var $e = this.$element
-    if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
+    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
       $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
     }
   }
@@ -27447,7 +27473,7 @@
       var rightEdgeOffset = pos.left + viewportPadding + actualWidth
       if (leftEdgeOffset < viewportDimensions.left) { // left overflow
         delta.left = viewportDimensions.left - leftEdgeOffset
-      } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
+      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
         delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
       }
     }
@@ -27473,7 +27499,13 @@
   }
 
   Tooltip.prototype.tip = function () {
-    return (this.$tip = this.$tip || $(this.options.template))
+    if (!this.$tip) {
+      this.$tip = $(this.options.template)
+      if (this.$tip.length != 1) {
+        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
+      }
+    }
+    return this.$tip
   }
 
   Tooltip.prototype.arrow = function () {
@@ -27502,7 +27534,13 @@
       }
     }
 
-    self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
+    if (e) {
+      self.inState.click = !self.inState.click
+      if (self.isInStateTrue()) self.enter(self)
+      else self.leave(self)
+    } else {
+      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
+    }
   }
 
   Tooltip.prototype.destroy = function () {
@@ -27510,6 +27548,12 @@
     clearTimeout(this.timeout)
     this.hide(function () {
       that.$element.off('.' + that.type).removeData('bs.' + that.type)
+      if (that.$tip) {
+        that.$tip.detach()
+      }
+      that.$tip = null
+      that.$arrow = null
+      that.$viewport = null
     })
   }
 
@@ -27546,7 +27590,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: popover.js v3.3.4
+ * Bootstrap: popover.js v3.3.5
  * http://getbootstrap.com/javascript/#popovers
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -27566,7 +27610,7 @@
 
   if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
 
-  Popover.VERSION  = '3.3.4'
+  Popover.VERSION  = '3.3.5'
 
   Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
     placement: 'right',
@@ -27655,7 +27699,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: scrollspy.js v3.3.4
+ * Bootstrap: scrollspy.js v3.3.5
  * http://getbootstrap.com/javascript/#scrollspy
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -27684,7 +27728,7 @@
     this.process()
   }
 
-  ScrollSpy.VERSION  = '3.3.4'
+  ScrollSpy.VERSION  = '3.3.5'
 
   ScrollSpy.DEFAULTS = {
     offset: 10
@@ -27828,7 +27872,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: tab.js v3.3.4
+ * Bootstrap: tab.js v3.3.5
  * http://getbootstrap.com/javascript/#tabs
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -27843,10 +27887,12 @@
   // ====================
 
   var Tab = function (element) {
+    // jscs:disable requireDollarBeforejQueryAssignment
     this.element = $(element)
-  }
-
-  Tab.VERSION = '3.3.4'
+    // jscs:enable requireDollarBeforejQueryAssignment
+  }
+
+  Tab.VERSION = '3.3.5'
 
   Tab.TRANSITION_DURATION = 150
 
@@ -27894,7 +27940,7 @@
     var $active    = container.find('> .active')
     var transition = callback
       && $.support.transition
-      && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
+      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
 
     function next() {
       $active
@@ -27982,7 +28028,7 @@
 }(jQuery);
 
 /* ========================================================================
- * Bootstrap: affix.js v3.3.4
+ * Bootstrap: affix.js v3.3.5
  * http://getbootstrap.com/javascript/#affix
  * ========================================================================
  * Copyright 2011-2015 Twitter, Inc.
@@ -28011,7 +28057,7 @@
     this.checkPosition()
   }
 
-  Affix.VERSION  = '3.3.4'
+  Affix.VERSION  = '3.3.5'
 
   Affix.RESET    = 'affix affix-top affix-bottom'
 
@@ -28061,7 +28107,7 @@
     var offset       = this.options.offset
     var offsetTop    = offset.top
     var offsetBottom = offset.bottom
-    var scrollHeight = $(document.body).height()
+    var scrollHeight = Math.max($(document).height(), $(document.body).height())
 
     if (typeof offset != 'object')         offsetBottom = offsetTop = offset
     if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
@@ -28145,7 +28191,7 @@
 }(jQuery);
 
 /**
- * @license AngularJS v1.4.0
+ * @license AngularJS v1.4.7
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -28203,7 +28249,7 @@
       return match;
     });
 
-    message += '\nhttp://errors.angularjs.org/1.4.0/' +
+    message += '\nhttp://errors.angularjs.org/1.4.7/' +
       (module ? module + '/' : '') + code;
 
     for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {
@@ -28567,8 +28613,14 @@
       var src = obj[key];
 
       if (deep && isObject(src)) {
-        if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {};
-        baseExtend(dst[key], [src], true);
+        if (isDate(src)) {
+          dst[key] = new Date(src.valueOf());
+        } else if (isRegExp(src)) {
+          dst[key] = new RegExp(src);
+        } else {
+          if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {};
+          baseExtend(dst[key], [src], true);
+        }
       } else {
         dst[key] = src;
       }
@@ -28679,6 +28731,11 @@
 
 function valueFn(value) {return function() {return value;};}
 
+function hasCustomToString(obj) {
+  return isFunction(obj.toString) && obj.toString !== Object.prototype.toString;
+}
+
+
 /**
  * @ngdoc function
  * @name angular.isUndefined
@@ -29010,9 +29067,18 @@
 
   if (!destination) {
     destination = source;
-    if (source) {
+    if (isObject(source)) {
+      var index;
+      if (stackSource && (index = stackSource.indexOf(source)) !== -1) {
+        return stackDest[index];
+      }
+
+      // TypedArray, Date and RegExp have specific copy functionality and must be
+      // pushed onto the stack before returning.
+      // Array and other objects create the base object and recurse to copy child
+      // objects. The array/object will be pushed onto the stack when recursed.
       if (isArray(source)) {
-        destination = copy(source, [], stackSource, stackDest);
+        return copy(source, [], stackSource, stackDest);
       } else if (isTypedArray(source)) {
         destination = new source.constructor(source);
       } else if (isDate(source)) {
@@ -29020,9 +29086,16 @@
       } else if (isRegExp(source)) {
         destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]);
         destination.lastIndex = source.lastIndex;
-      } else if (isObject(source)) {
+      } else if (isFunction(source.cloneNode)) {
+          destination = source.cloneNode(true);
+      } else {
         var emptyObject = Object.create(getPrototypeOf(source));
-        destination = copy(source, emptyObject, stackSource, stackDest);
+        return copy(source, emptyObject, stackSource, stackDest);
+      }
+
+      if (stackDest) {
+        stackSource.push(source);
+        stackDest.push(destination);
       }
     }
   } else {
@@ -29033,9 +29106,6 @@
     stackDest = stackDest || [];
 
     if (isObject(source)) {
-      var index = stackSource.indexOf(source);
-      if (index !== -1) return stackDest[index];
-
       stackSource.push(source);
       stackDest.push(destination);
     }
@@ -29044,12 +29114,7 @@
     if (isArray(source)) {
       destination.length = 0;
       for (var i = 0; i < source.length; i++) {
-        result = copy(source[i], null, stackSource, stackDest);
-        if (isObject(source[i])) {
-          stackSource.push(source[i]);
-          stackDest.push(result);
-        }
-        destination.push(result);
+        destination.push(copy(source[i], null, stackSource, stackDest));
       }
     } else {
       var h = destination.$$hashKey;
@@ -29063,20 +29128,20 @@
       if (isBlankObject(source)) {
         // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty
         for (key in source) {
-          putValue(key, source[key], destination, stackSource, stackDest);
+          destination[key] = copy(source[key], null, stackSource, stackDest);
         }
       } else if (source && typeof source.hasOwnProperty === 'function') {
         // Slow path, which must rely on hasOwnProperty
         for (key in source) {
           if (source.hasOwnProperty(key)) {
-            putValue(key, source[key], destination, stackSource, stackDest);
+            destination[key] = copy(source[key], null, stackSource, stackDest);
           }
         }
       } else {
         // Slowest path --- hasOwnProperty can't be called as a method
         for (key in source) {
           if (hasOwnProperty.call(source, key)) {
-            putValue(key, source[key], destination, stackSource, stackDest);
+            destination[key] = copy(source[key], null, stackSource, stackDest);
           }
         }
       }
@@ -29084,16 +29149,6 @@
     }
   }
   return destination;
-
-  function putValue(key, val, destination, stackSource, stackDest) {
-    // No context allocation, trivial outer scope, easily inlined
-    var result = copy(val, null, stackSource, stackDest);
-    if (isObject(val)) {
-      stackSource.push(val);
-      stackDest.push(result);
-    }
-    destination[key] = result;
-  }
 }
 
 /**
@@ -29183,7 +29238,7 @@
         for (key in o2) {
           if (!(key in keySet) &&
               key.charAt(0) !== '$' &&
-              o2[key] !== undefined &&
+              isDefined(o2[key]) &&
               !isFunction(o2[key])) return false;
         }
         return true;
@@ -29194,22 +29249,39 @@
 }
 
 var csp = function() {
-  if (isDefined(csp.isActive_)) return csp.isActive_;
-
-  var active = !!(document.querySelector('[ng-csp]') ||
-                  document.querySelector('[data-ng-csp]'));
-
-  if (!active) {
+  if (!isDefined(csp.rules)) {
+
+
+    var ngCspElement = (document.querySelector('[ng-csp]') ||
+                    document.querySelector('[data-ng-csp]'));
+
+    if (ngCspElement) {
+      var ngCspAttribute = ngCspElement.getAttribute('ng-csp') ||
+                    ngCspElement.getAttribute('data-ng-csp');
+      csp.rules = {
+        noUnsafeEval: !ngCspAttribute || (ngCspAttribute.indexOf('no-unsafe-eval') !== -1),
+        noInlineStyle: !ngCspAttribute || (ngCspAttribute.indexOf('no-inline-style') !== -1)
+      };
+    } else {
+      csp.rules = {
+        noUnsafeEval: noUnsafeEval(),
+        noInlineStyle: false
+      };
+    }
+  }
+
+  return csp.rules;
+
+  function noUnsafeEval() {
     try {
       /* jshint -W031, -W054 */
       new Function('');
       /* jshint +W031, +W054 */
+      return false;
     } catch (e) {
-      active = true;
-    }
-  }
-
-  return (csp.isActive_ = active);
+      return true;
+    }
+  }
 };
 
 /**
@@ -29441,13 +29513,19 @@
  * @returns {Object.<string,boolean|Array>}
  */
 function parseKeyValue(/**string*/keyValue) {
-  var obj = {}, key_value, key;
+  var obj = {};
   forEach((keyValue || "").split('&'), function(keyValue) {
+    var splitPoint, key, val;
     if (keyValue) {
-      key_value = keyValue.replace(/\+/g,'%20').split('=');
-      key = tryDecodeURIComponent(key_value[0]);
+      key = keyValue = keyValue.replace(/\+/g,'%20');
+      splitPoint = keyValue.indexOf('=');
+      if (splitPoint !== -1) {
+        key = keyValue.substring(0, splitPoint);
+        val = keyValue.substring(splitPoint + 1);
+      }
+      key = tryDecodeURIComponent(key);
       if (isDefined(key)) {
-        var val = isDefined(key_value[1]) ? tryDecodeURIComponent(key_value[1]) : true;
+        val = isDefined(val) ? tryDecodeURIComponent(val) : true;
         if (!hasOwnProperty.call(obj, key)) {
           obj[key] = val;
         } else if (isArray(obj[key])) {
@@ -29856,10 +29934,9 @@
 
   // bind to jQuery if present;
   var jqName = jq();
-  jQuery = window.jQuery; // use default jQuery.
-  if (isDefined(jqName)) { // `ngJq` present
-    jQuery = jqName === null ? undefined : window[jqName]; // if empty; use jqLite. if not empty, use jQuery specified by `ngJq`.
-  }
+  jQuery = isUndefined(jqName) ? window.jQuery :   // use jQuery (if present)
+           !jqName             ? undefined     :   // use jqLite
+                                 window[jqName];   // use jQuery specified by `ngJq`
 
   // Use jQuery if it exists with proper functionality, otherwise default to us.
   // Angular 1.2+ requires jQuery 1.7+ for on()/off() support.
@@ -29964,22 +30041,24 @@
 /**
  * Return the DOM siblings between the first and last node in the given array.
  * @param {Array} array like object
- * @returns {jqLite} jqLite collection containing the nodes
+ * @returns {Array} the inputted object or a jqLite collection containing the nodes
  */
 function getBlockNodes(nodes) {
-  // TODO(perf): just check if all items in `nodes` are siblings and if they are return the original
-  //             collection, otherwise update the original collection.
+  // TODO(perf): update `nodes` instead of creating a new object?
   var node = nodes[0];
   var endNode = nodes[nodes.length - 1];
-  var blockNodes = [node];
-
-  do {
-    node = node.nextSibling;
-    if (!node) break;
-    blockNodes.push(node);
-  } while (node !== endNode);
-
-  return jqLite(blockNodes);
+  var blockNodes;
+
+  for (var i = 1; node !== endNode && (node = node.nextSibling); i++) {
+    if (blockNodes || nodes[i] !== node) {
+      if (!blockNodes) {
+        blockNodes = jqLite(slice.call(nodes, 0, i));
+      }
+      blockNodes.push(node);
+    }
+  }
+
+  return blockNodes || nodes;
 }
 
 
@@ -30043,8 +30122,8 @@
      * All modules (angular core or 3rd party) that should be available to an application must be
      * registered using this mechanism.
      *
-     * When passed two or more arguments, a new module is created.  If passed only one argument, an
-     * existing module (the name passed as the first argument to `module`) is retrieved.
+     * Passing one argument retrieves an existing {@link angular.Module},
+     * whereas passing more than one argument creates a new {@link angular.Module}
      *
      *
      * # Module
@@ -30151,7 +30230,7 @@
            * @description
            * See {@link auto.$provide#provider $provide.provider()}.
            */
-          provider: invokeLater('$provide', 'provider'),
+          provider: invokeLaterAndSetModuleName('$provide', 'provider'),
 
           /**
            * @ngdoc method
@@ -30162,7 +30241,7 @@
            * @description
            * See {@link auto.$provide#factory $provide.factory()}.
            */
-          factory: invokeLater('$provide', 'factory'),
+          factory: invokeLaterAndSetModuleName('$provide', 'factory'),
 
           /**
            * @ngdoc method
@@ -30173,7 +30252,7 @@
            * @description
            * See {@link auto.$provide#service $provide.service()}.
            */
-          service: invokeLater('$provide', 'service'),
+          service: invokeLaterAndSetModuleName('$provide', 'service'),
 
           /**
            * @ngdoc method
@@ -30208,7 +30287,7 @@
            * @description
            * See {@link auto.$provide#decorator $provide.decorator()}.
            */
-          decorator: invokeLater('$provide', 'decorator'),
+          decorator: invokeLaterAndSetModuleName('$provide', 'decorator'),
 
           /**
            * @ngdoc method
@@ -30242,7 +30321,7 @@
            * See {@link ng.$animateProvider#register $animateProvider.register()} and
            * {@link ngAnimate ngAnimate module} for more information.
            */
-          animation: invokeLater('$animateProvider', 'register'),
+          animation: invokeLaterAndSetModuleName('$animateProvider', 'register'),
 
           /**
            * @ngdoc method
@@ -30260,7 +30339,7 @@
            * (`myapp_subsection_filterx`).
            * </div>
            */
-          filter: invokeLater('$filterProvider', 'register'),
+          filter: invokeLaterAndSetModuleName('$filterProvider', 'register'),
 
           /**
            * @ngdoc method
@@ -30272,7 +30351,7 @@
            * @description
            * See {@link ng.$controllerProvider#register $controllerProvider.register()}.
            */
-          controller: invokeLater('$controllerProvider', 'register'),
+          controller: invokeLaterAndSetModuleName('$controllerProvider', 'register'),
 
           /**
            * @ngdoc method
@@ -30285,7 +30364,7 @@
            * @description
            * See {@link ng.$compileProvider#directive $compileProvider.directive()}.
            */
-          directive: invokeLater('$compileProvider', 'directive'),
+          directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'),
 
           /**
            * @ngdoc method
@@ -30335,6 +30414,19 @@
             return moduleInstance;
           };
         }
+
+        /**
+         * @param {string} provider
+         * @param {string} method
+         * @returns {angular.Module}
+         */
+        function invokeLaterAndSetModuleName(provider, method) {
+          return function(recipeName, factoryFunction) {
+            if (factoryFunction && isFunction(factoryFunction)) factoryFunction.$$moduleName = name;
+            invokeQueue.push([provider, method, arguments]);
+            return moduleInstance;
+          };
+        }
       });
     };
   });
@@ -30350,7 +30442,7 @@
     val = toJsonReplacer(key, val);
     if (isObject(val)) {
 
-      if (seen.indexOf(val) >= 0) return '<<already seen>>';
+      if (seen.indexOf(val) >= 0) return '...';
 
       seen.push(val);
     }
@@ -30361,7 +30453,7 @@
 function toDebugString(obj) {
   if (typeof obj === 'function') {
     return obj.toString().replace(/ \{[\s\S]*$/, '');
-  } else if (typeof obj === 'undefined') {
+  } else if (isUndefined(obj)) {
     return 'undefined';
   } else if (typeof obj !== 'string') {
     return serializeObject(obj);
@@ -30372,7 +30464,6 @@
 /* global angularModule: true,
   version: true,
 
-  $LocaleProvider,
   $CompileProvider,
 
   htmlAnchorDirective,
@@ -30389,7 +30480,6 @@
   ngClassDirective,
   ngClassEvenDirective,
   ngClassOddDirective,
-  ngCspDirective,
   ngCloakDirective,
   ngControllerDirective,
   ngFormDirective,
@@ -30426,6 +30516,7 @@
 
   $AnchorScrollProvider,
   $AnimateProvider,
+  $CoreAnimateCssProvider,
   $$CoreAnimateQueueProvider,
   $$CoreAnimateRunnerProvider,
   $BrowserProvider,
@@ -30434,6 +30525,7 @@
   $DocumentProvider,
   $ExceptionHandlerProvider,
   $FilterProvider,
+  $$ForceReflowProvider,
   $InterpolateProvider,
   $IntervalProvider,
   $$HashMapProvider,
@@ -30441,6 +30533,7 @@
   $HttpParamSerializerProvider,
   $HttpParamSerializerJQLikeProvider,
   $HttpBackendProvider,
+  $xhrFactoryProvider,
   $LocationProvider,
   $LogProvider,
   $ParseProvider,
@@ -30456,7 +30549,6 @@
   $$TestabilityProvider,
   $TimeoutProvider,
   $$RAFProvider,
-  $$AsyncCallbackProvider,
   $WindowProvider,
   $$jqLiteProvider,
   $$CookieReaderProvider
@@ -30468,8 +30560,9 @@
  * @name angular.version
  * @module ng
  * @description
- * An object that contains information about the current AngularJS version. This object has the
- * following properties:
+ * An object that contains information about the current AngularJS version.
+ *
+ * This object has the following properties:
  *
  * - `full` – `{string}` – Full version string, such as "0.9.18".
  * - `major` – `{number}` – Major version number, such as "0".
@@ -30478,11 +30571,11 @@
  * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
  */
 var version = {
-  full: '1.4.0',    // all of these placeholder strings will be replaced by grunt's
+  full: '1.4.7',    // all of these placeholder strings will be replaced by grunt's
   major: 1,    // package task
   minor: 4,
-  dot: 0,
-  codeName: 'jaracimrman-existence'
+  dot: 7,
+  codeName: 'dark-luminescence'
 };
 
 
@@ -30521,11 +30614,6 @@
   });
 
   angularModule = setupModuleLoader(window);
-  try {
-    angularModule('ngLocale');
-  } catch (e) {
-    angularModule('ngLocale', []).provider('$locale', $LocaleProvider);
-  }
 
   angularModule('ng', ['ngLocale'], ['$provide',
     function ngModule($provide) {
@@ -30588,6 +30676,7 @@
       $provide.provider({
         $anchorScroll: $AnchorScrollProvider,
         $animate: $AnimateProvider,
+        $animateCss: $CoreAnimateCssProvider,
         $$animateQueue: $$CoreAnimateQueueProvider,
         $$AnimateRunner: $$CoreAnimateRunnerProvider,
         $browser: $BrowserProvider,
@@ -30596,12 +30685,14 @@
         $document: $DocumentProvider,
         $exceptionHandler: $ExceptionHandlerProvider,
         $filter: $FilterProvider,
+        $$forceReflow: $$ForceReflowProvider,
         $interpolate: $InterpolateProvider,
         $interval: $IntervalProvider,
         $http: $HttpProvider,
         $httpParamSerializer: $HttpParamSerializerProvider,
         $httpParamSerializerJQLike: $HttpParamSerializerJQLikeProvider,
         $httpBackend: $HttpBackendProvider,
+        $xhrFactory: $xhrFactoryProvider,
         $location: $LocationProvider,
         $log: $LogProvider,
         $parse: $ParseProvider,
@@ -30617,7 +30708,6 @@
         $timeout: $TimeoutProvider,
         $window: $WindowProvider,
         $$rAF: $$RAFProvider,
-        $$asyncCallback: $$AsyncCallbackProvider,
         $$jqLite: $$jqLiteProvider,
         $$HashMap: $$HashMapProvider,
         $$cookieReader: $$CookieReaderProvider
@@ -30691,7 +30781,7 @@
  * - [`html()`](http://api.jquery.com/html/)
  * - [`next()`](http://api.jquery.com/next/) - Does not support selectors
  * - [`on()`](http://api.jquery.com/on/) - Does not support namespaces, selectors or eventData
- * - [`off()`](http://api.jquery.com/off/) - Does not support namespaces or selectors
+ * - [`off()`](http://api.jquery.com/off/) - Does not support namespaces, selectors or event object as parameter
  * - [`one()`](http://api.jquery.com/one/) - Does not support namespaces or selectors
  * - [`parent()`](http://api.jquery.com/parent/) - Does not support selectors
  * - [`prepend()`](http://api.jquery.com/prepend/)
@@ -30705,7 +30795,7 @@
  * - [`text()`](http://api.jquery.com/text/)
  * - [`toggleClass()`](http://api.jquery.com/toggleClass/)
  * - [`triggerHandler()`](http://api.jquery.com/triggerHandler/) - Passes a dummy event object to handlers.
- * - [`unbind()`](http://api.jquery.com/unbind/) - Does not support namespaces
+ * - [`unbind()`](http://api.jquery.com/unbind/) - Does not support namespaces or event object as parameter
  * - [`val()`](http://api.jquery.com/val/)
  * - [`wrap()`](http://api.jquery.com/wrap/)
  *
@@ -30777,10 +30867,10 @@
     replace(MOZ_HACK_REGEXP, 'Moz$1');
 }
 
-var SINGLE_TAG_REGEXP = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;
+var SINGLE_TAG_REGEXP = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/;
 var HTML_REGEXP = /<|&#?\w+;/;
-var TAG_NAME_REGEXP = /<([\w:]+)/;
-var XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi;
+var TAG_NAME_REGEXP = /<([\w:-]+)/;
+var XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi;
 
 var wrapMap = {
   'option': [1, '<select multiple="multiple">', '</select>'],
@@ -30808,6 +30898,13 @@
   return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;
 }
 
+function jqLiteHasData(node) {
+  for (var key in jqCache[node.ng339]) {
+    return true;
+  }
+  return false;
+}
+
 function jqLiteBuildFragment(html, context) {
   var tmp, tag, wrap,
       fragment = context.createDocumentFragment(),
@@ -31069,7 +31166,7 @@
 
   while (element) {
     for (var i = 0, ii = names.length; i < ii; i++) {
-      if ((value = jqLite.data(element, names[i])) !== undefined) return value;
+      if (isDefined(value = jqLite.data(element, names[i]))) return value;
     }
 
     // If dealing with a document fragment node with a host element, and no parent, use the host
@@ -31175,14 +31272,14 @@
   return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr;
 }
 
-function getAliasedAttrName(element, name) {
-  var nodeName = element.nodeName;
-  return (nodeName === 'INPUT' || nodeName === 'TEXTAREA') && ALIASED_ATTR[name];
+function getAliasedAttrName(name) {
+  return ALIASED_ATTR[name];
 }
 
 forEach({
   data: jqLiteData,
-  removeData: jqLiteRemoveData
+  removeData: jqLiteRemoveData,
+  hasData: jqLiteHasData
 }, function(fn, name) {
   JQLite[name] = fn;
 });
@@ -31313,7 +31410,7 @@
     // in a way that survives minification.
     // jqLiteEmpty takes no arguments but is a setter.
     if (fn !== jqLiteEmpty &&
-        (((fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)) ? arg1 : arg2) === undefined)) {
+        (isUndefined((fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)) ? arg1 : arg2))) {
       if (isObject(arg1)) {
 
         // we are a write, but the object properties are the key/values
@@ -31334,7 +31431,7 @@
         // TODO: do we still need this?
         var value = fn.$dv;
         // Only if we have $dv do we iterate over all, otherwise it is just the first element.
-        var jj = (value === undefined) ? Math.min(nodeCount, 1) : nodeCount;
+        var jj = (isUndefined(value)) ? Math.min(nodeCount, 1) : nodeCount;
         for (var j = 0; j < jj; j++) {
           var nodeValue = fn(this[j], arg1, arg2);
           value = value ? value + nodeValue : nodeValue;
@@ -31808,7 +31905,7 @@
  * Implicit module which gets automatically added to each {@link auto.$injector $injector}.
  */
 
-var FN_ARGS = /^function\s*[^\(]*\(\s*([^\)]*)\)/m;
+var FN_ARGS = /^[^\(]*\(\s*([^\)]*)\)/m;
 var FN_ARG_SPLIT = /,/;
 var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/;
 var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
@@ -32391,7 +32488,7 @@
           }));
 
 
-  forEach(loadModules(modulesToLoad), function(fn) { instanceInjector.invoke(fn || noop); });
+  forEach(loadModules(modulesToLoad), function(fn) { if (fn) instanceInjector.invoke(fn); });
 
   return instanceInjector;
 
@@ -32464,6 +32561,7 @@
   // Module Loading
   ////////////////////////////////////
   function loadModules(modulesToLoad) {
+    assertArg(isUndefined(modulesToLoad) || isArray(modulesToLoad), 'modulesToLoad', 'not an array');
     var runBlocks = [], moduleFn;
     forEach(modulesToLoad, function(module) {
       if (loadedModules.get(module)) return;
@@ -32972,61 +33070,66 @@
       }
     };
 
-    function addRemoveClassesPostDigest(element, add, remove) {
-      var data = postDigestQueue.get(element);
-      var classVal;
-
-      if (!data) {
-        postDigestQueue.put(element, data = {});
-        postDigestElements.push(element);
-      }
-
-      if (add) {
-        forEach(add.split(' '), function(className) {
-          if (className) {
-            data[className] = true;
-          }
-        });
-      }
-
-      if (remove) {
-        forEach(remove.split(' '), function(className) {
+
+    function updateData(data, classes, value) {
+      var changed = false;
+      if (classes) {
+        classes = isString(classes) ? classes.split(' ') :
+                  isArray(classes) ? classes : [];
+        forEach(classes, function(className) {
           if (className) {
-            data[className] = false;
-          }
-        });
-      }
-
-      if (postDigestElements.length > 1) return;
-
-      $rootScope.$$postDigest(function() {
-        forEach(postDigestElements, function(element) {
-          var data = postDigestQueue.get(element);
-          if (data) {
-            var existing = splitClasses(element.attr('class'));
-            var toAdd = '';
-            var toRemove = '';
-            forEach(data, function(status, className) {
-              var hasClass = !!existing[className];
-              if (status !== hasClass) {
-                if (status) {
-                  toAdd += (toAdd.length ? ' ' : '') + className;
-                } else {
-                  toRemove += (toRemove.length ? ' ' : '') + className;
-                }
-              }
-            });
-
-            forEach(element, function(elm) {
-              toAdd    && jqLiteAddClass(elm, toAdd);
-              toRemove && jqLiteRemoveClass(elm, toRemove);
-            });
-            postDigestQueue.remove(element);
-          }
-        });
-
-        postDigestElements.length = 0;
-      });
+            changed = true;
+            data[className] = value;
+          }
+        });
+      }
+      return changed;
+    }
+
+    function handleCSSClassChanges() {
+      forEach(postDigestElements, function(element) {
+        var data = postDigestQueue.get(element);
+        if (data) {
+          var existing = splitClasses(element.attr('class'));
+          var toAdd = '';
+          var toRemove = '';
+          forEach(data, function(status, className) {
+            var hasClass = !!existing[className];
+            if (status !== hasClass) {
+              if (status) {
+                toAdd += (toAdd.length ? ' ' : '') + className;
+              } else {
+                toRemove += (toRemove.length ? ' ' : '') + className;
+              }
+            }
+          });
+
+          forEach(element, function(elm) {
+            toAdd    && jqLiteAddClass(elm, toAdd);
+            toRemove && jqLiteRemoveClass(elm, toRemove);
+          });
+          postDigestQueue.remove(element);
+        }
+      });
+      postDigestElements.length = 0;
+    }
+
+
+    function addRemoveClassesPostDigest(element, add, remove) {
+      var data = postDigestQueue.get(element) || {};
+
+      var classesAdded = updateData(data, add, true);
+      var classesRemoved = updateData(data, remove, false);
+
+      if (classesAdded || classesRemoved) {
+
+        postDigestQueue.put(element, data);
+        postDigestElements.push(element);
+
+        if (postDigestElements.length === 1) {
+          $rootScope.$$postDigest(handleCSSClassChanges);
+        }
+      }
     }
   }];
 };
@@ -33456,15 +33559,95 @@
   }];
 }];
 
-function $$AsyncCallbackProvider() {
-  this.$get = ['$$rAF', '$timeout', function($$rAF, $timeout) {
-    return $$rAF.supported
-      ? function(fn) { return $$rAF(fn); }
-      : function(fn) {
-        return $timeout(fn, 0, false);
-      };
+/**
+ * @ngdoc service
+ * @name $animateCss
+ * @kind object
+ *
+ * @description
+ * This is the core version of `$animateCss`. By default, only when the `ngAnimate` is included,
+ * then the `$animateCss` service will actually perform animations.
+ *
+ * Click here {@link ngAnimate.$animateCss to read the documentation for $animateCss}.
+ */
+var $CoreAnimateCssProvider = function() {
+  this.$get = ['$$rAF', '$q', function($$rAF, $q) {
+
+    var RAFPromise = function() {};
+    RAFPromise.prototype = {
+      done: function(cancel) {
+        this.defer && this.defer[cancel === true ? 'reject' : 'resolve']();
+      },
+      end: function() {
+        this.done();
+      },
+      cancel: function() {
+        this.done(true);
+      },
+      getPromise: function() {
+        if (!this.defer) {
+          this.defer = $q.defer();
+        }
+        return this.defer.promise;
+      },
+      then: function(f1,f2) {
+        return this.getPromise().then(f1,f2);
+      },
+      'catch': function(f1) {
+        return this.getPromise()['catch'](f1);
+      },
+      'finally': function(f1) {
+        return this.getPromise()['finally'](f1);
+      }
+    };
+
+    return function(element, options) {
+      // there is no point in applying the styles since
+      // there is no animation that goes on at all in
+      // this version of $animateCss.
+      if (options.cleanupStyles) {
+        options.from = options.to = null;
+      }
+
+      if (options.from) {
+        element.css(options.from);
+        options.from = null;
+      }
+
+      var closed, runner = new RAFPromise();
+      return {
+        start: run,
+        end: run
+      };
+
+      function run() {
+        $$rAF(function() {
+          close();
+          if (!closed) {
+            runner.done();
+          }
+          closed = true;
+        });
+        return runner;
+      }
+
+      function close() {
+        if (options.addClass) {
+          element.addClass(options.addClass);
+          options.addClass = null;
+        }
+        if (options.removeClass) {
+          element.removeClass(options.removeClass);
+          options.removeClass = null;
+        }
+        if (options.to) {
+          element.css(options.to);
+          options.to = null;
+        }
+      }
+    };
   }];
-}
+};
 
 /* global stripHash: true */
 
@@ -33530,7 +33713,7 @@
 
   function getHash(url) {
     var index = url.indexOf('#');
-    return index === -1 ? '' : url.substr(index + 1);
+    return index === -1 ? '' : url.substr(index);
   }
 
   /**
@@ -33554,7 +33737,7 @@
   var cachedState, lastHistoryState,
       lastBrowserUrl = location.href,
       baseElement = document.find('base'),
-      reloadLocation = null;
+      pendingLocation = null;
 
   cacheState();
   lastHistoryState = cachedState;
@@ -33614,8 +33797,8 @@
         // Do the assignment again so that those two variables are referentially identical.
         lastHistoryState = cachedState;
       } else {
-        if (!sameBase) {
-          reloadLocation = url;
+        if (!sameBase || pendingLocation) {
+          pendingLocation = url;
         }
         if (replace) {
           location.replace(url);
@@ -33624,14 +33807,18 @@
         } else {
           location.hash = getHash(url);
         }
+        if (location.href !== url) {
+          pendingLocation = url;
+        }
       }
       return self;
     // getter
     } else {
-      // - reloadLocation is needed as browsers don't allow to read out
-      //   the new location.href if a reload happened.
+      // - pendingLocation is needed as browsers don't allow to read out
+      //   the new location.href if a reload happened or if there is a bug like in iOS 9 (see
+      //   https://openradar.appspot.com/22186109).
       // - the replacement is a workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=407172
-      return reloadLocation || location.href.replace(/%27/g,"'");
+      return pendingLocation || location.href.replace(/%27/g,"'");
     }
   };
 
@@ -33653,6 +33840,7 @@
       urlChangeInit = false;
 
   function cacheStateAndFireUrlChange() {
+    pendingLocation = null;
     cacheState();
     fireUrlChange();
   }
@@ -33888,10 +34076,10 @@
            $scope.keys = [];
            $scope.cache = $cacheFactory('cacheId');
            $scope.put = function(key, value) {
-             if ($scope.cache.get(key) === undefined) {
+             if (angular.isUndefined($scope.cache.get(key))) {
                $scope.keys.push(key);
              }
-             $scope.cache.put(key, value === undefined ? null : value);
+             $scope.cache.put(key, angular.isUndefined(value) ? null : value);
            };
          }]);
      </file>
@@ -34367,18 +34555,24 @@
  * and other directives used in the directive's template will also be excluded from execution.
  *
  * #### `scope`
- * **If set to `true`,** then a new scope will be created for this directive. If multiple directives on the
- * same element request a new scope, only one new scope is created. The new scope rule does not
- * apply for the root of the template since the root of the template always gets a new scope.
- *
- * **If set to `{}` (object hash),** then a new "isolate" scope is created. The 'isolate' scope differs from
- * normal scope in that it does not prototypically inherit from the parent scope. This is useful
- * when creating reusable components, which should not accidentally read or modify data in the
- * parent scope.
- *
- * The 'isolate' scope takes an object hash which defines a set of local scope properties
- * derived from the parent scope. These local properties are useful for aliasing values for
- * templates. Locals definition is a hash of local scope property to its source:
+ * The scope property can be `true`, an object or a falsy value:
+ *
+ * * **falsy:** No scope will be created for the directive. The directive will use its parent's scope.
+ *
+ * * **`true`:** A new child scope that prototypically inherits from its parent will be created for
+ * the directive's element. If multiple directives on the same element request a new scope,
+ * only one new scope is created. The new scope rule does not apply for the root of the template
+ * since the root of the template always gets a new scope.
+ *
+ * * **`{...}` (an object hash):** A new "isolate" scope is created for the directive's element. The
+ * 'isolate' scope differs from normal scope in that it does not prototypically inherit from its parent
+ * scope. This is useful when creating reusable components, which should not accidentally read or modify
+ * data in the parent scope.
+ *
+ * The 'isolate' scope object hash defines a set of local scope properties derived from attributes on the
+ * directive's element. These local properties are useful for aliasing values for templates. The keys in
+ * the object hash map to the name of the property on the isolate scope; the values define how the property
+ * is bound to the parent scope, via matching attributes on the directive's element:
  *
  * * `@` or `@attr` - bind a local scope property to the value of DOM attribute. The result is
  *   always a string since DOM attributes are strings. If no `attr` name is specified  then the
@@ -34411,6 +34605,20 @@
  *   For example, if the expression is `increment(amount)` then we can specify the amount value
  *   by calling the `localFn` as `localFn({amount: 22})`.
  *
+ * In general it's possible to apply more than one directive to one element, but there might be limitations
+ * depending on the type of scope required by the directives. The following points will help explain these limitations.
+ * For simplicity only two directives are taken into account, but it is also applicable for several directives:
+ *
+ * * **no scope** + **no scope** => Two directives which don't require their own scope will use their parent's scope
+ * * **child scope** + **no scope** =>  Both directives will share one single child scope
+ * * **child scope** + **child scope** =>  Both directives will share one single child scope
+ * * **isolated scope** + **no scope** =>  The isolated directive will use it's own created isolated scope. The other directive will use
+ * its parent's scope
+ * * **isolated scope** + **child scope** =>  **Won't work!** Only one scope can be related to one element. Therefore these directives cannot
+ * be applied to the same element.
+ * * **isolated scope** + **isolated scope**  =>  **Won't work!** Only one scope can be related to one element. Therefore these directives
+ * cannot be applied to the same element.
+ *
  *
  * #### `bindToController`
  * When an isolate scope is used for a component (see above), and `controllerAs` is used, `bindToController: true` will
@@ -34419,7 +34627,7 @@
  *
  * #### `controller`
  * Controller constructor function. The controller is instantiated before the
- * pre-linking phase and it is shared with other directives (see
+ * pre-linking phase and can be accessed by other directives (see
  * `require` attribute). This allows the directives to communicate with each other and augment
  * each other's behavior. The controller is injectable (and supports bracket notation) with the following locals:
  *
@@ -34459,9 +34667,10 @@
  *
  * #### `controllerAs`
  * Identifier name for a reference to the controller in the directive's scope.
- * This allows the controller to be referenced from the directive template. The directive
- * needs to define a scope for this configuration to be used. Useful in the case when
- * directive is used as component.
+ * This allows the controller to be referenced from the directive template. This is especially
+ * useful when a directive is used as component, i.e. with an `isolate` scope. It's also possible
+ * to use it in a directive without an `isolate` / `new` scope, but you need to be aware that the
+ * `controllerAs` reference might overwrite a property that already exists on the parent scope.
  *
  *
  * #### `restrict`
@@ -34620,13 +34829,16 @@
  *   * `controller` - the directive's required controller instance(s) - Instances are shared
  *     among all directives, which allows the directives to use the controllers as a communication
  *     channel. The exact value depends on the directive's `require` property:
+ *       * no controller(s) required: the directive's own controller, or `undefined` if it doesn't have one
  *       * `string`: the controller instance
  *       * `array`: array of controller instances
- *       * no controller(s) required: `undefined`
  *
  *     If a required controller cannot be found, and it is optional, the instance is `null`,
  *     otherwise the {@link error:$compile:ctreq Missing Required Controller} error is thrown.
  *
+ *     Note that you can also require the directive's own controller - it will be made available like
+ *     any other controller.
+ *
  *   * `transcludeFn` - A transclude linking function pre-bound to the correct transclusion scope.
  *     This is the same as the `$transclude`
  *     parameter of directive controllers, see there for details.
@@ -34651,7 +34863,7 @@
  *
  * ### Transclusion
  *
- * Transclusion is the process of extracting a collection of DOM element from one part of the DOM and
+ * Transclusion is the process of extracting a collection of DOM elements from one part of the DOM and
  * copying them to another part of the DOM, while maintaining their connection to the original AngularJS
  * scope from where they were taken.
  *
@@ -35073,6 +35285,7 @@
                 if (isObject(bindings.isolateScope)) {
                   directive.$$isolateBindings = bindings.isolateScope;
                 }
+                directive.$$moduleName = directiveFactory.$$moduleName;
                 directives.push(directive);
               } catch (e) {
                 $exceptionHandler(e);
@@ -35294,7 +35507,7 @@
 
         var node = this.$$element[0],
             booleanKey = getBooleanAttrName(node, key),
-            aliasedKey = getAliasedAttrName(node, key),
+            aliasedKey = getAliasedAttrName(key),
             observer = key,
             nodeName;
 
@@ -35361,7 +35574,7 @@
         }
 
         if (writeAttr !== false) {
-          if (value === null || value === undefined) {
+          if (value === null || isUndefined(value)) {
             this.$$element.removeAttr(attrName);
           } else {
             this.$$element.attr(attrName, value);
@@ -35405,7 +35618,7 @@
 
         listeners.push(fn);
         $rootScope.$evalAsync(function() {
-          if (!listeners.$$inter && attrs.hasOwnProperty(key)) {
+          if (!listeners.$$inter && attrs.hasOwnProperty(key) && !isUndefined(attrs[key])) {
             // no one registered attribute interpolation function, so lets call it manually
             fn(attrs[key]);
           }
@@ -35644,8 +35857,7 @@
 
             if (nodeLinkFn.transcludeOnThisElement) {
               childBoundTranscludeFn = createBoundTranscludeFn(
-                  scope, nodeLinkFn.transclude, parentBoundTranscludeFn,
-                  nodeLinkFn.elementTranscludeOnThisElement);
+                  scope, nodeLinkFn.transclude, parentBoundTranscludeFn);
 
             } else if (!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn) {
               childBoundTranscludeFn = parentBoundTranscludeFn;
@@ -35667,7 +35879,7 @@
       }
     }
 
-    function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn, elementTransclusion) {
+    function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) {
 
       var boundTranscludeFn = function(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) {
 
@@ -35766,6 +35978,13 @@
           }
           break;
         case NODE_TYPE_TEXT: /* Text Node */
+          if (msie === 11) {
+            // Workaround for #11781
+            while (node.parentNode && node.nextSibling && node.nextSibling.nodeType === NODE_TYPE_TEXT) {
+              node.nodeValue = node.nodeValue + node.nextSibling.nodeValue;
+              node.parentNode.removeChild(node.nextSibling);
+            }
+          }
           addTextInterpolateDirective(directives, node.nodeValue);
           break;
         case NODE_TYPE_COMMENT: /* Comment */
@@ -35865,7 +36084,7 @@
       previousCompileContext = previousCompileContext || {};
 
       var terminalPriority = -Number.MAX_VALUE,
-          newScopeDirective,
+          newScopeDirective = previousCompileContext.newScopeDirective,
           controllerDirectives = previousCompileContext.controllerDirectives,
           newIsolateScopeDirective = previousCompileContext.newIsolateScopeDirective,
           templateDirective = previousCompileContext.templateDirective,
@@ -36031,6 +36250,7 @@
           nodeLinkFn = compileTemplateUrl(directives.splice(i, directives.length - i), $compileNode,
               templateAttrs, jqCollection, hasTranscludeDirective && childTranscludeFn, preLinkFns, postLinkFns, {
                 controllerDirectives: controllerDirectives,
+                newScopeDirective: (newScopeDirective !== directive) && newScopeDirective,
                 newIsolateScopeDirective: newIsolateScopeDirective,
                 templateDirective: templateDirective,
                 nonTlbTranscludeDirective: nonTlbTranscludeDirective
@@ -36058,7 +36278,6 @@
 
       nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;
       nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective;
-      nodeLinkFn.elementTranscludeOnThisElement = hasElementTranscludeDirective;
       nodeLinkFn.templateOnThisElement = hasTemplate;
       nodeLinkFn.transclude = childTranscludeFn;
 
@@ -36219,9 +36438,12 @@
           for (i in elementControllers) {
             controller = elementControllers[i];
             var controllerResult = controller();
+
             if (controllerResult !== controller.instance) {
+              // If the controller constructor has a return value, overwrite the instance
+              // from setupControllers and update the element data
               controller.instance = controllerResult;
-              $element.data('$' + directive.name + 'Controller', controllerResult);
+              $element.data('$' + i + 'Controller', controllerResult);
               if (controller === controllerForBindings) {
                 // Remove and re-install bindToController bindings
                 thisLinkFn.$$destroyBindings();
@@ -36318,7 +36540,7 @@
             i = 0, ii = directives.length; i < ii; i++) {
           try {
             directive = directives[i];
-            if ((maxPriority === undefined || maxPriority > directive.priority) &&
+            if ((isUndefined(maxPriority) || maxPriority > directive.priority) &&
                  directive.restrict.indexOf(location) != -1) {
               if (startAttrName) {
                 directive = inherit(directive, {$$start: startAttrName, $$end: endAttrName});
@@ -36413,7 +36635,7 @@
 
       $compileNode.empty();
 
-      $templateRequest($sce.getTrustedResourceUrl(templateUrl))
+      $templateRequest(templateUrl)
         .then(function(content) {
           var compileNode, tempTemplateAttrs, $template, childBoundTranscludeFn;
 
@@ -36521,11 +36743,18 @@
       return a.index - b.index;
     }
 
-
     function assertNoDuplicate(what, previousDirective, directive, element) {
+
+      function wrapModuleNameIfDefined(moduleName) {
+        return moduleName ?
+          (' (module: ' + moduleName + ')') :
+          '';
+      }
+
       if (previousDirective) {
-        throw $compileMinErr('multidir', 'Multiple directives [{0}, {1}] asking for {2} on: {3}',
-            previousDirective.name, directive.name, what, startingTag(element));
+        throw $compileMinErr('multidir', 'Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}',
+            previousDirective.name, wrapModuleNameIfDefined(previousDirective.$$moduleName),
+            directive.name, wrapModuleNameIfDefined(directive.$$moduleName), what, startingTag(element));
       }
     }
 
@@ -36607,7 +36836,7 @@
         compile: function() {
             return {
               pre: function attrInterpolatePreLinkFn(scope, element, attr) {
-                var $$observers = (attr.$$observers || (attr.$$observers = {}));
+                var $$observers = (attr.$$observers || (attr.$$observers = createMap()));
 
                 if (EVENT_HANDLER_ATTR_REGEXP.test(name)) {
                   throw $compileMinErr('nodomevents',
@@ -36706,26 +36935,28 @@
       var fragment = document.createDocumentFragment();
       fragment.appendChild(firstElementToRemove);
 
-      // Copy over user data (that includes Angular's $scope etc.). Don't copy private
-      // data here because there's no public interface in jQuery to do that and copying over
-      // event listeners (which is the main use of private data) wouldn't work anyway.
-      jqLite(newNode).data(jqLite(firstElementToRemove).data());
-
-      // Remove data of the replaced element. We cannot just call .remove()
-      // on the element it since that would deallocate scope that is needed
-      // for the new node. Instead, remove the data "manually".
-      if (!jQuery) {
-        delete jqLite.cache[firstElementToRemove[jqLite.expando]];
-      } else {
-        // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after
-        // the replaced element. The cleanData version monkey-patched by Angular would cause
-        // the scope to be trashed and we do need the very same scope to work with the new
-        // element. However, we cannot just cache the non-patched version and use it here as
-        // that would break if another library patches the method after Angular does (one
-        // example is jQuery UI). Instead, set a flag indicating scope destroying should be
-        // skipped this one time.
-        skipDestroyOnNextJQueryCleanData = true;
-        jQuery.cleanData([firstElementToRemove]);
+      if (jqLite.hasData(firstElementToRemove)) {
+        // Copy over user data (that includes Angular's $scope etc.). Don't copy private
+        // data here because there's no public interface in jQuery to do that and copying over
+        // event listeners (which is the main use of private data) wouldn't work anyway.
+        jqLite(newNode).data(jqLite(firstElementToRemove).data());
+
+        // Remove data of the replaced element. We cannot just call .remove()
+        // on the element it since that would deallocate scope that is needed
+        // for the new node. Instead, remove the data "manually".
+        if (!jQuery) {
+          delete jqLite.cache[firstElementToRemove[jqLite.expando]];
+        } else {
+          // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after
+          // the replaced element. The cleanData version monkey-patched by Angular would cause
+          // the scope to be trashed and we do need the very same scope to work with the new
+          // element. However, we cannot just cache the non-patched version and use it here as
+          // that would break if another library patches the method after Angular does (one
+          // example is jQuery UI). Instead, set a flag indicating scope destroying should be
+          // skipped this one time.
+          skipDestroyOnNextJQueryCleanData = true;
+          jQuery.cleanData([firstElementToRemove]);
+        }
       }
 
       for (var k = 1, kk = elementsToRemove.length; k < kk; k++) {
@@ -36769,11 +37000,16 @@
         switch (mode) {
 
           case '@':
+            if (!optional && !hasOwnProperty.call(attrs, attrName)) {
+              destination[scopeName] = attrs[attrName] = void 0;
+            }
             attrs.$observe(attrName, function(value) {
-              destination[scopeName] = value;
+              if (isString(value)) {
+                destination[scopeName] = value;
+              }
             });
             attrs.$$observers[attrName].$$scope = scope;
-            if (attrs[attrName]) {
+            if (isString(attrs[attrName])) {
               // If the attribute has been provided then we trigger an interpolation to ensure
               // the value is there for use in the link fn
               destination[scopeName] = $interpolate(attrs[attrName])(scope);
@@ -36781,9 +37017,12 @@
             break;
 
           case '=':
-            if (optional && !attrs[attrName]) {
-              return;
-            }
+            if (!hasOwnProperty.call(attrs, attrName)) {
+              if (optional) break;
+              attrs[attrName] = void 0;
+            }
+            if (optional && !attrs[attrName]) break;
+
             parentGet = $parse(attrs[attrName]);
             if (parentGet.literal) {
               compare = equals;
@@ -36824,9 +37063,7 @@
 
           case '&':
             // Don't assign Object.prototype method to scope
-            if (!attrs.hasOwnProperty(attrName) && optional) break;
-
-            parentGet = $parse(attrs[attrName]);
+            parentGet = attrs.hasOwnProperty(attrName) ? $parse(attrs[attrName]) : noop;
 
             // Don't assign noop to destination if expression is not valid
             if (parentGet === noop && optional) break;
@@ -37203,6 +37440,29 @@
   }];
 }
 
+var $$ForceReflowProvider = function() {
+  this.$get = ['$document', function($document) {
+    return function(domNode) {
+      //the line below will force the browser to perform a repaint so
+      //that all the animated elements within the animation frame will
+      //be properly updated and drawn on screen. This is required to
+      //ensure that the preparation animation is properly flushed so that
+      //the active state picks up from there. DO NOT REMOVE THIS LINE.
+      //DO NOT OPTIMIZE THIS LINE. THE MINIFIER WILL REMOVE IT OTHERWISE WHICH
+      //WILL RESULT IN AN UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND
+      //WILL TAKE YEARS AWAY FROM YOUR LIFE.
+      if (domNode) {
+        if (!domNode.nodeType && domNode instanceof jqLite) {
+          domNode = domNode[0];
+        }
+      } else {
+        domNode = $document[0].body;
+      }
+      return domNode.offsetWidth + 1;
+    };
+  }];
+};
+
 var APPLICATION_JSON = 'application/json';
 var CONTENT_TYPE_APPLICATION_JSON = {'Content-Type': APPLICATION_JSON + ';charset=utf-8'};
 var JSON_START = /^\[|^\{(?!\{)/;
@@ -37211,6 +37471,12 @@
   '{': /}$/
 };
 var JSON_PROTECTION_PREFIX = /^\)\]\}',?\n/;
+var $httpMinErr = minErr('$http');
+var $httpMinErrLegacyFn = function(method) {
+  return function() {
+    throw $httpMinErr('legacy', 'The method `{0}` on the promise returned from `$http` has been disabled.', method);
+  };
+};
 
 function serializeValue(v) {
   if (isObject(v)) {
@@ -37226,13 +37492,17 @@
    * @name $httpParamSerializer
    * @description
    *
-   * Default $http params serializer that converts objects to a part of a request URL
+   * Default {@link $http `$http`} params serializer that converts objects to strings
    * according to the following rules:
+   *
    * * `{'foo': 'bar'}` results in `foo=bar`
    * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object)
    * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element)
    * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object)
+   *
+   * Note that serializer will sort the request parameters alphabetically.
    * */
+
   this.$get = function() {
     return function ngParamSerializer(params) {
       if (!params) return '';
@@ -37259,7 +37529,43 @@
    * @name $httpParamSerializerJQLike
    * @description
    *
-   * Alternative $http params serializer that follows jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic.
+   * Alternative {@link $http `$http`} params serializer that follows
+   * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic.
+   * The serializer will also sort the params alphabetically.
+   *
+   * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property:
+   *
+   * ```js
+   * $http({
+   *   url: myUrl,
+   *   method: 'GET',
+   *   params: myParams,
+   *   paramSerializer: '$httpParamSerializerJQLike'
+   * });
+   * ```
+   *
+   * It is also possible to set it as the default `paramSerializer` in the
+   * {@link $httpProvider#defaults `$httpProvider`}.
+   *
+   * Additionally, you can inject the serializer and use it explicitly, for example to serialize
+   * form data for submission:
+   *
+   * ```js
+   * .controller(function($http, $httpParamSerializerJQLike) {
+   *   //...
+   *
+   *   $http({
+   *     url: myUrl,
+   *     method: 'POST',
+   *     data: $httpParamSerializerJQLike(myData),
+   *     headers: {
+   *       'Content-Type': 'application/x-www-form-urlencoded'
+   *     }
+   *   });
+   *
+   * });
+   * ```
+   *
    * */
   this.$get = function() {
     return function jQueryLikeParamSerializer(params) {
@@ -37271,8 +37577,8 @@
       function serialize(toSerialize, prefix, topLevel) {
         if (toSerialize === null || isUndefined(toSerialize)) return;
         if (isArray(toSerialize)) {
-          forEach(toSerialize, function(value) {
-            serialize(value, prefix + '[]');
+          forEach(toSerialize, function(value, index) {
+            serialize(value, prefix + '[' + (isObject(value) ? index : '') + ']');
           });
         } else if (isObject(toSerialize) && !isDate(toSerialize)) {
           forEachSorted(toSerialize, function(value, key) {
@@ -37416,7 +37722,7 @@
    *
    * - **`defaults.cache`** - {Object} - an object built with {@link ng.$cacheFactory `$cacheFactory`}
    * that will provide the cache for all requests who set their `cache` property to `true`.
-   * If you set the `default.cache = false` then only requests that specify their own custom
+   * If you set the `defaults.cache = false` then only requests that specify their own custom
    * cache object will be cached. See {@link $http#caching $http Caching} for more information.
    *
    * - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token.
@@ -37433,10 +37739,11 @@
    *     - **`defaults.headers.put`**
    *     - **`defaults.headers.patch`**
    *
-   * - **`defaults.paramSerializer`** - {string|function(Object<string,string>):string} - A function used to prepare string representation
-   * of request parameters (specified as an object).
-   * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}.
-   * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}.
+   *
+   * - **`defaults.paramSerializer`** - `{string|function(Object<string,string>):string}` - A function
+   *  used to the prepare string representation of request parameters (specified as an object).
+   *  If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}.
+   *  Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}.
    *
    **/
   var defaults = this.defaults = {
@@ -37492,6 +37799,30 @@
     return useApplyAsync;
   };
 
+  var useLegacyPromise = true;
+  /**
+   * @ngdoc method
+   * @name $httpProvider#useLegacyPromiseExtensions
+   * @description
+   *
+   * Configure `$http` service to return promises without the shorthand methods `success` and `error`.
+   * This should be used to make sure that applications work without these methods.
+   *
+   * Defaults to false. If no value is specified, returns the current configured value.
+   *
+   * @param {boolean=} value If true, `$http` will return a normal promise without the `success` and `error` methods.
+   *
+   * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining.
+   *    otherwise, returns the current configured value.
+   **/
+  this.useLegacyPromiseExtensions = function(value) {
+    if (isDefined(value)) {
+      useLegacyPromise = !!value;
+      return this;
+    }
+    return useLegacyPromise;
+  };
+
   /**
    * @ngdoc property
    * @name $httpProvider#interceptors
@@ -37557,47 +37888,60 @@
      *
      *
      * ## General usage
-     * The `$http` service is a function which takes a single argument — a configuration object —
-     * that is used to generate an HTTP request and returns  a {@link ng.$q promise}
-     * with two $http specific methods: `success` and `error`.
+     * The `$http` service is a function which takes a single argument — a {@link $http#usage configuration object} —
+     * that is used to generate an HTTP request and returns  a {@link ng.$q promise}.
      *
      * ```js
-     *   // Simple GET request example :
-     *   $http.get('/someUrl').
-     *     success(function(data, status, headers, config) {
+     *   // Simple GET request example:
+     *   $http({
+     *     method: 'GET',
+     *     url: '/someUrl'
+     *   }).then(function successCallback(response) {
      *       // this callback will be called asynchronously
      *       // when the response is available
-     *     }).
-     *     error(function(data, status, headers, config) {
+     *     }, function errorCallback(response) {
      *       // called asynchronously if an error occurs
      *       // or server returns response with an error status.
      *     });
      * ```
      *
-     * ```js
-     *   // Simple POST request example (passing data) :
-     *   $http.post('/someUrl', {msg:'hello word!'}).
-     *     success(function(data, status, headers, config) {
-     *       // this callback will be called asynchronously
-     *       // when the response is available
-     *     }).
-     *     error(function(data, status, headers, config) {
-     *       // called asynchronously if an error occurs
-     *       // or server returns response with an error status.
-     *     });
-     * ```
-     *
-     *
-     * Since the returned value of calling the $http function is a `promise`, you can also use
-     * the `then` method to register callbacks, and these callbacks will receive a single argument –
-     * an object representing the response. See the API signature and type info below for more
-     * details.
+     * The response object has these properties:
+     *
+     *   - **data** – `{string|Object}` – The response body transformed with the transform
+     *     functions.
+     *   - **status** – `{number}` – HTTP status code of the response.
+     *   - **headers** – `{function([headerName])}` – Header getter function.
+     *   - **config** – `{Object}` – The configuration object that was used to generate the request.
+     *   - **statusText** – `{string}` – HTTP status text of the response.
      *
      * A response status code between 200 and 299 is considered a success status and
      * will result in the success callback being called. Note that if the response is a redirect,
      * XMLHttpRequest will transparently follow it, meaning that the error callback will not be
      * called for such responses.
      *
+     *
+     * ## Shortcut methods
+     *
+     * Shortcut methods are also available. All shortcut methods require passing in the URL, and
+     * request data must be passed in for POST/PUT requests. An optional config can be passed as the
+     * last argument.
+     *
+     * ```js
+     *   $http.get('/someUrl', config).then(successCallback, errorCallback);
+     *   $http.post('/someUrl', data, config).then(successCallback, errorCallback);
+     * ```
+     *
+     * Complete list of shortcut methods:
+     *
+     * - {@link ng.$http#get $http.get}
+     * - {@link ng.$http#head $http.head}
+     * - {@link ng.$http#post $http.post}
+     * - {@link ng.$http#put $http.put}
+     * - {@link ng.$http#delete $http.delete}
+     * - {@link ng.$http#jsonp $http.jsonp}
+     * - {@link ng.$http#patch $http.patch}
+     *
+     *
      * ## Writing Unit Tests that use $http
      * When unit testing (using {@link ngMock ngMock}), it is necessary to call
      * {@link ngMock.$httpBackend#flush $httpBackend.flush()} to flush each pending
@@ -37609,26 +37953,13 @@
      * $httpBackend.flush();
      * ```
      *
-     * ## Shortcut methods
-     *
-     * Shortcut methods are also available. All shortcut methods require passing in the URL, and
-     * request data must be passed in for POST/PUT requests.
-     *
-     * ```js
-     *   $http.get('/someUrl').success(successCallback);
-     *   $http.post('/someUrl', data).success(successCallback);
-     * ```
-     *
-     * Complete list of shortcut methods:
-     *
-     * - {@link ng.$http#get $http.get}
-     * - {@link ng.$http#head $http.head}
-     * - {@link ng.$http#post $http.post}
-     * - {@link ng.$http#put $http.put}
-     * - {@link ng.$http#delete $http.delete}
-     * - {@link ng.$http#jsonp $http.jsonp}
-     * - {@link ng.$http#patch $http.patch}
-     *
+     * ## Deprecation Notice
+     * <div class="alert alert-danger">
+     *   The `$http` legacy promise methods `success` and `error` have been deprecated.
+     *   Use the standard `then` method instead.
+     *   If {@link $httpProvider#useLegacyPromiseExtensions `$httpProvider.useLegacyPromiseExtensions`} is set to
+     *   `false` then these methods will throw {@link $http:legacy `$http/legacy`} error.
+     * </div>
      *
      * ## Setting HTTP Headers
      *
@@ -37673,7 +38004,7 @@
      *  data: { test: 'test' }
      * }
      *
-     * $http(req).success(function(){...}).error(function(){...});
+     * $http(req).then(function(){...}, function(){...});
      * ```
      *
      * ## Transforming Requests and Responses
@@ -37779,7 +38110,7 @@
      *
      * There are two kinds of interceptors (and two kinds of rejection interceptors):
      *
-     *   * `request`: interceptors get called with a http `config` object. The function is free to
+     *   * `request`: interceptors get called with a http {@link $http#usage config} object. The function is free to
      *     modify the `config` object or create a new one. The function needs to return the `config`
      *     object directly, or a promise containing the `config` or a new `config` object.
      *   * `requestError`: interceptor gets called when a previous interceptor threw an error or
@@ -37902,15 +38233,16 @@
      * properties of either $httpProvider.defaults at config-time, $http.defaults at run-time,
      * or the per-request config object.
      *
+     * In order to prevent collisions in environments where multiple Angular apps share the
+     * same domain or subdomain, we recommend that each application uses unique cookie name.
      *
      * @param {object} config Object describing the request to be made and how it should be
      *    processed. The object has following properties:
      *
      *    - **method** – `{string}` – HTTP method (e.g. 'GET', 'POST', etc)
      *    - **url** – `{string}` – Absolute or relative URL of the resource that is being requested.
-     *    - **params** – `{Object.<string|Object>}` – Map of strings or objects which will be turned
-     *      to `?key1=value1&key2=value2` after the url. If the value is not a string, it will be
-     *      JSONified.
+     *    - **params** – `{Object.<string|Object>}` – Map of strings or objects which will be serialized
+     *      with the `paramSerializer` and appended as GET parameters.
      *    - **data** – `{string|Object}` – Data to be sent as the request message data.
      *    - **headers** – `{Object}` – Map of strings or functions which return strings representing
      *      HTTP headers to send to the server. If the return value of a function is null, the
@@ -37928,10 +38260,14 @@
      *      transform function or an array of such functions. The transform function takes the http
      *      response body, headers and status and returns its transformed (typically deserialized) version.
      *      See {@link ng.$http#overriding-the-default-transformations-per-request
-     *      Overriding the Default Transformations}
-     *    - **paramSerializer** - {string|function(Object<string,string>):string} - A function used to prepare string representation
-     *      of request parameters (specified as an object).
-     *      Is specified as string, it is interpreted as function registered in with the {$injector}.
+     *      Overriding the Default TransformationjqLiks}
+     *    - **paramSerializer** - `{string|function(Object<string,string>):string}` - A function used to
+     *      prepare the string representation of request parameters (specified as an object).
+     *      If specified as string, it is interpreted as function registered with the
+     *      {@link $injector $injector}, which means you can create your own serializer
+     *      by registering it as a {@link auto.$provide#service service}.
+     *      The default serializer is the {@link $httpParamSerializer $httpParamSerializer};
+     *      alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike}
      *    - **cache** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the
      *      GET request, otherwise if a cache instance built with
      *      {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
@@ -37942,22 +38278,11 @@
      *      XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials)
      *      for more information.
      *    - **responseType** - `{string}` - see
-     *      [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType).
-     *
-     * @returns {HttpPromise} Returns a {@link ng.$q promise} object with the
-     *   standard `then` method and two http specific methods: `success` and `error`. The `then`
-     *   method takes two arguments a success and an error callback which will be called with a
-     *   response object. The `success` and `error` methods take a single argument - a function that
-     *   will be called when the request succeeds or fails respectively. The arguments passed into
-     *   these functions are destructured representation of the response object passed into the
-     *   `then` method. The response object has these properties:
-     *
-     *   - **data** – `{string|Object}` – The response body transformed with the transform
-     *     functions.
-     *   - **status** – `{number}` – HTTP status code of the response.
-     *   - **headers** – `{function([headerName])}` – Header getter function.
-     *   - **config** – `{Object}` – The configuration object that was used to generate the request.
-     *   - **statusText** – `{string}` – HTTP status text of the response.
+     *      [XMLHttpRequest.responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype).
+     *
+     * @returns {HttpPromise} Returns a {@link ng.$q `Promise}` that will be resolved to a response object
+     *                        when the request succeeds or fails.
+     *
      *
      * @property {Array.<Object>} pendingRequests Array of config objects for currently pending
      *   requests. This is primarily meant to be used for debugging purposes.
@@ -37999,13 +38324,12 @@
           $scope.response = null;
 
           $http({method: $scope.method, url: $scope.url, cache: $templateCache}).
-            success(function(data, status) {
-              $scope.status = status;
-              $scope.data = data;
-            }).
-            error(function(data, status) {
-              $scope.data = data || "Request failed";
-              $scope.status = status;
+            then(function(response) {
+              $scope.status = response.status;
+              $scope.data = response.data;
+            }, function(response) {
+              $scope.data = response.data || "Request failed";
+              $scope.status = response.status;
           });
         };
 
@@ -38110,23 +38434,28 @@
         promise = promise.then(thenFn, rejectFn);
       }
 
-      promise.success = function(fn) {
-        assertArgFn(fn, 'fn');
-
-        promise.then(function(response) {
-          fn(response.data, response.status, response.headers, config);
-        });
-        return promise;
-      };
-
-      promise.error = function(fn) {
-        assertArgFn(fn, 'fn');
-
-        promise.then(null, function(response) {
-          fn(response.data, response.status, response.headers, config);
-        });
-        return promise;
-      };
+      if (useLegacyPromise) {
+        promise.success = function(fn) {
+          assertArgFn(fn, 'fn');
+
+          promise.then(function(response) {
+            fn(response.data, response.status, response.headers, config);
+          });
+          return promise;
+        };
+
+        promise.error = function(fn) {
+          assertArgFn(fn, 'fn');
+
+          promise.then(null, function(response) {
+            fn(response.data, response.status, response.headers, config);
+          });
+          return promise;
+        };
+      } else {
+        promise.success = $httpMinErrLegacyFn('success');
+        promise.error = $httpMinErrLegacyFn('error');
+      }
 
       return promise;
 
@@ -38415,8 +38744,8 @@
        * Resolves the raw $http promise.
        */
       function resolvePromise(response, status, headers, statusText) {
-        // normalize internal statuses to 0
-        status = Math.max(status, 0);
+        //status: HTTP response status code, 0, -1 (aborted by timeout / promise)
+        status = status >= -1 ? status : 0;
 
         (isSuccess(status) ? deferred.resolve : deferred.reject)({
           data: response,
@@ -38447,8 +38776,33 @@
   }];
 }
 
-function createXhr() {
-    return new window.XMLHttpRequest();
+/**
+ * @ngdoc service
+ * @name $xhrFactory
+ *
+ * @description
+ * Factory function used to create XMLHttpRequest objects.
+ *
+ * Replace or decorate this service to create your own custom XMLHttpRequest objects.
+ *
+ * ```
+ * angular.module('myApp', [])
+ * .factory('$xhrFactory', function() {
+ *   return function createXhr(method, url) {
+ *     return new window.XMLHttpRequest({mozSystem: true});
+ *   };
+ * });
+ * ```
+ *
+ * @param {string} method HTTP method of the request (GET, POST, PUT, ..)
+ * @param {string} url URL of the request.
+ */
+function $xhrFactoryProvider() {
+  this.$get = function() {
+    return function createXhr() {
+      return new window.XMLHttpRequest();
+    };
+  };
 }
 
 /**
@@ -38456,6 +38810,7 @@
  * @name $httpBackend
  * @requires $window
  * @requires $document
+ * @requires $xhrFactory
  *
  * @description
  * HTTP backend used by the {@link ng.$http service} that delegates to
@@ -38468,8 +38823,8 @@
  * $httpBackend} which can be trained with responses.
  */
 function $HttpBackendProvider() {
-  this.$get = ['$browser', '$window', '$document', function($browser, $window, $document) {
-    return createHttpBackend($browser, createXhr, $browser.defer, $window.angular.callbacks, $document[0]);
+  this.$get = ['$browser', '$window', '$document', '$xhrFactory', function($browser, $window, $document, $xhrFactory) {
+    return createHttpBackend($browser, $xhrFactory, $browser.defer, $window.angular.callbacks, $document[0]);
   }];
 }
 
@@ -38493,7 +38848,7 @@
       });
     } else {
 
-      var xhr = createXhr();
+      var xhr = createXhr(method, url);
 
       xhr.open(method, url, true);
       forEach(headers, function(value, key) {
@@ -38505,7 +38860,7 @@
       xhr.onload = function requestLoaded() {
         var statusText = xhr.statusText || '';
 
-        // responseText is the old-school way of retrieving response (supported by IE8 & 9)
+        // responseText is the old-school way of retrieving response (supported by IE9)
         // response/responseType properties were introduced in XHR Level2 spec (supported by IE10)
         var response = ('response' in xhr) ? xhr.response : xhr.responseText;
 
@@ -38556,7 +38911,7 @@
         }
       }
 
-      xhr.send(post);
+      xhr.send(isUndefined(post) ? null : post);
     }
 
     if (timeout > 0) {
@@ -38573,7 +38928,7 @@
 
     function completeRequest(callback, status, response, headersString, statusText) {
       // cancel timeout and subsequent timeout promise resolution
-      if (timeoutId !== undefined) {
+      if (isDefined(timeoutId)) {
         $browserDefer.cancel(timeoutId);
       }
       jsonpDone = xhr = null;
@@ -38759,7 +39114,7 @@
      * ```js
      *   var $interpolate = ...; // injected
      *   var exp = $interpolate('Hello {{name | uppercase}}!');
-     *   expect(exp({name:'Angular'}).toEqual('Hello ANGULAR!');
+     *   expect(exp({name:'Angular'})).toEqual('Hello ANGULAR!');
      * ```
      *
      * `$interpolate` takes an optional fourth argument, `allOrNothing`. If `allOrNothing` is
@@ -39143,7 +39498,7 @@
       * @description
       * Cancels a task associated with the `promise`.
       *
-      * @param {promise} promise returned by the `$interval` function.
+      * @param {Promise=} promise returned by the `$interval` function.
       * @returns {boolean} Returns `true` if the task was successfully canceled.
       */
     interval.cancel = function(promise) {
@@ -39170,75 +39525,6 @@
  *
  * * `id` – `{string}` – locale id formatted as `languageId-countryId` (e.g. `en-us`)
  */
-function $LocaleProvider() {
-  this.$get = function() {
-    return {
-      id: 'en-us',
-
-      NUMBER_FORMATS: {
-        DECIMAL_SEP: '.',
-        GROUP_SEP: ',',
-        PATTERNS: [
-          { // Decimal Pattern
-            minInt: 1,
-            minFrac: 0,
-            maxFrac: 3,
-            posPre: '',
-            posSuf: '',
-            negPre: '-',
-            negSuf: '',
-            gSize: 3,
-            lgSize: 3
-          },{ //Currency Pattern
-            minInt: 1,
-            minFrac: 2,
-            maxFrac: 2,
-            posPre: '\u00A4',
-            posSuf: '',
-            negPre: '(\u00A4',
-            negSuf: ')',
-            gSize: 3,
-            lgSize: 3
-          }
-        ],
-        CURRENCY_SYM: '$'
-      },
-
-      DATETIME_FORMATS: {
-        MONTH:
-            'January,February,March,April,May,June,July,August,September,October,November,December'
-            .split(','),
-        SHORTMONTH:  'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),
-        DAY: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),
-        SHORTDAY: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','),
-        AMPMS: ['AM','PM'],
-        medium: 'MMM d, y h:mm:ss a',
-        'short': 'M/d/yy h:mm a',
-        fullDate: 'EEEE, MMMM d, y',
-        longDate: 'MMMM d, y',
-        mediumDate: 'MMM d, y',
-        shortDate: 'M/d/yy',
-        mediumTime: 'h:mm:ss a',
-        shortTime: 'h:mm a',
-        ERANAMES: [
-          "Before Christ",
-          "Anno Domini"
-        ],
-        ERAS: [
-          "BC",
-          "AD"
-        ]
-      },
-
-      pluralCat: function(num) {
-        if (num === 1) {
-          return 'one';
-        }
-        return 'other';
-      }
-    };
-  };
-}
 
 var PATH_MATCH = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/,
     DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21};
@@ -39329,12 +39615,12 @@
  *
  * @constructor
  * @param {string} appBase application base URL
+ * @param {string} appBaseNoFile application base URL stripped of any filename
  * @param {string} basePrefix url path prefix
  */
-function LocationHtml5Url(appBase, basePrefix) {
+function LocationHtml5Url(appBase, appBaseNoFile, basePrefix) {
   this.$$html5 = true;
   basePrefix = basePrefix || '';
-  var appBaseNoFile = stripFile(appBase);
   parseAbsoluteUrl(appBase, this);
 
 
@@ -39381,14 +39667,14 @@
     var appUrl, prevAppUrl;
     var rewrittenUrl;
 
-    if ((appUrl = beginsWith(appBase, url)) !== undefined) {
+    if (isDefined(appUrl = beginsWith(appBase, url))) {
       prevAppUrl = appUrl;
-      if ((appUrl = beginsWith(basePrefix, appUrl)) !== undefined) {
+      if (isDefined(appUrl = beginsWith(basePrefix, appUrl))) {
         rewrittenUrl = appBaseNoFile + (beginsWith('/', appUrl) || appUrl);
       } else {
         rewrittenUrl = appBase + prevAppUrl;
       }
-    } else if ((appUrl = beginsWith(appBaseNoFile, url)) !== undefined) {
+    } else if (isDefined(appUrl = beginsWith(appBaseNoFile, url))) {
       rewrittenUrl = appBaseNoFile + appUrl;
     } else if (appBaseNoFile == url + '/') {
       rewrittenUrl = appBaseNoFile;
@@ -39408,10 +39694,10 @@
  *
  * @constructor
  * @param {string} appBase application base URL
+ * @param {string} appBaseNoFile application base URL stripped of any filename
  * @param {string} hashPrefix hashbang prefix
  */
-function LocationHashbangUrl(appBase, hashPrefix) {
-  var appBaseNoFile = stripFile(appBase);
+function LocationHashbangUrl(appBase, appBaseNoFile, hashPrefix) {
 
   parseAbsoluteUrl(appBase, this);
 
@@ -39425,7 +39711,7 @@
     var withoutBaseUrl = beginsWith(appBase, url) || beginsWith(appBaseNoFile, url);
     var withoutHashUrl;
 
-    if (withoutBaseUrl.charAt(0) === '#') {
+    if (!isUndefined(withoutBaseUrl) && withoutBaseUrl.charAt(0) === '#') {
 
       // The rest of the url starts with a hash so we have
       // got either a hashbang path or a plain hash fragment
@@ -39439,7 +39725,15 @@
       // There was no hashbang path nor hash fragment:
       // If we are in HTML5 mode we use what is left as the path;
       // Otherwise we ignore what is left
-      withoutHashUrl = this.$$html5 ? withoutBaseUrl : '';
+      if (this.$$html5) {
+        withoutHashUrl = withoutBaseUrl;
+      } else {
+        withoutHashUrl = '';
+        if (isUndefined(withoutBaseUrl)) {
+          appBase = url;
+          this.replace();
+        }
+      }
     }
 
     parseAppUrl(withoutHashUrl, this);
@@ -39512,14 +39806,13 @@
  *
  * @constructor
  * @param {string} appBase application base URL
+ * @param {string} appBaseNoFile application base URL stripped of any filename
  * @param {string} hashPrefix hashbang prefix
  */
-function LocationHashbangInHtml5Url(appBase, hashPrefix) {
+function LocationHashbangInHtml5Url(appBase, appBaseNoFile, hashPrefix) {
   this.$$html5 = true;
   LocationHashbangUrl.apply(this, arguments);
 
-  var appBaseNoFile = stripFile(appBase);
-
   this.$$parseLinkUrl = function(url, relHref) {
     if (relHref && relHref[0] === '#') {
       // special case for links to hash fragments:
@@ -39549,7 +39842,7 @@
         hash = this.$$hash ? '#' + encodeUriSegment(this.$$hash) : '';
 
     this.$$url = encodePath(this.$$path) + (search ? '?' + search : '') + hash;
-    // include hashPrefix in $$absUrl when $$url is empty so IE8 & 9 do not reload page because of removal of '#'
+    // include hashPrefix in $$absUrl when $$url is empty so IE9 does not reload page because of removal of '#'
     this.$$absUrl = appBase + hashPrefix + this.$$url;
   };
 
@@ -40058,7 +40351,9 @@
       appBase = stripHash(initialUrl);
       LocationMode = LocationHashbangUrl;
     }
-    $location = new LocationMode(appBase, '#' + hashPrefix);
+    var appBaseNoFile = stripFile(appBase);
+
+    $location = new LocationMode(appBase, appBaseNoFile, '#' + hashPrefix);
     $location.$$parseLinkUrl(initialUrl, initialUrl);
 
     $location.$$state = $browser.state();
@@ -40138,6 +40433,13 @@
 
     // update $location when $browser url changes
     $browser.onUrlChange(function(newUrl, newState) {
+
+      if (isUndefined(beginsWith(appBaseNoFile, newUrl))) {
+        // If we are navigating outside of the app then force a reload
+        $window.location.href = newUrl;
+        return;
+      }
+
       $rootScope.$evalAsync(function() {
         var oldUrl = $location.absUrl();
         var oldState = $location.$$state;
@@ -40425,6 +40727,25 @@
   return name;
 }
 
+function getStringValue(name, fullExpression) {
+  // From the JavaScript docs:
+  // Property names must be strings. This means that non-string objects cannot be used
+  // as keys in an object. Any non-string object, including a number, is typecasted
+  // into a string via the toString method.
+  //
+  // So, to ensure that we are checking the same `name` that JavaScript would use,
+  // we cast it to a string, if possible.
+  // Doing `name + ''` can cause a repl error if the result to `toString` is not a string,
+  // this is, this will handle objects that misbehave.
+  name = name + '';
+  if (!isString(name)) {
+    throw $parseMinErr('iseccst',
+        'Cannot convert object to primitive value! '
+        + 'Expression: {0}', fullExpression);
+  }
+  return name;
+}
+
 function ensureSafeObject(obj, fullExpression) {
   // nifty check if obj is Function that is fast and works across iframes and other contexts
   if (obj) {
@@ -40470,6 +40791,16 @@
   }
 }
 
+function ensureSafeAssignContext(obj, fullExpression) {
+  if (obj) {
+    if (obj === (0).constructor || obj === (false).constructor || obj === ''.constructor ||
+        obj === {}.constructor || obj === [].constructor || obj === Function.constructor) {
+      throw $parseMinErr('isecaf',
+        'Assigning to a constructor is disallowed! Expression: {0}', fullExpression);
+    }
+  }
+}
+
 var OPERATORS = createMap();
 forEach('+ - * / % === !== == != < > <= >= && || ! = |'.split(' '), function(operator) { OPERATORS[operator] = true; });
 var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'};
@@ -41151,6 +41482,7 @@
       this.state.computing = 'assign';
       var result = this.nextId();
       this.recurse(assignable, result);
+      this.return_(result);
       extra = 'fn.assign=' + this.generateFunction('assign', 's,v,l');
     }
     var toWatch = getInputs(ast.body);
@@ -41183,6 +41515,8 @@
         'ensureSafeMemberName',
         'ensureSafeObject',
         'ensureSafeFunction',
+        'getStringValue',
+        'ensureSafeAssignContext',
         'ifDefined',
         'plus',
         'text',
@@ -41191,6 +41525,8 @@
           ensureSafeMemberName,
           ensureSafeObject,
           ensureSafeFunction,
+          getStringValue,
+          ensureSafeAssignContext,
           ifDefined,
           plusFn,
           expression);
@@ -41334,6 +41670,7 @@
           if (ast.computed) {
             right = self.nextId();
             self.recurse(ast.property, right);
+            self.getStringValue(right);
             self.addEnsureSafeMemberName(right);
             if (create && create !== 1) {
               self.if_(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}'));
@@ -41359,8 +41696,10 @@
               nameId.name = ast.property.name;
             }
           }
-          recursionFn(intoId);
-        });
+        }, function() {
+          self.assign(intoId, 'undefined');
+        });
+        recursionFn(intoId);
       }, !!create);
       break;
     case AST.CallExpression:
@@ -41398,8 +41737,10 @@
             }
             expression = self.ensureSafeObject(expression);
             self.assign(intoId, expression);
-            recursionFn(intoId);
-          });
+          }, function() {
+            self.assign(intoId, 'undefined');
+          });
+          recursionFn(intoId);
         });
       }
       break;
@@ -41413,6 +41754,7 @@
         self.if_(self.notNull(left.context), function() {
           self.recurse(ast.right, right);
           self.addEnsureSafeObject(self.member(left.context, left.name, left.computed));
+          self.addEnsureSafeAssignContext(left.context);
           expression = self.member(left.context, left.name, left.computed) + ast.operator + right;
           self.assign(intoId, expression);
           recursionFn(intoId || expression);
@@ -41538,6 +41880,10 @@
     this.current().body.push(this.ensureSafeFunction(item), ';');
   },
 
+  addEnsureSafeAssignContext: function(item) {
+    this.current().body.push(this.ensureSafeAssignContext(item), ';');
+  },
+
   ensureSafeObject: function(item) {
     return 'ensureSafeObject(' + item + ',text)';
   },
@@ -41550,6 +41896,14 @@
     return 'ensureSafeFunction(' + item + ',text)';
   },
 
+  getStringValue: function(item) {
+    this.assign(item, 'getStringValue(' + item + ',text)');
+  },
+
+  ensureSafeAssignContext: function(item) {
+    return 'ensureSafeAssignContext(' + item + ',text)';
+  },
+
   lazyRecurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) {
     var self = this;
     return function() {
@@ -41727,6 +42081,7 @@
         var lhs = left(scope, locals, assign, inputs);
         var rhs = right(scope, locals, assign, inputs);
         ensureSafeObject(lhs.value, self.expression);
+        ensureSafeAssignContext(lhs.context);
         lhs.context[lhs.name] = rhs;
         return context ? {value: rhs} : rhs;
       };
@@ -41924,6 +42279,7 @@
       var value;
       if (lhs != null) {
         rhs = right(scope, locals, assign, inputs);
+        rhs = getStringValue(rhs);
         ensureSafeMemberName(rhs, expression);
         if (create && create !== 1 && lhs && !(lhs[rhs])) {
           lhs[rhs] = {};
@@ -41983,29 +42339,6 @@
   }
 };
 
-//////////////////////////////////////////////////
-// Parser helper functions
-//////////////////////////////////////////////////
-
-function setter(obj, path, setValue, fullExp) {
-  ensureSafeObject(obj, fullExp);
-
-  var element = path.split('.'), key;
-  for (var i = 0; element.length > 1; i++) {
-    key = ensureSafeMemberName(element.shift(), fullExp);
-    var propertyObj = ensureSafeObject(obj[key], fullExp);
-    if (!propertyObj) {
-      propertyObj = {};
-      obj[key] = propertyObj;
-    }
-    obj = propertyObj;
-  }
-  key = ensureSafeMemberName(element.shift(), fullExp);
-  ensureSafeObject(obj[key], fullExp);
-  obj[key] = setValue;
-  return setValue;
-}
-
 var getterFnCacheDefault = createMap();
 var getterFnCacheExpensive = createMap();
 
@@ -42074,13 +42407,14 @@
   var cacheDefault = createMap();
   var cacheExpensive = createMap();
 
-  this.$get = ['$filter', '$sniffer', function($filter, $sniffer) {
+  this.$get = ['$filter', function($filter) {
+    var noUnsafeEval = csp().noUnsafeEval;
     var $parseOptions = {
-          csp: $sniffer.csp,
+          csp: noUnsafeEval,
           expensiveChecks: false
         },
         $parseOptionsExpensive = {
-          csp: $sniffer.csp,
+          csp: noUnsafeEval,
           expensiveChecks: true
         };
 
@@ -42555,8 +42889,11 @@
     this.$$state = { status: 0 };
   }
 
-  Promise.prototype = {
+  extend(Promise.prototype, {
     then: function(onFulfilled, onRejected, progressBack) {
+      if (isUndefined(onFulfilled) && isUndefined(onRejected) && isUndefined(progressBack)) {
+        return this;
+      }
       var result = new Deferred();
 
       this.$$state.pending = this.$$state.pending || [];
@@ -42577,7 +42914,7 @@
         return handleCallback(error, false, callback);
       }, progressBack);
     }
-  };
+  });
 
   //Faster, more basic than angular.bind http://jsperf.com/angular-bind-vs-custom-vs-native
   function simpleBind(context, fn) {
@@ -42624,7 +42961,7 @@
     this.notify = simpleBind(this, this.notify);
   }
 
-  Deferred.prototype = {
+  extend(Deferred.prototype, {
     resolve: function(val) {
       if (this.promise.$$state.status) return;
       if (val === this.promise) {
@@ -42687,7 +43024,7 @@
         });
       }
     }
-  };
+  });
 
   /**
    * @ngdoc method
@@ -42770,6 +43107,9 @@
    * the promise comes from a source that can't be trusted.
    *
    * @param {*} value Value or a promise
+   * @param {Function=} successCallback
+   * @param {Function=} errorCallback
+   * @param {Function=} progressCallback
    * @returns {Promise} Returns a promise of the passed value or promise
    */
 
@@ -42782,6 +43122,22 @@
 
   /**
    * @ngdoc method
+   * @name $q#resolve
+   * @kind function
+   *
+   * @description
+   * Alias of {@link ng.$q#when when} to maintain naming consistency with ES6.
+   *
+   * @param {*} value Value or a promise
+   * @param {Function=} successCallback
+   * @param {Function=} errorCallback
+   * @param {Function=} progressCallback
+   * @returns {Promise} Returns a promise of the passed value or promise
+   */
+  var resolve = when;
+
+  /**
+   * @ngdoc method
    * @name $q#all
    * @kind function
    *
@@ -42848,6 +43204,7 @@
   $Q.defer = defer;
   $Q.reject = reject;
   $Q.when = when;
+  $Q.resolve = resolve;
   $Q.all = all;
 
   return $Q;
@@ -42863,7 +43220,7 @@
                                $window.webkitCancelRequestAnimationFrame;
 
     var rafSupported = !!requestAnimationFrame;
-    var rafFn = rafSupported
+    var raf = rafSupported
       ? function(fn) {
           var id = requestAnimationFrame(fn);
           return function() {
@@ -42877,47 +43234,9 @@
           };
         };
 
-    queueFn.supported = rafSupported;
-
-    var cancelLastRAF;
-    var taskCount = 0;
-    var taskQueue = [];
-    return queueFn;
-
-    function flush() {
-      for (var i = 0; i < taskQueue.length; i++) {
-        var task = taskQueue[i];
-        if (task) {
-          taskQueue[i] = null;
-          task();
-        }
-      }
-      taskCount = taskQueue.length = 0;
-    }
-
-    function queueFn(asyncFn) {
-      var index = taskQueue.length;
-
-      taskCount++;
-      taskQueue.push(asyncFn);
-
-      if (index === 0) {
-        cancelLastRAF = rafFn(flush);
-      }
-
-      return function cancelQueueFn() {
-        if (index >= 0) {
-          taskQueue[index] = null;
-          index = null;
-
-          if (--taskCount === 0 && cancelLastRAF) {
-            cancelLastRAF();
-            cancelLastRAF = null;
-            taskQueue.length = 0;
-          }
-        }
-      };
-    }
+    raf.supported = rafSupported;
+
+    return raf;
   }];
 }
 
@@ -43030,12 +43349,9 @@
      * A root scope can be retrieved using the {@link ng.$rootScope $rootScope} key from the
      * {@link auto.$injector $injector}. Child scopes are created using the
      * {@link ng.$rootScope.Scope#$new $new()} method. (Most scopes are created automatically when
-     * compiled HTML template is executed.)
-     *
-     * Here is a simple scope snippet to show how you can interact with the scope.
-     * ```html
-     * <file src="./test/ng/rootScopeSpec.js" tag="docs1" />
-     * ```
+     * compiled HTML template is executed.) See also the {@link guide/scope Scopes guide} for
+     * an in-depth introduction and usage examples.
+     *
      *
      * # Inheritance
      * A scope can inherit from a parent scope, as in this example:
@@ -43177,10 +43493,10 @@
        * Registers a `listener` callback to be executed whenever the `watchExpression` changes.
        *
        * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope#$digest
-       *   $digest()} and should return the value that will be watched. (Since
-       *   {@link ng.$rootScope.Scope#$digest $digest()} reruns when it detects changes the
-       *   `watchExpression` can execute multiple times per
-       *   {@link ng.$rootScope.Scope#$digest $digest()} and should be idempotent.)
+       *   $digest()} and should return the value that will be watched. (`watchExpression` should not change
+       *   its value when executed multiple times with the same input because it may be executed multiple
+       *   times by {@link ng.$rootScope.Scope#$digest $digest()}. That is, `watchExpression` should be
+       *   [idempotent](http://en.wikipedia.org/wiki/Idempotence).
        * - The `listener` is called only when the value from the current `watchExpression` and the
        *   previous call to `watchExpression` are not equal (with the exception of the initial run,
        *   see below). Inequality is determined according to reference inequality,
@@ -43197,9 +43513,9 @@
        *
        *
        * If you want to be notified whenever {@link ng.$rootScope.Scope#$digest $digest} is called,
-       * you can register a `watchExpression` function with no `listener`. (Since `watchExpression`
-       * can execute multiple times per {@link ng.$rootScope.Scope#$digest $digest} cycle when a
-       * change is detected, be prepared for multiple calls to your listener.)
+       * you can register a `watchExpression` function with no `listener`. (Be prepared for
+       * multiple calls to your `watchExpression` because it will execute multiple times in a
+       * single {@link ng.$rootScope.Scope#$digest $digest} cycle if a change is detected.)
        *
        * After a watcher is registered with the scope, the `listener` fn is called asynchronously
        * (via {@link ng.$rootScope.Scope#$evalAsync $evalAsync}) to initialize the
@@ -43529,7 +43845,7 @@
             // copy the items to oldValue and look for changes.
             newLength = 0;
             for (key in newValue) {
-              if (newValue.hasOwnProperty(key)) {
+              if (hasOwnProperty.call(newValue, key)) {
                 newLength++;
                 newItem = newValue[key];
                 oldItem = oldValue[key];
@@ -43551,7 +43867,7 @@
               // we used to have more keys, need to find them and destroy them.
               changeDetected++;
               for (key in oldValue) {
-                if (!newValue.hasOwnProperty(key)) {
+                if (!hasOwnProperty.call(newValue, key)) {
                   oldLength--;
                   delete oldValue[key];
                 }
@@ -43961,11 +44277,14 @@
       $apply: function(expr) {
         try {
           beginPhase('$apply');
-          return this.$eval(expr);
+          try {
+            return this.$eval(expr);
+          } finally {
+            clearPhase();
+          }
         } catch (e) {
           $exceptionHandler(e);
         } finally {
-          clearPhase();
           try {
             $rootScope.$digest();
           } catch (e) {
@@ -44633,7 +44952,7 @@
             'Attempted to trust a value in invalid context. Context: {0}; Value: {1}',
             type, trustedValue);
       }
-      if (trustedValue === null || trustedValue === undefined || trustedValue === '') {
+      if (trustedValue === null || isUndefined(trustedValue) || trustedValue === '') {
         return trustedValue;
       }
       // All the current contexts in SCE_CONTEXTS happen to be strings.  In order to avoid trusting
@@ -44688,7 +45007,7 @@
      *     `$sceDelegate.trustAs`} if valid in this context.  Otherwise, throws an exception.
      */
     function getTrusted(type, maybeTrusted) {
-      if (maybeTrusted === null || maybeTrusted === undefined || maybeTrusted === '') {
+      if (maybeTrusted === null || isUndefined(maybeTrusted) || maybeTrusted === '') {
         return maybeTrusted;
       }
       var constructor = (byType.hasOwnProperty(type) ? byType[type] : null);
@@ -44881,10 +45200,10 @@
  *    - There are exactly **two wildcard sequences** - `*` and `**`.  All other characters
  *      match themselves.
  *    - `*`: matches zero or more occurrences of any character other than one of the following 6
- *      characters: '`:`', '`/`', '`.`', '`?`', '`&`' and ';'.  It's a useful wildcard for use
+ *      characters: '`:`', '`/`', '`.`', '`?`', '`&`' and '`;`'.  It's a useful wildcard for use
  *      in a whitelist.
  *    - `**`: matches zero or more occurrences of *any* character.  As such, it's not
- *      not appropriate to use in for a scheme, domain, etc. as it would match too much.  (e.g.
+ *      appropriate for use in a scheme, domain, etc. as it would match too much.  (e.g.
  *      http://**.example.com/ would match http://evil.com/?ignore=.example.com/ and that might
  *      not have been the intention.)  Its usage at the very end of the path is ok.  (e.g.
  *      http://foo.example.com/templates/**).
@@ -44892,11 +45211,11 @@
  *    - *Caveat*:  While regular expressions are powerful and offer great flexibility,  their syntax
  *      (and all the inevitable escaping) makes them *harder to maintain*.  It's easy to
  *      accidentally introduce a bug when one updates a complex expression (imho, all regexes should
- *      have good test coverage.).  For instance, the use of `.` in the regex is correct only in a
+ *      have good test coverage).  For instance, the use of `.` in the regex is correct only in a
  *      small number of cases.  A `.` character in the regex used when matching the scheme or a
  *      subdomain could be matched against a `:` or literal `.` that was likely not intended.   It
  *      is highly recommended to use the string patterns and only fall back to regular expressions
- *      if they as a last resort.
+ *      as a last resort.
  *    - The regular expression must be an instance of RegExp (i.e. not a string.)  It is
  *      matched against the **entire** *normalized / absolute URL* of the resource being tested
  *      (even when the RegExp did not have the `^` and `$` codes.)  In addition, any flags
@@ -44906,7 +45225,7 @@
  *      remember to escape your regular expression (and be aware that you might need more than
  *      one level of escaping depending on your templating engine and the way you interpolated
  *      the value.)  Do make use of your platform's escaping mechanism as it might be good
- *      enough before coding your own.  e.g. Ruby has
+ *      enough before coding your own.  E.g. Ruby has
  *      [Regexp.escape(str)](http://www.ruby-doc.org/core-2.0.0/Regexp.html#method-c-escape)
  *      and Python has [re.escape](http://docs.python.org/library/re.html#re.escape).
  *      Javascript lacks a similar built in function for escaping.  Take a look at Google
@@ -45492,12 +45811,14 @@
  * @name $templateRequest
  *
  * @description
- * The `$templateRequest` service downloads the provided template using `$http` and, upon success,
- * stores the contents inside of `$templateCache`. If the HTTP request fails or the response data
- * of the HTTP request is empty, a `$compile` error will be thrown (the exception can be thwarted
- * by setting the 2nd parameter of the function to true).
- *
- * @param {string} tpl The HTTP request template URL
+ * The `$templateRequest` service runs security checks then downloads the provided template using
+ * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request
+ * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the
+ * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the
+ * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted
+ * when `tpl` is of type string and `$templateCache` has the matching entry.
+ *
+ * @param {string|TrustedResourceUrl} tpl The HTTP request template URL
  * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty
  *
  * @return {Promise} a promise for the HTTP response data of the given URL.
@@ -45505,10 +45826,19 @@
  * @property {number} totalPendingRequests total amount of pending template requests being downloaded.
  */
 function $TemplateRequestProvider() {
-  this.$get = ['$templateCache', '$http', '$q', function($templateCache, $http, $q) {
+  this.$get = ['$templateCache', '$http', '$q', '$sce', function($templateCache, $http, $q, $sce) {
     function handleRequestFn(tpl, ignoreRequestError) {
       handleRequestFn.totalPendingRequests++;
 
+      // We consider the template cache holds only trusted templates, so
+      // there's no need to go through whitelisting again for keys that already
+      // are included in there. This also makes Angular accept any script
+      // directive, no matter its name. However, we still need to unwrap trusted
+      // types.
+      if (!isString(tpl) || !$templateCache.get(tpl)) {
+        tpl = $sce.getTrustedResourceUrl(tpl);
+      }
+
       var transformResponse = $http.defaults && $http.defaults.transformResponse;
 
       if (isArray(transformResponse)) {
@@ -45783,20 +46113,13 @@
  *
  * Implementation Notes for IE
  * ---------------------------
- * IE >= 8 and <= 10 normalizes the URL when assigned to the anchor node similar to the other
+ * IE <= 10 normalizes the URL when assigned to the anchor node similar to the other
  * browsers.  However, the parsed components will not be set if the URL assigned did not specify
  * them.  (e.g. if you assign a.href = "foo", then a.protocol, a.host, etc. will be empty.)  We
  * work around that by performing the parsing in a 2nd step by taking a previously normalized
  * URL (e.g. by assigning to a.href) and assigning it a.href again.  This correctly populates the
  * properties such as protocol, hostname, port, etc.
  *
- * IE7 does not normalize the URL when assigned to an anchor node.  (Apparently, it does, if one
- * uses the inner HTML approach to assign the URL as part of an HTML snippet -
- * http://stackoverflow.com/a/472729)  However, setting img[src] does normalize the URL.
- * Unfortunately, setting img[src] to something like "javascript:foo" on IE throws an exception.
- * Since the primary usage for normalizing URLs is to sanitize such URLs, we can't use that
- * method and IE < 8 is unsupported.
- *
  * References:
  *   http://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement
  *   http://www.aptana.com/reference/html/api/HTMLAnchorElement.html
@@ -45945,7 +46268,7 @@
           // the first value that is seen for a cookie is the most
           // specific one.  values for the same cookie name that
           // follow are for less specific paths.
-          if (lastCookies[name] === undefined) {
+          if (isUndefined(lastCookies[name])) {
             lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1));
           }
         }
@@ -46076,6 +46399,7 @@
    *    your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores
    *    (`myapp_subsection_filterx`).
    *    </div>
+    * @param {Function} factory If the first argument was a string, a factory function for the filter to be registered.
    * @returns {Object} Registered filter instance, or if a map of filters was provided then a map
    *    of the registered filter instances.
    */
@@ -46157,9 +46481,11 @@
  *     `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but
  *     **will** be matched by `{$: 'John'}`.
  *
- *   - `function(value, index)`: A predicate function can be used to write arbitrary filters. The
- *     function is called for each element of `array`. The final result is an array of those
- *     elements that the predicate returned true for.
+ *   - `function(value, index, array)`: A predicate function can be used to write arbitrary filters.
+ *     The function is called for each element of the array, with the element, its index, and
+ *     the entire array itself as arguments.
+ *
+ *     The final result is an array of those elements that the predicate returned true for.
  *
  * @param {function(actual, expected)|true|undefined} comparator Comparator which is used in
  *     determining if the expected value (from the filter expression) and actual value (from
@@ -46284,10 +46610,6 @@
   };
 }
 
-function hasCustomToString(obj) {
-  return isFunction(obj.toString) && obj.toString !== Object.prototype.toString;
-}
-
 // Helper functions for `filterFilter`
 function createPredicateFn(expression, comparator, matchAgainstAnyProp) {
   var shouldMatchPrimitives = isObject(expression) && ('$' in expression);
@@ -46425,9 +46747,9 @@
          }
          element(by.model('amount')).clear();
          element(by.model('amount')).sendKeys('-1234');
-         expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)');
-         expect(element(by.id('currency-custom')).getText()).toBe('(USD$1,234.00)');
-         expect(element(by.id('currency-no-fractions')).getText()).toBe('(USD$1,234)');
+         expect(element(by.id('currency-default')).getText()).toBe('-$1,234.00');
+         expect(element(by.id('currency-custom')).getText()).toBe('-USD$1,234.00');
+         expect(element(by.id('currency-no-fractions')).getText()).toBe('-USD$1,234');
        });
      </file>
    </example>
@@ -46460,9 +46782,10 @@
  * @description
  * Formats a number as text.
  *
+ * If the input is null or undefined, it will just be returned.
+ * If the input is infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned.
  * If the input is not a number an empty string is returned.
  *
- * If the input is an infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned.
  *
  * @param {number|string} number Number to format.
  * @param {(number|string)=} fractionSize Number of decimal places to round the number to.
@@ -46593,6 +46916,7 @@
     if (fractionSize > 0 && number < 1) {
       formatedText = number.toFixed(fractionSize);
       number = parseFloat(formatedText);
+      formatedText = formatedText.replace(DECIMAL_SEP, decimalSep);
     }
   }
 
@@ -47091,7 +47415,7 @@
  * @description
  * Orders a specified `array` by the `expression` predicate. It is ordered alphabetically
  * for strings and numerically for numbers. Note: if you notice numbers are not being sorted
- * correctly, make sure they are actually being saved as numbers and not strings.
+ * as expected, make sure they are actually being saved as numbers and not strings.
  *
  * @param {Array} array The array to sort.
  * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be
@@ -47166,19 +47490,40 @@
                   {name:'Mike', phone:'555-4321', age:21},
                   {name:'Adam', phone:'555-5678', age:35},
                   {name:'Julie', phone:'555-8765', age:29}];
-             $scope.predicate = '-age';
+             $scope.predicate = 'age';
+             $scope.reverse = true;
+             $scope.order = function(predicate) {
+               $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
+               $scope.predicate = predicate;
+             };
            }]);
        </script>
+       <style type="text/css">
+         .sortorder:after {
+           content: '\25b2';
+         }
+         .sortorder.reverse:after {
+           content: '\25bc';
+         }
+       </style>
        <div ng-controller="ExampleController">
          <pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>
          <hr/>
          [ <a href="" ng-click="predicate=''">unsorted</a> ]
          <table class="friend">
            <tr>
-             <th><a href="" ng-click="predicate = 'name'; reverse=false">Name</a>
-                 (<a href="" ng-click="predicate = '-name'; reverse=false">^</a>)</th>
-             <th><a href="" ng-click="predicate = 'phone'; reverse=!reverse">Phone Number</a></th>
-             <th><a href="" ng-click="predicate = 'age'; reverse=!reverse">Age</a></th>
+             <th>
+               <a href="" ng-click="order('name')">Name</a>
+               <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
+             </th>
+             <th>
+               <a href="" ng-click="order('phone')">Phone Number</a>
+               <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
+             </th>
+             <th>
+               <a href="" ng-click="order('age')">Age</a>
+               <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
+             </th>
            </tr>
            <tr ng-repeat="friend in friends | orderBy:predicate:reverse">
              <td>{{friend.name}}</td>
@@ -47238,90 +47583,120 @@
 orderByFilter.$inject = ['$parse'];
 function orderByFilter($parse) {
   return function(array, sortPredicate, reverseOrder) {
+
     if (!(isArrayLike(array))) return array;
-    sortPredicate = isArray(sortPredicate) ? sortPredicate : [sortPredicate];
+
+    if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; }
     if (sortPredicate.length === 0) { sortPredicate = ['+']; }
-    sortPredicate = sortPredicate.map(function(predicate) {
-      var descending = false, get = predicate || identity;
-      if (isString(predicate)) {
+
+    var predicates = processPredicates(sortPredicate, reverseOrder);
+    // Add a predicate at the end that evaluates to the element index. This makes the
+    // sort stable as it works as a tie-breaker when all the input predicates cannot
+    // distinguish between two elements.
+    predicates.push({ get: function() { return {}; }, descending: reverseOrder ? -1 : 1});
+
+    // The next three lines are a version of a Swartzian Transform idiom from Perl
+    // (sometimes called the Decorate-Sort-Undecorate idiom)
+    // See https://en.wikipedia.org/wiki/Schwartzian_transform
+    var compareValues = Array.prototype.map.call(array, getComparisonObject);
+    compareValues.sort(doComparison);
+    array = compareValues.map(function(item) { return item.value; });
+
+    return array;
+
+    function getComparisonObject(value, index) {
+      return {
+        value: value,
+        predicateValues: predicates.map(function(predicate) {
+          return getPredicateValue(predicate.get(value), index);
+        })
+      };
+    }
+
+    function doComparison(v1, v2) {
+      var result = 0;
+      for (var index=0, length = predicates.length; index < length; ++index) {
+        result = compare(v1.predicateValues[index], v2.predicateValues[index]) * predicates[index].descending;
+        if (result) break;
+      }
+      return result;
+    }
+  };
+
+  function processPredicates(sortPredicate, reverseOrder) {
+    reverseOrder = reverseOrder ? -1 : 1;
+    return sortPredicate.map(function(predicate) {
+      var descending = 1, get = identity;
+
+      if (isFunction(predicate)) {
+        get = predicate;
+      } else if (isString(predicate)) {
         if ((predicate.charAt(0) == '+' || predicate.charAt(0) == '-')) {
-          descending = predicate.charAt(0) == '-';
+          descending = predicate.charAt(0) == '-' ? -1 : 1;
           predicate = predicate.substring(1);
         }
-        if (predicate === '') {
-          // Effectively no predicate was passed so we compare identity
-          return reverseComparator(compare, descending);
-        }
-        get = $parse(predicate);
-        if (get.constant) {
-          var key = get();
-          return reverseComparator(function(a, b) {
-            return compare(a[key], b[key]);
-          }, descending);
-        }
-      }
-      return reverseComparator(function(a, b) {
-        return compare(get(a),get(b));
-      }, descending);
-    });
-    return slice.call(array).sort(reverseComparator(comparator, reverseOrder));
-
-    function comparator(o1, o2) {
-      for (var i = 0; i < sortPredicate.length; i++) {
-        var comp = sortPredicate[i](o1, o2);
-        if (comp !== 0) return comp;
-      }
-      return 0;
-    }
-    function reverseComparator(comp, descending) {
-      return descending
-          ? function(a, b) {return comp(b,a);}
-          : comp;
-    }
-
-    function isPrimitive(value) {
-      switch (typeof value) {
-        case 'number': /* falls through */
-        case 'boolean': /* falls through */
-        case 'string':
-          return true;
-        default:
-          return false;
-      }
-    }
-
-    function objectToString(value) {
-      if (value === null) return 'null';
-      if (typeof value.valueOf === 'function') {
-        value = value.valueOf();
-        if (isPrimitive(value)) return value;
-      }
-      if (typeof value.toString === 'function') {
-        value = value.toString();
-        if (isPrimitive(value)) return value;
-      }
-      return '';
-    }
-
-    function compare(v1, v2) {
-      var t1 = typeof v1;
-      var t2 = typeof v2;
-      if (t1 === t2 && t1 === "object") {
-        v1 = objectToString(v1);
-        v2 = objectToString(v2);
-      }
-      if (t1 === t2) {
-        if (t1 === "string") {
-           v1 = v1.toLowerCase();
-           v2 = v2.toLowerCase();
-        }
-        if (v1 === v2) return 0;
-        return v1 < v2 ? -1 : 1;
-      } else {
-        return t1 < t2 ? -1 : 1;
-      }
-    }
-  };
+        if (predicate !== '') {
+          get = $parse(predicate);
+          if (get.constant) {
+            var key = get();
+            get = function(value) { return value[key]; };
+          }
+        }
+      }
+      return { get: get, descending: descending * reverseOrder };
+    });
+  }
+
+  function isPrimitive(value) {
+    switch (typeof value) {
+      case 'number': /* falls through */
+      case 'boolean': /* falls through */
+      case 'string':
+        return true;
+      default:
+        return false;
+    }
+  }
+
+  function objectValue(value, index) {
+    // If `valueOf` is a valid function use that
+    if (typeof value.valueOf === 'function') {
+      value = value.valueOf();
+      if (isPrimitive(value)) return value;
+    }
+    // If `toString` is a valid function and not the one from `Object.prototype` use that
+    if (hasCustomToString(value)) {
+      value = value.toString();
+      if (isPrimitive(value)) return value;
+    }
+    // We have a basic object so we use the position of the object in the collection
+    return index;
+  }
+
+  function getPredicateValue(value, index) {
+    var type = typeof value;
+    if (value === null) {
+      type = 'string';
+      value = 'null';
+    } else if (type === 'string') {
+      value = value.toLowerCase();
+    } else if (type === 'object') {
+      value = objectValue(value, index);
+    }
+    return { value: value, type: type };
+  }
+
+  function compare(v1, v2) {
+    var result = 0;
+    if (v1.type === v2.type) {
+      if (v1.value !== v2.value) {
+        result = v1.value < v2.value ? -1 : 1;
+      }
+    } else {
+      result = v1.type < v2.type ? -1 : 1;
+    }
+    return result;
+  }
 }
 
 function ngDirective(directive) {
@@ -47575,6 +47950,13 @@
  * @priority 100
  *
  * @description
+ * Sets the `checked` attribute on the element, if the expression inside `ngChecked` is truthy.
+ *
+ * Note that this directive should not be used together with {@link ngModel `ngModel`},
+ * as this can lead to unexpected behavior.
+ *
+ * ### Why do we need `ngChecked`?
+ *
  * The HTML specification does not require browsers to preserve the values of boolean attributes
  * such as checked. (Their presence means true and their absence means false.)
  * If we put an Angular interpolation expression into such an attribute then the
@@ -47599,7 +47981,7 @@
  *
  * @element INPUT
  * @param {expression} ngChecked If the {@link guide/expression expression} is truthy,
- *     then special attribute "checked" will be set on the element
+ *     then the `checked` attribute will be set on the element
  */
 
 
@@ -47833,6 +48215,7 @@
  * @property {boolean} $dirty True if user has already interacted with the form.
  * @property {boolean} $valid True if all of the containing forms and controls are valid.
  * @property {boolean} $invalid True if at least one containing control or form is invalid.
+ * @property {boolean} $pending True if at least one containing control or form is pending.
  * @property {boolean} $submitted True if user has submitted the form even if its invalid.
  *
  * @property {Object} $error Is an object hash, containing references to controls or
@@ -47872,8 +48255,6 @@
   var form = this,
       controls = [];
 
-  var parentForm = form.$$parentForm = element.parent().controller('form') || nullFormCtrl;
-
   // init state
   form.$error = {};
   form.$$success = {};
@@ -47884,8 +48265,7 @@
   form.$valid = true;
   form.$invalid = false;
   form.$submitted = false;
-
-  parentForm.$addControl(form);
+  form.$$parentForm = nullFormCtrl;
 
   /**
    * @ngdoc method
@@ -47924,11 +48304,23 @@
   /**
    * @ngdoc method
    * @name form.FormController#$addControl
-   *
-   * @description
-   * Register a control with the form.
-   *
-   * Input elements using ngModelController do this automatically when they are linked.
+   * @param {object} control control object, either a {@link form.FormController} or an
+   * {@link ngModel.NgModelController}
+   *
+   * @description
+   * Register a control with the form. Input elements using ngModelController do this automatically
+   * when they are linked.
+   *
+   * Note that the current state of the control will not be reflected on the new parent form. This
+   * is not an issue with normal use, as freshly compiled and linked controls are in a `$pristine`
+   * state.
+   *
+   * However, if the method is used programmatically, for example by adding dynamically created controls,
+   * or controls that have been previously removed without destroying their corresponding DOM element,
+   * it's the developers responsiblity to make sure the current state propagates to the parent form.
+   *
+   * For example, if an input control is added that is already `$dirty` and has `$error` properties,
+   * calling `$setDirty()` and `$validate()` afterwards will propagate the state to the parent form.
    */
   form.$addControl = function(control) {
     // Breaking change - before, inputs whose name was "hasOwnProperty" were quietly ignored
@@ -47939,6 +48331,8 @@
     if (control.$name) {
       form[control.$name] = control;
     }
+
+    control.$$parentForm = form;
   };
 
   // Private API: rename a form control
@@ -47955,11 +48349,18 @@
   /**
    * @ngdoc method
    * @name form.FormController#$removeControl
+   * @param {object} control control object, either a {@link form.FormController} or an
+   * {@link ngModel.NgModelController}
    *
    * @description
    * Deregister a control from the form.
    *
    * Input elements using ngModelController do this automatically when they are destroyed.
+   *
+   * Note that only the removed control's validation state (`$errors`etc.) will be removed from the
+   * form. `$dirty`, `$submitted` states will not be changed, because the expected behavior can be
+   * different from case to case. For example, removing the only `$dirty` control from a form may or
+   * may not mean that the form is still `$dirty`.
    */
   form.$removeControl = function(control) {
     if (control.$name && form[control.$name] === control) {
@@ -47976,6 +48377,7 @@
     });
 
     arrayRemove(controls, control);
+    control.$$parentForm = nullFormCtrl;
   };
 
 
@@ -48012,7 +48414,6 @@
         delete object[property];
       }
     },
-    parentForm: parentForm,
     $animate: $animate
   });
 
@@ -48031,7 +48432,7 @@
     $animate.addClass(element, DIRTY_CLASS);
     form.$dirty = true;
     form.$pristine = false;
-    parentForm.$setDirty();
+    form.$$parentForm.$setDirty();
   };
 
   /**
@@ -48087,7 +48488,7 @@
   form.$setSubmitted = function() {
     $animate.addClass(element, SUBMITTED_CLASS);
     form.$submitted = true;
-    parentForm.$setSubmitted();
+    form.$$parentForm.$setSubmitted();
   };
 }
 
@@ -48137,6 +48538,7 @@
  * # CSS classes
  *  - `ng-valid` is set if the form is valid.
  *  - `ng-invalid` is set if the form is invalid.
+ *  - `ng-pending` is set if the form is pending.
  *  - `ng-pristine` is set if the form is pristine.
  *  - `ng-dirty` is set if the form is dirty.
  *  - `ng-submitted` is set if the form was submitted.
@@ -48212,7 +48614,6 @@
        </script>
        <style>
         .my-form {
-          -webkit-transition:all linear 0.5s;
           transition:all linear 0.5s;
           background: transparent;
         }
@@ -48257,10 +48658,11 @@
  *                       related scope, under this name.
  */
 var formDirectiveFactory = function(isNgForm) {
-  return ['$timeout', function($timeout) {
+  return ['$timeout', '$parse', function($timeout, $parse) {
     var formDirective = {
       name: 'form',
       restrict: isNgForm ? 'EAC' : 'E',
+      require: ['form', '^^?form'], //first is the form's own ctrl, second is an optional parent form
       controller: FormController,
       compile: function ngFormCompile(formElement, attr) {
         // Setup initial state of the control
@@ -48269,7 +48671,9 @@
         var nameAttr = attr.name ? 'name' : (isNgForm && attr.ngForm ? 'ngForm' : false);
 
         return {
-          pre: function ngFormPreLink(scope, formElement, attr, controller) {
+          pre: function ngFormPreLink(scope, formElement, attr, ctrls) {
+            var controller = ctrls[0];
+
             // if `action` attr is not present on the form, prevent the default action (submission)
             if (!('action' in attr)) {
               // we can't use jq events because if a form is destroyed during submission the default
@@ -48298,22 +48702,24 @@
               });
             }
 
-            var parentFormCtrl = controller.$$parentForm;
+            var parentFormCtrl = ctrls[1] || controller.$$parentForm;
+            parentFormCtrl.$addControl(controller);
+
+            var setter = nameAttr ? getSetter(controller.$name) : noop;
 
             if (nameAttr) {
-              setter(scope, controller.$name, controller, controller.$name);
+              setter(scope, controller);
               attr.$observe(nameAttr, function(newValue) {
                 if (controller.$name === newValue) return;
-                setter(scope, controller.$name, undefined, controller.$name);
-                parentFormCtrl.$$renameControl(controller, newValue);
-                setter(scope, controller.$name, controller, controller.$name);
+                setter(scope, undefined);
+                controller.$$parentForm.$$renameControl(controller, newValue);
+                setter = getSetter(controller.$name);
+                setter(scope, controller);
               });
             }
             formElement.on('$destroy', function() {
-              parentFormCtrl.$removeControl(controller);
-              if (nameAttr) {
-                setter(scope, attr[nameAttr], undefined, controller.$name);
-              }
+              controller.$$parentForm.$removeControl(controller);
+              setter(scope, undefined);
               extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards
             });
           }
@@ -48322,6 +48728,14 @@
     };
 
     return formDirective;
+
+    function getSetter(expression) {
+      if (expression === '') {
+        //create an assignable expression, so forms with an empty name can be renamed later
+        return $parse('this[""]').assign;
+      }
+      return $parse(expression).assign || noop;
+    }
   }];
 };
 
@@ -48334,14 +48748,14 @@
   DIRTY_CLASS: false,
   UNTOUCHED_CLASS: false,
   TOUCHED_CLASS: false,
-  $ngModelMinErr: false,
+  ngModelMinErr: false,
 */
 
 // Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231
 var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
 var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;
 var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;
-var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;
+var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/;
 var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/;
 var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;
 var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/;
@@ -48466,9 +48880,17 @@
      * @param {string} ngModel Assignable angular expression to data-bind to.
      * @param {string=} name Property name of the form under which the control is published.
      * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a
-     * valid ISO date string (yyyy-MM-dd).
+     *   valid ISO date string (yyyy-MM-dd). You can also use interpolation inside this attribute
+     *   (e.g. `min="{{minDate | date:'yyyy-MM-dd'}}"`). Note that `min` will also add native HTML5
+     *   constraint validation.
      * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be
-     * a valid ISO date string (yyyy-MM-dd).
+     *   a valid ISO date string (yyyy-MM-dd). You can also use interpolation inside this attribute
+     *   (e.g. `max="{{maxDate | date:'yyyy-MM-dd'}}"`). Note that `max` will also add native HTML5
+     *   constraint validation.
+     * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO date string
+     *   the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.
+     * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO date string
+     *   the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.
      * @param {string=} required Sets `required` validation error key if the value is not entered.
      * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to
      *    the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of
@@ -48560,10 +48982,18 @@
     *
     * @param {string} ngModel Assignable angular expression to data-bind to.
     * @param {string=} name Property name of the form under which the control is published.
-    * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a
-    * valid ISO datetime format (yyyy-MM-ddTHH:mm:ss).
-    * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be
-    * a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss).
+    * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.
+    *   This must be a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). You can also use interpolation
+    *   inside this attribute (e.g. `min="{{minDatetimeLocal | date:'yyyy-MM-ddTHH:mm:ss'}}"`).
+    *   Note that `min` will also add native HTML5 constraint validation.
+    * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.
+    *   This must be a valid ISO datetime format (yyyy-MM-ddTHH:mm:ss). You can also use interpolation
+    *   inside this attribute (e.g. `max="{{maxDatetimeLocal | date:'yyyy-MM-ddTHH:mm:ss'}}"`).
+    *   Note that `max` will also add native HTML5 constraint validation.
+    * @param {(date|string)=} ngMin Sets the `min` validation error key to the Date / ISO datetime string
+    *   the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.
+    * @param {(date|string)=} ngMax Sets the `max` validation error key to the Date / ISO datetime string
+    *   the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.
     * @param {string=} required Sets `required` validation error key if the value is not entered.
     * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to
     *    the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of
@@ -48656,10 +49086,18 @@
    *
    * @param {string} ngModel Assignable angular expression to data-bind to.
    * @param {string=} name Property name of the form under which the control is published.
-   * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a
-   * valid ISO time format (HH:mm:ss).
-   * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be a
-   * valid ISO time format (HH:mm:ss).
+   * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.
+   *   This must be a valid ISO time format (HH:mm:ss). You can also use interpolation inside this
+   *   attribute (e.g. `min="{{minTime | date:'HH:mm:ss'}}"`). Note that `min` will also add
+   *   native HTML5 constraint validation.
+   * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.
+   *   This must be a valid ISO time format (HH:mm:ss). You can also use interpolation inside this
+   *   attribute (e.g. `max="{{maxTime | date:'HH:mm:ss'}}"`). Note that `max` will also add
+   *   native HTML5 constraint validation.
+   * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO time string the
+   *   `ngMin` expression evaluates to. Note that it does not set the `min` attribute.
+   * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO time string the
+   *   `ngMax` expression evaluates to. Note that it does not set the `max` attribute.
    * @param {string=} required Sets `required` validation error key if the value is not entered.
    * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to
    *    the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of
@@ -48751,10 +49189,18 @@
     *
     * @param {string} ngModel Assignable angular expression to data-bind to.
     * @param {string=} name Property name of the form under which the control is published.
-    * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be a
-    * valid ISO week format (yyyy-W##).
-    * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must be
-    * a valid ISO week format (yyyy-W##).
+    * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.
+    *   This must be a valid ISO week format (yyyy-W##). You can also use interpolation inside this
+    *   attribute (e.g. `min="{{minWeek | date:'yyyy-Www'}}"`). Note that `min` will also add
+    *   native HTML5 constraint validation.
+    * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.
+    *   This must be a valid ISO week format (yyyy-W##). You can also use interpolation inside this
+    *   attribute (e.g. `max="{{maxWeek | date:'yyyy-Www'}}"`). Note that `max` will also add
+    *   native HTML5 constraint validation.
+    * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO week string
+    *   the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.
+    * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO week string
+    *   the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.
     * @param {string=} required Sets `required` validation error key if the value is not entered.
     * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to
     *    the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of
@@ -48848,10 +49294,19 @@
    *
    * @param {string} ngModel Assignable angular expression to data-bind to.
    * @param {string=} name Property name of the form under which the control is published.
-   * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. This must be
-   * a valid ISO month format (yyyy-MM).
-   * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. This must
-   * be a valid ISO month format (yyyy-MM).
+   * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.
+   *   This must be a valid ISO month format (yyyy-MM). You can also use interpolation inside this
+   *   attribute (e.g. `min="{{minMonth | date:'yyyy-MM'}}"`). Note that `min` will also add
+   *   native HTML5 constraint validation.
+   * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`.
+   *   This must be a valid ISO month format (yyyy-MM). You can also use interpolation inside this
+   *   attribute (e.g. `max="{{maxMonth | date:'yyyy-MM'}}"`). Note that `max` will also add
+   *   native HTML5 constraint validation.
+   * @param {(date|string)=} ngMin Sets the `min` validation constraint to the Date / ISO week string
+   *   the `ngMin` expression evaluates to. Note that it does not set the `min` attribute.
+   * @param {(date|string)=} ngMax Sets the `max` validation constraint to the Date / ISO week string
+   *   the `ngMax` expression evaluates to. Note that it does not set the `max` attribute.
+
    * @param {string=} required Sets `required` validation error key if the value is not entered.
    * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to
    *    the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of
@@ -48940,6 +49395,16 @@
    * error docs for more information and an example of how to convert your model if necessary.
    * </div>
    *
+   * ## Issues with HTML5 constraint validation
+   *
+   * In browsers that follow the
+   * [HTML5 specification](https://html.spec.whatwg.org/multipage/forms.html#number-state-%28type=number%29),
+   * `input[number]` does not work as expected with {@link ngModelOptions `ngModelOptions.allowInvalid`}.
+   * If a non-number is entered in the input, the browser will report the value as an empty string,
+   * which means the view / model values in `ngModel` and subsequently the scope value
+   * will also be an empty string.
+   *
+   *
    * @param {string} ngModel Assignable angular expression to data-bind to.
    * @param {string=} name Property name of the form under which the control is published.
    * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.
@@ -49231,12 +49696,15 @@
    * HTML radio button.
    *
    * @param {string} ngModel Assignable angular expression to data-bind to.
-   * @param {string} value The value to which the expression should be set when selected.
+   * @param {string} value The value to which the `ngModel` expression should be set when selected.
+   *    Note that `value` only supports `string` values, i.e. the scope model needs to be a string,
+   *    too. Use `ngValue` if you need complex models (`number`, `object`, ...).
    * @param {string=} name Property name of the form under which the control is published.
    * @param {string=} ngChange Angular expression to be executed when input changes due to user
    *    interaction with the input element.
-   * @param {string} ngValue Angular expression which sets the value to which the expression should
-   *    be set when selected.
+   * @param {string} ngValue Angular expression to which `ngModel` will be be set when the radio
+   *    is selected. Should be used instead of the `value` attribute if you need
+   *    a non-string `ngModel` (`boolean`, `array`, ...).
    *
    * @example
       <example name="radio-input-directive" module="radioExample">
@@ -49443,7 +49911,11 @@
   element.on('change', listener);
 
   ctrl.$render = function() {
-    element.val(ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue);
+    // Workaround for Firefox validation #12102.
+    var value = ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue;
+    if (element.val() !== value) {
+      element.val(value);
+    }
   };
 }
 
@@ -49554,7 +50026,7 @@
 
     ctrl.$formatters.push(function(value) {
       if (value && !isDate(value)) {
-        throw $ngModelMinErr('datefmt', 'Expected `{0}` to be a date', value);
+        throw ngModelMinErr('datefmt', 'Expected `{0}` to be a date', value);
       }
       if (isValidDate(value)) {
         previousDate = value;
@@ -49596,7 +50068,7 @@
     }
 
     function parseObservedDateValue(val) {
-      return isDefined(val) ? (isDate(val) ? val : parseDate(val)) : undefined;
+      return isDefined(val) && !isDate(val) ? parseDate(val) || undefined : val;
     }
   };
 }
@@ -49630,7 +50102,7 @@
   ctrl.$formatters.push(function(value) {
     if (!ctrl.$isEmpty(value)) {
       if (!isNumber(value)) {
-        throw $ngModelMinErr('numfmt', 'Expected `{0}` to be a number', value);
+        throw ngModelMinErr('numfmt', 'Expected `{0}` to be a number', value);
       }
       value = value.toString();
     }
@@ -49723,7 +50195,7 @@
   if (isDefined(expression)) {
     parseFn = $parse(expression);
     if (!parseFn.constant) {
-      throw minErr('ngModel')('constexpr', 'Expected constant expression for `{0}`, but saw ' +
+      throw ngModelMinErr('constexpr', 'Expected constant expression for `{0}`, but saw ' +
                                    '`{1}`.', name, expression);
     }
     return parseFn(context);
@@ -50091,7 +50563,7 @@
         $compile.$$addBindingInfo(element, attr.ngBind);
         element = element[0];
         scope.$watch(attr.ngBind, function ngBindWatchAction(value) {
-          element.textContent = value === undefined ? '' : value;
+          element.textContent = isUndefined(value) ? '' : value;
         });
       };
     }
@@ -50159,7 +50631,7 @@
         $compile.$$addBindingInfo(element, interpolateFn.expressions);
         element = element[0];
         attr.$observe('ngBindTemplate', function(value) {
-          element.textContent = value === undefined ? '' : value;
+          element.textContent = isUndefined(value) ? '' : value;
         });
       };
     }
@@ -50476,7 +50948,7 @@
  * @example Example that demonstrates basic bindings via ngClass directive.
    <example>
      <file name="index.html">
-       <p ng-class="{strike: deleted, bold: important, red: error}">Map Syntax Example</p>
+       <p ng-class="{strike: deleted, bold: important, 'has-error': error}">Map Syntax Example</p>
        <label>
           <input type="checkbox" ng-model="deleted">
           deleted (apply "strike" class)
@@ -50487,7 +50959,7 @@
        </label><br>
        <label>
           <input type="checkbox" ng-model="error">
-          error (apply "red" class)
+          error (apply "has-error" class)
        </label>
        <hr>
        <p ng-class="style">Using String Syntax</p>
@@ -50516,6 +50988,10 @@
        .red {
            color: red;
        }
+       .has-error {
+           color: red;
+           background-color: yellow;
+       }
        .orange {
            color: orange;
        }
@@ -50526,13 +51002,13 @@
        it('should let you toggle the class', function() {
 
          expect(ps.first().getAttribute('class')).not.toMatch(/bold/);
-         expect(ps.first().getAttribute('class')).not.toMatch(/red/);
+         expect(ps.first().getAttribute('class')).not.toMatch(/has-error/);
 
          element(by.model('important')).click();
          expect(ps.first().getAttribute('class')).toMatch(/bold/);
 
          element(by.model('error')).click();
-         expect(ps.first().getAttribute('class')).toMatch(/red/);
+         expect(ps.first().getAttribute('class')).toMatch(/has-error/);
        });
 
        it('should let you toggle string example', function() {
@@ -50572,7 +51048,6 @@
      </file>
      <file name="style.css">
        .base-class {
-         -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
          transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
        }
 
@@ -51005,27 +51480,29 @@
  *
  * @element html
  * @description
- * Enables [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) support.
+ *
+ * Angular has some features that can break certain
+ * [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) rules.
+ *
+ * If you intend to implement these rules then you must tell Angular not to use these features.
  *
  * This is necessary when developing things like Google Chrome Extensions or Universal Windows Apps.
  *
- * CSP forbids apps to use `eval` or `Function(string)` generated functions (among other things).
- * For Angular to be CSP compatible there are only two things that we need to do differently:
- *
- * - don't use `Function` constructor to generate optimized value getters
- * - don't inject custom stylesheet into the document
- *
- * AngularJS uses `Function(string)` generated functions as a speed optimization. Applying the `ngCsp`
- * directive will cause Angular to use CSP compatibility mode. When this mode is on AngularJS will
- * evaluate all expressions up to 30% slower than in non-CSP mode, but no security violations will
- * be raised.
- *
- * CSP forbids JavaScript to inline stylesheet rules. In non CSP mode Angular automatically
- * includes some CSS rules (e.g. {@link ng.directive:ngCloak ngCloak}).
- * To make those directives work in CSP mode, include the `angular-csp.css` manually.
- *
- * Angular tries to autodetect if CSP is active and automatically turn on the CSP-safe mode. This
- * autodetection however triggers a CSP error to be logged in the console:
+ *
+ * The following rules affect Angular:
+ *
+ * * `unsafe-eval`: this rule forbids apps to use `eval` or `Function(string)` generated functions
+ * (among other things). Angular makes use of this in the {@link $parse} service to provide a 30%
+ * increase in the speed of evaluating Angular expressions.
+ *
+ * * `unsafe-inline`: this rule forbids apps from inject custom styles into the document. Angular
+ * makes use of this to include some CSS rules (e.g. {@link ngCloak} and {@link ngHide}).
+ * To make these directives work when a CSP rule is blocking inline styles, you must link to the
+ * `angular-csp.css` in your HTML manually.
+ *
+ * If you do not provide `ngCsp` then Angular tries to autodetect if CSP is blocking unsafe-eval
+ * and automatically deactivates this feature in the {@link $parse} service. This autodetection,
+ * however, triggers a CSP error to be logged in the console:
  *
  * ```
  * Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of
@@ -51034,11 +51511,39 @@
  * ```
  *
  * This error is harmless but annoying. To prevent the error from showing up, put the `ngCsp`
- * directive on the root element of the application or on the `angular.js` script tag, whichever
- * appears first in the html document.
+ * directive on an element of the HTML document that appears before the `<script>` tag that loads
+ * the `angular.js` file.
  *
  * *Note: This directive is only available in the `ng-csp` and `data-ng-csp` attribute form.*
  *
+ * You can specify which of the CSP related Angular features should be deactivated by providing
+ * a value for the `ng-csp` attribute. The options are as follows:
+ *
+ * * no-inline-style: this stops Angular from injecting CSS styles into the DOM
+ *
+ * * no-unsafe-eval: this stops Angular from optimising $parse with unsafe eval of strings
+ *
+ * You can use these values in the following combinations:
+ *
+ *
+ * * No declaration means that Angular will assume that you can do inline styles, but it will do
+ * a runtime check for unsafe-eval. E.g. `<body>`. This is backwardly compatible with previous versions
+ * of Angular.
+ *
+ * * A simple `ng-csp` (or `data-ng-csp`) attribute will tell Angular to deactivate both inline
+ * styles and unsafe eval. E.g. `<body ng-csp>`. This is backwardly compatible with previous versions
+ * of Angular.
+ *
+ * * Specifying only `no-unsafe-eval` tells Angular that we must not use eval, but that we can inject
+ * inline styles. E.g. `<body ng-csp="no-unsafe-eval">`.
+ *
+ * * Specifying only `no-inline-style` tells Angular that we must not inject styles, but that we can
+ * run eval - no automcatic check for unsafe eval will occur. E.g. `<body ng-csp="no-inline-style">`
+ *
+ * * Specifying both `no-unsafe-eval` and `no-inline-style` tells Angular that we must not inject
+ * styles nor use eval, which is the same as an empty: ng-csp.
+ * E.g.`<body ng-csp="no-inline-style;no-unsafe-eval">`
+ *
  * @example
  * This example shows how to apply the `ngCsp` directive to the `html` tag.
    ```html
@@ -51170,7 +51675,7 @@
 
 // ngCsp is not implemented as a proper directive any more, because we need it be processed while we
 // bootstrap the system (before $parse is instantiated), for this reason we just have
-// the csp.isActive() fn that looks for ng-csp attribute anywhere in the current doc
+// the csp() fn that looks for the `ng-csp` attribute anywhere in the current doc
 
 /**
  * @ngdoc directive
@@ -51660,6 +52165,7 @@
  * @ngdoc directive
  * @name ngIf
  * @restrict A
+ * @multiElement
  *
  * @description
  * The `ngIf` directive removes or recreates a portion of the DOM tree based on an
@@ -51716,7 +52222,6 @@
       }
 
       .animate-if.ng-enter, .animate-if.ng-leave {
-        -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
         transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
       }
 
@@ -51865,7 +52370,6 @@
       }
 
       .slide-animate.ng-enter, .slide-animate.ng-leave {
-        -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
         transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
 
         position:absolute;
@@ -51958,8 +52462,8 @@
  * @param {Object} angularEvent Synthetic event object.
  * @param {String} src URL of content to load.
  */
-var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate', '$sce',
-                  function($templateRequest,   $anchorScroll,   $animate,   $sce) {
+var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate',
+                  function($templateRequest,   $anchorScroll,   $animate) {
   return {
     restrict: 'ECA',
     priority: 400,
@@ -51995,7 +52499,7 @@
           }
         };
 
-        scope.$watch($sce.parseAsResourceUrl(srcExp), function ngIncludeWatchAction(src) {
+        scope.$watch(srcExp, function ngIncludeWatchAction(src) {
           var afterAnimation = function() {
             if (isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))) {
               $anchorScroll();
@@ -52084,16 +52588,18 @@
  * current scope.
  *
  * <div class="alert alert-danger">
- * The only appropriate use of `ngInit` is for aliasing special properties of
- * {@link ng.directive:ngRepeat `ngRepeat`}, as seen in the demo below. Besides this case, you
- * should use {@link guide/controller controllers} rather than `ngInit`
- * to initialize values on a scope.
+ * This directive can be abused to add unnecessary amounts of logic into your templates.
+ * There are only a few appropriate uses of `ngInit`, such as for aliasing special properties of
+ * {@link ng.directive:ngRepeat `ngRepeat`}, as seen in the demo below; and for injecting data via
+ * server side scripting. Besides these few cases, you should use {@link guide/controller controllers}
+ * rather than `ngInit` to initialize values on a scope.
  * </div>
+ *
  * <div class="alert alert-warning">
- * **Note**: If you have assignment in `ngInit` along with {@link ng.$filter `$filter`}, make
- * sure you have parenthesis for correct precedence:
+ * **Note**: If you have assignment in `ngInit` along with a {@link ng.$filter `filter`}, make
+ * sure you have parentheses to ensure correct operator precedence:
  * <pre class="prettyprint">
- * `<div ng-init="test1 = (data | orderBy:'name')"></div>`
+ * `<div ng-init="test1 = ($index | toString)"></div>`
  * </pre>
  * </div>
  *
@@ -52206,7 +52712,7 @@
  *   </file>
  * </example>
  *
- * ### Example - splitting on whitespace
+ * ### Example - splitting on newline
  * <example name="ngList-directive-newlines">
  *   <file name="index.html">
  *    <textarea ng-model="list" ng-list="&#10;" ng-trim="false"></textarea>
@@ -52285,14 +52791,15 @@
     TOUCHED_CLASS = 'ng-touched',
     PENDING_CLASS = 'ng-pending';
 
-
-var $ngModelMinErr = new minErr('ngModel');
+var ngModelMinErr = minErr('ngModel');
 
 /**
  * @ngdoc type
  * @name ngModel.NgModelController
  *
- * @property {string} $viewValue Actual string value in the view.
+ * @property {*} $viewValue The actual value from the control's view. For `input` elements, this is a
+ * String. See {@link ngModel.NgModelController#$setViewValue} for information about when the $viewValue
+ * is set.
  * @property {*} $modelValue The value in the model that the control is bound to.
  * @property {Array.<Function>} $parsers Array of functions to execute, as a pipeline, whenever
        the control reads value from the DOM. The functions are called in array order, each passing
@@ -52506,7 +53013,7 @@
   this.$$success = {}; // keep valid keys here
   this.$pending = undefined; // keep pending keys here
   this.$name = $interpolate($attr.name || '', false)($scope);
-
+  this.$$parentForm = nullFormCtrl;
 
   var parsedNgModel = $parse($attr.ngModel),
       parsedNgModelAssign = parsedNgModel.assign,
@@ -52537,7 +53044,7 @@
         }
       };
     } else if (!parsedNgModel.assign) {
-      throw $ngModelMinErr('nonassign', "Expression '{0}' is non-assignable. Element: {1}",
+      throw ngModelMinErr('nonassign', "Expression '{0}' is non-assignable. Element: {1}",
           $attr.ngModel, startingTag($element));
     }
   };
@@ -52586,8 +53093,7 @@
     return isUndefined(value) || value === '' || value === null || value !== value;
   };
 
-  var parentForm = $element.inheritedData('$formController') || nullFormCtrl,
-      currentValidationRunId = 0;
+  var currentValidationRunId = 0;
 
   /**
    * @ngdoc method
@@ -52620,7 +53126,6 @@
     unset: function(object, property) {
       delete object[property];
     },
-    parentForm: parentForm,
     $animate: $animate
   });
 
@@ -52658,7 +53163,7 @@
     ctrl.$pristine = false;
     $animate.removeClass($element, PRISTINE_CLASS);
     $animate.addClass($element, DIRTY_CLASS);
-    parentForm.$setDirty();
+    ctrl.$$parentForm.$setDirty();
   };
 
   /**
@@ -52828,7 +53333,7 @@
 
     function processParseErrors() {
       var errorKey = ctrl.$$parserName || 'parse';
-      if (parserValid === undefined) {
+      if (isUndefined(parserValid)) {
         setValidity(errorKey, null);
       } else {
         if (!parserValid) {
@@ -52868,7 +53373,7 @@
       forEach(ctrl.$asyncValidators, function(validator, name) {
         var promise = validator(modelValue, viewValue);
         if (!isPromiseLike(promise)) {
-          throw $ngModelMinErr("$asyncValidators",
+          throw ngModelMinErr("$asyncValidators",
             "Expected asynchronous validator to return a promise but got '{0}' instead.", promise);
         }
         setValidity(name, undefined);
@@ -52998,37 +53503,47 @@
    * @description
    * Update the view value.
    *
-   * This method should be called when an input directive want to change the view value; typically,
-   * this is done from within a DOM event handler.
-   *
-   * For example {@link ng.directive:input input} calls it when the value of the input changes and
-   * {@link ng.directive:select select} calls it when an option is selected.
-   *
-   * If the new `value` is an object (rather than a string or a number), we should make a copy of the
-   * object before passing it to `$setViewValue`.  This is because `ngModel` does not perform a deep
-   * watch of objects, it only looks for a change of identity. If you only change the property of
-   * the object then ngModel will not realise that the object has changed and will not invoke the
-   * `$parsers` and `$validators` pipelines.
-   *
-   * For this reason, you should not change properties of the copy once it has been passed to
-   * `$setViewValue`. Otherwise you may cause the model value on the scope to change incorrectly.
-   *
-   * When this method is called, the new `value` will be staged for committing through the `$parsers`
+   * This method should be called when a control wants to change the view value; typically,
+   * this is done from within a DOM event handler. For example, the {@link ng.directive:input input}
+   * directive calls it when the value of the input changes and {@link ng.directive:select select}
+   * calls it when an option is selected.
+   *
+   * When `$setViewValue` is called, the new `value` will be staged for committing through the `$parsers`
    * and `$validators` pipelines. If there are no special {@link ngModelOptions} specified then the staged
    * value sent directly for processing, finally to be applied to `$modelValue` and then the
-   * **expression** specified in the `ng-model` attribute.
-   *
-   * Lastly, all the registered change listeners, in the `$viewChangeListeners` list, are called.
+   * **expression** specified in the `ng-model` attribute. Lastly, all the registered change listeners,
+   * in the `$viewChangeListeners` list, are called.
    *
    * In case the {@link ng.directive:ngModelOptions ngModelOptions} directive is used with `updateOn`
    * and the `default` trigger is not listed, all those actions will remain pending until one of the
    * `updateOn` events is triggered on the DOM element.
    * All these actions will be debounced if the {@link ng.directive:ngModelOptions ngModelOptions}
    * directive is used with a custom debounce for this particular event.
-   *
-   * Note that calling this function does not trigger a `$digest`.
-   *
-   * @param {string} value Value from the view.
+   * Note that a `$digest` is only triggered once the `updateOn` events are fired, or if `debounce`
+   * is specified, once the timer runs out.
+   *
+   * When used with standard inputs, the view value will always be a string (which is in some cases
+   * parsed into another type, such as a `Date` object for `input[date]`.)
+   * However, custom controls might also pass objects to this method. In this case, we should make
+   * a copy of the object before passing it to `$setViewValue`. This is because `ngModel` does not
+   * perform a deep watch of objects, it only looks for a change of identity. If you only change
+   * the property of the object then ngModel will not realise that the object has changed and
+   * will not invoke the `$parsers` and `$validators` pipelines. For this reason, you should
+   * not change properties of the copy once it has been passed to `$setViewValue`.
+   * Otherwise you may cause the model value on the scope to change incorrectly.
+   *
+   * <div class="alert alert-info">
+   * In any case, the value passed to the method should always reflect the current value
+   * of the control. For example, if you are calling `$setViewValue` for an input element,
+   * you should pass the input DOM value. Otherwise, the control and the scope model become
+   * out of sync. It's also important to note that `$setViewValue` does not call `$render` or change
+   * the control's DOM value in any way. If we want to change the control's DOM value
+   * programmatically, we should update the `ngModel` scope expression. Its new value will be
+   * picked up by the model controller, which will run it through the `$formatters`, `$render` it
+   * to update the DOM, and finally call `$validate` on it.
+   * </div>
+   *
+   * @param {*} value value from the view.
    * @param {string} trigger Event that triggered the update.
    */
   this.$setViewValue = function(value, trigger) {
@@ -53205,7 +53720,6 @@
        </script>
        <style>
          .my-input {
-           -webkit-transition:all linear 0.5s;
            transition:all linear 0.5s;
            background: transparent;
          }
@@ -53292,7 +53806,7 @@
       return {
         pre: function ngModelPreLink(scope, element, attr, ctrls) {
           var modelCtrl = ctrls[0],
-              formCtrl = ctrls[1] || nullFormCtrl;
+              formCtrl = ctrls[1] || modelCtrl.$$parentForm;
 
           modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options);
 
@@ -53301,12 +53815,12 @@
 
           attr.$observe('name', function(newValue) {
             if (modelCtrl.$name !== newValue) {
-              formCtrl.$$renameControl(modelCtrl, newValue);
+              modelCtrl.$$parentForm.$$renameControl(modelCtrl, newValue);
             }
           });
 
           scope.$on('$destroy', function() {
-            formCtrl.$removeControl(modelCtrl);
+            modelCtrl.$$parentForm.$removeControl(modelCtrl);
           });
         },
         post: function ngModelPostLink(scope, element, attr, ctrls) {
@@ -53366,7 +53880,7 @@
  *   - `debounce`: integer value which contains the debounce model update value in milliseconds. A
  *     value of 0 triggers an immediate update. If an object is supplied instead, you can specify a
  *     custom value for each event. For example:
- *     `ng-model-options="{ updateOn: 'default blur', debounce: {'default': 500, 'blur': 0} }"`
+ *     `ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 500, 'blur': 0 } }"`
  *   - `allowInvalid`: boolean value which indicates that the model can be set with values that did
  *     not validate correctly instead of the default behavior of setting the model to undefined.
  *   - `getterSetter`: boolean value which determines whether or not to treat functions bound to
@@ -53501,7 +54015,7 @@
       var that = this;
       this.$options = copy($scope.$eval($attrs.ngModelOptions));
       // Allow adding/overriding bound events
-      if (this.$options.updateOn !== undefined) {
+      if (isDefined(this.$options.updateOn)) {
         this.$options.updateOnDefault = false;
         // extract "default" pseudo-event from list of events that can trigger a model update
         this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP, function() {
@@ -53524,7 +54038,6 @@
       classCache = {},
       set = context.set,
       unset = context.unset,
-      parentForm = context.parentForm,
       $animate = context.$animate;
 
   classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS));
@@ -53532,7 +54045,7 @@
   ctrl.$setValidity = setValidity;
 
   function setValidity(validationErrorKey, state, controller) {
-    if (state === undefined) {
+    if (isUndefined(state)) {
       createAndSet('$pending', validationErrorKey, controller);
     } else {
       unsetAndCleanup('$pending', validationErrorKey, controller);
@@ -53576,7 +54089,7 @@
     }
 
     toggleValidationCss(validationErrorKey, combinedState);
-    parentForm.$setValidity(validationErrorKey, combinedState, ctrl);
+    ctrl.$$parentForm.$setValidity(validationErrorKey, combinedState, ctrl);
   }
 
   function createAndSet(name, value, controller) {
@@ -53616,7 +54129,9 @@
 function isObjectEmpty(obj) {
   if (obj) {
     for (var prop in obj) {
-      return false;
+      if (obj.hasOwnProperty(prop)) {
+        return false;
+      }
     }
   }
   return true;
@@ -53720,7 +54235,7 @@
  * Consider the following example:
  *
  * ```html
- * <select ng-options="item.subItem as item.label for item in values track by item.id" ng-model="selected">
+ * <select ng-options="item.subItem as item.label for item in values track by item.id" ng-model="selected"></select>
  * ```
  *
  * ```js
@@ -53948,19 +54463,41 @@
       this.disabled = disabled;
     }
 
+    function getOptionValuesKeys(optionValues) {
+      var optionValuesKeys;
+
+      if (!keyName && isArrayLike(optionValues)) {
+        optionValuesKeys = optionValues;
+      } else {
+        // if object, extract keys, in enumeration order, unsorted
+        optionValuesKeys = [];
+        for (var itemKey in optionValues) {
+          if (optionValues.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') {
+            optionValuesKeys.push(itemKey);
+          }
+        }
+      }
+      return optionValuesKeys;
+    }
+
     return {
       trackBy: trackBy,
       getTrackByValue: getTrackByValue,
-      getWatchables: $parse(valuesFn, function(values) {
+      getWatchables: $parse(valuesFn, function(optionValues) {
         // Create a collection of things that we would like to watch (watchedArray)
         // so that they can all be watched using a single $watchCollection
         // that only runs the handler once if anything changes
         var watchedArray = [];
-        values = values || [];
-
-        Object.keys(values).forEach(function getWatchable(key) {
-          var locals = getLocals(values[key], key);
-          var selectValue = getTrackByValueFn(values[key], locals);
+        optionValues = optionValues || [];
+
+        var optionValuesKeys = getOptionValuesKeys(optionValues);
+        var optionValuesLength = optionValuesKeys.length;
+        for (var index = 0; index < optionValuesLength; index++) {
+          var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index];
+          var value = optionValues[key];
+
+          var locals = getLocals(optionValues[key], key);
+          var selectValue = getTrackByValueFn(optionValues[key], locals);
           watchedArray.push(selectValue);
 
           // Only need to watch the displayFn if there is a specific label expression
@@ -53974,7 +54511,7 @@
             var disableWhen = disableWhenFn(scope, locals);
             watchedArray.push(disableWhen);
           }
-        });
+        }
         return watchedArray;
       }),
 
@@ -53986,21 +54523,7 @@
         // The option values were already computed in the `getWatchables` fn,
         // which must have been called to trigger `getOptions`
         var optionValues = valuesFn(scope) || [];
-        var optionValuesKeys;
-
-
-        if (!keyName && isArrayLike(optionValues)) {
-          optionValuesKeys = optionValues;
-        } else {
-          // if object, extract keys, in enumeration order, unsorted
-          optionValuesKeys = [];
-          for (var itemKey in optionValues) {
-            if (optionValues.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') {
-              optionValuesKeys.push(itemKey);
-            }
-          }
-        }
-
+        var optionValuesKeys = getOptionValuesKeys(optionValues);
         var optionValuesLength = optionValuesKeys.length;
 
         for (var index = 0; index < optionValuesLength; index++) {
@@ -54174,7 +54697,7 @@
 
           forEach(selectedValues, function(value) {
             var option = options.selectValueMap[value];
-            if (!option.disabled) selections.push(options.getViewValueFromOption(option));
+            if (option && !option.disabled) selections.push(options.getViewValueFromOption(option));
           });
 
           return selections;
@@ -54227,11 +54750,16 @@
       function updateOptionElement(option, element) {
         option.element = element;
         element.disabled = option.disabled;
-        if (option.value !== element.value) element.value = option.selectValue;
+        // NOTE: The label must be set before the value, otherwise IE10/11/EDGE create unresponsive
+        // selects in certain circumstances when multiple selects are next to each other and display
+        // the option list in listbox style, i.e. the select is [multiple], or specifies a [size].
+        // See https://github.com/angular/angular.js/issues/11314 for more info.
+        // This is unfortunately untestable with unit / e2e tests
         if (option.label !== element.label) {
           element.label = option.label;
           element.textContent = option.label;
         }
+        if (option.value !== element.value) element.value = option.selectValue;
       }
 
       function addOrReuseElement(parent, current, type, templateElement) {
@@ -54272,7 +54800,10 @@
         if (emptyOption_ || unknownOption_) {
           while (current &&
                 (current === emptyOption_ ||
-                current === unknownOption_)) {
+                current === unknownOption_ ||
+                emptyOption_ && emptyOption_.nodeType === NODE_TYPE_COMMENT)) {
+            // Empty options might have directives that transclude
+            // and insert comments (e.g. ngIf)
             current = current.nextSibling;
           }
         }
@@ -54362,8 +54893,7 @@
         // Check to see if the value has changed due to the update to the options
         if (!ngModelCtrl.$isEmpty(previousValue)) {
           var nextValue = selectCtrl.readValue();
-          if (ngOptions.trackBy && !equals(previousValue, nextValue) ||
-                previousValue !== nextValue) {
+          if (ngOptions.trackBy ? !equals(previousValue, nextValue) : previousValue !== nextValue) {
             ngModelCtrl.$setViewValue(nextValue);
             ngModelCtrl.$render();
           }
@@ -54617,6 +55147,7 @@
 /**
  * @ngdoc directive
  * @name ngRepeat
+ * @multiElement
  *
  * @description
  * The `ngRepeat` directive instantiates a template once per item from a collection. Each template
@@ -54634,8 +55165,10 @@
  * | `$even`   | {@type boolean} | true if the iterator position `$index` is even (otherwise false).           |
  * | `$odd`    | {@type boolean} | true if the iterator position `$index` is odd (otherwise false).            |
  *
- * Creating aliases for these properties is possible with {@link ng.directive:ngInit `ngInit`}.
- * This may be useful when, for instance, nesting ngRepeats.
+ * <div class="alert alert-info">
+ *   Creating aliases for these properties is possible with {@link ng.directive:ngInit `ngInit`}.
+ *   This may be useful when, for instance, nesting ngRepeats.
+ * </div>
  *
  *
  * # Iterating over object properties
@@ -54711,6 +55244,15 @@
  *    </div>
  * ```
  *
+ * <div class="alert alert-warning">
+ * **Note:** `track by` must always be the last expression:
+ * </div>
+ * ```
+ * <div ng-repeat="model in collection | orderBy: 'id' as filtered_result track by model.id">
+ *     {{model.name}}
+ * </div>
+ * ```
+ *
  * # Special repeat start and end points
  * To repeat a series of elements instead of just one parent element, ngRepeat (as well as other ng directives) supports extending
  * the range of the repeater by defining explicit start and end points by using **ng-repeat-start** and **ng-repeat-end** respectively.
@@ -54782,8 +55324,9 @@
  *     which can be used to associate the objects in the collection with the DOM elements. If no tracking expression
  *     is specified, ng-repeat associates elements by identity. It is an error to have
  *     more than one tracking expression value resolve to the same key. (This would mean that two distinct objects are
- *     mapped to the same DOM element, which is not possible.)  If filters are used in the expression, they should be
- *     applied before the tracking expression.
+ *     mapped to the same DOM element, which is not possible.)
+ *
+ *     Note that the tracking expression must come last, after any filters, and the alias expression.
  *
  *     For example: `item in items` is equivalent to `item in items track by $id(item)`. This implies that the DOM elements
  *     will be associated by item identity in the array.
@@ -54859,7 +55402,6 @@
       .animate-repeat.ng-move,
       .animate-repeat.ng-enter,
       .animate-repeat.ng-leave {
-        -webkit-transition:all linear 0.5s;
         transition:all linear 0.5s;
       }
 
@@ -55031,7 +55573,7 @@
             // if object, extract keys, in enumeration order, unsorted
             collectionKeys = [];
             for (var itemKey in collection) {
-              if (collection.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') {
+              if (hasOwnProperty.call(collection, itemKey) && itemKey.charAt(0) !== '$') {
                 collectionKeys.push(itemKey);
               }
             }
@@ -55136,6 +55678,7 @@
 /**
  * @ngdoc directive
  * @name ngShow
+ * @multiElement
  *
  * @description
  * The `ngShow` directive shows or hides the given HTML element based on the expression
@@ -55255,9 +55798,7 @@
         background: white;
       }
 
-      .animate-show.ng-hide-add.ng-hide-add-active,
-      .animate-show.ng-hide-remove.ng-hide-remove-active {
-        -webkit-transition: all linear 0.5s;
+      .animate-show.ng-hide-add, .animate-show.ng-hide-remove {
         transition: all linear 0.5s;
       }
 
@@ -55311,6 +55852,7 @@
 /**
  * @ngdoc directive
  * @name ngHide
+ * @multiElement
  *
  * @description
  * The `ngHide` directive shows or hides the given HTML element based on the expression
@@ -55413,7 +55955,6 @@
     </file>
     <file name="animations.css">
       .animate-hide {
-        -webkit-transition: all linear 0.5s;
         transition: all linear 0.5s;
         line-height: 20px;
         opacity: 1;
@@ -55612,7 +56153,6 @@
       }
 
       .animate-switch.ng-animate {
-        -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
         transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
 
         position:absolute;
@@ -55953,31 +56493,162 @@
  * @description
  * HTML `SELECT` element with angular data-binding.
  *
- * In many cases, `ngRepeat` can be used on `<option>` elements instead of {@link ng.directive:ngOptions
- * ngOptions} to achieve a similar result. However, `ngOptions` provides some benefits such as reducing
- * memory and increasing speed by not creating a new scope for each repeated instance, as well as providing
- * more flexibility in how the `<select>`'s model is assigned via the `select` **`as`** part of the
- * comprehension expression.
- *
- * When an item in the `<select>` menu is selected, the array element or object property
- * represented by the selected option will be bound to the model identified by the `ngModel`
- * directive.
- *
- * If the viewValue contains a value that doesn't match any of the options then the control
- * will automatically add an "unknown" option, which it then removes when this is resolved.
+ * The `select` directive is used together with {@link ngModel `ngModel`} to provide data-binding
+ * between the scope and the `<select>` control (including setting default values).
+ * Ìt also handles dynamic `<option>` elements, which can be added using the {@link ngRepeat `ngRepeat}` or
+ * {@link ngOptions `ngOptions`} directives.
+ *
+ * When an item in the `<select>` menu is selected, the value of the selected option will be bound
+ * to the model identified by the `ngModel` directive. With static or repeated options, this is
+ * the content of the `value` attribute or the textContent of the `<option>`, if the value attribute is missing.
+ * If you want dynamic value attributes, you can use interpolation inside the value attribute.
+ *
+ * <div class="alert alert-warning">
+ * Note that the value of a `select` directive used without `ngOptions` is always a string.
+ * When the model needs to be bound to a non-string value, you must either explictly convert it
+ * using a directive (see example below) or use `ngOptions` to specify the set of options.
+ * This is because an option element can only be bound to string values at present.
+ * </div>
+ *
+ * If the viewValue of `ngModel` does not match any of the options, then the control
+ * will automatically add an "unknown" option, which it then removes when the mismatch is resolved.
  *
  * Optionally, a single hard-coded `<option>` element, with the value set to an empty string, can
  * be nested into the `<select>` element. This element will then represent the `null` or "not selected"
  * option. See example below for demonstration.
  *
  * <div class="alert alert-info">
- * The value of a `select` directive used without `ngOptions` is always a string.
- * When the model needs to be bound to a non-string value, you must either explictly convert it
- * using a directive (see example below) or use `ngOptions` to specify the set of options.
- * This is because an option element can only be bound to string values at present.
+ * In many cases, `ngRepeat` can be used on `<option>` elements instead of {@link ng.directive:ngOptions
+ * ngOptions} to achieve a similar result. However, `ngOptions` provides some benefits, such as
+ * more flexibility in how the `<select>`'s model is assigned via the `select` **`as`** part of the
+ * comprehension expression, and additionally in reducing memory and increasing speed by not creating
+ * a new scope for each repeated instance.
+ * </div>
+ *
+ *
+ * @param {string} ngModel Assignable angular expression to data-bind to.
+ * @param {string=} name Property name of the form under which the control is published.
+ * @param {string=} required Sets `required` validation error key if the value is not entered.
+ * @param {string=} ngRequired Adds required attribute and required validation constraint to
+ * the element when the ngRequired expression evaluates to true. Use ngRequired instead of required
+ * when you want to data-bind to the required attribute.
+ * @param {string=} ngChange Angular expression to be executed when selected option(s) changes due to user
+ *    interaction with the select element.
+ * @param {string=} ngOptions sets the options that the select is populated with and defines what is
+ * set on the model on selection. See {@link ngOptions `ngOptions`}.
+ *
+ * @example
+ * ### Simple `select` elements with static options
+ *
+ * <example name="static-select" module="staticSelect">
+ * <file name="index.html">
+ * <div ng-controller="ExampleController">
+ *   <form name="myForm">
+ *     <label for="singleSelect"> Single select: </label><br>
+ *     <select name="singleSelect" ng-model="data.singleSelect">
+ *       <option value="option-1">Option 1</option>
+ *       <option value="option-2">Option 2</option>
+ *     </select><br>
+ *
+ *     <label for="singleSelect"> Single select with "not selected" option and dynamic option values: </label><br>
+ *     <select name="singleSelect" id="singleSelect" ng-model="data.singleSelect">
+ *       <option value="">---Please select---</option> <!-- not selected / blank option -->
+ *       <option value="{{data.option1}}">Option 1</option> <!-- interpolation -->
+ *       <option value="option-2">Option 2</option>
+ *     </select><br>
+ *     <button ng-click="forceUnknownOption()">Force unknown option</button><br>
+ *     <tt>singleSelect = {{data.singleSelect}}</tt>
+ *
+ *     <hr>
+ *     <label for="multipleSelect"> Multiple select: </label><br>
+ *     <select name="multipleSelect" id="multipleSelect" ng-model="data.multipleSelect" multiple>
+ *       <option value="option-1">Option 1</option>
+ *       <option value="option-2">Option 2</option>
+ *       <option value="option-3">Option 3</option>
+ *     </select><br>
+ *     <tt>multipleSelect = {{data.multipleSelect}}</tt><br/>
+ *   </form>
  * </div>
- *
- * ### Example (binding `select` to a non-string value)
+ * </file>
+ * <file name="app.js">
+ *  angular.module('staticSelect', [])
+ *    .controller('ExampleController', ['$scope', function($scope) {
+ *      $scope.data = {
+ *       singleSelect: null,
+ *       multipleSelect: [],
+ *       option1: 'option-1',
+ *      };
+ *
+ *      $scope.forceUnknownOption = function() {
+ *        $scope.data.singleSelect = 'nonsense';
+ *      };
+ *   }]);
+ * </file>
+ *</example>
+ *
+ * ### Using `ngRepeat` to generate `select` options
+ * <example name="ngrepeat-select" module="ngrepeatSelect">
+ * <file name="index.html">
+ * <div ng-controller="ExampleController">
+ *   <form name="myForm">
+ *     <label for="repeatSelect"> Repeat select: </label>
+ *     <select name="repeatSelect" id="repeatSelect" ng-model="data.repeatSelect">
+ *       <option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option>
+ *     </select>
+ *   </form>
+ *   <hr>
+ *   <tt>repeatSelect = {{data.repeatSelect}}</tt><br/>
+ * </div>
+ * </file>
+ * <file name="app.js">
+ *  angular.module('ngrepeatSelect', [])
+ *    .controller('ExampleController', ['$scope', function($scope) {
+ *      $scope.data = {
+ *       repeatSelect: null,
+ *       availableOptions: [
+ *         {id: '1', name: 'Option A'},
+ *         {id: '2', name: 'Option B'},
+ *         {id: '3', name: 'Option C'}
+ *       ],
+ *      };
+ *   }]);
+ * </file>
+ *</example>
+ *
+ *
+ * ### Using `select` with `ngOptions` and setting a default value
+ * See the {@link ngOptions ngOptions documentation} for more `ngOptions` usage examples.
+ *
+ * <example name="select-with-default-values" module="defaultValueSelect">
+ * <file name="index.html">
+ * <div ng-controller="ExampleController">
+ *   <form name="myForm">
+ *     <label for="mySelect">Make a choice:</label>
+ *     <select name="mySelect" id="mySelect"
+ *       ng-options="option.name for option in data.availableOptions track by option.id"
+ *       ng-model="data.selectedOption"></select>
+ *   </form>
+ *   <hr>
+ *   <tt>option = {{data.selectedOption}}</tt><br/>
+ * </div>
+ * </file>
+ * <file name="app.js">
+ *  angular.module('defaultValueSelect', [])
+ *    .controller('ExampleController', ['$scope', function($scope) {
+ *      $scope.data = {
+ *       availableOptions: [
+ *         {id: '1', name: 'Option A'},
+ *         {id: '2', name: 'Option B'},
+ *         {id: '3', name: 'Option C'}
+ *       ],
+ *       selectedOption: {id: '3', name: 'Option C'} //This sets the default value of the select in the ui
+ *       };
+ *   }]);
+ * </file>
+ *</example>
+ *
+ *
+ * ### Binding `select` to a non-string value via `ngModel` parsing / formatting
  *
  * <example name="select-with-non-string-options" module="nonStringSelect">
  *   <file name="index.html">
@@ -56115,9 +56786,12 @@
     priority: 100,
     compile: function(element, attr) {
 
-      // If the value attribute is not defined then we fall back to the
-      // text content of the option element, which may be interpolated
-      if (isUndefined(attr.value)) {
+      if (isDefined(attr.value)) {
+        // If the value attribute is defined, check if it contains an interpolation
+        var valueInterpolated = $interpolate(attr.value, true);
+      } else {
+        // If the value attribute is not defined then we fall back to the
+        // text content of the option element, which may be interpolated
         var interpolateFn = $interpolate(element.text(), true);
         if (!interpolateFn) {
           attr.$set('value', element.text());
@@ -56133,24 +56807,38 @@
             selectCtrl = parent.data(selectCtrlName) ||
               parent.parent().data(selectCtrlName); // in case we are in optgroup
 
+        function addOption(optionValue) {
+          selectCtrl.addOption(optionValue, element);
+          selectCtrl.ngModelCtrl.$render();
+          chromeHack(element);
+        }
+
         // Only update trigger option updates if this is an option within a `select`
         // that also has `ngModel` attached
         if (selectCtrl && selectCtrl.ngModelCtrl) {
 
-          if (interpolateFn) {
+          if (valueInterpolated) {
+            // The value attribute is interpolated
+            var oldVal;
+            attr.$observe('value', function valueAttributeObserveAction(newVal) {
+              if (isDefined(oldVal)) {
+                selectCtrl.removeOption(oldVal);
+              }
+              oldVal = newVal;
+              addOption(newVal);
+            });
+          } else if (interpolateFn) {
+            // The text content is interpolated
             scope.$watch(interpolateFn, function interpolateWatchAction(newVal, oldVal) {
               attr.$set('value', newVal);
               if (oldVal !== newVal) {
                 selectCtrl.removeOption(oldVal);
               }
-              selectCtrl.addOption(newVal, element);
-              selectCtrl.ngModelCtrl.$render();
-              chromeHack(element);
+              addOption(newVal);
             });
           } else {
-            selectCtrl.addOption(attr.value, element);
-            selectCtrl.ngModelCtrl.$render();
-            chromeHack(element);
+            // The value attribute is static
+            addOption(attr.value);
           }
 
           element.on('$destroy', function() {
@@ -56211,8 +56899,9 @@
         ctrl.$validate();
       });
 
-      ctrl.$validators.pattern = function(value) {
-        return ctrl.$isEmpty(value) || isUndefined(regexp) || regexp.test(value);
+      ctrl.$validators.pattern = function(modelValue, viewValue) {
+        // HTML5 pattern constraint validates the input value, so we validate the viewValue
+        return ctrl.$isEmpty(viewValue) || isUndefined(regexp) || regexp.test(viewValue);
       };
     }
   };
@@ -56258,17 +56947,145 @@
   };
 };
 
-  if (window.angular.bootstrap) {
-    //AngularJS is already loaded, so we can return here...
-    console.log('WARNING: Tried to load angular more than once.');
-    return;
-  }
-
-  //try to bind to jquery now so that one can write jqLite(document).ready()
-  //but we will rebind on bootstrap again.
-  bindJQuery();
-
-  publishExternalAPI(angular);
+if (window.angular.bootstrap) {
+  //AngularJS is already loaded, so we can return here...
+  console.log('WARNING: Tried to load angular more than once.');
+  return;
+}
+
+//try to bind to jquery now so that one can write jqLite(document).ready()
+//but we will rebind on bootstrap again.
+bindJQuery();
+
+publishExternalAPI(angular);
+
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+function getDecimals(n) {
+  n = n + '';
+  var i = n.indexOf('.');
+  return (i == -1) ? 0 : n.length - i - 1;
+}
+
+function getVF(n, opt_precision) {
+  var v = opt_precision;
+
+  if (undefined === v) {
+    v = Math.min(getDecimals(n), 3);
+  }
+
+  var base = Math.pow(10, v);
+  var f = ((n * base) | 0) % base;
+  return {v: v, f: f};
+}
+
+$provide.value("$locale", {
+  "DATETIME_FORMATS": {
+    "AMPMS": [
+      "AM",
+      "PM"
+    ],
+    "DAY": [
+      "Sunday",
+      "Monday",
+      "Tuesday",
+      "Wednesday",
+      "Thursday",
+      "Friday",
+      "Saturday"
+    ],
+    "ERANAMES": [
+      "Before Christ",
+      "Anno Domini"
+    ],
+    "ERAS": [
+      "BC",
+      "AD"
+    ],
+    "FIRSTDAYOFWEEK": 6,
+    "MONTH": [
+      "January",
+      "February",
+      "March",
+      "April",
+      "May",
+      "June",
+      "July",
+      "August",
+      "September",
+      "October",
+      "November",
+      "December"
+    ],
+    "SHORTDAY": [
+      "Sun",
+      "Mon",
+      "Tue",
+      "Wed",
+      "Thu",
+      "Fri",
+      "Sat"
+    ],
+    "SHORTMONTH": [
+      "Jan",
+      "Feb",
+      "Mar",
+      "Apr",
+      "May",
+      "Jun",
+      "Jul",
+      "Aug",
+      "Sep",
+      "Oct",
+      "Nov",
+      "Dec"
+    ],
+    "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(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
+});
+}]);
 
   jqLite(document).ready(function() {
     angularInit(document, bootstrap);
@@ -56276,9 +57093,9 @@
 
 })(window, document);
 
-!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
-/**
- * @license AngularJS v1.4.0
+!window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
+/**
+ * @license AngularJS v1.4.7
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -56691,7 +57508,9 @@
      * @name $route#$routeChangeSuccess
      * @eventType broadcast on root scope
      * @description
-     * Broadcasted after a route dependencies are resolved.
+     * Broadcasted after a route change has happened successfully.
+     * The `resolve` dependencies are now available in the `current.locals` property.
+     *
      * {@link ngRoute.directive:ngView ngView} listens for the directive
      * to instantiate the controller and render the view.
      *
@@ -56875,9 +57694,8 @@
                 if (angular.isFunction(templateUrl)) {
                   templateUrl = templateUrl(nextRoute.params);
                 }
-                templateUrl = $sce.getTrustedResourceUrl(templateUrl);
                 if (angular.isDefined(templateUrl)) {
-                  nextRoute.loadedTemplateUrl = templateUrl;
+                  nextRoute.loadedTemplateUrl = $sce.valueOf(templateUrl);
                   template = $templateRequest(templateUrl);
                 }
               }
@@ -57074,7 +57892,6 @@
         }
 
         .view-animate.ng-enter, .view-animate.ng-leave {
-          -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
           transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
 
           display:block;
@@ -57270,7 +58087,7 @@
 })(window, window.angular);
 
 /**
- * @license AngularJS v1.4.0
+ * @license AngularJS v1.4.7
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -57293,7 +58110,7 @@
     throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path);
   }
   var keys = path.split('.');
-  for (var i = 0, ii = keys.length; i < ii && obj !== undefined; i++) {
+  for (var i = 0, ii = keys.length; i < ii && angular.isDefined(obj); i++) {
     var key = keys[i];
     obj = (obj !== null) ? obj[key] : undefined;
   }
@@ -57485,7 +58302,8 @@
  *   - non-GET instance actions:  `instance.$action([parameters], [success], [error])`
  *
  *
- *   Success callback is called with (value, responseHeaders) arguments. Error callback is called
+ *   Success callback is called with (value, responseHeaders) arguments, where the value is
+ *   the populated resource instance or collection object. The error callback is called
  *   with (httpResponse) argument.
  *
  *   Class actions return empty instance (with additional properties below).
@@ -57623,6 +58441,7 @@
  */
 angular.module('ngResource', ['ng']).
   provider('$resource', function() {
+    var PROTOCOL_AND_DOMAIN_REGEX = /^https?:\/\/[^\/]*/;
     var provider = this;
 
     this.defaults = {
@@ -57697,7 +58516,8 @@
           var self = this,
             url = actionUrl || self.template,
             val,
-            encodedVal;
+            encodedVal,
+            protocolAndDomain = '';
 
           var urlParams = self.urlParams = {};
           forEach(url.split(/\W/), function(param) {
@@ -57710,6 +58530,10 @@
             }
           });
           url = url.replace(/\\:/g, ':');
+          url = url.replace(PROTOCOL_AND_DOMAIN_REGEX, function(match) {
+            protocolAndDomain = match;
+            return '';
+          });
 
           params = params || {};
           forEach(self.urlParams, function(_, urlParam) {
@@ -57740,7 +58564,7 @@
           // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x`
           url = url.replace(/\/\.(?=\w+($|\?))/, '.');
           // replace escaped `/\.` with `/.`
-          config.url = url.replace(/\/\\\./, '/.');
+          config.url = protocolAndDomain + url.replace(/\/\\\./, '/.');
 
 
           // set params - delegate param encoding to $http
@@ -57942,19 +58766,22 @@
  * angular-ui-bootstrap
  * http://angular-ui.github.io/bootstrap/
 
- * Version: 0.13.0 - 2015-05-02
+ * Version: 0.13.4 - 2015-09-03
  * License: MIT
  */
 angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.transition","ui.bootstrap.typeahead"]);
-angular.module("ui.bootstrap.tpls", ["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);
+angular.module("ui.bootstrap.tpls", ["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-html.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);
 angular.module('ui.bootstrap.collapse', [])
 
-  .directive('collapse', ['$animate', function ($animate) {
-
+  .directive('collapse', ['$animate', function($animate) {
     return {
-      link: function (scope, element, attrs) {
+      link: function(scope, element, attrs) {
         function expand() {
-          element.removeClass('collapse').addClass('collapsing');
+          element.removeClass('collapse')
+            .addClass('collapsing')
+            .attr('aria-expanded', true)
+            .attr('aria-hidden', false);
+
           $animate.addClass(element, 'in', {
             to: { height: element[0].scrollHeight + 'px' }
           }).then(expandDone);
@@ -57966,6 +58793,10 @@
         }
 
         function collapse() {
+          if (!element.hasClass('collapse') && !element.hasClass('in')) {
+            return collapseDone();
+          }
+
           element
             // IMPORTANT: The height must be set before adding "collapsing" class.
             // Otherwise, the browser attempts to animate from height 0 (in
@@ -57974,7 +58805,9 @@
             // initially all panel collapse have the collapse class, this removal
             // prevents the animation from jumping to collapsed state
             .removeClass('collapse')
-            .addClass('collapsing');
+            .addClass('collapsing')
+            .attr('aria-expanded', false)
+            .attr('aria-hidden', true);
 
           $animate.removeClass(element, 'in', {
             to: {height: '0'}
@@ -57987,7 +58820,7 @@
           element.addClass('collapse');
         }
 
-        scope.$watch(attrs.collapse, function (shouldCollapse) {
+        scope.$watch(attrs.collapse, function(shouldCollapse) {
           if (shouldCollapse) {
             collapse();
           } else {
@@ -58004,17 +58837,17 @@
   closeOthers: true
 })
 
-.controller('AccordionController', ['$scope', '$attrs', 'accordionConfig', function ($scope, $attrs, accordionConfig) {
-
+.controller('AccordionController', ['$scope', '$attrs', 'accordionConfig', function($scope, $attrs, accordionConfig) {
   // This array keeps track of the accordion groups
   this.groups = [];
 
   // Ensure that all the groups in this accordion are closed, unless close-others explicitly says not to
   this.closeOthers = function(openGroup) {
-    var closeOthers = angular.isDefined($attrs.closeOthers) ? $scope.$eval($attrs.closeOthers) : accordionConfig.closeOthers;
-    if ( closeOthers ) {
-      angular.forEach(this.groups, function (group) {
-        if ( group !== openGroup ) {
+    var closeOthers = angular.isDefined($attrs.closeOthers) ?
+      $scope.$eval($attrs.closeOthers) : accordionConfig.closeOthers;
+    if (closeOthers) {
+      angular.forEach(this.groups, function(group) {
+        if (group !== openGroup) {
           group.isOpen = false;
         }
       });
@@ -58026,7 +58859,7 @@
     var that = this;
     this.groups.push(groupScope);
 
-    groupScope.$on('$destroy', function (event) {
+    groupScope.$on('$destroy', function(event) {
       that.removeGroup(groupScope);
     });
   };
@@ -58034,7 +58867,7 @@
   // This is called from the accordion-group directive when to remove itself
   this.removeGroup = function(group) {
     var index = this.groups.indexOf(group);
-    if ( index !== -1 ) {
+    if (index !== -1) {
       this.groups.splice(index, 1);
     }
   };
@@ -58043,24 +58876,29 @@
 
 // The accordion directive simply sets up the directive controller
 // and adds an accordion CSS class to itself element.
-.directive('accordion', function () {
-  return {
-    restrict:'EA',
-    controller:'AccordionController',
+.directive('accordion', function() {
+  return {
+    restrict: 'EA',
+    controller: 'AccordionController',
+    controllerAs: 'accordion',
     transclude: true,
     replace: false,
-    templateUrl: 'template/accordion/accordion.html'
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/accordion/accordion.html';
+    }
   };
 })
 
 // The accordion-group directive indicates a block of html that will expand and collapse in an accordion
 .directive('accordionGroup', function() {
   return {
-    require:'^accordion',         // We need this directive to be inside an accordion
-    restrict:'EA',
-    transclude:true,              // It transcludes the contents of the directive into the template
+    require: '^accordion',         // We need this directive to be inside an accordion
+    restrict: 'EA',
+    transclude: true,              // It transcludes the contents of the directive into the template
     replace: true,                // The element containing the directive will be replaced with the template
-    templateUrl:'template/accordion/accordion-group.html',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/accordion/accordion-group.html';
+    },
     scope: {
       heading: '@',               // Interpolate the heading attribute onto this scope
       isOpen: '=?',
@@ -58074,15 +58912,20 @@
     link: function(scope, element, attrs, accordionCtrl) {
       accordionCtrl.addGroup(scope);
 
+      scope.openClass = attrs.openClass || 'panel-open';
+      scope.panelClass = attrs.panelClass;
       scope.$watch('isOpen', function(value) {
-        if ( value ) {
+        element.toggleClass(scope.openClass, value);
+        if (value) {
           accordionCtrl.closeOthers(scope);
         }
       });
 
-      scope.toggleOpen = function() {
-        if ( !scope.isDisabled ) {
-          scope.isOpen = !scope.isOpen;
+      scope.toggleOpen = function($event) {
+        if (!scope.isDisabled) {
+          if (!$event || $event.which === 32) {
+            scope.isOpen = !scope.isOpen;
+          }
         }
       };
     }
@@ -58120,9 +58963,9 @@
     require: '^accordionGroup',
     link: function(scope, element, attr, controller) {
       scope.$watch(function() { return controller[attr.accordionTransclude]; }, function(heading) {
-        if ( heading ) {
-          element.html('');
-          element.append(heading);
+        if (heading) {
+          element.find('span').html('');
+          element.find('span').append(heading);
         }
       });
     }
@@ -58133,18 +58976,20 @@
 
 angular.module('ui.bootstrap.alert', [])
 
-.controller('AlertController', ['$scope', '$attrs', function ($scope, $attrs) {
-  $scope.closeable = 'close' in $attrs;
+.controller('AlertController', ['$scope', '$attrs', function($scope, $attrs) {
+  $scope.closeable = !!$attrs.close;
   this.close = $scope.close;
 }])
 
-.directive('alert', function () {
-  return {
-    restrict:'EA',
-    controller:'AlertController',
-    templateUrl:'template/alert/alert.html',
-    transclude:true,
-    replace:true,
+.directive('alert', function() {
+  return {
+    controller: 'AlertController',
+    controllerAs: 'alert',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/alert/alert.html';
+    },
+    transclude: true,
+    replace: true,
     scope: {
       type: '@',
       close: '&'
@@ -58156,7 +59001,7 @@
   return {
     require: 'alert',
     link: function(scope, element, attrs, alertCtrl) {
-      $timeout(function(){
+      $timeout(function() {
         alertCtrl.close();
       }, parseInt(attrs.dismissOnTimeout, 10));
     }
@@ -58165,14 +59010,19 @@
 
 angular.module('ui.bootstrap.bindHtml', [])
 
-  .directive('bindHtmlUnsafe', function () {
+  .value('$bindHtmlUnsafeSuppressDeprecated', false)
+
+  .directive('bindHtmlUnsafe', ['$log', '$bindHtmlUnsafeSuppressDeprecated', function ($log, $bindHtmlUnsafeSuppressDeprecated) {
     return function (scope, element, attr) {
+      if (!$bindHtmlUnsafeSuppressDeprecated) {
+        $log.warn('bindHtmlUnsafe is now deprecated. Use ngBindHtml instead');
+      }
       element.addClass('ng-binding').data('$binding', attr.bindHtmlUnsafe);
       scope.$watch(attr.bindHtmlUnsafe, function bindHtmlUnsafeWatchAction(value) {
         element.html(value || '');
       });
     };
-  });
+  }]);
 angular.module('ui.bootstrap.buttons', [])
 
 .constant('buttonConfig', {
@@ -58185,24 +59035,31 @@
   this.toggleEvent = buttonConfig.toggleEvent || 'click';
 }])
 
-.directive('btnRadio', function () {
+.directive('btnRadio', function() {
   return {
     require: ['btnRadio', 'ngModel'],
     controller: 'ButtonsController',
-    link: function (scope, element, attrs, ctrls) {
+    controllerAs: 'buttons',
+    link: function(scope, element, attrs, ctrls) {
       var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1];
 
+      element.find('input').css({display: 'none'});
+
       //model -> UI
-      ngModelCtrl.$render = function () {
+      ngModelCtrl.$render = function() {
         element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, scope.$eval(attrs.btnRadio)));
       };
 
       //ui->model
-      element.bind(buttonsCtrl.toggleEvent, function () {
+      element.bind(buttonsCtrl.toggleEvent, function() {
+        if (attrs.disabled) {
+          return;
+        }
+
         var isActive = element.hasClass(buttonsCtrl.activeClass);
 
         if (!isActive || angular.isDefined(attrs.uncheckable)) {
-          scope.$apply(function () {
+          scope.$apply(function() {
             ngModelCtrl.$setViewValue(isActive ? null : scope.$eval(attrs.btnRadio));
             ngModelCtrl.$render();
           });
@@ -58212,13 +59069,16 @@
   };
 })
 
-.directive('btnCheckbox', function () {
+.directive('btnCheckbox', ['$document', function($document) {
   return {
     require: ['btnCheckbox', 'ngModel'],
     controller: 'ButtonsController',
-    link: function (scope, element, attrs, ctrls) {
+    controllerAs: 'button',
+    link: function(scope, element, attrs, ctrls) {
       var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1];
 
+      element.find('input').css({display: 'none'});
+
       function getTrueValue() {
         return getCheckboxValue(attrs.btnCheckboxTrue, true);
       }
@@ -58233,20 +59093,36 @@
       }
 
       //model -> UI
-      ngModelCtrl.$render = function () {
+      ngModelCtrl.$render = function() {
         element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, getTrueValue()));
       };
 
       //ui->model
-      element.bind(buttonsCtrl.toggleEvent, function () {
-        scope.$apply(function () {
+      element.bind(buttonsCtrl.toggleEvent, function() {
+        if (attrs.disabled) {
+          return;
+        }
+
+        scope.$apply(function() {
           ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass) ? getFalseValue() : getTrueValue());
           ngModelCtrl.$render();
         });
       });
-    }
-  };
-});
+
+      //accessibility
+      element.on('keypress', function(e) {
+        if (attrs.disabled || e.which !== 32 || $document[0].activeElement !== element[0]) {
+          return;
+        }
+
+        scope.$apply(function() {
+          ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass) ? getFalseValue() : getTrueValue());
+          ngModelCtrl.$render();
+        });
+      });
+    }
+  };
+}]);
 
 /**
 * @ngdoc overview
@@ -58257,9 +59133,12 @@
 *
 */
 angular.module('ui.bootstrap.carousel', [])
-.controller('CarouselController', ['$scope', '$interval', '$animate', function ($scope, $interval, $animate) {
+.controller('CarouselController', ['$scope', '$element', '$interval', '$animate', function ($scope, $element, $interval, $animate) {
   var self = this,
     slides = self.slides = $scope.slides = [],
+    NEW_ANIMATE = angular.version.minor >= 4,
+    NO_TRANSITION = 'uib-noTransition',
+    SLIDE_DIRECTION = 'uib-slideDirection',
     currentIndex = -1,
     currentInterval, isPlaying;
   self.currentSlide = null;
@@ -58267,33 +59146,52 @@
   var destroyed = false;
   /* direction: "prev" or "next" */
   self.select = $scope.select = function(nextSlide, direction) {
-    var nextIndex = self.indexOfSlide(nextSlide);
+    var nextIndex = $scope.indexOfSlide(nextSlide);
     //Decide direction if it's not given
     if (direction === undefined) {
       direction = nextIndex > self.getCurrentIndex() ? 'next' : 'prev';
     }
-    if (nextSlide && nextSlide !== self.currentSlide) {
-      goNext();
-    }
-    function goNext() {
-      // Scope has been destroyed, stop here.
-      if (destroyed) { return; }
-
-      angular.extend(nextSlide, {direction: direction, active: true});
-      angular.extend(self.currentSlide || {}, {direction: direction, active: false});
-      if ($animate.enabled() && !$scope.noTransition && nextSlide.$element) {
-        $scope.$currentTransition = true;
-        nextSlide.$element.one('$animate:close', function closeFn() {
+    //Prevent this user-triggered transition from occurring if there is already one in progress
+    if (nextSlide && nextSlide !== self.currentSlide && !$scope.$currentTransition) {
+      goNext(nextSlide, nextIndex, direction);
+    }
+  };
+
+  function goNext(slide, index, direction) {
+    // Scope has been destroyed, stop here.
+    if (destroyed) { return; }
+
+    angular.extend(slide, {direction: direction, active: true});
+    angular.extend(self.currentSlide || {}, {direction: direction, active: false});
+    if ($animate.enabled() && !$scope.noTransition && !$scope.$currentTransition &&
+      slide.$element && self.slides.length > 1) {
+      slide.$element.data(SLIDE_DIRECTION, slide.direction);
+      if (self.currentSlide && self.currentSlide.$element) {
+        self.currentSlide.$element.data(SLIDE_DIRECTION, slide.direction);
+      }
+
+      $scope.$currentTransition = true;
+      if (NEW_ANIMATE) {
+        $animate.on('addClass', slide.$element, function (element, phase) {
+          if (phase === 'close') {
+            $scope.$currentTransition = null;
+            $animate.off('addClass', element);
+          }
+        });
+      } else {
+        slide.$element.one('$animate:close', function closeFn() {
           $scope.$currentTransition = null;
         });
       }
-
-      self.currentSlide = nextSlide;
-      currentIndex = nextIndex;
-      //every time you change slides, reset the timer
-      restartTimer();
-    }
-  };
+    }
+
+    self.currentSlide = slide;
+    currentIndex = index;
+
+    //every time you change slides, reset the timer
+    restartTimer();
+  }
+
   $scope.$on('$destroy', function () {
     destroyed = true;
   });
@@ -58318,26 +59216,30 @@
   };
 
   /* Allow outside people to call indexOf on slides array */
-  self.indexOfSlide = function(slide) {
+  $scope.indexOfSlide = function(slide) {
     return angular.isDefined(slide.index) ? +slide.index : slides.indexOf(slide);
   };
 
   $scope.next = function() {
     var newIndex = (self.getCurrentIndex() + 1) % slides.length;
 
-    //Prevent this user-triggered transition from occurring if there is already one in progress
-    if (!$scope.$currentTransition) {
-      return self.select(getSlideByIndex(newIndex), 'next');
-    }
+    if (newIndex === 0 && $scope.noWrap()) {
+      $scope.pause();
+      return;
+    }
+
+    return self.select(getSlideByIndex(newIndex), 'next');
   };
 
   $scope.prev = function() {
     var newIndex = self.getCurrentIndex() - 1 < 0 ? slides.length - 1 : self.getCurrentIndex() - 1;
 
-    //Prevent this user-triggered transition from occurring if there is already one in progress
-    if (!$scope.$currentTransition) {
-      return self.select(getSlideByIndex(newIndex), 'prev');
-    }
+    if ($scope.noWrap() && newIndex === slides.length - 1){
+      $scope.pause();
+      return;
+    }
+
+    return self.select(getSlideByIndex(newIndex), 'prev');
   };
 
   $scope.isActive = function(slide) {
@@ -58364,7 +59266,7 @@
 
   function timerFn() {
     var interval = +$scope.interval;
-    if (isPlaying && !isNaN(interval) && interval > 0) {
+    if (isPlaying && !isNaN(interval) && interval > 0 && slides.length) {
       $scope.next();
     } else {
       $scope.pause();
@@ -58416,7 +59318,16 @@
     } else if (currentIndex > index) {
       currentIndex--;
     }
-  };
+    
+    //clean the currentSlide when no more slide
+    if (slides.length === 0) {
+      self.currentSlide = null;
+    }
+  };
+
+  $scope.$watch('noTransition', function(noTransition) {
+    $element.data(NO_TRANSITION, noTransition);
+  });
 
 }])
 
@@ -58464,12 +59375,16 @@
     transclude: true,
     replace: true,
     controller: 'CarouselController',
+    controllerAs: 'carousel',
     require: 'carousel',
-    templateUrl: 'template/carousel/carousel.html',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/carousel/carousel.html';
+    },
     scope: {
       interval: '=',
       noTransition: '=',
-      noPause: '='
+      noPause: '=',
+      noWrap: '&'
     }
   };
 }])
@@ -58522,9 +59437,12 @@
     restrict: 'EA',
     transclude: true,
     replace: true,
-    templateUrl: 'template/carousel/slide.html',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/carousel/slide.html';
+    },
     scope: {
       active: '=?',
+      actual: '=?',
       index: '=?'
     },
     link: function (scope, element, attrs, carouselCtrl) {
@@ -58544,23 +59462,47 @@
 })
 
 .animation('.item', [
-         '$animate',
-function ($animate) {
+         '$injector', '$animate',
+function ($injector, $animate) {
+  var NO_TRANSITION = 'uib-noTransition',
+    SLIDE_DIRECTION = 'uib-slideDirection',
+    $animateCss = null;
+
+  if ($injector.has('$animateCss')) {
+    $animateCss = $injector.get('$animateCss');
+  }
+
+  function removeClass(element, className, callback) {
+    element.removeClass(className);
+    if (callback) {
+      callback();
+    }
+  }
+
   return {
     beforeAddClass: function (element, className, done) {
       // Due to transclusion, noTransition property is on parent's scope
       if (className == 'active' && element.parent() &&
-          !element.parent().scope().noTransition) {
+          !element.parent().data(NO_TRANSITION)) {
         var stopped = false;
-        var direction = element.isolateScope().direction;
+        var direction = element.data(SLIDE_DIRECTION);
         var directionClass = direction == 'next' ? 'left' : 'right';
+        var removeClassFn = removeClass.bind(this, element,
+          directionClass + ' ' + direction, done);
         element.addClass(direction);
-        $animate.addClass(element, directionClass).then(function () {
-          if (!stopped) {
-            element.removeClass(directionClass + ' ' + direction);
-          }
-          done();
-        });
+
+        if ($animateCss) {
+          $animateCss(element, {addClass: directionClass})
+            .start()
+            .done(removeClassFn);
+        } else {
+          $animate.addClass(element, directionClass).then(function () {
+            if (!stopped) {
+              removeClassFn();
+            }
+            done();
+          });
+        }
 
         return function () {
           stopped = true;
@@ -58570,17 +59512,25 @@
     },
     beforeRemoveClass: function (element, className, done) {
       // Due to transclusion, noTransition property is on parent's scope
-      if (className == 'active' && element.parent() &&
-          !element.parent().scope().noTransition) {
+      if (className === 'active' && element.parent() &&
+          !element.parent().data(NO_TRANSITION)) {
         var stopped = false;
-        var direction = element.isolateScope().direction;
+        var direction = element.data(SLIDE_DIRECTION);
         var directionClass = direction == 'next' ? 'left' : 'right';
-        $animate.addClass(element, directionClass).then(function () {
-          if (!stopped) {
-            element.removeClass(directionClass);
-          }
-          done();
-        });
+        var removeClassFn = removeClass.bind(this, element, directionClass, done);
+
+        if ($animateCss) {
+          $animateCss(element, {addClass: directionClass})
+            .start()
+            .done(removeClassFn);
+        } else {
+          $animate.addClass(element, directionClass).then(function () {
+            if (!stopped) {
+              removeClassFn();
+            }
+            done();
+          });
+        }
         return function () {
           stopped = true;
         };
@@ -58596,7 +59546,7 @@
 
 angular.module('ui.bootstrap.dateparser', [])
 
-.service('dateParser', ['$locale', 'orderByFilter', function($locale, orderByFilter) {
+.service('dateParser', ['$log', '$locale', 'orderByFilter', function($log, $locale, orderByFilter) {
   // Pulled from https://github.com/mbostock/d3/blob/master/src/format/requote.js
   var SPECIAL_CHARACTERS_REGEXP = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
 
@@ -58649,10 +59599,18 @@
       regex: '(?:0|1)[0-9]|2[0-3]',
       apply: function(value) { this.hours = +value; }
     },
+    'hh': {
+      regex: '0[0-9]|1[0-2]',
+      apply: function(value) { this.hours = +value; }
+    },
     'H': {
       regex: '1?[0-9]|2[0-3]',
       apply: function(value) { this.hours = +value; }
     },
+    'h': {
+      regex: '[0-9]|1[0-2]',
+      apply: function(value) { this.hours = +value; }
+    },
     'mm': {
       regex: '[0-5][0-9]',
       apply: function(value) { this.minutes = +value; }
@@ -58672,6 +59630,18 @@
     's': {
       regex: '[0-9]|[1-5][0-9]',
       apply: function(value) { this.seconds = +value; }
+    },
+    'a': {
+      regex: $locale.DATETIME_FORMATS.AMPMS.join('|'),
+      apply: function(value) {
+        if (this.hours === 12) {
+          this.hours = 0;
+        }
+
+        if (value === 'PM') {
+          this.hours += 12;
+        }
+      }
     }
   };
 
@@ -58703,14 +59673,14 @@
   }
 
   this.parse = function(input, format, baseDate) {
-    if ( !angular.isString(input) || !format ) {
+    if (!angular.isString(input) || !format) {
       return input;
     }
 
     format = $locale.DATETIME_FORMATS[format] || format;
     format = format.replace(SPECIAL_CHARACTERS_REGEXP, '\\$&');
 
-    if ( !this.parsers[format] ) {
+    if (!this.parsers[format]) {
       this.parsers[format] = createParser(format);
     }
 
@@ -58719,9 +59689,9 @@
         map = parser.map,
         results = input.match(regex);
 
-    if ( results && results.length ) {
+    if (results && results.length) {
       var fields, dt;
-      if (baseDate) {
+      if (angular.isDate(baseDate) && !isNaN(baseDate.getTime())) {
         fields = {
           year: baseDate.getFullYear(),
           month: baseDate.getMonth(),
@@ -58732,18 +59702,22 @@
           milliseconds: baseDate.getMilliseconds()
         };
       } else {
+        if (baseDate) {
+          $log.warn('dateparser:', 'baseDate is not a valid date');
+        }
         fields = { year: 1900, month: 0, date: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 };
       }
 
-      for( var i = 1, n = results.length; i < n; i++ ) {
+      for (var i = 1, n = results.length; i < n; i++) {
         var mapper = map[i-1];
-        if ( mapper.apply ) {
+        if (mapper.apply) {
           mapper.apply.call(fields, results[i]);
         }
       }
 
-      if ( isValid(fields.year, fields.month, fields.date) ) {
-        dt = new Date(fields.year, fields.month, fields.date, fields.hours, fields.minutes, fields.seconds,
+      if (isValid(fields.year, fields.month, fields.date)) {
+        dt = new Date(fields.year, fields.month, fields.date,
+          fields.hours, fields.minutes, fields.seconds,
           fields.milliseconds || 0);
       }
 
@@ -58758,12 +59732,12 @@
       return false;
     }
 
-    if ( month === 1 && date > 28) {
-        return date === 29 && ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
-    }
-
-    if ( month === 3 || month === 5 || month === 8 || month === 10) {
-        return date < 31;
+    if (month === 1 && date > 28) {
+      return date === 29 && ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
+    }
+
+    if (month === 3 || month === 5 || month === 8 || month === 10) {
+      return date < 31;
     }
 
     return true;
@@ -58778,8 +59752,7 @@
  * relation to other, existing elements (this is the case for tooltips, popovers,
  * typeahead suggestions etc.).
  */
-  .factory('$position', ['$document', '$window', function ($document, $window) {
-
+  .factory('$position', ['$document', '$window', function($document, $window) {
     function getStyle(el, cssprop) {
       if (el.currentStyle) { //IE
         return el.currentStyle[cssprop];
@@ -58802,7 +59775,7 @@
      * returns the closest, non-statically positioned parentOffset of a given element
      * @param element
      */
-    var parentOffsetEl = function (element) {
+    var parentOffsetEl = function(element) {
       var docDomEl = $document[0];
       var offsetParent = element.offsetParent || docDomEl;
       while (offsetParent && offsetParent !== docDomEl && isStaticPositioned(offsetParent) ) {
@@ -58816,7 +59789,7 @@
        * Provides read-only equivalent of jQuery's position function:
        * http://api.jquery.com/position/
        */
-      position: function (element) {
+      position: function(element) {
         var elBCR = this.offset(element);
         var offsetParentBCR = { top: 0, left: 0 };
         var offsetParentEl = parentOffsetEl(element[0]);
@@ -58839,7 +59812,7 @@
        * Provides read-only equivalent of jQuery's offset function:
        * http://api.jquery.com/offset/
        */
-      offset: function (element) {
+      offset: function(element) {
         var boundingClientRect = element[0].getBoundingClientRect();
         return {
           width: boundingClientRect.width || element.prop('offsetWidth'),
@@ -58852,8 +59825,7 @@
       /**
        * Provides coordinates for the targetEl in relation to hostEl
        */
-      positionElements: function (hostEl, targetEl, positionStr, appendToBody) {
-
+      positionElements: function(hostEl, targetEl, positionStr, appendToBody) {
         var positionStrParts = positionStr.split('-');
         var pos0 = positionStrParts[0], pos1 = positionStrParts[1] || 'center';
 
@@ -58868,25 +59840,25 @@
         targetElHeight = targetEl.prop('offsetHeight');
 
         var shiftWidth = {
-          center: function () {
+          center: function() {
             return hostElPos.left + hostElPos.width / 2 - targetElWidth / 2;
           },
-          left: function () {
+          left: function() {
             return hostElPos.left;
           },
-          right: function () {
+          right: function() {
             return hostElPos.left + hostElPos.width;
           }
         };
 
         var shiftHeight = {
-          center: function () {
+          center: function() {
             return hostElPos.top + hostElPos.height / 2 - targetElHeight / 2;
           },
-          top: function () {
+          top: function() {
             return hostElPos.top;
           },
-          bottom: function () {
+          bottom: function() {
             return hostElPos.top + hostElPos.height;
           }
         };
@@ -58925,6 +59897,8 @@
 
 angular.module('ui.bootstrap.datepicker', ['ui.bootstrap.dateparser', 'ui.bootstrap.position'])
 
+.value('$datepickerSuppressError', false)
+
 .constant('datepickerConfig', {
   formatDay: 'dd',
   formatMonth: 'MMMM',
@@ -58943,7 +59917,7 @@
   shortcutPropagation: false
 })
 
-.controller('DatepickerController', ['$scope', '$attrs', '$parse', '$interpolate', '$timeout', '$log', 'dateFilter', 'datepickerConfig', function($scope, $attrs, $parse, $interpolate, $timeout, $log, dateFilter, datepickerConfig) {
+.controller('DatepickerController', ['$scope', '$attrs', '$parse', '$interpolate', '$log', 'dateFilter', 'datepickerConfig', '$datepickerSuppressError', function($scope, $attrs, $parse, $interpolate, $log, dateFilter, datepickerConfig, $datepickerSuppressError) {
   var self = this,
       ngModelCtrl = { $setViewValue: angular.noop }; // nullModelCtrl;
 
@@ -58952,13 +59926,13 @@
 
   // Configuration attributes
   angular.forEach(['formatDay', 'formatMonth', 'formatYear', 'formatDayHeader', 'formatDayTitle', 'formatMonthTitle',
-                   'minMode', 'maxMode', 'showWeeks', 'startingDay', 'yearRange', 'shortcutPropagation'], function( key, index ) {
-    self[key] = angular.isDefined($attrs[key]) ? (index < 8 ? $interpolate($attrs[key])($scope.$parent) : $scope.$parent.$eval($attrs[key])) : datepickerConfig[key];
+                   'showWeeks', 'startingDay', 'yearRange', 'shortcutPropagation'], function(key, index) {
+    self[key] = angular.isDefined($attrs[key]) ? (index < 6 ? $interpolate($attrs[key])($scope.$parent) : $scope.$parent.$eval($attrs[key])) : datepickerConfig[key];
   });
 
   // Watchable date attributes
-  angular.forEach(['minDate', 'maxDate'], function( key ) {
-    if ( $attrs[key] ) {
+  angular.forEach(['minDate', 'maxDate'], function(key) {
+    if ($attrs[key]) {
       $scope.$parent.$watch($parse($attrs[key]), function(value) {
         self[key] = value ? new Date(value) : null;
         self.refreshView();
@@ -58968,20 +59942,34 @@
     }
   });
 
+  angular.forEach(['minMode', 'maxMode'], function(key) {
+    if ($attrs[key]) {
+      $scope.$parent.$watch($parse($attrs[key]), function(value) {
+        self[key] = angular.isDefined(value) ? value : $attrs[key];
+        $scope[key] = self[key];
+        if ((key == 'minMode' && self.modes.indexOf($scope.datepickerMode) < self.modes.indexOf(self[key])) || (key == 'maxMode' && self.modes.indexOf($scope.datepickerMode) > self.modes.indexOf(self[key]))) {
+          $scope.datepickerMode = self[key];
+        }
+      });
+    } else {
+      self[key] = datepickerConfig[key] || null;
+      $scope[key] = self[key];
+    }
+  });
+
   $scope.datepickerMode = $scope.datepickerMode || datepickerConfig.datepickerMode;
-  $scope.maxMode = self.maxMode;
   $scope.uniqueId = 'datepicker-' + $scope.$id + '-' + Math.floor(Math.random() * 10000);
 
-  if(angular.isDefined($attrs.initDate)) {
+  if (angular.isDefined($attrs.initDate)) {
     this.activeDate = $scope.$parent.$eval($attrs.initDate) || new Date();
-    $scope.$parent.$watch($attrs.initDate, function(initDate){
-      if(initDate && (ngModelCtrl.$isEmpty(ngModelCtrl.$modelValue) || ngModelCtrl.$invalid)){
+    $scope.$parent.$watch($attrs.initDate, function(initDate) {
+      if (initDate && (ngModelCtrl.$isEmpty(ngModelCtrl.$modelValue) || ngModelCtrl.$invalid)) {
         self.activeDate = initDate;
         self.refreshView();
       }
     });
   } else {
-    this.activeDate =  new Date();
+    this.activeDate = new Date();
   }
 
   $scope.isActive = function(dateObject) {
@@ -58992,7 +59980,7 @@
     return false;
   };
 
-  this.init = function( ngModelCtrl_ ) {
+  this.init = function(ngModelCtrl_) {
     ngModelCtrl = ngModelCtrl_;
 
     ngModelCtrl.$render = function() {
@@ -59001,26 +59989,25 @@
   };
 
   this.render = function() {
-    if ( ngModelCtrl.$viewValue ) {
-      var date = new Date( ngModelCtrl.$viewValue ),
+    if (ngModelCtrl.$viewValue) {
+      var date = new Date(ngModelCtrl.$viewValue),
           isValid = !isNaN(date);
 
-      if ( isValid ) {
+      if (isValid) {
         this.activeDate = date;
-      } else {
+      } else if (!$datepickerSuppressError) {
         $log.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');
       }
-      ngModelCtrl.$setValidity('date', isValid);
     }
     this.refreshView();
   };
 
   this.refreshView = function() {
-    if ( this.element ) {
+    if (this.element) {
       this._refreshView();
 
       var date = ngModelCtrl.$viewValue ? new Date(ngModelCtrl.$viewValue) : null;
-      ngModelCtrl.$setValidity('date-disabled', !date || (this.element && !this.isDisabled(date)));
+      ngModelCtrl.$setValidity('dateDisabled', !date || (this.element && !this.isDisabled(date)));
     }
   };
 
@@ -59036,13 +60023,13 @@
     };
   };
 
-  this.isDisabled = function( date ) {
+  this.isDisabled = function(date) {
     return ((this.minDate && this.compare(date, this.minDate) < 0) || (this.maxDate && this.compare(date, this.maxDate) > 0) || ($attrs.dateDisabled && $scope.dateDisabled({date: date, mode: $scope.datepickerMode})));
   };
 
-    this.customClass = function( date ) {
-      return $scope.customClass({date: date, mode: $scope.datepickerMode});
-    };
+  this.customClass = function(date) {
+    return $scope.customClass({date: date, mode: $scope.datepickerMode});
+  };
 
   // Split array into smaller arrays
   this.split = function(arr, size) {
@@ -59053,61 +60040,70 @@
     return arrays;
   };
 
-  $scope.select = function( date ) {
-    if ( $scope.datepickerMode === self.minMode ) {
-      var dt = ngModelCtrl.$viewValue ? new Date( ngModelCtrl.$viewValue ) : new Date(0, 0, 0, 0, 0, 0, 0);
-      dt.setFullYear( date.getFullYear(), date.getMonth(), date.getDate() );
-      ngModelCtrl.$setViewValue( dt );
+  // Fix a hard-reprodusible bug with timezones
+  // The bug depends on OS, browser, current timezone and current date
+  // i.e.
+  // var date = new Date(2014, 0, 1);
+  // console.log(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours());
+  // can result in "2013 11 31 23" because of the bug.
+  this.fixTimeZone = function(date) {
+    var hours = date.getHours();
+    date.setHours(hours === 23 ? hours + 2 : 0);
+  };
+
+  $scope.select = function(date) {
+    if ($scope.datepickerMode === self.minMode) {
+      var dt = ngModelCtrl.$viewValue ? new Date(ngModelCtrl.$viewValue) : new Date(0, 0, 0, 0, 0, 0, 0);
+      dt.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
+      ngModelCtrl.$setViewValue(dt);
       ngModelCtrl.$render();
     } else {
       self.activeDate = date;
-      $scope.datepickerMode = self.modes[ self.modes.indexOf( $scope.datepickerMode ) - 1 ];
-    }
-  };
-
-  $scope.move = function( direction ) {
+      $scope.datepickerMode = self.modes[self.modes.indexOf($scope.datepickerMode) - 1];
+    }
+  };
+
+  $scope.move = function(direction) {
     var year = self.activeDate.getFullYear() + direction * (self.step.years || 0),
         month = self.activeDate.getMonth() + direction * (self.step.months || 0);
     self.activeDate.setFullYear(year, month, 1);
     self.refreshView();
   };
 
-  $scope.toggleMode = function( direction ) {
+  $scope.toggleMode = function(direction) {
     direction = direction || 1;
 
     if (($scope.datepickerMode === self.maxMode && direction === 1) || ($scope.datepickerMode === self.minMode && direction === -1)) {
       return;
     }
 
-    $scope.datepickerMode = self.modes[ self.modes.indexOf( $scope.datepickerMode ) + direction ];
+    $scope.datepickerMode = self.modes[self.modes.indexOf($scope.datepickerMode) + direction];
   };
 
   // Key event mapper
-  $scope.keys = { 13:'enter', 32:'space', 33:'pageup', 34:'pagedown', 35:'end', 36:'home', 37:'left', 38:'up', 39:'right', 40:'down' };
+  $scope.keys = { 13: 'enter', 32: 'space', 33: 'pageup', 34: 'pagedown', 35: 'end', 36: 'home', 37: 'left', 38: 'up', 39: 'right', 40: 'down' };
 
   var focusElement = function() {
-    $timeout(function() {
-      self.element[0].focus();
-    }, 0 , false);
+    self.element[0].focus();
   };
 
   // Listen for focus requests from popup directive
   $scope.$on('datepicker.focus', focusElement);
 
-  $scope.keydown = function( evt ) {
+  $scope.keydown = function(evt) {
     var key = $scope.keys[evt.which];
 
-    if ( !key || evt.shiftKey || evt.altKey ) {
+    if (!key || evt.shiftKey || evt.altKey) {
       return;
     }
 
     evt.preventDefault();
-    if(!self.shortcutPropagation){
-        evt.stopPropagation();
+    if (!self.shortcutPropagation) {
+      evt.stopPropagation();
     }
 
     if (key === 'enter' || key === 'space') {
-      if ( self.isDisabled(self.activeDate)) {
+      if (self.isDisabled(self.activeDate)) {
         return; // do nothing
       }
       $scope.select(self.activeDate);
@@ -59122,30 +60118,31 @@
   };
 }])
 
-.directive( 'datepicker', function () {
+.directive('datepicker', function() {
   return {
     restrict: 'EA',
     replace: true,
-    templateUrl: 'template/datepicker/datepicker.html',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/datepicker/datepicker.html';
+    },
     scope: {
       datepickerMode: '=?',
       dateDisabled: '&',
       customClass: '&',
       shortcutPropagation: '&?'
     },
-    require: ['datepicker', '?^ngModel'],
+    require: ['datepicker', '^ngModel'],
     controller: 'DatepickerController',
+    controllerAs: 'datepicker',
     link: function(scope, element, attrs, ctrls) {
       var datepickerCtrl = ctrls[0], ngModelCtrl = ctrls[1];
 
-      if ( ngModelCtrl ) {
-        datepickerCtrl.init( ngModelCtrl );
-      }
+      datepickerCtrl.init(ngModelCtrl);
     }
   };
 })
 
-.directive('daypicker', ['dateFilter', function (dateFilter) {
+.directive('daypicker', ['dateFilter', function(dateFilter) {
   return {
     restrict: 'EA',
     replace: true,
@@ -59158,16 +60155,17 @@
       ctrl.element = element;
 
       var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-      function getDaysInMonth( year, month ) {
+      function getDaysInMonth(year, month) {
         return ((month === 1) && (year % 4 === 0) && ((year % 100 !== 0) || (year % 400 === 0))) ? 29 : DAYS_IN_MONTH[month];
       }
 
       function getDates(startDate, n) {
-        var dates = new Array(n), current = new Date(startDate), i = 0;
-        current.setHours(12); // Prevent repeated dates because of timezone bug
-        while ( i < n ) {
-          dates[i++] = new Date(current);
-          current.setDate( current.getDate() + 1 );
+        var dates = new Array(n), current = new Date(startDate), i = 0, date;
+        while (i < n) {
+          date = new Date(current);
+          ctrl.fixTimeZone(date);
+          dates[i++] = date;
+          current.setDate(current.getDate() + 1);
         }
         return dates;
       }
@@ -59180,8 +60178,8 @@
           numDisplayedFromPreviousMonth = (difference > 0) ? 7 - difference : - difference,
           firstDate = new Date(firstDayOfMonth);
 
-        if ( numDisplayedFromPreviousMonth > 0 ) {
-          firstDate.setDate( - numDisplayedFromPreviousMonth + 1 );
+        if (numDisplayedFromPreviousMonth > 0) {
+          firstDate.setDate(-numDisplayedFromPreviousMonth + 1);
         }
 
         // 42 is the number of days on a six-month calendar
@@ -59204,19 +60202,19 @@
         scope.title = dateFilter(ctrl.activeDate, ctrl.formatDayTitle);
         scope.rows = ctrl.split(days, 7);
 
-        if ( scope.showWeeks ) {
+        if (scope.showWeeks) {
           scope.weekNumbers = [];
           var thursdayIndex = (4 + 7 - ctrl.startingDay) % 7,
               numWeeks = scope.rows.length;
           for (var curWeek = 0; curWeek < numWeeks; curWeek++) {
             scope.weekNumbers.push(
-              getISO8601WeekNumber( scope.rows[curWeek][thursdayIndex].date ));
+              getISO8601WeekNumber(scope.rows[curWeek][thursdayIndex].date));
           }
         }
       };
 
       ctrl.compare = function(date1, date2) {
-        return (new Date( date1.getFullYear(), date1.getMonth(), date1.getDate() ) - new Date( date2.getFullYear(), date2.getMonth(), date2.getDate() ) );
+        return (new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()) - new Date(date2.getFullYear(), date2.getMonth(), date2.getDate()));
       };
 
       function getISO8601WeekNumber(date) {
@@ -59228,7 +60226,7 @@
         return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
       }
 
-      ctrl.handleKeyDown = function( key, evt ) {
+      ctrl.handleKeyDown = function(key, evt) {
         var date = ctrl.activeDate.getDate();
 
         if (key === 'left') {
@@ -59256,7 +60254,7 @@
   };
 }])
 
-.directive('monthpicker', ['dateFilter', function (dateFilter) {
+.directive('monthpicker', ['dateFilter', function(dateFilter) {
   return {
     restrict: 'EA',
     replace: true,
@@ -59268,10 +60266,13 @@
 
       ctrl._refreshView = function() {
         var months = new Array(12),
-            year = ctrl.activeDate.getFullYear();
-
-        for ( var i = 0; i < 12; i++ ) {
-          months[i] = angular.extend(ctrl.createDateObject(new Date(year, i, 1), ctrl.formatMonth), {
+            year = ctrl.activeDate.getFullYear(),
+            date;
+
+        for (var i = 0; i < 12; i++) {
+          date = new Date(year, i, 1);
+          ctrl.fixTimeZone(date);
+          months[i] = angular.extend(ctrl.createDateObject(date, ctrl.formatMonth), {
             uid: scope.uniqueId + '-' + i
           });
         }
@@ -59281,10 +60282,10 @@
       };
 
       ctrl.compare = function(date1, date2) {
-        return new Date( date1.getFullYear(), date1.getMonth() ) - new Date( date2.getFullYear(), date2.getMonth() );
-      };
-
-      ctrl.handleKeyDown = function( key, evt ) {
+        return new Date(date1.getFullYear(), date1.getMonth()) - new Date(date2.getFullYear(), date2.getMonth());
+      };
+
+      ctrl.handleKeyDown = function(key, evt) {
         var date = ctrl.activeDate.getMonth();
 
         if (key === 'left') {
@@ -59311,7 +60312,7 @@
   };
 }])
 
-.directive('yearpicker', ['dateFilter', function (dateFilter) {
+.directive('yearpicker', ['dateFilter', function(dateFilter) {
   return {
     restrict: 'EA',
     replace: true,
@@ -59328,10 +60329,12 @@
       }
 
       ctrl._refreshView = function() {
-        var years = new Array(range);
-
-        for ( var i = 0, start = getStartingYear(ctrl.activeDate.getFullYear()); i < range; i++ ) {
-          years[i] = angular.extend(ctrl.createDateObject(new Date(start + i, 0, 1), ctrl.formatYear), {
+        var years = new Array(range), date;
+
+        for (var i = 0, start = getStartingYear(ctrl.activeDate.getFullYear()); i < range; i++) {
+          date = new Date(start + i, 0, 1);
+          ctrl.fixTimeZone(date);
+          years[i] = angular.extend(ctrl.createDateObject(date, ctrl.formatYear), {
             uid: scope.uniqueId + '-' + i
           });
         }
@@ -59344,7 +60347,7 @@
         return date1.getFullYear() - date2.getFullYear();
       };
 
-      ctrl.handleKeyDown = function( key, evt ) {
+      ctrl.handleKeyDown = function(key, evt) {
         var date = ctrl.activeDate.getFullYear();
 
         if (key === 'left') {
@@ -59358,9 +60361,9 @@
         } else if (key === 'pageup' || key === 'pagedown') {
           date += (key === 'pageup' ? - 1 : 1) * ctrl.step.years;
         } else if (key === 'home') {
-          date = getStartingYear( ctrl.activeDate.getFullYear() );
+          date = getStartingYear(ctrl.activeDate.getFullYear());
         } else if (key === 'end') {
-          date = getStartingYear( ctrl.activeDate.getFullYear() ) + range - 1;
+          date = getStartingYear(ctrl.activeDate.getFullYear()) + range - 1;
         }
         ctrl.activeDate.setFullYear(date);
       };
@@ -59372,6 +60375,8 @@
 
 .constant('datepickerPopupConfig', {
   datepickerPopup: 'yyyy-MM-dd',
+  datepickerPopupTemplateUrl: 'template/datepicker/popup.html',
+  datepickerTemplateUrl: 'template/datepicker/datepicker.html',
   html5Types: {
     date: 'yyyy-MM-dd',
     'datetime-local': 'yyyy-MM-ddTHH:mm:ss.sss',
@@ -59382,11 +60387,12 @@
   closeText: 'Done',
   closeOnDateSelection: true,
   appendToBody: false,
-  showButtonBar: true
+  showButtonBar: true,
+  onOpenFocus: true
 })
 
-.directive('datepickerPopup', ['$compile', '$parse', '$document', '$position', 'dateFilter', 'dateParser', 'datepickerPopupConfig',
-function ($compile, $parse, $document, $position, dateFilter, dateParser, datepickerPopupConfig) {
+.directive('datepickerPopup', ['$compile', '$parse', '$document', '$rootScope', '$position', 'dateFilter', 'dateParser', 'datepickerPopupConfig', '$timeout',
+function($compile, $parse, $document, $rootScope, $position, dateFilter, dateParser, datepickerPopupConfig, $timeout) {
   return {
     restrict: 'EA',
     require: 'ngModel',
@@ -59401,14 +60407,31 @@
     link: function(scope, element, attrs, ngModel) {
       var dateFormat,
           closeOnDateSelection = angular.isDefined(attrs.closeOnDateSelection) ? scope.$parent.$eval(attrs.closeOnDateSelection) : datepickerPopupConfig.closeOnDateSelection,
-          appendToBody = angular.isDefined(attrs.datepickerAppendToBody) ? scope.$parent.$eval(attrs.datepickerAppendToBody) : datepickerPopupConfig.appendToBody;
+          appendToBody = angular.isDefined(attrs.datepickerAppendToBody) ? scope.$parent.$eval(attrs.datepickerAppendToBody) : datepickerPopupConfig.appendToBody,
+          onOpenFocus = angular.isDefined(attrs.onOpenFocus) ? scope.$parent.$eval(attrs.onOpenFocus) : datepickerPopupConfig.onOpenFocus,
+          datepickerPopupTemplateUrl = angular.isDefined(attrs.datepickerPopupTemplateUrl) ? attrs.datepickerPopupTemplateUrl : datepickerPopupConfig.datepickerPopupTemplateUrl,
+          datepickerTemplateUrl = angular.isDefined(attrs.datepickerTemplateUrl) ? attrs.datepickerTemplateUrl : datepickerPopupConfig.datepickerTemplateUrl,
+          cache = {};
 
       scope.showButtonBar = angular.isDefined(attrs.showButtonBar) ? scope.$parent.$eval(attrs.showButtonBar) : datepickerPopupConfig.showButtonBar;
 
-      scope.getText = function( key ) {
+      scope.getText = function(key) {
         return scope[key + 'Text'] || datepickerPopupConfig[key + 'Text'];
       };
 
+      scope.isDisabled = function(date) {
+        if (date === 'today') {
+          date = new Date();
+        }
+
+        return ((scope.watchData.minDate && scope.compare(date, cache.minDate) < 0) ||
+          (scope.watchData.maxDate && scope.compare(date, cache.maxDate) > 0));
+      };
+
+      scope.compare = function(date1, date2) {
+        return (new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()) - new Date(date2.getFullYear(), date2.getMonth(), date2.getDate()));
+      };
+
       var isHtml5DateInput = false;
       if (datepickerPopupConfig.html5Types[attrs.type]) {
         dateFormat = datepickerPopupConfig.html5Types[attrs.type];
@@ -59442,48 +60465,54 @@
       var popupEl = angular.element('<div datepicker-popup-wrap><div datepicker></div></div>');
       popupEl.attr({
         'ng-model': 'date',
-        'ng-change': 'dateSelection()'
-      });
-
-      function cameltoDash( string ){
+        'ng-change': 'dateSelection(date)',
+        'template-url': datepickerPopupTemplateUrl
+      });
+
+      function cameltoDash(string) {
         return string.replace(/([A-Z])/g, function($1) { return '-' + $1.toLowerCase(); });
       }
 
       // datepicker element
       var datepickerEl = angular.element(popupEl.children()[0]);
+      datepickerEl.attr('template-url', datepickerTemplateUrl);
+
       if (isHtml5DateInput) {
-        if (attrs.type == 'month') {
+        if (attrs.type === 'month') {
           datepickerEl.attr('datepicker-mode', '"month"');
           datepickerEl.attr('min-mode', 'month');
         }
       }
 
-      if ( attrs.datepickerOptions ) {
+      if (attrs.datepickerOptions) {
         var options = scope.$parent.$eval(attrs.datepickerOptions);
-        if(options.initDate) {
+        if (options && options.initDate) {
           scope.initDate = options.initDate;
-          datepickerEl.attr( 'init-date', 'initDate' );
+          datepickerEl.attr('init-date', 'initDate');
           delete options.initDate;
         }
-        angular.forEach(options, function( value, option ) {
+        angular.forEach(options, function(value, option) {
           datepickerEl.attr( cameltoDash(option), value );
         });
       }
 
       scope.watchData = {};
-      angular.forEach(['minDate', 'maxDate', 'datepickerMode', 'initDate', 'shortcutPropagation'], function( key ) {
-        if ( attrs[key] ) {
+      angular.forEach(['minMode', 'maxMode', 'minDate', 'maxDate', 'datepickerMode', 'initDate', 'shortcutPropagation'], function(key) {
+        if (attrs[key]) {
           var getAttribute = $parse(attrs[key]);
-          scope.$parent.$watch(getAttribute, function(value){
+          scope.$parent.$watch(getAttribute, function(value) {
             scope.watchData[key] = value;
+            if (key === 'minDate' || key === 'maxDate') {
+              cache[key] = new Date(value);
+            }
           });
           datepickerEl.attr(cameltoDash(key), 'watchData.' + key);
 
           // Propagate changes from datepicker to outside
-          if ( key === 'datepickerMode' ) {
+          if (key === 'datepickerMode') {
             var setAttribute = getAttribute.assign;
             scope.$watch('watchData.' + key, function(value, oldvalue) {
-              if ( value !== oldvalue ) {
+              if (angular.isFunction(setAttribute) && value !== oldvalue) {
                 setAttribute(scope.$parent, value);
               }
             });
@@ -59498,7 +60527,7 @@
         datepickerEl.attr('show-weeks', attrs.showWeeks);
       }
 
-      if (attrs.customClass){
+      if (attrs.customClass) {
         datepickerEl.attr('custom-class', 'customClass({ date: date, mode: mode })');
       }
 
@@ -59513,7 +60542,7 @@
         } else if (angular.isDate(viewValue) && !isNaN(viewValue)) {
           return viewValue;
         } else if (angular.isString(viewValue)) {
-          var date = dateParser.parse(viewValue, dateFormat, scope.date) || new Date(viewValue);
+          var date = dateParser.parse(viewValue, dateFormat, scope.date);
           if (isNaN(date)) {
             return undefined;
           } else {
@@ -59526,6 +60555,11 @@
 
       function validator(modelValue, viewValue) {
         var value = modelValue || viewValue;
+
+        if (!attrs.ngRequired && !value) {
+          return true;
+        }
+
         if (angular.isNumber(value)) {
           value = new Date(value);
         }
@@ -59534,7 +60568,7 @@
         } else if (angular.isDate(value) && !isNaN(value)) {
           return true;
         } else if (angular.isString(value)) {
-          var date = dateParser.parse(value, dateFormat) || new Date(value);
+          var date = dateParser.parse(value, dateFormat);
           return !isNaN(date);
         } else {
           return false;
@@ -59546,13 +60580,12 @@
         ngModel.$$parserName = 'date';
         ngModel.$validators.date = validator;
         ngModel.$parsers.unshift(parseDate);
-        ngModel.$formatters.push(function (value) {
+        ngModel.$formatters.push(function(value) {
           scope.date = value;
           return ngModel.$isEmpty(value) ? value : dateFilter(value, dateFormat);
         });
-      }
-      else {
-        ngModel.$formatters.push(function (value) {
+      } else {
+        ngModel.$formatters.push(function(value) {
           scope.date = value;
           return value;
         });
@@ -59563,59 +60596,71 @@
         if (angular.isDefined(dt)) {
           scope.date = dt;
         }
-        var date = scope.date ? dateFilter(scope.date, dateFormat) : '';
+        var date = scope.date ? dateFilter(scope.date, dateFormat) : null; // Setting to NULL is necessary for form validators to function
         element.val(date);
         ngModel.$setViewValue(date);
 
-        if ( closeOnDateSelection ) {
+        if (closeOnDateSelection) {
           scope.isOpen = false;
           element[0].focus();
         }
       };
 
       // Detect changes in the view from the text box
-      ngModel.$viewChangeListeners.push(function () {
-        scope.date = dateParser.parse(ngModel.$viewValue, dateFormat, scope.date) || new Date(ngModel.$viewValue);
+      ngModel.$viewChangeListeners.push(function() {
+        scope.date = dateParser.parse(ngModel.$viewValue, dateFormat, scope.date);
       });
 
       var documentClickBind = function(event) {
-        if (scope.isOpen && event.target !== element[0]) {
+        if (scope.isOpen && !(element[0].contains(event.target) || popupEl[0].contains(event.target))) {
           scope.$apply(function() {
             scope.isOpen = false;
           });
         }
       };
 
-      var keydown = function(evt, noApply) {
-        scope.keydown(evt);
-      };
-      element.bind('keydown', keydown);
+      var inputKeydownBind = function(evt) {
+        if (evt.which === 27 && scope.isOpen) {
+          evt.preventDefault();
+          evt.stopPropagation();
+          scope.$apply(function() {
+            scope.isOpen = false;
+          });
+          element[0].focus();
+        } else if (evt.which === 40 && !scope.isOpen) {
+          evt.preventDefault();
+          evt.stopPropagation();
+          scope.$apply(function() {
+            scope.isOpen = true;
+          });
+        }
+      };
+      element.bind('keydown', inputKeydownBind);
 
       scope.keydown = function(evt) {
         if (evt.which === 27) {
-          evt.preventDefault();
-          if (scope.isOpen) {
-            evt.stopPropagation();
-          }
-          scope.close();
-        } else if (evt.which === 40 && !scope.isOpen) {
-          scope.isOpen = true;
+          scope.isOpen = false;
+          element[0].focus();
         }
       };
 
       scope.$watch('isOpen', function(value) {
         if (value) {
-          scope.$broadcast('datepicker.focus');
           scope.position = appendToBody ? $position.offset(element) : $position.position(element);
           scope.position.top = scope.position.top + element.prop('offsetHeight');
 
-          $document.bind('click', documentClickBind);
+          $timeout(function() {
+            if (onOpenFocus) {
+              scope.$broadcast('datepicker.focus');
+            }
+            $document.bind('click', documentClickBind);
+          }, 0, false);
         } else {
           $document.unbind('click', documentClickBind);
         }
       });
 
-      scope.select = function( date ) {
+      scope.select = function(date) {
         if (date === 'today') {
           var today = new Date();
           if (angular.isDate(scope.date)) {
@@ -59625,7 +60670,7 @@
             date = new Date(today.setHours(0, 0, 0, 0));
           }
         }
-        scope.dateSelection( date );
+        scope.dateSelection(date);
       };
 
       scope.close = function() {
@@ -59637,15 +60682,23 @@
       // Prevent jQuery cache memory leak (template is now redundant after linking)
       popupEl.remove();
 
-      if ( appendToBody ) {
+      if (appendToBody) {
         $document.find('body').append($popup);
       } else {
         element.after($popup);
       }
 
       scope.$on('$destroy', function() {
+        if (scope.isOpen === true) {
+          if (!$rootScope.$$phase) {
+            scope.$apply(function() {
+              scope.isOpen = false;
+            });
+          }
+        }
+
         $popup.remove();
-        element.unbind('keydown', keydown);
+        element.unbind('keydown', inputKeydownBind);
         $document.unbind('click', documentClickBind);
       });
     }
@@ -59657,12 +60710,8 @@
     restrict:'EA',
     replace: true,
     transclude: true,
-    templateUrl: 'template/datepicker/popup.html',
-    link:function (scope, element, attrs) {
-      element.bind('click', function(event) {
-        event.preventDefault();
-        event.stopPropagation();
-      });
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/datepicker/popup.html';
     }
   };
 });
@@ -59676,41 +60725,42 @@
 .service('dropdownService', ['$document', '$rootScope', function($document, $rootScope) {
   var openScope = null;
 
-  this.open = function( dropdownScope ) {
-    if ( !openScope ) {
+  this.open = function(dropdownScope) {
+    if (!openScope) {
       $document.bind('click', closeDropdown);
-      $document.bind('keydown', escapeKeyBind);
-    }
-
-    if ( openScope && openScope !== dropdownScope ) {
-        openScope.isOpen = false;
+      $document.bind('keydown', keybindFilter);
+    }
+
+    if (openScope && openScope !== dropdownScope) {
+      openScope.isOpen = false;
     }
 
     openScope = dropdownScope;
   };
 
-  this.close = function( dropdownScope ) {
-    if ( openScope === dropdownScope ) {
+  this.close = function(dropdownScope) {
+    if (openScope === dropdownScope) {
       openScope = null;
       $document.unbind('click', closeDropdown);
-      $document.unbind('keydown', escapeKeyBind);
-    }
-  };
-
-  var closeDropdown = function( evt ) {
+      $document.unbind('keydown', keybindFilter);
+    }
+  };
+
+  var closeDropdown = function(evt) {
     // This method may still be called during the same mouse event that
     // unbound this event handler. So check openScope before proceeding.
     if (!openScope) { return; }
 
-    if( evt && openScope.getAutoClose() === 'disabled' )  { return ; }
+    if (evt && openScope.getAutoClose() === 'disabled')  { return ; }
 
     var toggleElement = openScope.getToggleElement();
-    if ( evt && toggleElement && toggleElement[0].contains(evt.target) ) {
-        return;
-    }
-
-    var $element = openScope.getElement();
-    if( evt && openScope.getAutoClose() === 'outsideClick' && $element && $element[0].contains(evt.target) ) {
+    if (evt && toggleElement && toggleElement[0].contains(evt.target)) {
+      return;
+    }
+
+    var dropdownElement = openScope.getDropdownElement();
+    if (evt && openScope.getAutoClose() === 'outsideClick' &&
+      dropdownElement && dropdownElement[0].contains(evt.target)) {
       return;
     }
 
@@ -59721,27 +60771,35 @@
     }
   };
 
-  var escapeKeyBind = function( evt ) {
-    if ( evt.which === 27 ) {
+  var keybindFilter = function(evt) {
+    if (evt.which === 27) {
       openScope.focusToggleElement();
       closeDropdown();
+    } else if (openScope.isKeynavEnabled() && /(38|40)/.test(evt.which) && openScope.isOpen) {
+      evt.preventDefault();
+      evt.stopPropagation();
+      openScope.focusDropdownEntry(evt.which);
     }
   };
 }])
 
-.controller('DropdownController', ['$scope', '$attrs', '$parse', 'dropdownConfig', 'dropdownService', '$animate', '$position', '$document', function($scope, $attrs, $parse, dropdownConfig, dropdownService, $animate, $position, $document) {
+.controller('DropdownController', ['$scope', '$attrs', '$parse', 'dropdownConfig', 'dropdownService', '$animate', '$position', '$document', '$compile', '$templateRequest', function($scope, $attrs, $parse, dropdownConfig, dropdownService, $animate, $position, $document, $compile, $templateRequest) {
   var self = this,
-      scope = $scope.$new(), // create a child scope so we are not polluting original one
-      openClass = dropdownConfig.openClass,
-      getIsOpen,
-      setIsOpen = angular.noop,
-      toggleInvoker = $attrs.onToggle ? $parse($attrs.onToggle) : angular.noop,
-      appendToBody = false;
-
-  this.init = function( element ) {
+    scope = $scope.$new(), // create a child scope so we are not polluting original one
+    templateScope,
+    openClass = dropdownConfig.openClass,
+    getIsOpen,
+    setIsOpen = angular.noop,
+    toggleInvoker = $attrs.onToggle ? $parse($attrs.onToggle) : angular.noop,
+    appendToBody = false,
+    keynavEnabled = false,
+    selectedOption = null,
+    body = $document.find('body');
+
+  this.init = function(element) {
     self.$element = element;
 
-    if ( $attrs.isOpen ) {
+    if ($attrs.isOpen) {
       getIsOpen = $parse($attrs.isOpen);
       setIsOpen = getIsOpen.assign;
 
@@ -59751,16 +60809,18 @@
     }
 
     appendToBody = angular.isDefined($attrs.dropdownAppendToBody);
-
-    if ( appendToBody && self.dropdownMenu ) {
-      $document.find('body').append( self.dropdownMenu );
+    keynavEnabled = angular.isDefined($attrs.keyboardNav);
+
+    if (appendToBody && self.dropdownMenu) {
+      body.append(self.dropdownMenu);
+      body.addClass('dropdown');
       element.on('$destroy', function handleDestroyEvent() {
         self.dropdownMenu.remove();
       });
     }
   };
 
-  this.toggle = function( open ) {
+  this.toggle = function(open) {
     return scope.isOpen = arguments.length ? !!open : !scope.isOpen;
   };
 
@@ -59781,44 +60841,120 @@
     return self.$element;
   };
 
+  scope.isKeynavEnabled = function() {
+    return keynavEnabled;
+  };
+
+  scope.focusDropdownEntry = function(keyCode) {
+    var elems = self.dropdownMenu ? //If append to body is used.
+      (angular.element(self.dropdownMenu).find('a')) :
+      (angular.element(self.$element).find('ul').eq(0).find('a'));
+
+    switch (keyCode) {
+      case (40): {
+        if (!angular.isNumber(self.selectedOption)) {
+          self.selectedOption = 0;
+        } else {
+          self.selectedOption = (self.selectedOption === elems.length -1 ?
+            self.selectedOption :
+            self.selectedOption + 1);
+        }
+        break;
+      }
+      case (38): {
+        if (!angular.isNumber(self.selectedOption)) {
+          self.selectedOption = elems.length - 1;
+        } else {
+          self.selectedOption = self.selectedOption === 0 ?
+            0 : self.selectedOption - 1;
+        }
+        break;
+      }
+    }
+    elems[self.selectedOption].focus();
+  };
+
+  scope.getDropdownElement = function() {
+    return self.dropdownMenu;
+  };
+
   scope.focusToggleElement = function() {
-    if ( self.toggleElement ) {
+    if (self.toggleElement) {
       self.toggleElement[0].focus();
     }
   };
 
-  scope.$watch('isOpen', function( isOpen, wasOpen ) {
-    if ( appendToBody && self.dropdownMenu ) {
+  scope.$watch('isOpen', function(isOpen, wasOpen) {
+    if (appendToBody && self.dropdownMenu) {
       var pos = $position.positionElements(self.$element, self.dropdownMenu, 'bottom-left', true);
-      self.dropdownMenu.css({
+      var css = {
         top: pos.top + 'px',
-        left: pos.left + 'px',
         display: isOpen ? 'block' : 'none'
-      });
-    }
-
-    $animate[isOpen ? 'addClass' : 'removeClass'](self.$element, openClass);
-
-    if ( isOpen ) {
+      };
+
+      var rightalign = self.dropdownMenu.hasClass('dropdown-menu-right');
+      if (!rightalign) {
+        css.left = pos.left + 'px';
+        css.right = 'auto';
+      } else {
+        css.left = 'auto';
+        css.right = (window.innerWidth - (pos.left + self.$element.prop('offsetWidth'))) + 'px';
+      }
+
+      self.dropdownMenu.css(css);
+    }
+
+    var openContainer = appendToBody ? body : self.$element;
+
+    $animate[isOpen ? 'addClass' : 'removeClass'](openContainer, openClass).then(function() {
+      if (angular.isDefined(isOpen) && isOpen !== wasOpen) {
+        toggleInvoker($scope, { open: !!isOpen });
+      }
+    });
+
+    if (isOpen) {
+      if (self.dropdownMenuTemplateUrl) {
+        $templateRequest(self.dropdownMenuTemplateUrl).then(function(tplContent) {
+          templateScope = scope.$new();
+          $compile(tplContent.trim())(templateScope, function(dropdownElement) {
+            var newEl = dropdownElement;
+            self.dropdownMenu.replaceWith(newEl);
+            self.dropdownMenu = newEl;
+          });
+        });
+      }
+
       scope.focusToggleElement();
-      dropdownService.open( scope );
+      dropdownService.open(scope);
     } else {
-      dropdownService.close( scope );
-    }
-
-    setIsOpen($scope, isOpen);
-    if (angular.isDefined(isOpen) && isOpen !== wasOpen) {
-      toggleInvoker($scope, { open: !!isOpen });
+      if (self.dropdownMenuTemplateUrl) {
+        if (templateScope) {
+          templateScope.$destroy();
+        }
+        var newEl = angular.element('<ul class="dropdown-menu"></ul>');
+        self.dropdownMenu.replaceWith(newEl);
+        self.dropdownMenu = newEl;
+      }
+
+      dropdownService.close(scope);
+      self.selectedOption = null;
+    }
+
+    if (angular.isFunction(setIsOpen)) {
+      setIsOpen($scope, isOpen);
     }
   });
 
   $scope.$on('$locationChangeSuccess', function() {
-    scope.isOpen = false;
+    if (scope.getAutoClose() !== 'disabled') {
+      scope.isOpen = false;
+    }
   });
 
-  $scope.$on('$destroy', function() {
+  var offDestroy = $scope.$on('$destroy', function() {
     scope.$destroy();
   });
+  scope.$on('$destroy', offDestroy);
 }])
 
 .directive('dropdown', function() {
@@ -59826,6 +60962,7 @@
     controller: 'DropdownController',
     link: function(scope, element, attrs, dropdownCtrl) {
       dropdownCtrl.init( element );
+      element.addClass('dropdown');
     }
   };
 })
@@ -59835,10 +60972,56 @@
     restrict: 'AC',
     require: '?^dropdown',
     link: function(scope, element, attrs, dropdownCtrl) {
-      if ( !dropdownCtrl ) {
+      if (!dropdownCtrl) {
         return;
       }
-      dropdownCtrl.dropdownMenu = element;
+      var tplUrl = attrs.templateUrl;
+      if (tplUrl) {
+        dropdownCtrl.dropdownMenuTemplateUrl = tplUrl;
+      }
+      if (!dropdownCtrl.dropdownMenu) {
+        dropdownCtrl.dropdownMenu = element;
+      }
+    }
+  };
+})
+
+.directive('keyboardNav', function() {
+  return {
+    restrict: 'A',
+    require: '?^dropdown',
+    link: function (scope, element, attrs, dropdownCtrl) {
+
+      element.bind('keydown', function(e) {
+        if ([38, 40].indexOf(e.which) !== -1) {
+          e.preventDefault();
+          e.stopPropagation();
+
+          var elems = dropdownCtrl.dropdownMenu.find('a');
+
+          switch (e.which) {
+            case (40): { // Down
+              if (!angular.isNumber(dropdownCtrl.selectedOption)) {
+                dropdownCtrl.selectedOption = 0;
+              } else {
+                dropdownCtrl.selectedOption = dropdownCtrl.selectedOption === elems.length -1 ?
+                  dropdownCtrl.selectedOption : dropdownCtrl.selectedOption + 1;
+              }
+              break;
+            }
+            case (38): { // Up
+              if (!angular.isNumber(dropdownCtrl.selectedOption)) {
+                dropdownCtrl.selectedOption = elems.length - 1;
+              } else {
+                dropdownCtrl.selectedOption = dropdownCtrl.selectedOption === 0 ?
+                  0 : dropdownCtrl.selectedOption - 1;
+              }
+              break;
+            }
+          }
+          elems[dropdownCtrl.selectedOption].focus();
+        }
+      });
     }
   };
 })
@@ -59847,16 +61030,18 @@
   return {
     require: '?^dropdown',
     link: function(scope, element, attrs, dropdownCtrl) {
-      if ( !dropdownCtrl ) {
+      if (!dropdownCtrl) {
         return;
       }
 
+      element.addClass('dropdown-toggle');
+
       dropdownCtrl.toggleElement = element;
 
       var toggleDropdown = function(event) {
         event.preventDefault();
 
-        if ( !element.hasClass('disabled') && !attrs.disabled ) {
+        if (!element.hasClass('disabled') && !attrs.disabled) {
           scope.$apply(function() {
             dropdownCtrl.toggle();
           });
@@ -59884,19 +61069,19 @@
  * A helper, internal data structure that acts as a map but also allows getting / removing
  * elements in the LIFO order
  */
-  .factory('$$stackedMap', function () {
+  .factory('$$stackedMap', function() {
     return {
-      createNew: function () {
+      createNew: function() {
         var stack = [];
 
         return {
-          add: function (key, value) {
+          add: function(key, value) {
             stack.push({
               key: key,
               value: value
             });
           },
-          get: function (key) {
+          get: function(key) {
             for (var i = 0; i < stack.length; i++) {
               if (key == stack[i].key) {
                 return stack[i];
@@ -59910,10 +61095,10 @@
             }
             return keys;
           },
-          top: function () {
+          top: function() {
             return stack[stack.length - 1];
           },
-          remove: function (key) {
+          remove: function(key) {
             var idx = -1;
             for (var i = 0; i < stack.length; i++) {
               if (key == stack[i].key) {
@@ -59923,10 +61108,10 @@
             }
             return stack.splice(idx, 1)[0];
           },
-          removeTop: function () {
+          removeTop: function() {
             return stack.splice(stack.length - 1, 1)[0];
           },
-          length: function () {
+          length: function() {
             return stack.length;
           }
         };
@@ -59935,48 +61120,132 @@
   })
 
 /**
+ * A helper, internal data structure that stores all references attached to key
+ */
+  .factory('$$multiMap', function() {
+    return {
+      createNew: function() {
+        var map = {};
+
+        return {
+          entries: function() {
+            return Object.keys(map).map(function(key) {
+              return {
+                key: key,
+                value: map[key]
+              };
+            });
+          },
+          get: function(key) {
+            return map[key];
+          },
+          hasKey: function(key) {
+            return !!map[key];
+          },
+          keys: function() {
+            return Object.keys(map);
+          },
+          put: function(key, value) {
+            if (!map[key]) {
+              map[key] = [];
+            }
+
+            map[key].push(value);
+          },
+          remove: function(key, value) {
+            var values = map[key];
+
+            if (!values) {
+              return;
+            }
+
+            var idx = values.indexOf(value);
+
+            if (idx !== -1) {
+              values.splice(idx, 1);
+            }
+
+            if (!values.length) {
+              delete map[key];
+            }
+          }
+        };
+      }
+    };
+  })
+
+/**
  * A helper directive for the $modal service. It creates a backdrop element.
  */
-  .directive('modalBackdrop', ['$timeout', function ($timeout) {
+  .directive('modalBackdrop', [
+           '$animate', '$injector', '$modalStack',
+  function($animate ,  $injector,   $modalStack) {
+    var $animateCss = null;
+
+    if ($injector.has('$animateCss')) {
+      $animateCss = $injector.get('$animateCss');
+    }
+
     return {
       restrict: 'EA',
       replace: true,
       templateUrl: 'template/modal/backdrop.html',
-      compile: function (tElement, tAttrs) {
+      compile: function(tElement, tAttrs) {
         tElement.addClass(tAttrs.backdropClass);
         return linkFn;
       }
     };
 
     function linkFn(scope, element, attrs) {
-      scope.animate = false;
-
-      //trigger CSS transitions
-      $timeout(function () {
-        scope.animate = true;
-      });
+      if (attrs.modalInClass) {
+        if ($animateCss) {
+          $animateCss(element, {
+            addClass: attrs.modalInClass
+          }).start();
+        } else {
+          $animate.addClass(element, attrs.modalInClass);
+        }
+
+        scope.$on($modalStack.NOW_CLOSING_EVENT, function(e, setIsAsync) {
+          var done = setIsAsync();
+          if ($animateCss) {
+            $animateCss(element, {
+              removeClass: attrs.modalInClass
+            }).start().then(done);
+          } else {
+            $animate.removeClass(element, attrs.modalInClass).then(done);
+          }
+        });
+      }
     }
   }])
 
-  .directive('modalWindow', ['$modalStack', '$q', function ($modalStack, $q) {
+  .directive('modalWindow', [
+           '$modalStack', '$q', '$animate', '$injector',
+  function($modalStack ,  $q ,  $animate,   $injector) {
+    var $animateCss = null;
+
+    if ($injector.has('$animateCss')) {
+      $animateCss = $injector.get('$animateCss');
+    }
+
     return {
       restrict: 'EA',
       scope: {
-        index: '@',
-        animate: '='
+        index: '@'
       },
       replace: true,
       transclude: true,
       templateUrl: function(tElement, tAttrs) {
         return tAttrs.templateUrl || 'template/modal/window.html';
       },
-      link: function (scope, element, attrs) {
+      link: function(scope, element, attrs) {
         element.addClass(attrs.windowClass || '');
         scope.size = attrs.size;
 
-        scope.close = function (evt) {
+        scope.close = function(evt) {
           var modal = $modalStack.getTop();
-          if (modal && modal.value.backdrop && modal.value.backdrop != 'static' && (evt.target === evt.currentTarget)) {
+          if (modal && modal.value.backdrop && modal.value.backdrop !== 'static' && (evt.target === evt.currentTarget)) {
             evt.preventDefault();
             evt.stopPropagation();
             $modalStack.dismiss(modal.key, 'backdrop click');
@@ -59992,30 +61261,53 @@
         var modalRenderDeferObj = $q.defer();
         // Observe function will be called on next digest cycle after compilation, ensuring that the DOM is ready.
         // In order to use this way of finding whether DOM is ready, we need to observe a scope property used in modal's template.
-        attrs.$observe('modalRender', function (value) {
+        attrs.$observe('modalRender', function(value) {
           if (value == 'true') {
             modalRenderDeferObj.resolve();
           }
         });
 
-        modalRenderDeferObj.promise.then(function () {
-          // trigger CSS transitions
-          scope.animate = true;
-
-          var inputsWithAutofocus = element[0].querySelectorAll('[autofocus]');
-          /**
-           * Auto-focusing of a freshly-opened modal element causes any child elements
-           * with the autofocus attribute to lose focus. This is an issue on touch
-           * based devices which will show and then hide the onscreen keyboard.
-           * Attempts to refocus the autofocus element via JavaScript will not reopen
-           * the onscreen keyboard. Fixed by updated the focusing logic to only autofocus
-           * the modal element if the modal does not contain an autofocus element.
-           */
-          if (inputsWithAutofocus.length) {
-            inputsWithAutofocus[0].focus();
-          } else {
-            element[0].focus();
-          }
+        modalRenderDeferObj.promise.then(function() {
+          var animationPromise = null;
+
+          if (attrs.modalInClass) {
+            if ($animateCss) {
+              animationPromise = $animateCss(element, {
+                addClass: attrs.modalInClass
+              }).start();
+            } else {
+              animationPromise = $animate.addClass(element, attrs.modalInClass);
+            }
+
+            scope.$on($modalStack.NOW_CLOSING_EVENT, function(e, setIsAsync) {
+              var done = setIsAsync();
+              if ($animateCss) {
+                $animateCss(element, {
+                  removeClass: attrs.modalInClass
+                }).start().then(done);
+              } else {
+                $animate.removeClass(element, attrs.modalInClass).then(done);
+              }
+            });
+          }
+
+
+          $q.when(animationPromise).then(function() {
+            var inputsWithAutofocus = element[0].querySelectorAll('[autofocus]');
+            /**
+             * Auto-focusing of a freshly-opened modal element causes any child elements
+             * with the autofocus attribute to lose focus. This is an issue on touch
+             * based devices which will show and then hide the onscreen keyboard.
+             * Attempts to refocus the autofocus element via JavaScript will not reopen
+             * the onscreen keyboard. Fixed by updated the focusing logic to only autofocus
+             * the modal element if the modal does not contain an autofocus element.
+             */
+            if (inputsWithAutofocus.length) {
+              inputsWithAutofocus[0].focus();
+            } else {
+              element[0].focus();
+            }
+          });
 
           // Notify {@link $modalStack} that modal is rendered.
           var modal = $modalStack.getTop();
@@ -60030,7 +61322,7 @@
   .directive('modalAnimationClass', [
     function () {
       return {
-        compile: function (tElement, tAttrs) {
+        compile: function(tElement, tAttrs) {
           if (tAttrs.modalAnimation) {
             tElement.addClass(tAttrs.modalAnimationClass);
           }
@@ -60038,7 +61330,7 @@
       };
     }])
 
-  .directive('modalTransclude', function () {
+  .directive('modalTransclude', function() {
     return {
       link: function($scope, $element, $attrs, controller, $transclude) {
         $transclude($scope.$parent, function(clone) {
@@ -60049,14 +61341,38 @@
     };
   })
 
-  .factory('$modalStack', ['$animate', '$timeout', '$document', '$compile', '$rootScope', '$$stackedMap',
-    function ($animate, $timeout, $document, $compile, $rootScope, $$stackedMap) {
+  .factory('$modalStack', [
+             '$animate', '$timeout', '$document', '$compile', '$rootScope',
+             '$q',
+             '$injector',
+             '$$multiMap',
+             '$$stackedMap',
+    function($animate ,  $timeout ,  $document ,  $compile ,  $rootScope ,
+              $q,
+              $injector,
+              $$multiMap,
+              $$stackedMap) {
+      var $animateCss = null;
+
+      if ($injector.has('$animateCss')) {
+        $animateCss = $injector.get('$animateCss');
+      }
 
       var OPENED_MODAL_CLASS = 'modal-open';
 
       var backdropDomEl, backdropScope;
       var openedWindows = $$stackedMap.createNew();
-      var $modalStack = {};
+      var openedClasses = $$multiMap.createNew();
+      var $modalStack = {
+        NOW_CLOSING_EVENT: 'modal.stack.now-closing'
+      };
+
+      //Modal focus behavior
+      var focusableElementList;
+      var focusIndex = 0;
+      var tababbleSelector = 'a[href], area[href], input:not([disabled]), ' +
+        'button:not([disabled]),select:not([disabled]), textarea:not([disabled]), ' +
+        'iframe, object, embed, *[tabindex], *[contenteditable=true]';
 
       function backdropIndex() {
         var topBackdropIndex = -1;
@@ -60069,32 +61385,39 @@
         return topBackdropIndex;
       }
 
-      $rootScope.$watch(backdropIndex, function(newBackdropIndex){
+      $rootScope.$watch(backdropIndex, function(newBackdropIndex) {
         if (backdropScope) {
           backdropScope.index = newBackdropIndex;
         }
       });
 
-      function removeModalWindow(modalInstance) {
-
+      function removeModalWindow(modalInstance, elementToReceiveFocus) {
         var body = $document.find('body').eq(0);
         var modalWindow = openedWindows.get(modalInstance).value;
 
         //clean up the stack
         openedWindows.remove(modalInstance);
 
-        //remove window DOM element
         removeAfterAnimate(modalWindow.modalDomEl, modalWindow.modalScope, function() {
-          body.toggleClass(OPENED_MODAL_CLASS, openedWindows.length() > 0);
-          checkRemoveBackdrop();
-        });
+          var modalBodyClass = modalWindow.openedClass || OPENED_MODAL_CLASS;
+          openedClasses.remove(modalBodyClass, modalInstance);
+          body.toggleClass(modalBodyClass, openedClasses.hasKey(modalBodyClass));
+        });
+        checkRemoveBackdrop();
+
+        //move focus to specified element if available, or else to body
+        if (elementToReceiveFocus && elementToReceiveFocus.focus) {
+          elementToReceiveFocus.focus();
+        } else {
+          body.focus();
+        }
       }
 
       function checkRemoveBackdrop() {
           //remove backdrop if no longer needed
           if (backdropDomEl && backdropIndex() == -1) {
             var backdropScopeRef = backdropScope;
-            removeAfterAnimate(backdropDomEl, backdropScope, function () {
+            removeAfterAnimate(backdropDomEl, backdropScope, function() {
               backdropScopeRef = null;
             });
             backdropDomEl = undefined;
@@ -60103,18 +61426,24 @@
       }
 
       function removeAfterAnimate(domEl, scope, done) {
-        // Closing animation
-        scope.animate = false;
-
-        if (domEl.attr('modal-animation') && $animate.enabled()) {
-          // transition out
-          domEl.one('$animate:close', function closeFn() {
-            $rootScope.$evalAsync(afterAnimating);
-          });
-        } else {
-          // Ensure this call is async
-          $timeout(afterAnimating);
-        }
+        var asyncDeferred;
+        var asyncPromise = null;
+        var setIsAsync = function() {
+          if (!asyncDeferred) {
+            asyncDeferred = $q.defer();
+            asyncPromise = asyncDeferred.promise;
+          }
+
+          return function asyncDone() {
+            asyncDeferred.resolve();
+          };
+        };
+        scope.$broadcast($modalStack.NOW_CLOSING_EVENT, setIsAsync);
+
+        // Note that it's intentional that asyncPromise might be null.
+        // That's when setIsAsync has not been called during the
+        // NOW_CLOSING_EVENT broadcast.
+        return $q.when(asyncPromise).then(afterAnimating);
 
         function afterAnimating() {
           if (afterAnimating.done) {
@@ -60122,7 +61451,15 @@
           }
           afterAnimating.done = true;
 
-          domEl.remove();
+          if ($animateCss) {
+            $animateCss(domEl, {
+              event: 'leave'
+            }).start().then(function() {
+              domEl.remove();
+            });
+          } else {
+            $animate.leave(domEl);
+          }
           scope.$destroy();
           if (done) {
             done();
@@ -60130,31 +61467,58 @@
         }
       }
 
-      $document.bind('keydown', function (evt) {
-        var modal;
-
-        if (evt.which === 27) {
-          modal = openedWindows.top();
-          if (modal && modal.value.keyboard) {
-            evt.preventDefault();
-            $rootScope.$apply(function () {
-              $modalStack.dismiss(modal.key, 'escape key press');
-            });
-          }
-        }
-      });
-
-      $modalStack.open = function (modalInstance, modal) {
-
-        var modalOpener = $document[0].activeElement;
+      $document.bind('keydown', function(evt) {
+        if (evt.isDefaultPrevented()) {
+          return evt;
+        }
+
+        var modal = openedWindows.top();
+        if (modal && modal.value.keyboard) {
+          switch (evt.which){
+            case 27: {
+              evt.preventDefault();
+              $rootScope.$apply(function() {
+                $modalStack.dismiss(modal.key, 'escape key press');
+              });
+              break;
+            }
+            case 9: {
+              $modalStack.loadFocusElementList(modal);
+              var focusChanged = false;
+              if (evt.shiftKey) {
+                if ($modalStack.isFocusInFirstItem(evt)) {
+                  focusChanged = $modalStack.focusLastFocusableElement();
+                }
+              } else {
+                if ($modalStack.isFocusInLastItem(evt)) {
+                  focusChanged = $modalStack.focusFirstFocusableElement();
+                }
+              }
+
+              if (focusChanged) {
+                evt.preventDefault();
+                evt.stopPropagation();
+              }
+              break;
+            }
+          }
+        }
+      });
+
+      $modalStack.open = function(modalInstance, modal) {
+        var modalOpener = $document[0].activeElement,
+          modalBodyClass = modal.openedClass || OPENED_MODAL_CLASS;
 
         openedWindows.add(modalInstance, {
           deferred: modal.deferred,
           renderDeferred: modal.renderDeferred,
           modalScope: modal.scope,
           backdrop: modal.backdrop,
-          keyboard: modal.keyboard
-        });
+          keyboard: modal.keyboard,
+          openedClass: modal.openedClass
+        });
+
+        openedClasses.put(modalBodyClass, modalInstance);
 
         var body = $document.find('body').eq(0),
             currBackdropIndex = backdropIndex();
@@ -60187,58 +61551,104 @@
         openedWindows.top().value.modalDomEl = modalDomEl;
         openedWindows.top().value.modalOpener = modalOpener;
         body.append(modalDomEl);
-        body.addClass(OPENED_MODAL_CLASS);
+        body.addClass(modalBodyClass);
+
+        $modalStack.clearFocusListCache();
       };
 
       function broadcastClosing(modalWindow, resultOrReason, closing) {
           return !modalWindow.value.modalScope.$broadcast('modal.closing', resultOrReason, closing).defaultPrevented;
       }
 
-      $modalStack.close = function (modalInstance, result) {
+      $modalStack.close = function(modalInstance, result) {
         var modalWindow = openedWindows.get(modalInstance);
         if (modalWindow && broadcastClosing(modalWindow, result, true)) {
+          modalWindow.value.modalScope.$$uibDestructionScheduled = true;
           modalWindow.value.deferred.resolve(result);
-          removeModalWindow(modalInstance);
-          modalWindow.value.modalOpener.focus();
+          removeModalWindow(modalInstance, modalWindow.value.modalOpener);
+          return true;
+        }
+        return !modalWindow;
+      };
+
+      $modalStack.dismiss = function(modalInstance, reason) {
+        var modalWindow = openedWindows.get(modalInstance);
+        if (modalWindow && broadcastClosing(modalWindow, reason, false)) {
+          modalWindow.value.modalScope.$$uibDestructionScheduled = true;
+          modalWindow.value.deferred.reject(reason);
+          removeModalWindow(modalInstance, modalWindow.value.modalOpener);
           return true;
         }
         return !modalWindow;
       };
 
-      $modalStack.dismiss = function (modalInstance, reason) {
-        var modalWindow = openedWindows.get(modalInstance);
-        if (modalWindow && broadcastClosing(modalWindow, reason, false)) {
-          modalWindow.value.deferred.reject(reason);
-          removeModalWindow(modalInstance);
-          modalWindow.value.modalOpener.focus();
-          return true;
-        }
-        return !modalWindow;
-      };
-
-      $modalStack.dismissAll = function (reason) {
+      $modalStack.dismissAll = function(reason) {
         var topModal = this.getTop();
         while (topModal && this.dismiss(topModal.key, reason)) {
           topModal = this.getTop();
         }
       };
 
-      $modalStack.getTop = function () {
+      $modalStack.getTop = function() {
         return openedWindows.top();
       };
 
-      $modalStack.modalRendered = function (modalInstance) {
+      $modalStack.modalRendered = function(modalInstance) {
         var modalWindow = openedWindows.get(modalInstance);
         if (modalWindow) {
           modalWindow.value.renderDeferred.resolve();
         }
       };
 
+      $modalStack.focusFirstFocusableElement = function() {
+        if (focusableElementList.length > 0) {
+          focusableElementList[0].focus();
+          return true;
+        }
+        return false;
+      };
+      $modalStack.focusLastFocusableElement = function() {
+        if (focusableElementList.length > 0) {
+          focusableElementList[focusableElementList.length - 1].focus();
+          return true;
+        }
+        return false;
+      };
+
+      $modalStack.isFocusInFirstItem = function(evt) {
+        if (focusableElementList.length > 0) {
+          return (evt.target || evt.srcElement) == focusableElementList[0];
+        }
+        return false;
+      };
+
+      $modalStack.isFocusInLastItem = function(evt) {
+        if (focusableElementList.length > 0) {
+          return (evt.target || evt.srcElement) == focusableElementList[focusableElementList.length - 1];
+        }
+        return false;
+      };
+
+      $modalStack.clearFocusListCache = function() {
+        focusableElementList = [];
+        focusIndex = 0;
+      };
+
+      $modalStack.loadFocusElementList = function(modalWindow) {
+        if (focusableElementList === undefined || !focusableElementList.length0) {
+          if (modalWindow) {
+            var modalDomE1 = modalWindow.value.modalDomEl;
+            if (modalDomE1 && modalDomE1.length) {
+              focusableElementList = modalDomE1[0].querySelectorAll(tababbleSelector);
+            }
+          }
+        }
+      };
+
       return $modalStack;
     }])
 
-  .provider('$modal', function () {
-
+  .provider('$modal', function() {
     var $modalProvider = {
       options: {
         animation: true,
@@ -60247,7 +61657,6 @@
       },
       $get: ['$injector', '$rootScope', '$q', '$templateRequest', '$controller', '$modalStack',
         function ($injector, $rootScope, $q, $templateRequest, $controller, $modalStack) {
-
           var $modal = {};
 
           function getTemplatePromise(options) {
@@ -60257,14 +61666,23 @@
 
           function getResolvePromises(resolves) {
             var promisesArr = [];
-            angular.forEach(resolves, function (value) {
+            angular.forEach(resolves, function(value) {
               if (angular.isFunction(value) || angular.isArray(value)) {
                 promisesArr.push($q.when($injector.invoke(value)));
+              } else if (angular.isString(value)) {
+                promisesArr.push($q.when($injector.get(value)));
+              } else {
+                promisesArr.push($q.when(value));
               }
             });
             return promisesArr;
           }
 
+          var promiseChain = null;
+          $modal.getPromiseChain = function() {
+            return promiseChain;
+          };
+
           $modal.open = function (modalOptions) {
 
             var modalResultDeferred = $q.defer();
@@ -60296,52 +61714,70 @@
             var templateAndResolvePromise =
               $q.all([getTemplatePromise(modalOptions)].concat(getResolvePromises(modalOptions.resolve)));
 
-
-            templateAndResolvePromise.then(function resolveSuccess(tplAndVars) {
-
-              var modalScope = (modalOptions.scope || $rootScope).$new();
-              modalScope.$close = modalInstance.close;
-              modalScope.$dismiss = modalInstance.dismiss;
-
-              var ctrlInstance, ctrlLocals = {};
-              var resolveIter = 1;
-
-              //controllers
-              if (modalOptions.controller) {
-                ctrlLocals.$scope = modalScope;
-                ctrlLocals.$modalInstance = modalInstance;
-                angular.forEach(modalOptions.resolve, function (value, key) {
-                  ctrlLocals[key] = tplAndVars[resolveIter++];
+            // Wait for the resolution of the existing promise chain.
+            // Then switch to our own combined promise dependency (regardless of how the previous modal fared).
+            // Then add to $modalStack and resolve opened.
+            // Finally clean up the chain variable if no subsequent modal has overwritten it.
+            var samePromise;
+            samePromise = promiseChain = $q.all([promiseChain])
+              .then(function() { return templateAndResolvePromise; }, function() { return templateAndResolvePromise; })
+              .then(function resolveSuccess(tplAndVars) {
+
+                var modalScope = (modalOptions.scope || $rootScope).$new();
+                modalScope.$close = modalInstance.close;
+                modalScope.$dismiss = modalInstance.dismiss;
+
+                modalScope.$on('$destroy', function() {
+                  if (!modalScope.$$uibDestructionScheduled) {
+                    modalScope.$dismiss('$uibUnscheduledDestruction');
+                  }
                 });
 
-                ctrlInstance = $controller(modalOptions.controller, ctrlLocals);
-                if (modalOptions.controllerAs) {
-                  modalScope[modalOptions.controllerAs] = ctrlInstance;
+                var ctrlInstance, ctrlLocals = {};
+                var resolveIter = 1;
+
+                //controllers
+                if (modalOptions.controller) {
+                  ctrlLocals.$scope = modalScope;
+                  ctrlLocals.$modalInstance = modalInstance;
+                  angular.forEach(modalOptions.resolve, function(value, key) {
+                    ctrlLocals[key] = tplAndVars[resolveIter++];
+                  });
+
+                  ctrlInstance = $controller(modalOptions.controller, ctrlLocals);
+                  if (modalOptions.controllerAs) {
+                    if (modalOptions.bindToController) {
+                      angular.extend(ctrlInstance, modalScope);
+                    }
+
+                    modalScope[modalOptions.controllerAs] = ctrlInstance;
+                  }
                 }
-              }
-
-              $modalStack.open(modalInstance, {
-                scope: modalScope,
-                deferred: modalResultDeferred,
-                renderDeferred: modalRenderDeferred,
-                content: tplAndVars[0],
-                animation: modalOptions.animation,
-                backdrop: modalOptions.backdrop,
-                keyboard: modalOptions.keyboard,
-                backdropClass: modalOptions.backdropClass,
-                windowClass: modalOptions.windowClass,
-                windowTemplateUrl: modalOptions.windowTemplateUrl,
-                size: modalOptions.size
-              });
+
+                $modalStack.open(modalInstance, {
+                  scope: modalScope,
+                  deferred: modalResultDeferred,
+                  renderDeferred: modalRenderDeferred,
+                  content: tplAndVars[0],
+                  animation: modalOptions.animation,
+                  backdrop: modalOptions.backdrop,
+                  keyboard: modalOptions.keyboard,
+                  backdropClass: modalOptions.backdropClass,
+                  windowClass: modalOptions.windowClass,
+                  windowTemplateUrl: modalOptions.windowTemplateUrl,
+                  size: modalOptions.size,
+                  openedClass: modalOptions.openedClass
+                });
+                modalOpenedDeferred.resolve(true);
 
             }, function resolveError(reason) {
+              modalOpenedDeferred.reject(reason);
               modalResultDeferred.reject(reason);
-            });
-
-            templateAndResolvePromise.then(function () {
-              modalOpenedDeferred.resolve(true);
-            }, function (reason) {
-              modalOpenedDeferred.reject(reason);
+            })
+            .finally(function() {
+              if (promiseChain === samePromise) {
+                promiseChain = null;
+              }
             });
 
             return modalInstance;
@@ -60355,8 +61791,7 @@
   });
 
 angular.module('ui.bootstrap.pagination', [])
-
-.controller('PaginationController', ['$scope', '$attrs', '$parse', function ($scope, $attrs, $parse) {
+.controller('PaginationController', ['$scope', '$attrs', '$parse', function($scope, $attrs, $parse) {
   var self = this,
       ngModelCtrl = { $setViewValue: angular.noop }, // nullModelCtrl
       setNumPages = $attrs.numPages ? $parse($attrs.numPages).assign : angular.noop;
@@ -60403,7 +61838,12 @@
   };
 
   $scope.selectPage = function(page, evt) {
-    if ( $scope.page !== page && page > 0 && page <= $scope.totalPages) {
+    if (evt) {
+      evt.preventDefault();
+    }
+
+    var clickAllowed = !$scope.ngDisabled || !evt;
+    if (clickAllowed && $scope.page !== page && page > 0 && page <= $scope.totalPages) {
       if (evt && evt.target) {
         evt.target.blur();
       }
@@ -60412,12 +61852,14 @@
     }
   };
 
-  $scope.getText = function( key ) {
+  $scope.getText = function(key) {
     return $scope[key + 'Text'] || self.config[key + 'Text'];
   };
+
   $scope.noPrevious = function() {
     return $scope.page === 1;
   };
+
   $scope.noNext = function() {
     return $scope.page === $scope.totalPages;
   };
@@ -60442,11 +61884,15 @@
       firstText: '@',
       previousText: '@',
       nextText: '@',
-      lastText: '@'
+      lastText: '@',
+      ngDisabled:'='
     },
     require: ['pagination', '?ngModel'],
     controller: 'PaginationController',
-    templateUrl: 'template/pagination/pagination.html',
+    controllerAs: 'pagination',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/pagination/pagination.html';
+    },
     replace: true,
     link: function(scope, element, attrs, ctrls) {
       var paginationCtrl = ctrls[0], ngModelCtrl = ctrls[1];
@@ -60484,11 +61930,11 @@
 
         // Default page limits
         var startPage = 1, endPage = totalPages;
-        var isMaxSized = ( angular.isDefined(maxSize) && maxSize < totalPages );
+        var isMaxSized = angular.isDefined(maxSize) && maxSize < totalPages;
 
         // recompute if maxSize
-        if ( isMaxSized ) {
-          if ( rotate ) {
+        if (isMaxSized) {
+          if (rotate) {
             // Current page is displayed in the middle of the visible ones
             startPage = Math.max(currentPage - Math.floor(maxSize/2), 1);
             endPage   = startPage + maxSize - 1;
@@ -60514,13 +61960,13 @@
         }
 
         // Add links to move between page sets
-        if ( isMaxSized && ! rotate ) {
-          if ( startPage > 1 ) {
+        if (isMaxSized && ! rotate) {
+          if (startPage > 1) {
             var previousPageSet = makePage(startPage - 1, '...', false);
             pages.unshift(previousPageSet);
           }
 
-          if ( endPage < totalPages ) {
+          if (endPage < totalPages) {
             var nextPageSet = makePage(endPage + 1, '...', false);
             pages.push(nextPageSet);
           }
@@ -60553,11 +61999,15 @@
     scope: {
       totalItems: '=',
       previousText: '@',
-      nextText: '@'
+      nextText: '@',
+      ngDisabled: '='
     },
     require: ['pager', '?ngModel'],
     controller: 'PaginationController',
-    templateUrl: 'template/pagination/pager.html',
+    controllerAs: 'pagination',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/pagination/pager.html';
+    },
     replace: true,
     link: function(scope, element, attrs, ctrls) {
       var paginationCtrl = ctrls[0], ngModelCtrl = ctrls[1];
@@ -60577,13 +62027,13 @@
  * function, placement as a function, inside, support for more triggers than
  * just mouse enter/leave, html tooltips, and selector delegation.
  */
-angular.module( 'ui.bootstrap.tooltip', [ 'ui.bootstrap.position', 'ui.bootstrap.bindHtml' ] )
+angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.bindHtml'])
 
 /**
  * The $tooltip service creates tooltip- and popover-like directives as well as
  * houses global options for them.
  */
-.provider( '$tooltip', function () {
+.provider('$tooltip', function() {
   // The default options tooltip and popover.
   var defaultOptions = {
     placement: 'top',
@@ -60596,7 +62046,8 @@
   var triggerMap = {
     'mouseenter': 'mouseleave',
     'click': 'click',
-    'focus': 'blur'
+    'focus': 'blur',
+    'none': ''
   };
 
   // The options specified to the provider globally.
@@ -60611,8 +62062,8 @@
    *     $tooltipProvider.options( { placement: 'left' } );
    *   });
    */
-	this.options = function( value ) {
-		angular.extend( globalOptions, value );
+	this.options = function(value) {
+		angular.extend(globalOptions, value);
 	};
 
   /**
@@ -60620,14 +62071,14 @@
    *
    *   $tooltipProvider.setTriggers( 'openTrigger': 'closeTrigger' );
    */
-  this.setTriggers = function setTriggers ( triggers ) {
-    angular.extend( triggerMap, triggers );
+  this.setTriggers = function setTriggers(triggers) {
+    angular.extend(triggerMap, triggers);
   };
 
   /**
    * This is a helper function for translating camel-case to snake-case.
    */
-  function snake_case(name){
+  function snake_case(name) {
     var regexp = /[A-Z]/g;
     var separator = '-';
     return name.replace(regexp, function(letter, pos) {
@@ -60639,9 +62090,9 @@
    * Returns the actual instance of the $tooltip service.
    * TODO support multiple triggers
    */
-  this.$get = [ '$window', '$compile', '$timeout', '$document', '$position', '$interpolate', function ( $window, $compile, $timeout, $document, $position, $interpolate ) {
-    return function $tooltip ( type, prefix, defaultTriggerShow, options ) {
-      options = angular.extend( {}, defaultOptions, globalOptions, options );
+  this.$get = ['$window', '$compile', '$timeout', '$document', '$position', '$interpolate', '$rootScope', '$parse', function($window, $compile, $timeout, $document, $position, $interpolate, $rootScope, $parse) {
+    return function $tooltip(type, prefix, defaultTriggerShow, options) {
+      options = angular.extend({}, defaultOptions, globalOptions, options);
 
       /**
        * Returns an object of show and hide triggers.
@@ -60657,16 +62108,18 @@
        * undefined; otherwise, it uses the `triggerMap` value of the show
        * trigger; else it will just use the show trigger.
        */
-      function getTriggers ( trigger ) {
-        var show = trigger || options.trigger || defaultTriggerShow;
-        var hide = triggerMap[show] || show;
+      function getTriggers(trigger) {
+        var show = (trigger || options.trigger || defaultTriggerShow).split(' ');
+        var hide = show.map(function(trigger) {
+          return triggerMap[trigger] || trigger;
+        });
         return {
           show: show,
           hide: hide
         };
       }
 
-      var directiveName = snake_case( type );
+      var directiveName = snake_case(type);
 
       var startSym = $interpolate.startSymbol();
       var endSym = $interpolate.endSymbol();
@@ -60686,28 +62139,45 @@
 
       return {
         restrict: 'EA',
-        compile: function (tElem, tAttrs) {
+        compile: function(tElem, tAttrs) {
           var tooltipLinker = $compile( template );
 
-          return function link ( scope, element, attrs, tooltipCtrl ) {
+          return function link(scope, element, attrs, tooltipCtrl) {
             var tooltip;
             var tooltipLinkedScope;
             var transitionTimeout;
             var popupTimeout;
-            var appendToBody = angular.isDefined( options.appendToBody ) ? options.appendToBody : false;
-            var triggers = getTriggers( undefined );
-            var hasEnableExp = angular.isDefined(attrs[prefix+'Enable']);
+            var positionTimeout;
+            var appendToBody = angular.isDefined(options.appendToBody) ? options.appendToBody : false;
+            var triggers = getTriggers(undefined);
+            var hasEnableExp = angular.isDefined(attrs[prefix + 'Enable']);
             var ttScope = scope.$new(true);
-
-            var positionTooltip = function () {
+            var repositionScheduled = false;
+            var isOpenExp = angular.isDefined(attrs[prefix + 'IsOpen']) ? $parse(attrs[prefix + 'IsOpen']) : false;
+
+            var positionTooltip = function() {
               if (!tooltip) { return; }
 
-              var ttPosition = $position.positionElements(element, tooltip, ttScope.placement, appendToBody);
-              ttPosition.top += 'px';
-              ttPosition.left += 'px';
-
-              // Now set the calculated positioning.
-              tooltip.css( ttPosition );
+              if (!positionTimeout) {
+                positionTimeout = $timeout(function() {
+                  // Reset the positioning and box size for correct width and height values.
+                  tooltip.css({ top: 0, left: 0, width: 'auto', height: 'auto' });
+
+                  var ttBox = $position.position(tooltip);
+                  var ttCss = $position.positionElements(element, tooltip, ttScope.placement, appendToBody);
+                  ttCss.top += 'px';
+                  ttCss.left += 'px';
+
+                  ttCss.width = ttBox.width + 'px';
+                  ttCss.height = ttBox.height + 'px';
+
+                  // Now set the calculated positioning and size.
+                  tooltip.css(ttCss);
+
+                  positionTimeout = null;
+
+                }, 0, false);
+              }
             };
 
             // Set up the correct scope to allow transclusion later
@@ -60717,8 +62187,8 @@
             // TODO add ability to start tooltip opened
             ttScope.isOpen = false;
 
-            function toggleTooltipBind () {
-              if ( ! ttScope.isOpen ) {
+            function toggleTooltipBind() {
+              if (!ttScope.isOpen) {
                 showTooltipBind();
               } else {
                 hideTooltipBind();
@@ -60727,77 +62197,82 @@
 
             // Show the tooltip with delay if specified, otherwise show it immediately
             function showTooltipBind() {
-              if(hasEnableExp && !scope.$eval(attrs[prefix+'Enable'])) {
+              if (hasEnableExp && !scope.$eval(attrs[prefix + 'Enable'])) {
                 return;
               }
 
               prepareTooltip();
 
-              if ( ttScope.popupDelay ) {
+              if (ttScope.popupDelay) {
                 // Do nothing if the tooltip was already scheduled to pop-up.
                 // This happens if show is triggered multiple times before any hide is triggered.
                 if (!popupTimeout) {
-                  popupTimeout = $timeout( show, ttScope.popupDelay, false );
-                  popupTimeout.then(function(reposition){reposition();});
+                  popupTimeout = $timeout(show, ttScope.popupDelay, false);
                 }
               } else {
-                show()();
+                show();
               }
             }
 
             function hideTooltipBind () {
-              scope.$apply(function () {
-                hide();
-              });
+              hide();
+              if (!$rootScope.$$phase) {
+                $rootScope.$digest();
+              }
             }
 
             // Show the tooltip popup element.
             function show() {
-
               popupTimeout = null;
 
               // If there is a pending remove transition, we must cancel it, lest the
               // tooltip be mysteriously removed.
-              if ( transitionTimeout ) {
-                $timeout.cancel( transitionTimeout );
+              if (transitionTimeout) {
+                $timeout.cancel(transitionTimeout);
                 transitionTimeout = null;
               }
 
               // Don't show empty tooltips.
-              if ( !(options.useContentExp ? ttScope.contentExp() : ttScope.content) ) {
+              if (!(options.useContentExp ? ttScope.contentExp() : ttScope.content)) {
                 return angular.noop;
               }
 
               createTooltip();
 
-              // Set the initial positioning.
-              tooltip.css({ top: 0, left: 0, display: 'block' });
-              ttScope.$digest();
+              // And show the tooltip.
+              ttScope.isOpen = true;
+              if (isOpenExp) {
+                isOpenExp.assign(ttScope.origScope, ttScope.isOpen);
+              }
+
+              if (!$rootScope.$$phase) {
+                ttScope.$apply(); // digest required as $apply is not called
+              }
+
+              tooltip.css({ display: 'block' });
 
               positionTooltip();
-
-              // And show the tooltip.
-              ttScope.isOpen = true;
-              ttScope.$apply(); // digest required as $apply is not called
-
-              // Return positioning function as promise callback for correct
-              // positioning after draw.
-              return positionTooltip;
             }
 
             // Hide the tooltip popup element.
             function hide() {
               // First things first: we don't show it anymore.
               ttScope.isOpen = false;
+              if (isOpenExp) {
+                isOpenExp.assign(ttScope.origScope, ttScope.isOpen);
+              }
 
               //if tooltip is going to be shown after delay, we must cancel this
-              $timeout.cancel( popupTimeout );
+              $timeout.cancel(popupTimeout);
               popupTimeout = null;
 
+              $timeout.cancel(positionTimeout);
+              positionTimeout = null;
+
               // And now we remove it from the DOM. However, if we have animation, we
               // need to wait for it to expire beforehand.
               // FIXME: this is a placeholder for a port of the transitions library.
-              if ( ttScope.animation ) {
+              if (ttScope.animation) {
                 if (!transitionTimeout) {
                   transitionTimeout = $timeout(removeTooltip, 500);
                 }
@@ -60812,24 +62287,33 @@
                 removeTooltip();
               }
               tooltipLinkedScope = ttScope.$new();
-              tooltip = tooltipLinker(tooltipLinkedScope, function (tooltip) {
-                if ( appendToBody ) {
-                  $document.find( 'body' ).append( tooltip );
+              tooltip = tooltipLinker(tooltipLinkedScope, function(tooltip) {
+                if (appendToBody) {
+                  $document.find('body').append(tooltip);
                 } else {
-                  element.after( tooltip );
+                  element.after(tooltip);
                 }
               });
 
-              tooltipLinkedScope.$watch(function () {
-                $timeout(positionTooltip, 0, false);
-              });
-
               if (options.useContentExp) {
-                tooltipLinkedScope.$watch('contentExp()', function (val) {
-                  if (!val && ttScope.isOpen ) {
+                tooltipLinkedScope.$watch('contentExp()', function(val) {
+                  if (!val && ttScope.isOpen) {
                     hide();
                   }
                 });
+
+                tooltipLinkedScope.$watch(function() {
+                  if (!repositionScheduled) {
+                    repositionScheduled = true;
+                    tooltipLinkedScope.$$postDigest(function() {
+                      repositionScheduled = false;
+                      if (ttScope.isOpen) {
+                        positionTooltip();
+                      }
+                    });
+                  }
+                });
+
               }
             }
 
@@ -60851,7 +62335,7 @@
               prepPopupDelay();
             }
 
-            ttScope.contentExp = function () {
+            ttScope.contentExp = function() {
               return scope.$eval(attrs[type]);
             };
 
@@ -60859,56 +62343,88 @@
              * Observe the relevant attributes.
              */
             if (!options.useContentExp) {
-              attrs.$observe( type, function ( val ) {
+              attrs.$observe(type, function(val) {
                 ttScope.content = val;
 
-                if (!val && ttScope.isOpen ) {
+                if (!val && ttScope.isOpen) {
                   hide();
+                } else {
+                  positionTooltip();
                 }
               });
             }
 
-            attrs.$observe( 'disabled', function ( val ) {
-              if (val && ttScope.isOpen ) {
+            attrs.$observe('disabled', function(val) {
+              if (popupTimeout && val) {
+                $timeout.cancel(popupTimeout);
+                popupTimeout = null;
+              }
+
+              if (val && ttScope.isOpen) {
                 hide();
               }
             });
 
-            attrs.$observe( prefix+'Title', function ( val ) {
+            attrs.$observe(prefix + 'Title', function(val) {
               ttScope.title = val;
+              positionTooltip();
             });
 
+            attrs.$observe(prefix + 'Placement', function() {
+              if (ttScope.isOpen) {
+                prepPlacement();
+                positionTooltip();
+              }
+            });
+
+            if (isOpenExp) {
+              scope.$watch(isOpenExp, function(val) {
+                if (val !== ttScope.isOpen) {
+                  toggleTooltipBind();
+                }
+              });
+            }
+
             function prepPopupClass() {
               ttScope.popupClass = attrs[prefix + 'Class'];
             }
 
             function prepPlacement() {
-              var val = attrs[ prefix + 'Placement' ];
-              ttScope.placement = angular.isDefined( val ) ? val : options.placement;
+              var val = attrs[prefix + 'Placement'];
+              ttScope.placement = angular.isDefined(val) ? val : options.placement;
             }
 
             function prepPopupDelay() {
-              var val = attrs[ prefix + 'PopupDelay' ];
-              var delay = parseInt( val, 10 );
-              ttScope.popupDelay = ! isNaN(delay) ? delay : options.popupDelay;
-            }
-
-            var unregisterTriggers = function () {
-              element.unbind(triggers.show, showTooltipBind);
-              element.unbind(triggers.hide, hideTooltipBind);
+              var val = attrs[prefix + 'PopupDelay'];
+              var delay = parseInt(val, 10);
+              ttScope.popupDelay = !isNaN(delay) ? delay : options.popupDelay;
+            }
+
+            var unregisterTriggers = function() {
+              triggers.show.forEach(function(trigger) {
+                element.unbind(trigger, showTooltipBind);
+              });
+              triggers.hide.forEach(function(trigger) {
+                element.unbind(trigger, hideTooltipBind);
+              });
             };
 
             function prepTriggers() {
-              var val = attrs[ prefix + 'Trigger' ];
+              var val = attrs[prefix + 'Trigger'];
               unregisterTriggers();
 
-              triggers = getTriggers( val );
-
-              if ( triggers.show === triggers.hide ) {
-                element.bind( triggers.show, toggleTooltipBind );
-              } else {
-                element.bind( triggers.show, showTooltipBind );
-                element.bind( triggers.hide, hideTooltipBind );
+              triggers = getTriggers(val);
+
+              if (triggers.show !== 'none') {
+                triggers.show.forEach(function(trigger, idx) {
+                  // Using raw addEventListener due to jqLite/jQuery bug - #4060
+                  if (trigger === triggers.hide[idx]) {
+                    element[0].addEventListener(trigger, toggleTooltipBind);
+                  } else if (trigger) {
+                    element[0].addEventListener(trigger, showTooltipBind);
+                    element[0].addEventListener(triggers.hide[idx], hideTooltipBind);
+                  }
+                });
               }
             }
             prepTriggers();
@@ -60922,18 +62438,19 @@
             // if a tooltip is attached to <body> we need to remove it on
             // location change as its parent scope will probably not be destroyed
             // by the change.
-            if ( appendToBody ) {
-              scope.$on('$locationChangeSuccess', function closeTooltipOnLocationChangeSuccess () {
-              if ( ttScope.isOpen ) {
-                hide();
-              }
-            });
+            if (appendToBody) {
+              scope.$on('$locationChangeSuccess', function closeTooltipOnLocationChangeSuccess() {
+                if (ttScope.isOpen) {
+                  hide();
+                }
+              });
             }
 
             // Make sure tooltip is destroyed and removed.
             scope.$on('$destroy', function onDestroyTooltip() {
-              $timeout.cancel( transitionTimeout );
-              $timeout.cancel( popupTimeout );
+              $timeout.cancel(transitionTimeout);
+              $timeout.cancel(popupTimeout);
+              $timeout.cancel(positionTimeout);
               unregisterTriggers();
               removeTooltip();
               ttScope = null;
@@ -60946,11 +62463,11 @@
 })
 
 // This is mostly ngInclude code but with a custom scope
-.directive( 'tooltipTemplateTransclude', [
+.directive('tooltipTemplateTransclude', [
          '$animate', '$sce', '$compile', '$templateRequest',
 function ($animate ,  $sce ,  $compile ,  $templateRequest) {
   return {
-    link: function ( scope, elem, attrs ) {
+    link: function(scope, elem, attrs) {
       var origScope = scope.$eval(attrs.tooltipTemplateTranscludeScope);
 
       var changeCounter = 0,
@@ -60976,7 +62493,7 @@
         }
       };
 
-      scope.$watch($sce.parseAsResourceUrl(attrs.tooltipTemplateTransclude), function (src) {
+      scope.$watch($sce.parseAsResourceUrl(attrs.tooltipTemplateTransclude), function(src) {
         var thisChangeId = ++changeCounter;
 
         if (src) {
@@ -61018,10 +62535,10 @@
  * They must not be animated as they're expected to be present on the tooltip on
  * initialization.
  */
-.directive('tooltipClasses', function () {
+.directive('tooltipClasses', function() {
   return {
     restrict: 'A',
-    link: function (scope, element, attrs) {
+    link: function(scope, element, attrs) {
       if (scope.placement) {
         element.addClass(scope.placement);
       }
@@ -61035,7 +62552,7 @@
   };
 })
 
-.directive( 'tooltipPopup', function () {
+.directive('tooltipPopup', function() {
   return {
     restrict: 'EA',
     replace: true,
@@ -61044,11 +62561,11 @@
   };
 })
 
-.directive( 'tooltip', [ '$tooltip', function ( $tooltip ) {
-  return $tooltip( 'tooltip', 'tooltip', 'mouseenter' );
+.directive('tooltip', [ '$tooltip', function($tooltip) {
+  return $tooltip('tooltip', 'tooltip', 'mouseenter');
 }])
 
-.directive( 'tooltipTemplatePopup', function () {
+.directive('tooltipTemplatePopup', function() {
   return {
     restrict: 'EA',
     replace: true,
@@ -61058,13 +62575,13 @@
   };
 })
 
-.directive( 'tooltipTemplate', [ '$tooltip', function ( $tooltip ) {
+.directive('tooltipTemplate', ['$tooltip', function($tooltip) {
   return $tooltip('tooltipTemplate', 'tooltip', 'mouseenter', {
     useContentExp: true
   });
 }])
 
-.directive( 'tooltipHtmlPopup', function () {
+.directive('tooltipHtmlPopup', function() {
   return {
     restrict: 'EA',
     replace: true,
@@ -61073,7 +62590,7 @@
   };
 })
 
-.directive( 'tooltipHtml', [ '$tooltip', function ( $tooltip ) {
+.directive('tooltipHtml', ['$tooltip', function($tooltip) {
   return $tooltip('tooltipHtml', 'tooltip', 'mouseenter', {
     useContentExp: true
   });
@@ -61082,7 +62599,7 @@
 /*
 Deprecated
 */
-.directive( 'tooltipHtmlUnsafePopup', function () {
+.directive('tooltipHtmlUnsafePopup', function() {
   return {
     restrict: 'EA',
     replace: true,
@@ -61092,23 +62609,23 @@
 })
 
 .value('tooltipHtmlUnsafeSuppressDeprecated', false)
-.directive( 'tooltipHtmlUnsafe', [
+.directive('tooltipHtmlUnsafe', [
           '$tooltip', 'tooltipHtmlUnsafeSuppressDeprecated', '$log',
-function ( $tooltip ,  tooltipHtmlUnsafeSuppressDeprecated ,  $log) {
+function($tooltip ,  tooltipHtmlUnsafeSuppressDeprecated ,  $log) {
   if (!tooltipHtmlUnsafeSuppressDeprecated) {
     $log.warn('tooltip-html-unsafe is now deprecated. Use tooltip-html or tooltip-template instead.');
   }
-  return $tooltip( 'tooltipHtmlUnsafe', 'tooltip', 'mouseenter' );
+  return $tooltip('tooltipHtmlUnsafe', 'tooltip', 'mouseenter');
 }]);
 
 /**
  * The following features are still outstanding: popup delay, animation as a
  * function, placement as a function, inside, support for more triggers than
- * just mouse enter/leave, html popovers, and selector delegatation.
- */
-angular.module( 'ui.bootstrap.popover', [ 'ui.bootstrap.tooltip' ] )
-
-.directive( 'popoverTemplatePopup', function () {
+ * just mouse enter/leave, and selector delegatation.
+ */
+angular.module( 'ui.bootstrap.popover', ['ui.bootstrap.tooltip'])
+
+.directive('popoverTemplatePopup', function() {
   return {
     restrict: 'EA',
     replace: true,
@@ -61118,13 +62635,28 @@
   };
 })
 
-.directive( 'popoverTemplate', [ '$tooltip', function ( $tooltip ) {
-  return $tooltip( 'popoverTemplate', 'popover', 'click', {
+.directive('popoverTemplate', ['$tooltip', function($tooltip) {
+  return $tooltip('popoverTemplate', 'popover', 'click', {
     useContentExp: true
-  } );
+  });
 }])
 
-.directive( 'popoverPopup', function () {
+.directive('popoverHtmlPopup', function() {
+  return {
+    restrict: 'EA',
+    replace: true,
+    scope: { contentExp: '&', title: '@', placement: '@', popupClass: '@', animation: '&', isOpen: '&' },
+    templateUrl: 'template/popover/popover-html.html'
+  };
+})
+
+.directive('popoverHtml', ['$tooltip', function($tooltip) {
+  return $tooltip( 'popoverHtml', 'popover', 'click', {
+    useContentExp: true
+  });
+}])
+
+.directive('popoverPopup', function() {
   return {
     restrict: 'EA',
     replace: true,
@@ -61133,7 +62665,7 @@
   };
 })
 
-.directive( 'popover', [ '$tooltip', function ( $tooltip ) {
+.directive('popover', ['$tooltip', function($tooltip) {
   return $tooltip( 'popover', 'popover', 'click' );
 }]);
 
@@ -61144,81 +62676,144 @@
   max: 100
 })
 
+.value('$progressSuppressWarning', false)
+
 .controller('ProgressController', ['$scope', '$attrs', 'progressConfig', function($scope, $attrs, progressConfig) {
-    var self = this,
-        animate = angular.isDefined($attrs.animate) ? $scope.$parent.$eval($attrs.animate) : progressConfig.animate;
-
-    this.bars = [];
-    $scope.max = angular.isDefined($scope.max) ? $scope.max : progressConfig.max;
-
-    this.addBar = function(bar, element) {
-        if ( !animate ) {
-            element.css({'transition': 'none'});
-        }
-
-        this.bars.push(bar);
-
-        bar.$watch('value', function( value ) {
-            bar.percent = +(100 * value / $scope.max).toFixed(2);
-        });
-
-        bar.$on('$destroy', function() {
-            element = null;
-            self.removeBar(bar);
-        });
-    };
-
-    this.removeBar = function(bar) {
-        this.bars.splice(this.bars.indexOf(bar), 1);
-    };
+  var self = this,
+      animate = angular.isDefined($attrs.animate) ? $scope.$parent.$eval($attrs.animate) : progressConfig.animate;
+
+  this.bars = [];
+  $scope.max = angular.isDefined($scope.max) ? $scope.max : progressConfig.max;
+
+  this.addBar = function(bar, element) {
+    if (!animate) {
+      element.css({'transition': 'none'});
+    }
+
+    this.bars.push(bar);
+
+    bar.max = $scope.max;
+
+    bar.$watch('value', function(value) {
+      bar.recalculatePercentage();
+    });
+
+    bar.recalculatePercentage = function() {
+      bar.percent = +(100 * bar.value / bar.max).toFixed(2);
+
+      var totalPercentage = self.bars.reduce(function(total, bar) {
+        return total + bar.percent;
+      }, 0);
+
+      if (totalPercentage > 100) {
+        bar.percent -= totalPercentage - 100;
+      }
+    };
+
+    bar.$on('$destroy', function() {
+      element = null;
+      self.removeBar(bar);
+    });
+  };
+
+  this.removeBar = function(bar) {
+      this.bars.splice(this.bars.indexOf(bar), 1);
+  };
+
+  $scope.$watch('max', function(max) {
+    self.bars.forEach(function(bar) {
+      bar.max = $scope.max;
+      bar.recalculatePercentage();
+    });
+  });
 }])
 
-.directive('progress', function() {
-    return {
-        restrict: 'EA',
-        replace: true,
-        transclude: true,
-        controller: 'ProgressController',
-        require: 'progress',
-        scope: {},
-        templateUrl: 'template/progressbar/progress.html'
-    };
+.directive('uibProgress', function() {
+  return {
+    restrict: 'EA',
+    replace: true,
+    transclude: true,
+    controller: 'ProgressController',
+    require: 'uibProgress',
+    scope: {
+      max: '=?'
+    },
+    templateUrl: 'template/progressbar/progress.html'
+  };
 })
 
-.directive('bar', function() {
-    return {
-        restrict: 'EA',
-        replace: true,
-        transclude: true,
-        require: '^progress',
-        scope: {
-            value: '=',
-            max: '=?',
-            type: '@'
-        },
-        templateUrl: 'template/progressbar/bar.html',
-        link: function(scope, element, attrs, progressCtrl) {
-            progressCtrl.addBar(scope, element);
-        }
-    };
+.directive('progress', ['$log', '$progressSuppressWarning', function($log, $progressSuppressWarning) {
+  return {
+    restrict: 'EA',
+    replace: true,
+    transclude: true,
+    controller: 'ProgressController',
+    require: 'progress',
+    scope: {
+      max: '=?'
+    },
+    templateUrl: 'template/progressbar/progress.html',
+    link: function() {
+      if ($progressSuppressWarning) {
+        $log.warn('progress is now deprecated. Use uib-progress instead');
+      }
+    }
+  };
+}])
+
+.directive('uibBar', function() {
+  return {
+    restrict: 'EA',
+    replace: true,
+    transclude: true,
+    require: '^uibProgress',
+    scope: {
+      value: '=',
+      type: '@'
+    },
+    templateUrl: 'template/progressbar/bar.html',
+    link: function(scope, element, attrs, progressCtrl) {
+      progressCtrl.addBar(scope, element);
+    }
+  };
 })
 
+.directive('bar', ['$log', '$progressSuppressWarning', function($log, $progressSuppressWarning) {
+  return {
+    restrict: 'EA',
+    replace: true,
+    transclude: true,
+    require: '^progress',
+    scope: {
+      value: '=',
+      type: '@'
+    },
+    templateUrl: 'template/progressbar/bar.html',
+    link: function(scope, element, attrs, progressCtrl) {
+      if ($progressSuppressWarning) {
+        $log.warn('bar is now deprecated. Use uib-bar instead');
+      }
+      progressCtrl.addBar(scope, element);
+    }
+  };
+}])
+
 .directive('progressbar', function() {
-    return {
-        restrict: 'EA',
-        replace: true,
-        transclude: true,
-        controller: 'ProgressController',
-        scope: {
-            value: '=',
-            max: '=?',
-            type: '@'
-        },
-        templateUrl: 'template/progressbar/progressbar.html',
-        link: function(scope, element, attrs, progressCtrl) {
-            progressCtrl.addBar(scope, angular.element(element.children()[0]));
-        }
-    };
+  return {
+    restrict: 'EA',
+    replace: true,
+    transclude: true,
+    controller: 'ProgressController',
+    scope: {
+      value: '=',
+      max: '=?',
+      type: '@'
+    },
+    templateUrl: 'template/progressbar/progressbar.html',
+    link: function(scope, element, attrs, progressCtrl) {
+      progressCtrl.addBar(scope, angular.element(element.children()[0]));
+    }
+  };
 });
 
 angular.module('ui.bootstrap.rating', [])
@@ -61226,7 +62821,8 @@
 .constant('ratingConfig', {
   max: 5,
   stateOn: null,
-  stateOff: null
+  stateOff: null,
+  titles : ['one', 'two', 'three', 'four', 'five']
 })
 
 .controller('RatingController', ['$scope', '$attrs', 'ratingConfig', function($scope, $attrs, ratingConfig) {
@@ -61245,28 +62841,40 @@
 
     this.stateOn = angular.isDefined($attrs.stateOn) ? $scope.$parent.$eval($attrs.stateOn) : ratingConfig.stateOn;
     this.stateOff = angular.isDefined($attrs.stateOff) ? $scope.$parent.$eval($attrs.stateOff) : ratingConfig.stateOff;
-
-    var ratingStates = angular.isDefined($attrs.ratingStates) ? $scope.$parent.$eval($attrs.ratingStates) :
-                        new Array( angular.isDefined($attrs.max) ? $scope.$parent.$eval($attrs.max) : ratingConfig.max );
+    var tmpTitles = angular.isDefined($attrs.titles)  ? $scope.$parent.$eval($attrs.titles) : ratingConfig.titles ;    
+    this.titles = angular.isArray(tmpTitles) && tmpTitles.length > 0 ?
+      tmpTitles : ratingConfig.titles;
+    
+    var ratingStates = angular.isDefined($attrs.ratingStates) ?
+      $scope.$parent.$eval($attrs.ratingStates) :
+      new Array(angular.isDefined($attrs.max) ? $scope.$parent.$eval($attrs.max) : ratingConfig.max);
     $scope.range = this.buildTemplateObjects(ratingStates);
   };
 
   this.buildTemplateObjects = function(states) {
     for (var i = 0, n = states.length; i < n; i++) {
-      states[i] = angular.extend({ index: i }, { stateOn: this.stateOn, stateOff: this.stateOff }, states[i]);
+      states[i] = angular.extend({ index: i }, { stateOn: this.stateOn, stateOff: this.stateOff, title: this.getTitle(i) }, states[i]);
     }
     return states;
   };
-
+  
+  this.getTitle = function(index) {
+    if (index >= this.titles.length) {
+      return index + 1;
+    } else {
+      return this.titles[index];
+    }
+  };
+  
   $scope.rate = function(value) {
-    if ( !$scope.readonly && value >= 0 && value <= $scope.range.length ) {
-      ngModelCtrl.$setViewValue(value);
+    if (!$scope.readonly && value >= 0 && value <= $scope.range.length) {
+      ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue === value ? 0 : value);
       ngModelCtrl.$render();
     }
   };
 
   $scope.enter = function(value) {
-    if ( !$scope.readonly ) {
+    if (!$scope.readonly) {
       $scope.value = value;
     }
     $scope.onHover({value: value});
@@ -61281,7 +62889,7 @@
     if (/(37|38|39|40)/.test(evt.which)) {
       evt.preventDefault();
       evt.stopPropagation();
-      $scope.rate( $scope.value + (evt.which === 38 || evt.which === 39 ? 1 : -1) );
+      $scope.rate($scope.value + (evt.which === 38 || evt.which === 39 ? 1 : -1));
     }
   };
 
@@ -61309,6 +62917,7 @@
   };
 });
 
+
 /**
  * @ngdoc overview
  * @name ui.bootstrap.tabs
@@ -61328,10 +62937,15 @@
       if (tab.active && tab !== selectedTab) {
         tab.active = false;
         tab.onDeselect();
+        selectedTab.selectCalled = false;
       }
     });
     selectedTab.active = true;
-    selectedTab.onSelect();
+    // only call select if it has not already been called
+    if (!selectedTab.selectCalled) {
+      selectedTab.onSelect();
+      selectedTab.selectCalled = true;
+    }
   };
 
   ctrl.addTab = function addTab(tab) {
@@ -61342,8 +62956,7 @@
       tab.active = true;
     } else if (tab.active) {
       ctrl.select(tab);
-    }
-    else {
+    } else {
       tab.active = false;
     }
   };
@@ -61509,52 +63122,50 @@
     controller: function() {
       //Empty controller so other directives can require being 'under' a tab
     },
-    compile: function(elm, attrs, transclude) {
-      return function postLink(scope, elm, attrs, tabsetCtrl) {
-        scope.$watch('active', function(active) {
-          if (active) {
-            tabsetCtrl.select(scope);
-          }
-        });
-
-        scope.disabled = false;
-        if ( attrs.disable ) {
-          scope.$parent.$watch($parse(attrs.disable), function(value) {
-            scope.disabled = !! value;
-          });
-        }
-
-        // Deprecation support of "disabled" parameter
-        // fix(tab): IE9 disabled attr renders grey text on enabled tab #2677
-        // This code is duplicated from the lines above to make it easy to remove once
-        // the feature has been completely deprecated
-        if ( attrs.disabled ) {
-          $log.warn('Use of "disabled" attribute has been deprecated, please use "disable"');
-          scope.$parent.$watch($parse(attrs.disabled), function(value) {
-            scope.disabled = !! value;
-          });
-        }
-
-        scope.select = function() {
-          if ( !scope.disabled ) {
-            scope.active = true;
-          }
-        };
-
-        tabsetCtrl.addTab(scope);
-        scope.$on('$destroy', function() {
-          tabsetCtrl.removeTab(scope);
-        });
-
-        //We need to transclude later, once the content container is ready.
-        //when this link happens, we're inside a tab heading.
-        scope.$transcludeFn = transclude;
-      };
+    link: function(scope, elm, attrs, tabsetCtrl, transclude) {
+      scope.$watch('active', function(active) {
+        if (active) {
+          tabsetCtrl.select(scope);
+        }
+      });
+
+      scope.disabled = false;
+      if (attrs.disable) {
+        scope.$parent.$watch($parse(attrs.disable), function(value) {
+          scope.disabled = !! value;
+        });
+      }
+
+      // Deprecation support of "disabled" parameter
+      // fix(tab): IE9 disabled attr renders grey text on enabled tab #2677
+      // This code is duplicated from the lines above to make it easy to remove once
+      // the feature has been completely deprecated
+      if (attrs.disabled) {
+        $log.warn('Use of "disabled" attribute has been deprecated, please use "disable"');
+        scope.$parent.$watch($parse(attrs.disabled), function(value) {
+          scope.disabled = !! value;
+        });
+      }
+
+      scope.select = function() {
+        if (!scope.disabled) {
+          scope.active = true;
+        }
+      };
+
+      tabsetCtrl.addTab(scope);
+      scope.$on('$destroy', function() {
+        tabsetCtrl.removeTab(scope);
+      });
+
+      //We need to transclude later, once the content container is ready.
+      //when this link happens, we're inside a tab heading.
+      scope.$transcludeFn = transclude;
     }
   };
 }])
 
-.directive('tabHeadingTransclude', [function() {
+.directive('tabHeadingTransclude', function() {
   return {
     restrict: 'A',
     require: '^tab',
@@ -61567,7 +63178,7 @@
       });
     }
   };
-}])
+})
 
 .directive('tabContentTransclude', function() {
   return {
@@ -61590,17 +63201,18 @@
       });
     }
   };
+
   function isTabHeading(node) {
-    return node.tagName &&  (
+    return node.tagName && (
       node.hasAttribute('tab-heading') ||
       node.hasAttribute('data-tab-heading') ||
+      node.hasAttribute('x-tab-heading') ||
       node.tagName.toLowerCase() === 'tab-heading' ||
-      node.tagName.toLowerCase() === 'data-tab-heading'
+      node.tagName.toLowerCase() === 'data-tab-heading' ||
+      node.tagName.toLowerCase() === 'x-tab-heading'
     );
   }
-})
-
-;
+});
 
 angular.module('ui.bootstrap.timepicker', [])
 
@@ -61611,7 +63223,8 @@
   meridians: null,
   readonlyInput: false,
   mousewheel: true,
-  arrowkeys: true
+  arrowkeys: true,
+  showSpinners: true
 })
 
 .controller('TimepickerController', ['$scope', '$attrs', '$parse', '$log', '$locale', 'timepickerConfig', function($scope, $attrs, $parse, $log, $locale, timepickerConfig) {
@@ -61619,29 +63232,29 @@
       ngModelCtrl = { $setViewValue: angular.noop }, // nullModelCtrl
       meridians = angular.isDefined($attrs.meridians) ? $scope.$parent.$eval($attrs.meridians) : timepickerConfig.meridians || $locale.DATETIME_FORMATS.AMPMS;
 
-  this.init = function( ngModelCtrl_, inputs ) {
+  this.init = function(ngModelCtrl_, inputs) {
     ngModelCtrl = ngModelCtrl_;
     ngModelCtrl.$render = this.render;
 
-    ngModelCtrl.$formatters.unshift(function (modelValue) {
-      return modelValue ? new Date( modelValue ) : null;
+    ngModelCtrl.$formatters.unshift(function(modelValue) {
+      return modelValue ? new Date(modelValue) : null;
     });
 
     var hoursInputEl = inputs.eq(0),
         minutesInputEl = inputs.eq(1);
 
     var mousewheel = angular.isDefined($attrs.mousewheel) ? $scope.$parent.$eval($attrs.mousewheel) : timepickerConfig.mousewheel;
-    if ( mousewheel ) {
-      this.setupMousewheelEvents( hoursInputEl, minutesInputEl );
+    if (mousewheel) {
+      this.setupMousewheelEvents(hoursInputEl, minutesInputEl);
     }
 
     var arrowkeys = angular.isDefined($attrs.arrowkeys) ? $scope.$parent.$eval($attrs.arrowkeys) : timepickerConfig.arrowkeys;
     if (arrowkeys) {
-      this.setupArrowkeyEvents( hoursInputEl, minutesInputEl );
+      this.setupArrowkeyEvents(hoursInputEl, minutesInputEl);
     }
 
     $scope.readonlyInput = angular.isDefined($attrs.readonlyInput) ? $scope.$parent.$eval($attrs.readonlyInput) : timepickerConfig.readonlyInput;
-    this.setupInputEvents( hoursInputEl, minutesInputEl );
+    this.setupInputEvents(hoursInputEl, minutesInputEl);
   };
 
   var hourStep = timepickerConfig.hourStep;
@@ -61658,17 +63271,61 @@
     });
   }
 
+  var min;
+  $scope.$parent.$watch($parse($attrs.min), function(value) {
+    var dt = new Date(value);
+    min = isNaN(dt) ? undefined : dt;
+  });
+
+  var max;
+  $scope.$parent.$watch($parse($attrs.max), function(value) {
+    var dt = new Date(value);
+    max = isNaN(dt) ? undefined : dt;
+  });
+
+  $scope.noIncrementHours = function() {
+    var incrementedSelected = addMinutes(selected, hourStep * 60);
+    return incrementedSelected > max ||
+      (incrementedSelected < selected && incrementedSelected < min);
+  };
+
+  $scope.noDecrementHours = function() {
+    var decrementedSelected = addMinutes(selected, -hourStep * 60);
+    return decrementedSelected < min ||
+      (decrementedSelected > selected && decrementedSelected > max);
+  };
+
+  $scope.noIncrementMinutes = function() {
+    var incrementedSelected = addMinutes(selected, minuteStep);
+    return incrementedSelected > max ||
+      (incrementedSelected < selected && incrementedSelected < min);
+  };
+
+  $scope.noDecrementMinutes = function() {
+    var decrementedSelected = addMinutes(selected, -minuteStep);
+    return decrementedSelected < min ||
+      (decrementedSelected > selected && decrementedSelected > max);
+  };
+
+  $scope.noToggleMeridian = function() {
+    if (selected.getHours() < 13) {
+      return addMinutes(selected, 12 * 60) > max;
+    } else {
+      return addMinutes(selected, -12 * 60) < min;
+    }
+  };
+
   // 12H / 24H mode
   $scope.showMeridian = timepickerConfig.showMeridian;
   if ($attrs.showMeridian) {
     $scope.$parent.$watch($parse($attrs.showMeridian), function(value) {
       $scope.showMeridian = !!value;
 
-      if ( ngModelCtrl.$error.time ) {
+      if (ngModelCtrl.$error.time) {
         // Evaluate from template
         var hours = getHoursFromTemplate(), minutes = getMinutesFromTemplate();
-        if (angular.isDefined( hours ) && angular.isDefined( minutes )) {
-          selected.setHours( hours );
+        if (angular.isDefined(hours) && angular.isDefined(minutes)) {
+          selected.setHours(hours);
           refresh();
         }
       } else {
@@ -61678,18 +63335,18 @@
   }
 
   // Get $scope.hours in 24H mode if valid
-  function getHoursFromTemplate ( ) {
-    var hours = parseInt( $scope.hours, 10 );
-    var valid = ( $scope.showMeridian ) ? (hours > 0 && hours < 13) : (hours >= 0 && hours < 24);
-    if ( !valid ) {
+  function getHoursFromTemplate() {
+    var hours = parseInt($scope.hours, 10);
+    var valid = $scope.showMeridian ? (hours > 0 && hours < 13) : (hours >= 0 && hours < 24);
+    if (!valid) {
       return undefined;
     }
 
-    if ( $scope.showMeridian ) {
-      if ( hours === 12 ) {
+    if ($scope.showMeridian) {
+      if (hours === 12) {
         hours = 0;
       }
-      if ( $scope.meridian === meridians[1] ) {
+      if ($scope.meridian === meridians[1]) {
         hours = hours + 12;
       }
     }
@@ -61698,15 +63355,15 @@
 
   function getMinutesFromTemplate() {
     var minutes = parseInt($scope.minutes, 10);
-    return ( minutes >= 0 && minutes < 60 ) ? minutes : undefined;
-  }
-
-  function pad( value ) {
-    return ( angular.isDefined(value) && value.toString().length < 2 ) ? '0' + value : value.toString();
+    return (minutes >= 0 && minutes < 60) ? minutes : undefined;
+  }
+
+  function pad(value) {
+    return (angular.isDefined(value) && value.toString().length < 2) ? '0' + value : value.toString();
   }
 
   // Respond on mousewheel spin
-  this.setupMousewheelEvents = function( hoursInputEl, minutesInputEl ) {
+  this.setupMousewheelEvents = function(hoursInputEl, minutesInputEl) {
     var isScrollingUp = function(e) {
       if (e.originalEvent) {
         e = e.originalEvent;
@@ -61717,26 +63374,25 @@
     };
 
     hoursInputEl.bind('mousewheel wheel', function(e) {
-      $scope.$apply( (isScrollingUp(e)) ? $scope.incrementHours() : $scope.decrementHours() );
+      $scope.$apply(isScrollingUp(e) ? $scope.incrementHours() : $scope.decrementHours());
       e.preventDefault();
     });
 
     minutesInputEl.bind('mousewheel wheel', function(e) {
-      $scope.$apply( (isScrollingUp(e)) ? $scope.incrementMinutes() : $scope.decrementMinutes() );
+      $scope.$apply(isScrollingUp(e) ? $scope.incrementMinutes() : $scope.decrementMinutes());
       e.preventDefault();
     });
 
   };
 
   // Respond on up/down arrowkeys
-  this.setupArrowkeyEvents = function( hoursInputEl, minutesInputEl ) {
+  this.setupArrowkeyEvents = function(hoursInputEl, minutesInputEl) {
     hoursInputEl.bind('keydown', function(e) {
-      if ( e.which === 38 ) { // up
+      if (e.which === 38) { // up
         e.preventDefault();
         $scope.incrementHours();
         $scope.$apply();
-      }
-      else if ( e.which === 40 ) { // down
+      } else if (e.which === 40) { // down
         e.preventDefault();
         $scope.decrementHours();
         $scope.$apply();
@@ -61744,12 +63400,11 @@
     });
 
     minutesInputEl.bind('keydown', function(e) {
-      if ( e.which === 38 ) { // up
+      if (e.which === 38) { // up
         e.preventDefault();
         $scope.incrementMinutes();
         $scope.$apply();
-      }
-      else if ( e.which === 40 ) { // down
+      } else if (e.which === 40) { // down
         e.preventDefault();
         $scope.decrementMinutes();
         $scope.$apply();
@@ -61757,15 +63412,15 @@
     });
   };
 
-  this.setupInputEvents = function( hoursInputEl, minutesInputEl ) {
-    if ( $scope.readonlyInput ) {
+  this.setupInputEvents = function(hoursInputEl, minutesInputEl) {
+    if ($scope.readonlyInput) {
       $scope.updateHours = angular.noop;
       $scope.updateMinutes = angular.noop;
       return;
     }
 
     var invalidate = function(invalidHours, invalidMinutes) {
-      ngModelCtrl.$setViewValue( null );
+      ngModelCtrl.$setViewValue(null);
       ngModelCtrl.$setValidity('time', false);
       if (angular.isDefined(invalidHours)) {
         $scope.invalidHours = invalidHours;
@@ -61776,39 +63431,49 @@
     };
 
     $scope.updateHours = function() {
-      var hours = getHoursFromTemplate();
-
-      if ( angular.isDefined(hours) ) {
-        selected.setHours( hours );
-        refresh( 'h' );
+      var hours = getHoursFromTemplate(),
+        minutes = getMinutesFromTemplate();
+
+      if (angular.isDefined(hours) && angular.isDefined(minutes)) {
+        selected.setHours(hours);
+        if (selected < min || selected > max) {
+          invalidate(true);
+        } else {
+          refresh('h');
+        }
       } else {
         invalidate(true);
       }
     };
 
     hoursInputEl.bind('blur', function(e) {
-      if ( !$scope.invalidHours && $scope.hours < 10) {
-        $scope.$apply( function() {
-          $scope.hours = pad( $scope.hours );
+      if (!$scope.invalidHours && $scope.hours < 10) {
+        $scope.$apply(function() {
+          $scope.hours = pad($scope.hours);
         });
       }
     });
 
     $scope.updateMinutes = function() {
-      var minutes = getMinutesFromTemplate();
-
-      if ( angular.isDefined(minutes) ) {
-        selected.setMinutes( minutes );
-        refresh( 'm' );
+      var minutes = getMinutesFromTemplate(),
+        hours = getHoursFromTemplate();
+
+      if (angular.isDefined(minutes) && angular.isDefined(hours)) {
+        selected.setMinutes(minutes);
+        if (selected < min || selected > max) {
+          invalidate(undefined, true);
+        } else {
+          refresh('m');
+        }
       } else {
         invalidate(undefined, true);
       }
     };
 
     minutesInputEl.bind('blur', function(e) {
-      if ( !$scope.invalidMinutes && $scope.minutes < 10 ) {
-        $scope.$apply( function() {
-          $scope.minutes = pad( $scope.minutes );
+      if (!$scope.invalidMinutes && $scope.minutes < 10) {
+        $scope.$apply(function() {
+          $scope.minutes = pad($scope.minutes);
         });
       }
     });
@@ -61818,23 +63483,30 @@
   this.render = function() {
     var date = ngModelCtrl.$viewValue;
 
-    if ( isNaN(date) ) {
+    if (isNaN(date)) {
       ngModelCtrl.$setValidity('time', false);
       $log.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');
     } else {
-      if ( date ) {
+      if (date) {
         selected = date;
       }
-      makeValid();
+
+      if (selected < min || selected > max) {
+        ngModelCtrl.$setValidity('time', false);
+        $scope.invalidHours = true;
+        $scope.invalidMinutes = true;
+      } else {
+        makeValid();
+      }
       updateTemplate();
     }
   };
 
   // Call internally when we know that model is valid.
-  function refresh( keyboardChange ) {
+  function refresh(keyboardChange) {
     makeValid();
-    ngModelCtrl.$setViewValue( new Date(selected) );
-    updateTemplate( keyboardChange );
+    ngModelCtrl.$setViewValue(new Date(selected));
+    updateTemplate(keyboardChange);
   }
 
   function makeValid() {
@@ -61843,11 +63515,11 @@
     $scope.invalidMinutes = false;
   }
 
-  function updateTemplate( keyboardChange ) {
+  function updateTemplate(keyboardChange) {
     var hours = selected.getHours(), minutes = selected.getMinutes();
 
-    if ( $scope.showMeridian ) {
-      hours = ( hours === 0 || hours === 12 ) ? 12 : hours % 12; // Convert 24 to 12 hour system
+    if ($scope.showMeridian) {
+      hours = (hours === 0 || hours === 12) ? 12 : hours % 12; // Convert 24 to 12 hour system
     }
 
     $scope.hours = keyboardChange === 'h' ? hours : pad(hours);
@@ -61857,42 +63529,68 @@
     $scope.meridian = selected.getHours() < 12 ? meridians[0] : meridians[1];
   }
 
-  function addMinutes( minutes ) {
-    var dt = new Date( selected.getTime() + minutes * 60000 );
-    selected.setHours( dt.getHours(), dt.getMinutes() );
+  function addMinutes(date, minutes) {
+    var dt = new Date(date.getTime() + minutes * 60000);
+    var newDate = new Date(date);
+    newDate.setHours(dt.getHours(), dt.getMinutes());
+    return newDate;
+  }
+
+  function addMinutesToSelected(minutes) {
+    selected = addMinutes(selected, minutes);
     refresh();
   }
 
+  $scope.showSpinners = angular.isDefined($attrs.showSpinners) ?
+    $scope.$parent.$eval($attrs.showSpinners) : timepickerConfig.showSpinners;
+
   $scope.incrementHours = function() {
-    addMinutes( hourStep * 60 );
-  };
+    if (!$scope.noIncrementHours()) {
+      addMinutesToSelected(hourStep * 60);
+    }
+  };
+
   $scope.decrementHours = function() {
-    addMinutes( - hourStep * 60 );
-  };
+    if (!$scope.noDecrementHours()) {
+      addMinutesToSelected(-hourStep * 60);
+    }
+  };
+
   $scope.incrementMinutes = function() {
-    addMinutes( minuteStep );
-  };
+    if (!$scope.noIncrementMinutes()) {
+      addMinutesToSelected(minuteStep);
+    }
+  };
+
   $scope.decrementMinutes = function() {
-    addMinutes( - minuteStep );
-  };
+    if (!$scope.noDecrementMinutes()) {
+      addMinutesToSelected(-minuteStep);
+    }
+  };
+
   $scope.toggleMeridian = function() {
-    addMinutes( 12 * 60 * (( selected.getHours() < 12 ) ? 1 : -1) );
+    if (!$scope.noToggleMeridian()) {
+      addMinutesToSelected(12 * 60 * (selected.getHours() < 12 ? 1 : -1));
+    }
   };
 }])
 
-.directive('timepicker', function () {
+.directive('timepicker', function() {
   return {
     restrict: 'EA',
     require: ['timepicker', '?^ngModel'],
     controller:'TimepickerController',
+    controllerAs: 'timepicker',
     replace: true,
     scope: {},
-    templateUrl: 'template/timepicker/timepicker.html',
+    templateUrl: function(element, attrs) {
+      return attrs.templateUrl || 'template/timepicker/timepicker.html';
+    },
     link: function(scope, element, attrs, ctrls) {
       var timepickerCtrl = ctrls[0], ngModelCtrl = ctrls[1];
 
-      if ( ngModelCtrl ) {
-        timepickerCtrl.init( ngModelCtrl, element.find('input') );
+      if (ngModelCtrl) {
+        timepickerCtrl.init(ngModelCtrl, element.find('input'));
       }
     }
   };
@@ -61988,20 +63686,19 @@
   return $transition;
 }]);
 
-angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.position', 'ui.bootstrap.bindHtml'])
+angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.position'])
 
 /**
  * A helper service that can parse typeahead's syntax (string provided by users)
  * Extracted to a separate service for ease of unit testing
  */
-  .factory('typeaheadParser', ['$parse', function ($parse) {
+  .factory('typeaheadParser', ['$parse', function($parse) {
 
   //                      00000111000000000000022200000000000000003333333333333330000000000044000
   var TYPEAHEAD_REGEXP = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;
 
   return {
-    parse:function (input) {
-
+    parse: function(input) {
       var match = input.match(TYPEAHEAD_REGEXP);
       if (!match) {
         throw new Error(
@@ -62019,369 +63716,470 @@
   };
 }])
 
-  .directive('typeahead', ['$compile', '$parse', '$q', '$timeout', '$document', '$position', 'typeaheadParser',
-    function ($compile, $parse, $q, $timeout, $document, $position, typeaheadParser) {
-
-  var HOT_KEYS = [9, 13, 27, 38, 40];
-
-  return {
-    require:'ngModel',
-    link:function (originalScope, element, attrs, modelCtrl) {
-
-      //SUPPORTED ATTRIBUTES (OPTIONS)
-
-      //minimal no of characters that needs to be entered before typeahead kicks-in
-      var minSearch = originalScope.$eval(attrs.typeaheadMinLength) || 1;
-
-      //minimal wait time after last character typed before typeahead kicks-in
-      var waitTime = originalScope.$eval(attrs.typeaheadWaitMs) || 0;
-
-      //should it restrict model values to the ones selected from the popup only?
-      var isEditable = originalScope.$eval(attrs.typeaheadEditable) !== false;
-
-      //binding to a variable that indicates if matches are being retrieved asynchronously
-      var isLoadingSetter = $parse(attrs.typeaheadLoading).assign || angular.noop;
-
-      //a callback executed when a match is selected
-      var onSelectCallback = $parse(attrs.typeaheadOnSelect);
-
-      var inputFormatter = attrs.typeaheadInputFormatter ? $parse(attrs.typeaheadInputFormatter) : undefined;
-
-      var appendToBody =  attrs.typeaheadAppendToBody ? originalScope.$eval(attrs.typeaheadAppendToBody) : false;
-
-      var focusFirst = originalScope.$eval(attrs.typeaheadFocusFirst) !== false;
-
-      //INTERNAL VARIABLES
-
-      //model setter executed upon match selection
-      var $setModelValue = $parse(attrs.ngModel).assign;
-
-      //expressions used by typeahead
-      var parserResult = typeaheadParser.parse(attrs.typeahead);
-
-      var hasFocus;
-
-      //create a child scope for the typeahead directive so we are not polluting original scope
-      //with typeahead-specific data (matches, query etc.)
-      var scope = originalScope.$new();
-      originalScope.$on('$destroy', function(){
-        scope.$destroy();
-      });
-
-      // WAI-ARIA
-      var popupId = 'typeahead-' + scope.$id + '-' + Math.floor(Math.random() * 10000);
-      element.attr({
-        'aria-autocomplete': 'list',
-        'aria-expanded': false,
-        'aria-owns': popupId
-      });
-
-      //pop-up element used to display matches
-      var popUpEl = angular.element('<div typeahead-popup></div>');
-      popUpEl.attr({
-        id: popupId,
-        matches: 'matches',
-        active: 'activeIdx',
-        select: 'select(activeIdx)',
-        query: 'query',
-        position: 'position'
-      });
-      //custom item template
-      if (angular.isDefined(attrs.typeaheadTemplateUrl)) {
-        popUpEl.attr('template-url', attrs.typeaheadTemplateUrl);
-      }
-
-      var resetMatches = function() {
-        scope.matches = [];
-        scope.activeIdx = -1;
-        element.attr('aria-expanded', false);
-      };
-
-      var getMatchId = function(index) {
-        return popupId + '-option-' + index;
-      };
-
-      // Indicate that the specified match is the active (pre-selected) item in the list owned by this typeahead.
-      // This attribute is added or removed automatically when the `activeIdx` changes.
-      scope.$watch('activeIdx', function(index) {
-        if (index < 0) {
-          element.removeAttr('aria-activedescendant');
-        } else {
-          element.attr('aria-activedescendant', getMatchId(index));
-        }
-      });
-
-      var getMatchesAsync = function(inputValue) {
-
-        var locals = {$viewValue: inputValue};
-        isLoadingSetter(originalScope, true);
-        $q.when(parserResult.source(originalScope, locals)).then(function(matches) {
-
-          //it might happen that several async queries were in progress if a user were typing fast
-          //but we are interested only in responses that correspond to the current view value
-          var onCurrentRequest = (inputValue === modelCtrl.$viewValue);
-          if (onCurrentRequest && hasFocus) {
-            if (matches && matches.length > 0) {
-
-              scope.activeIdx = focusFirst ? 0 : -1;
-              scope.matches.length = 0;
-
-              //transform labels
-              for(var i=0; i<matches.length; i++) {
-                locals[parserResult.itemName] = matches[i];
-                scope.matches.push({
-                  id: getMatchId(i),
-                  label: parserResult.viewMapper(scope, locals),
-                  model: matches[i]
-                });
-              }
-
-              scope.query = inputValue;
-              //position pop-up with matches - we need to re-calculate its position each time we are opening a window
-              //with matches as a pop-up might be absolute-positioned and position of an input might have changed on a page
-              //due to other elements being rendered
-              scope.position = appendToBody ? $position.offset(element) : $position.position(element);
-              scope.position.top = scope.position.top + element.prop('offsetHeight');
-
-              element.attr('aria-expanded', true);
+  .directive('typeahead', ['$compile', '$parse', '$q', '$timeout', '$document', '$window', '$rootScope', '$position', 'typeaheadParser',
+    function($compile, $parse, $q, $timeout, $document, $window, $rootScope, $position, typeaheadParser) {
+    var HOT_KEYS = [9, 13, 27, 38, 40];
+    var eventDebounceTime = 200;
+
+    return {
+      require: ['ngModel', '^?ngModelOptions'],
+      link: function(originalScope, element, attrs, ctrls) {
+        var modelCtrl = ctrls[0];
+        var ngModelOptions = ctrls[1];
+        //SUPPORTED ATTRIBUTES (OPTIONS)
+
+        //minimal no of characters that needs to be entered before typeahead kicks-in
+        var minLength = originalScope.$eval(attrs.typeaheadMinLength);
+        if (!minLength && minLength !== 0) {
+          minLength = 1;
+        }
+
+        //minimal wait time after last character typed before typeahead kicks-in
+        var waitTime = originalScope.$eval(attrs.typeaheadWaitMs) || 0;
+
+        //should it restrict model values to the ones selected from the popup only?
+        var isEditable = originalScope.$eval(attrs.typeaheadEditable) !== false;
+
+        //binding to a variable that indicates if matches are being retrieved asynchronously
+        var isLoadingSetter = $parse(attrs.typeaheadLoading).assign || angular.noop;
+
+        //a callback executed when a match is selected
+        var onSelectCallback = $parse(attrs.typeaheadOnSelect);
+
+        //should it select highlighted popup value when losing focus?
+        var isSelectOnBlur = angular.isDefined(attrs.typeaheadSelectOnBlur) ? originalScope.$eval(attrs.typeaheadSelectOnBlur) : false;
+
+        //binding to a variable that indicates if there were no results after the query is completed
+        var isNoResultsSetter = $parse(attrs.typeaheadNoResults).assign || angular.noop;
+
+        var inputFormatter = attrs.typeaheadInputFormatter ? $parse(attrs.typeaheadInputFormatter) : undefined;
+
+        var appendToBody =  attrs.typeaheadAppendToBody ? originalScope.$eval(attrs.typeaheadAppendToBody) : false;
+
+        var focusFirst = originalScope.$eval(attrs.typeaheadFocusFirst) !== false;
+
+        //If input matches an item of the list exactly, select it automatically
+        var selectOnExact = attrs.typeaheadSelectOnExact ? originalScope.$eval(attrs.typeaheadSelectOnExact) : false;
+
+        //INTERNAL VARIABLES
+
+        //model setter executed upon match selection
+        var parsedModel = $parse(attrs.ngModel);
+        var invokeModelSetter = $parse(attrs.ngModel + '($$$p)');
+        var $setModelValue = function(scope, newValue) {
+          if (angular.isFunction(parsedModel(originalScope)) &&
+            ngModelOptions && ngModelOptions.$options && ngModelOptions.$options.getterSetter) {
+            return invokeModelSetter(scope, {$$$p: newValue});
+          } else {
+            return parsedModel.assign(scope, newValue);
+          }
+        };
+
+        //expressions used by typeahead
+        var parserResult = typeaheadParser.parse(attrs.typeahead);
+
+        var hasFocus;
+
+        //Used to avoid bug in iOS webview where iOS keyboard does not fire
+        //mousedown & mouseup events
+        //Issue #3699
+        var selected;
+
+        //create a child scope for the typeahead directive so we are not polluting original scope
+        //with typeahead-specific data (matches, query etc.)
+        var scope = originalScope.$new();
+        var offDestroy = originalScope.$on('$destroy', function() {
+			    scope.$destroy();
+        });
+        scope.$on('$destroy', offDestroy);
+
+        // WAI-ARIA
+        var popupId = 'typeahead-' + scope.$id + '-' + Math.floor(Math.random() * 10000);
+        element.attr({
+          'aria-autocomplete': 'list',
+          'aria-expanded': false,
+          'aria-owns': popupId
+        });
+
+        //pop-up element used to display matches
+        var popUpEl = angular.element('<div typeahead-popup></div>');
+        popUpEl.attr({
+          id: popupId,
+          matches: 'matches',
+          active: 'activeIdx',
+          select: 'select(activeIdx)',
+          'move-in-progress': 'moveInProgress',
+          query: 'query',
+          position: 'position'
+        });
+        //custom item template
+        if (angular.isDefined(attrs.typeaheadTemplateUrl)) {
+          popUpEl.attr('template-url', attrs.typeaheadTemplateUrl);
+        }
+
+        if (angular.isDefined(attrs.typeaheadPopupTemplateUrl)) {
+          popUpEl.attr('popup-template-url', attrs.typeaheadPopupTemplateUrl);
+        }
+
+        var resetMatches = function() {
+          scope.matches = [];
+          scope.activeIdx = -1;
+          element.attr('aria-expanded', false);
+        };
+
+        var getMatchId = function(index) {
+          return popupId + '-option-' + index;
+        };
+
+        // Indicate that the specified match is the active (pre-selected) item in the list owned by this typeahead.
+        // This attribute is added or removed automatically when the `activeIdx` changes.
+        scope.$watch('activeIdx', function(index) {
+          if (index < 0) {
+            element.removeAttr('aria-activedescendant');
+          } else {
+            element.attr('aria-activedescendant', getMatchId(index));
+          }
+        });
+
+        var inputIsExactMatch = function(inputValue, index) {
+          if (scope.matches.length > index && inputValue) {
+            return inputValue.toUpperCase() === scope.matches[index].label.toUpperCase();
+          }
+
+          return false;
+        };
+
+        var getMatchesAsync = function(inputValue) {
+          var locals = {$viewValue: inputValue};
+          isLoadingSetter(originalScope, true);
+          isNoResultsSetter(originalScope, false);
+          $q.when(parserResult.source(originalScope, locals)).then(function(matches) {
+            //it might happen that several async queries were in progress if a user were typing fast
+            //but we are interested only in responses that correspond to the current view value
+            var onCurrentRequest = (inputValue === modelCtrl.$viewValue);
+            if (onCurrentRequest && hasFocus) {
+              if (matches && matches.length > 0) {
+
+                scope.activeIdx = focusFirst ? 0 : -1;
+                isNoResultsSetter(originalScope, false);
+                scope.matches.length = 0;
+
+                //transform labels
+                for (var i = 0; i < matches.length; i++) {
+                  locals[parserResult.itemName] = matches[i];
+                  scope.matches.push({
+                    id: getMatchId(i),
+                    label: parserResult.viewMapper(scope, locals),
+                    model: matches[i]
+                  });
+                }
+
+                scope.query = inputValue;
+                //position pop-up with matches - we need to re-calculate its position each time we are opening a window
+                //with matches as a pop-up might be absolute-positioned and position of an input might have changed on a page
+                //due to other elements being rendered
+                recalculatePosition();
+
+                element.attr('aria-expanded', true);
+
+                //Select the single remaining option if user input matches
+                if (selectOnExact && scope.matches.length === 1 && inputIsExactMatch(inputValue, 0)) {
+                  scope.select(0);
+                }
+              } else {
+                resetMatches();
+                isNoResultsSetter(originalScope, true);
+              }
+            }
+            if (onCurrentRequest) {
+              isLoadingSetter(originalScope, false);
+            }
+          }, function() {
+            resetMatches();
+            isLoadingSetter(originalScope, false);
+            isNoResultsSetter(originalScope, true);
+          });
+        };
+
+        // bind events only if appendToBody params exist - performance feature
+        if (appendToBody) {
+          angular.element($window).bind('resize', fireRecalculating);
+          $document.find('body').bind('scroll', fireRecalculating);
+        }
+
+        // Declare the timeout promise var outside the function scope so that stacked calls can be cancelled later
+        var timeoutEventPromise;
+
+        // Default progress type
+        scope.moveInProgress = false;
+
+        function fireRecalculating() {
+          if (!scope.moveInProgress) {
+            scope.moveInProgress = true;
+            scope.$digest();
+          }
+
+          // Cancel previous timeout
+          if (timeoutEventPromise) {
+            $timeout.cancel(timeoutEventPromise);
+          }
+
+          // Debounced executing recalculate after events fired
+          timeoutEventPromise = $timeout(function() {
+            // if popup is visible
+            if (scope.matches.length) {
+              recalculatePosition();
+            }
+
+            scope.moveInProgress = false;
+            scope.$digest();
+          }, eventDebounceTime);
+        }
+
+        // recalculate actual position and set new values to scope
+        // after digest loop is popup in right position
+        function recalculatePosition() {
+          scope.position = appendToBody ? $position.offset(element) : $position.position(element);
+          scope.position.top += element.prop('offsetHeight');
+        }
+
+        resetMatches();
+
+        //we need to propagate user's query so we can higlight matches
+        scope.query = undefined;
+
+        //Declare the timeout promise var outside the function scope so that stacked calls can be cancelled later
+        var timeoutPromise;
+
+        var scheduleSearchWithTimeout = function(inputValue) {
+          timeoutPromise = $timeout(function() {
+            getMatchesAsync(inputValue);
+          }, waitTime);
+        };
+
+        var cancelPreviousTimeout = function() {
+          if (timeoutPromise) {
+            $timeout.cancel(timeoutPromise);
+          }
+        };
+
+        //plug into $parsers pipeline to open a typeahead on view changes initiated from DOM
+        //$parsers kick-in on all the changes coming from the view as well as manually triggered by $setViewValue
+        modelCtrl.$parsers.unshift(function(inputValue) {
+          hasFocus = true;
+
+          if (minLength === 0 || inputValue && inputValue.length >= minLength) {
+            if (waitTime > 0) {
+              cancelPreviousTimeout();
+              scheduleSearchWithTimeout(inputValue);
             } else {
-              resetMatches();
-            }
-          }
-          if (onCurrentRequest) {
+              getMatchesAsync(inputValue);
+            }
+          } else {
             isLoadingSetter(originalScope, false);
-          }
-        }, function(){
-          resetMatches();
-          isLoadingSetter(originalScope, false);
-        });
-      };
-
-      resetMatches();
-
-      //we need to propagate user's query so we can higlight matches
-      scope.query = undefined;
-
-      //Declare the timeout promise var outside the function scope so that stacked calls can be cancelled later
-      var timeoutPromise;
-
-      var scheduleSearchWithTimeout = function(inputValue) {
-        timeoutPromise = $timeout(function () {
-          getMatchesAsync(inputValue);
-        }, waitTime);
-      };
-
-      var cancelPreviousTimeout = function() {
-        if (timeoutPromise) {
-          $timeout.cancel(timeoutPromise);
-        }
-      };
-
-      //plug into $parsers pipeline to open a typeahead on view changes initiated from DOM
-      //$parsers kick-in on all the changes coming from the view as well as manually triggered by $setViewValue
-      modelCtrl.$parsers.unshift(function (inputValue) {
-
-        hasFocus = true;
-
-        if (inputValue && inputValue.length >= minSearch) {
-          if (waitTime > 0) {
             cancelPreviousTimeout();
-            scheduleSearchWithTimeout(inputValue);
-          } else {
-            getMatchesAsync(inputValue);
-          }
-        } else {
-          isLoadingSetter(originalScope, false);
-          cancelPreviousTimeout();
-          resetMatches();
-        }
-
-        if (isEditable) {
-          return inputValue;
-        } else {
-          if (!inputValue) {
-            // Reset in case user had typed something previously.
-            modelCtrl.$setValidity('editable', true);
+            resetMatches();
+          }
+
+          if (isEditable) {
             return inputValue;
           } else {
-            modelCtrl.$setValidity('editable', false);
-            return undefined;
-          }
-        }
-      });
-
-      modelCtrl.$formatters.push(function (modelValue) {
-
-        var candidateViewValue, emptyViewValue;
-        var locals = {};
-
-        // The validity may be set to false via $parsers (see above) if
-        // the model is restricted to selected values. If the model
-        // is set manually it is considered to be valid.
-        if (!isEditable) {
+            if (!inputValue) {
+              // Reset in case user had typed something previously.
+              modelCtrl.$setValidity('editable', true);
+              return null;
+            } else {
+              modelCtrl.$setValidity('editable', false);
+              return undefined;
+            }
+          }
+        });
+
+        modelCtrl.$formatters.push(function(modelValue) {
+          var candidateViewValue, emptyViewValue;
+          var locals = {};
+
+          // The validity may be set to false via $parsers (see above) if
+          // the model is restricted to selected values. If the model
+          // is set manually it is considered to be valid.
+          if (!isEditable) {
+            modelCtrl.$setValidity('editable', true);
+          }
+
+          if (inputFormatter) {
+            locals.$model = modelValue;
+            return inputFormatter(originalScope, locals);
+          } else {
+            //it might happen that we don't have enough info to properly render input value
+            //we need to check for this situation and simply return model value if we can't apply custom formatting
+            locals[parserResult.itemName] = modelValue;
+            candidateViewValue = parserResult.viewMapper(originalScope, locals);
+            locals[parserResult.itemName] = undefined;
+            emptyViewValue = parserResult.viewMapper(originalScope, locals);
+
+            return candidateViewValue!== emptyViewValue ? candidateViewValue : modelValue;
+          }
+        });
+
+        scope.select = function(activeIdx) {
+          //called from within the $digest() cycle
+          var locals = {};
+          var model, item;
+
+          selected = true;
+          locals[parserResult.itemName] = item = scope.matches[activeIdx].model;
+          model = parserResult.modelMapper(originalScope, locals);
+          $setModelValue(originalScope, model);
           modelCtrl.$setValidity('editable', true);
-        }
-
-        if (inputFormatter) {
-
-          locals.$model = modelValue;
-          return inputFormatter(originalScope, locals);
-
-        } else {
-
-          //it might happen that we don't have enough info to properly render input value
-          //we need to check for this situation and simply return model value if we can't apply custom formatting
-          locals[parserResult.itemName] = modelValue;
-          candidateViewValue = parserResult.viewMapper(originalScope, locals);
-          locals[parserResult.itemName] = undefined;
-          emptyViewValue = parserResult.viewMapper(originalScope, locals);
-
-          return candidateViewValue!== emptyViewValue ? candidateViewValue : modelValue;
-        }
-      });
-
-      scope.select = function (activeIdx) {
-        //called from within the $digest() cycle
-        var locals = {};
-        var model, item;
-
-        locals[parserResult.itemName] = item = scope.matches[activeIdx].model;
-        model = parserResult.modelMapper(originalScope, locals);
-        $setModelValue(originalScope, model);
-        modelCtrl.$setValidity('editable', true);
-        modelCtrl.$setValidity('parse', true);
-
-        onSelectCallback(originalScope, {
-          $item: item,
-          $model: model,
-          $label: parserResult.viewMapper(originalScope, locals)
-        });
-
-        resetMatches();
-
-        //return focus to the input element if a match was selected via a mouse click event
-        // use timeout to avoid $rootScope:inprog error
-        $timeout(function() { element[0].focus(); }, 0, false);
-      };
-
-      //bind keyboard events: arrows up(38) / down(40), enter(13) and tab(9), esc(27)
-      element.bind('keydown', function (evt) {
-
-        //typeahead is open and an "interesting" key was pressed
-        if (scope.matches.length === 0 || HOT_KEYS.indexOf(evt.which) === -1) {
-          return;
-        }
-
-        // if there's nothing selected (i.e. focusFirst) and enter is hit, don't do anything
-        if (scope.activeIdx == -1 && (evt.which === 13 || evt.which === 9)) {
-          return;
-        }
-
-        evt.preventDefault();
-
-        if (evt.which === 40) {
-          scope.activeIdx = (scope.activeIdx + 1) % scope.matches.length;
-          scope.$digest();
-
-        } else if (evt.which === 38) {
-          scope.activeIdx = (scope.activeIdx > 0 ? scope.activeIdx : scope.matches.length) - 1;
-          scope.$digest();
-
-        } else if (evt.which === 13 || evt.which === 9) {
-          scope.$apply(function () {
-            scope.select(scope.activeIdx);
-          });
-
-        } else if (evt.which === 27) {
-          evt.stopPropagation();
+          modelCtrl.$setValidity('parse', true);
+
+          onSelectCallback(originalScope, {
+            $item: item,
+            $model: model,
+            $label: parserResult.viewMapper(originalScope, locals)
+          });
 
           resetMatches();
-          scope.$digest();
-        }
-      });
-
-      element.bind('blur', function (evt) {
-        hasFocus = false;
-      });
-
-      // Keep reference to click handler to unbind it.
-      var dismissClickHandler = function (evt) {
-        if (element[0] !== evt.target) {
-          resetMatches();
-          scope.$digest();
-        }
-      };
-
-      $document.bind('click', dismissClickHandler);
-
-      originalScope.$on('$destroy', function(){
-        $document.unbind('click', dismissClickHandler);
+
+          //return focus to the input element if a match was selected via a mouse click event
+          // use timeout to avoid $rootScope:inprog error
+          if (scope.$eval(attrs.typeaheadFocusOnSelect) !== false) {
+            $timeout(function() { element[0].focus(); }, 0, false);
+          }
+        };
+
+        //bind keyboard events: arrows up(38) / down(40), enter(13) and tab(9), esc(27)
+        element.bind('keydown', function(evt) {
+          //typeahead is open and an "interesting" key was pressed
+          if (scope.matches.length === 0 || HOT_KEYS.indexOf(evt.which) === -1) {
+            return;
+          }
+
+          // if there's nothing selected (i.e. focusFirst) and enter or tab is hit, clear the results
+          if (scope.activeIdx === -1 && (evt.which === 9 || evt.which === 13)) {
+            resetMatches();
+            scope.$digest();
+            return;
+          }
+
+          evt.preventDefault();
+
+          if (evt.which === 40) {
+            scope.activeIdx = (scope.activeIdx + 1) % scope.matches.length;
+            scope.$digest();
+
+          } else if (evt.which === 38) {
+            scope.activeIdx = (scope.activeIdx > 0 ? scope.activeIdx : scope.matches.length) - 1;
+            scope.$digest();
+
+          } else if (evt.which === 13 || evt.which === 9) {
+            scope.$apply(function () {
+              scope.select(scope.activeIdx);
+            });
+
+          } else if (evt.which === 27) {
+            evt.stopPropagation();
+
+            resetMatches();
+            scope.$digest();
+          }
+        });
+
+        element.bind('blur', function() {
+          if (isSelectOnBlur && scope.matches.length && scope.activeIdx !== -1 && !selected) {
+            selected = true;
+            scope.$apply(function() {
+              scope.select(scope.activeIdx);
+            });
+          }
+          hasFocus = false;
+          selected = false;
+        });
+
+        // Keep reference to click handler to unbind it.
+        var dismissClickHandler = function(evt) {
+          // Issue #3973
+          // Firefox treats right click as a click on document
+          if (element[0] !== evt.target && evt.which !== 3 && scope.matches.length !== 0) {
+            resetMatches();
+            if (!$rootScope.$$phase) {
+              scope.$digest();
+            }
+          }
+        };
+
+        $document.bind('click', dismissClickHandler);
+
+        originalScope.$on('$destroy', function() {
+          $document.unbind('click', dismissClickHandler);
+          if (appendToBody) {
+            $popup.remove();
+          }
+          // Prevent jQuery cache memory leak
+          popUpEl.remove();
+        });
+
+        var $popup = $compile(popUpEl)(scope);
+
         if (appendToBody) {
-          $popup.remove();
-        }
-        // Prevent jQuery cache memory leak
-        popUpEl.remove();
-      });
-
-      var $popup = $compile(popUpEl)(scope);
-
-      if (appendToBody) {
-        $document.find('body').append($popup);
-      } else {
-        element.after($popup);
-      }
-    }
-  };
-
-}])
-
-  .directive('typeaheadPopup', function () {
+          $document.find('body').append($popup);
+        } else {
+          element.after($popup);
+        }
+      }
+    };
+
+  }])
+
+  .directive('typeaheadPopup', function() {
     return {
-      restrict:'EA',
-      scope:{
-        matches:'=',
-        query:'=',
-        active:'=',
-        position:'=',
-        select:'&'
+      restrict: 'EA',
+      scope: {
+        matches: '=',
+        query: '=',
+        active: '=',
+        position: '&',
+        moveInProgress: '=',
+        select: '&'
       },
-      replace:true,
-      templateUrl:'template/typeahead/typeahead-popup.html',
-      link:function (scope, element, attrs) {
-
+      replace: true,
+      templateUrl: function(element, attrs) {
+        return attrs.popupTemplateUrl || 'template/typeahead/typeahead-popup.html';
+      },
+      link: function(scope, element, attrs) {
         scope.templateUrl = attrs.templateUrl;
 
-        scope.isOpen = function () {
+        scope.isOpen = function() {
           return scope.matches.length > 0;
         };
 
-        scope.isActive = function (matchIdx) {
+        scope.isActive = function(matchIdx) {
           return scope.active == matchIdx;
         };
 
-        scope.selectActive = function (matchIdx) {
+        scope.selectActive = function(matchIdx) {
           scope.active = matchIdx;
         };
 
-        scope.selectMatch = function (activeIdx) {
+        scope.selectMatch = function(activeIdx) {
           scope.select({activeIdx:activeIdx});
         };
       }
     };
   })
 
-  .directive('typeaheadMatch', ['$templateRequest', '$compile', '$parse', function ($templateRequest, $compile, $parse) {
+  .directive('typeaheadMatch', ['$templateRequest', '$compile', '$parse', function($templateRequest, $compile, $parse) {
     return {
-      restrict:'EA',
-      scope:{
-        index:'=',
-        match:'=',
-        query:'='
+      restrict: 'EA',
+      scope: {
+        index: '=',
+        match: '=',
+        query: '='
       },
-      link:function (scope, element, attrs) {
+      link:function(scope, element, attrs) {
         var tplUrl = $parse(attrs.templateUrl)(scope.$parent) || 'template/typeahead/typeahead-match.html';
         $templateRequest(tplUrl).then(function(tplContent) {
-          $compile(tplContent.trim())(scope, function(clonedElement){
+          $compile(tplContent.trim())(scope, function(clonedElement) {
             element.replaceWith(clonedElement);
           });
         });
@@ -62389,23 +64187,38 @@
     };
   }])
 
-  .filter('typeaheadHighlight', function() {
+  .filter('typeaheadHighlight', ['$sce', '$injector', '$log', function($sce, $injector, $log) {
+    var isSanitizePresent;
+    isSanitizePresent = $injector.has('$sanitize');
 
     function escapeRegexp(queryToEscape) {
+      // Regex: capture the whole query string and replace it with the string that will be used to match
+      // the results, for example if the capture is "a" the result will be \a
       return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
     }
 
+    function containsHtml(matchItem) {
+      return /<.*>/g.test(matchItem);
+    }
+
     return function(matchItem, query) {
-      return query ? ('' + matchItem).replace(new RegExp(escapeRegexp(query), 'gi'), '<strong>$&</strong>') : matchItem;
-    };
-  });
+      if (!isSanitizePresent && containsHtml(matchItem)) {
+        $log.warn('Unsafe use of typeahead please use ngSanitize'); // Warn the user about the danger
+      }
+      matchItem = query? ('' + matchItem).replace(new RegExp(escapeRegexp(query), 'gi'), '<strong>$&</strong>') : matchItem; // Replaces the capture string with a the same string inside of a "strong" tag
+      if (!isSanitizePresent) {
+        matchItem = $sce.trustAsHtml(matchItem); // If $sanitize is not present we pack the string in a $sce object for the ng-bind-html directive
+      }
+      return matchItem;
+    };
+  }]);
 
 angular.module("template/accordion/accordion-group.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/accordion/accordion-group.html",
-    "<div class=\"panel panel-default\">\n" +
-    "  <div class=\"panel-heading\">\n" +
+    "<div class=\"panel {{panelClass || 'panel-default'}}\">\n" +
+    "  <div class=\"panel-heading\" ng-keypress=\"toggleOpen($event)\">\n" +
     "    <h4 class=\"panel-title\">\n" +
-    "      <a href=\"javascript:void(0)\" tabindex=\"0\" class=\"accordion-toggle\" ng-click=\"toggleOpen()\" accordion-transclude=\"heading\"><span ng-class=\"{'text-muted': isDisabled}\">{{heading}}</span></a>\n" +
+    "      <a href tabindex=\"0\" class=\"accordion-toggle\" ng-click=\"toggleOpen()\" accordion-transclude=\"heading\"><span ng-class=\"{'text-muted': isDisabled}\">{{heading}}</span></a>\n" +
     "    </h4>\n" +
     "  </div>\n" +
     "  <div class=\"panel-collapse collapse\" collapse=\"!isOpen\">\n" +
@@ -62422,8 +64235,8 @@
 
 angular.module("template/alert/alert.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/alert/alert.html",
-    "<div class=\"alert\" ng-class=\"['alert-' + (type || 'warning'), closeable ? 'alert-dismissable' : null]\" role=\"alert\">\n" +
-    "    <button ng-show=\"closeable\" type=\"button\" class=\"close\" ng-click=\"close()\">\n" +
+    "<div class=\"alert\" ng-class=\"['alert-' + (type || 'warning'), closeable ? 'alert-dismissible' : null]\" role=\"alert\">\n" +
+    "    <button ng-show=\"closeable\" type=\"button\" class=\"close\" ng-click=\"close($event)\">\n" +
     "        <span aria-hidden=\"true\">&times;</span>\n" +
     "        <span class=\"sr-only\">Close</span>\n" +
     "    </button>\n" +
@@ -62436,7 +64249,7 @@
   $templateCache.put("template/carousel/carousel.html",
     "<div ng-mouseenter=\"pause()\" ng-mouseleave=\"play()\" class=\"carousel\" ng-swipe-right=\"prev()\" ng-swipe-left=\"next()\">\n" +
     "    <ol class=\"carousel-indicators\" ng-show=\"slides.length > 1\">\n" +
-    "        <li ng-repeat=\"slide in slides | orderBy:'index' track by $index\" ng-class=\"{active: isActive(slide)}\" ng-click=\"select(slide)\"></li>\n" +
+    "        <li ng-repeat=\"slide in slides | orderBy:indexOfSlide track by $index\" ng-class=\"{active: isActive(slide)}\" ng-click=\"select(slide)\"></li>\n" +
     "    </ol>\n" +
     "    <div class=\"carousel-inner\" ng-transclude></div>\n" +
     "    <a class=\"left carousel-control\" ng-click=\"prev()\" ng-show=\"slides.length > 1\"><span class=\"glyphicon glyphicon-chevron-left\"></span></a>\n" +
@@ -62464,23 +64277,23 @@
 
 angular.module("template/datepicker/day.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/datepicker/day.html",
-    "<table role=\"grid\" aria-labelledby=\"{{uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n" +
+    "<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n" +
     "  <thead>\n" +
     "    <tr>\n" +
     "      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-left\"></i></button></th>\n" +
-    "      <th colspan=\"{{5 + showWeeks}}\"><button id=\"{{uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n" +
+    "      <th colspan=\"{{::5 + showWeeks}}\"><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n" +
     "      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-right\"></i></button></th>\n" +
     "    </tr>\n" +
     "    <tr>\n" +
-    "      <th ng-show=\"showWeeks\" class=\"text-center\"></th>\n" +
-    "      <th ng-repeat=\"label in labels track by $index\" class=\"text-center\"><small aria-label=\"{{label.full}}\">{{label.abbr}}</small></th>\n" +
+    "      <th ng-if=\"showWeeks\" class=\"text-center\"></th>\n" +
+    "      <th ng-repeat=\"label in ::labels track by $index\" class=\"text-center\"><small aria-label=\"{{::label.full}}\">{{::label.abbr}}</small></th>\n" +
     "    </tr>\n" +
     "  </thead>\n" +
     "  <tbody>\n" +
     "    <tr ng-repeat=\"row in rows track by $index\">\n" +
-    "      <td ng-show=\"showWeeks\" class=\"text-center h6\"><em>{{ weekNumbers[$index] }}</em></td>\n" +
-    "      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{dt.uid}}\" aria-disabled=\"{{!!dt.disabled}}\" ng-class=\"dt.customClass\">\n" +
-    "        <button type=\"button\" style=\"width:100%;\" class=\"btn btn-default btn-sm\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"{'text-muted': dt.secondary, 'text-info': dt.current}\">{{dt.label}}</span></button>\n" +
+    "      <td ng-if=\"showWeeks\" class=\"text-center h6\"><em>{{ weekNumbers[$index] }}</em></td>\n" +
+    "      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\" ng-class=\"::dt.customClass\">\n" +
+    "        <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default btn-sm\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-muted': dt.secondary, 'text-info': dt.current}\">{{::dt.label}}</span></button>\n" +
     "      </td>\n" +
     "    </tr>\n" +
     "  </tbody>\n" +
@@ -62490,18 +64303,18 @@
 
 angular.module("template/datepicker/month.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/datepicker/month.html",
-    "<table role=\"grid\" aria-labelledby=\"{{uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n" +
+    "<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n" +
     "  <thead>\n" +
     "    <tr>\n" +
     "      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-left\"></i></button></th>\n" +
-    "      <th><button id=\"{{uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n" +
+    "      <th><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n" +
     "      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-right\"></i></button></th>\n" +
     "    </tr>\n" +
     "  </thead>\n" +
     "  <tbody>\n" +
     "    <tr ng-repeat=\"row in rows track by $index\">\n" +
-    "      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{dt.uid}}\" aria-disabled=\"{{!!dt.disabled}}\">\n" +
-    "        <button type=\"button\" style=\"width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"{'text-info': dt.current}\">{{dt.label}}</span></button>\n" +
+    "      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\" ng-class=\"::dt.customClass\">\n" +
+    "        <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-info': dt.current}\">{{::dt.label}}</span></button>\n" +
     "      </td>\n" +
     "    </tr>\n" +
     "  </tbody>\n" +
@@ -62511,11 +64324,11 @@
 
 angular.module("template/datepicker/popup.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/datepicker/popup.html",
-    "<ul class=\"dropdown-menu\" ng-style=\"{display: (isOpen && 'block') || 'none', top: position.top+'px', left: position.left+'px'}\" ng-keydown=\"keydown($event)\">\n" +
+    "<ul class=\"dropdown-menu\" ng-if=\"isOpen\" style=\"display: block\" ng-style=\"{top: position.top+'px', left: position.left+'px'}\" ng-keydown=\"keydown($event)\" ng-click=\"$event.stopPropagation()\">\n" +
     "	<li ng-transclude></li>\n" +
     "	<li ng-if=\"showButtonBar\" style=\"padding:10px 9px 2px\">\n" +
     "		<span class=\"btn-group pull-left\">\n" +
-    "			<button type=\"button\" class=\"btn btn-sm btn-info\" ng-click=\"select('today')\">{{ getText('current') }}</button>\n" +
+    "			<button type=\"button\" class=\"btn btn-sm btn-info\" ng-click=\"select('today')\" ng-disabled=\"isDisabled('today')\">{{ getText('current') }}</button>\n" +
     "			<button type=\"button\" class=\"btn btn-sm btn-danger\" ng-click=\"select(null)\">{{ getText('clear') }}</button>\n" +
     "		</span>\n" +
     "		<button type=\"button\" class=\"btn btn-sm btn-success pull-right\" ng-click=\"close()\">{{ getText('close') }}</button>\n" +
@@ -62526,18 +64339,18 @@
 
 angular.module("template/datepicker/year.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/datepicker/year.html",
-    "<table role=\"grid\" aria-labelledby=\"{{uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n" +
+    "<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n" +
     "  <thead>\n" +
     "    <tr>\n" +
     "      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-left\"></i></button></th>\n" +
-    "      <th colspan=\"3\"><button id=\"{{uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n" +
+    "      <th colspan=\"3\"><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n" +
     "      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-right\"></i></button></th>\n" +
     "    </tr>\n" +
     "  </thead>\n" +
     "  <tbody>\n" +
     "    <tr ng-repeat=\"row in rows track by $index\">\n" +
-    "      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{dt.uid}}\" aria-disabled=\"{{!!dt.disabled}}\">\n" +
-    "        <button type=\"button\" style=\"width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"{'text-info': dt.current}\">{{dt.label}}</span></button>\n" +
+    "      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\">\n" +
+    "        <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-info': dt.current}\">{{::dt.label}}</span></button>\n" +
     "      </td>\n" +
     "    </tr>\n" +
     "  </tbody>\n" +
@@ -62549,7 +64362,7 @@
   $templateCache.put("template/modal/backdrop.html",
     "<div class=\"modal-backdrop\"\n" +
     "     modal-animation-class=\"fade\"\n" +
-    "     ng-class=\"{in: animate}\"\n" +
+    "     modal-in-class=\"in\"\n" +
     "     ng-style=\"{'z-index': 1040 + (index && 1 || 0) + index*10}\"\n" +
     "></div>\n" +
     "");
@@ -62559,7 +64372,8 @@
   $templateCache.put("template/modal/window.html",
     "<div modal-render=\"{{$isRendered}}\" tabindex=\"-1\" role=\"dialog\" class=\"modal\"\n" +
     "    modal-animation-class=\"fade\"\n" +
-    "	ng-class=\"{in: animate}\" ng-style=\"{'z-index': 1050 + index*10, display: 'block'}\" ng-click=\"close($event)\">\n" +
+    "    modal-in-class=\"in\"\n" +
+    "	ng-style=\"{'z-index': 1050 + index*10, display: 'block'}\" ng-click=\"close($event)\">\n" +
     "    <div class=\"modal-dialog\" ng-class=\"size ? 'modal-' + size : ''\"><div class=\"modal-content\" modal-transclude></div></div>\n" +
     "</div>\n" +
     "");
@@ -62568,20 +64382,22 @@
 angular.module("template/pagination/pager.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/pagination/pager.html",
     "<ul class=\"pager\">\n" +
-    "  <li ng-class=\"{disabled: noPrevious(), previous: align}\"><a href ng-click=\"selectPage(page - 1, $event)\">{{getText('previous')}}</a></li>\n" +
-    "  <li ng-class=\"{disabled: noNext(), next: align}\"><a href ng-click=\"selectPage(page + 1, $event)\">{{getText('next')}}</a></li>\n" +
-    "</ul>");
+    "  <li ng-class=\"{disabled: noPrevious()||ngDisabled, previous: align}\"><a href ng-click=\"selectPage(page - 1, $event)\">{{::getText('previous')}}</a></li>\n" +
+    "  <li ng-class=\"{disabled: noNext()||ngDisabled, next: align}\"><a href ng-click=\"selectPage(page + 1, $event)\">{{::getText('next')}}</a></li>\n" +
+    "</ul>\n" +
+    "");
 }]);
 
 angular.module("template/pagination/pagination.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/pagination/pagination.html",
     "<ul class=\"pagination\">\n" +
-    "  <li ng-if=\"boundaryLinks\" ng-class=\"{disabled: noPrevious()}\"><a href ng-click=\"selectPage(1, $event)\">{{getText('first')}}</a></li>\n" +
-    "  <li ng-if=\"directionLinks\" ng-class=\"{disabled: noPrevious()}\"><a href ng-click=\"selectPage(page - 1, $event)\">{{getText('previous')}}</a></li>\n" +
-    "  <li ng-repeat=\"page in pages track by $index\" ng-class=\"{active: page.active}\"><a href ng-click=\"selectPage(page.number, $event)\">{{page.text}}</a></li>\n" +
-    "  <li ng-if=\"directionLinks\" ng-class=\"{disabled: noNext()}\"><a href ng-click=\"selectPage(page + 1, $event)\">{{getText('next')}}</a></li>\n" +
-    "  <li ng-if=\"boundaryLinks\" ng-class=\"{disabled: noNext()}\"><a href ng-click=\"selectPage(totalPages, $event)\">{{getText('last')}}</a></li>\n" +
-    "</ul>");
+    "  <li ng-if=\"::boundaryLinks\" ng-class=\"{disabled: noPrevious()||ngDisabled}\" class=\"pagination-first\"><a href ng-click=\"selectPage(1, $event)\">{{::getText('first')}}</a></li>\n" +
+    "  <li ng-if=\"::directionLinks\" ng-class=\"{disabled: noPrevious()||ngDisabled}\" class=\"pagination-prev\"><a href ng-click=\"selectPage(page - 1, $event)\">{{::getText('previous')}}</a></li>\n" +
+    "  <li ng-repeat=\"page in pages track by $index\" ng-class=\"{active: page.active,disabled: ngDisabled&&!page.active}\" class=\"pagination-page\"><a href ng-click=\"selectPage(page.number, $event)\">{{page.text}}</a></li>\n" +
+    "  <li ng-if=\"::directionLinks\" ng-class=\"{disabled: noNext()||ngDisabled}\" class=\"pagination-next\"><a href ng-click=\"selectPage(page + 1, $event)\">{{::getText('next')}}</a></li>\n" +
+    "  <li ng-if=\"::boundaryLinks\" ng-class=\"{disabled: noNext()||ngDisabled}\" class=\"pagination-last\"><a href ng-click=\"selectPage(totalPages, $event)\">{{::getText('last')}}</a></li>\n" +
+    "</ul>\n" +
+    "");
 }]);
 
 angular.module("template/tooltip/tooltip-html-popup.html", []).run(["$templateCache", function($templateCache) {
@@ -62634,6 +64450,22 @@
     "");
 }]);
 
+angular.module("template/popover/popover-html.html", []).run(["$templateCache", function($templateCache) {
+  $templateCache.put("template/popover/popover-html.html",
+    "<div class=\"popover\"\n" +
+    "  tooltip-animation-class=\"fade\"\n" +
+    "  tooltip-classes\n" +
+    "  ng-class=\"{ in: isOpen() }\">\n" +
+    "  <div class=\"arrow\"></div>\n" +
+    "\n" +
+    "  <div class=\"popover-inner\">\n" +
+    "      <h3 class=\"popover-title\" ng-bind=\"title\" ng-if=\"title\"></h3>\n" +
+    "      <div class=\"popover-content\" ng-bind-html=\"contentExp()\"></div>\n" +
+    "  </div>\n" +
+    "</div>\n" +
+    "");
+}]);
+
 angular.module("template/popover/popover-template.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/popover/popover-template.html",
     "<div class=\"popover\"\n" +
@@ -62652,19 +64484,6 @@
     "");
 }]);
 
-angular.module("template/popover/popover-window.html", []).run(["$templateCache", function($templateCache) {
-  $templateCache.put("template/popover/popover-window.html",
-    "<div class=\"popover {{placement}}\" ng-class=\"{ in: isOpen, fade: animation }\">\n" +
-    "  <div class=\"arrow\"></div>\n" +
-    "\n" +
-    "  <div class=\"popover-inner\">\n" +
-    "      <h3 class=\"popover-title\" ng-bind=\"title\" ng-show=\"title\"></h3>\n" +
-    "      <div class=\"popover-content\" tooltip-template-transclude></div>\n" +
-    "  </div>\n" +
-    "</div>\n" +
-    "");
-}]);
-
 angular.module("template/popover/popover.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/popover/popover.html",
     "<div class=\"popover\"\n" +
@@ -62683,7 +64502,7 @@
 
 angular.module("template/progressbar/bar.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/progressbar/bar.html",
-    "<div class=\"progress-bar\" ng-class=\"type && 'progress-bar-' + type\" role=\"progressbar\" aria-valuenow=\"{{value}}\" aria-valuemin=\"0\" aria-valuemax=\"{{max}}\" ng-style=\"{width: (percent < 100 ? percent : 100) + '%'}\" aria-valuetext=\"{{percent | number:0}}%\" ng-transclude></div>\n" +
+    "<div class=\"progress-bar\" ng-class=\"type && 'progress-bar-' + type\" role=\"progressbar\" aria-valuenow=\"{{value}}\" aria-valuemin=\"0\" aria-valuemax=\"{{max}}\" ng-style=\"{width: (percent < 100 ? percent : 100) + '%'}\" aria-valuetext=\"{{percent | number:0}}%\" style=\"min-width: 0;\" ng-transclude></div>\n" +
     "");
 }]);
 
@@ -62695,7 +64514,7 @@
 angular.module("template/progressbar/progressbar.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/progressbar/progressbar.html",
     "<div class=\"progress\">\n" +
-    "  <div class=\"progress-bar\" ng-class=\"type && 'progress-bar-' + type\" role=\"progressbar\" aria-valuenow=\"{{value}}\" aria-valuemin=\"0\" aria-valuemax=\"{{max}}\" ng-style=\"{width: (percent < 100 ? percent : 100) + '%'}\" aria-valuetext=\"{{percent | number:0}}%\" ng-transclude></div>\n" +
+    "  <div class=\"progress-bar\" ng-class=\"type && 'progress-bar-' + type\" role=\"progressbar\" aria-valuenow=\"{{value}}\" aria-valuemin=\"0\" aria-valuemax=\"{{max}}\" ng-style=\"{width: (percent < 100 ? percent : 100) + '%'}\" aria-valuetext=\"{{percent | number:0}}%\" style=\"min-width: 0;\" ng-transclude></div>\n" +
     "</div>\n" +
     "");
 }]);
@@ -62703,10 +64522,10 @@
 angular.module("template/rating/rating.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/rating/rating.html",
     "<span ng-mouseleave=\"reset()\" ng-keydown=\"onKeydown($event)\" tabindex=\"0\" role=\"slider\" aria-valuemin=\"0\" aria-valuemax=\"{{range.length}}\" aria-valuenow=\"{{value}}\">\n" +
-    "    <i ng-repeat=\"r in range track by $index\" ng-mouseenter=\"enter($index + 1)\" ng-click=\"rate($index + 1)\" class=\"glyphicon\" ng-class=\"$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')\">\n" +
-    "        <span class=\"sr-only\">({{ $index < value ? '*' : ' ' }})</span>\n" +
-    "    </i>\n" +
-    "</span>");
+    "    <span ng-repeat-start=\"r in range track by $index\" class=\"sr-only\">({{ $index < value ? '*' : ' ' }})</span>\n" +
+    "    <i ng-repeat-end ng-mouseenter=\"enter($index + 1)\" ng-click=\"rate($index + 1)\" class=\"glyphicon\" ng-class=\"$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')\" ng-attr-title=\"{{r.title}}\" ></i>\n" +
+    "</span>\n" +
+    "");
 }]);
 
 angular.module("template/tabs/tab.html", []).run(["$templateCache", function($templateCache) {
@@ -62735,43 +64554,44 @@
 angular.module("template/timepicker/timepicker.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/timepicker/timepicker.html",
     "<table>\n" +
-    "	<tbody>\n" +
-    "		<tr class=\"text-center\">\n" +
-    "			<td><a ng-click=\"incrementHours()\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-up\"></span></a></td>\n" +
-    "			<td>&nbsp;</td>\n" +
-    "			<td><a ng-click=\"incrementMinutes()\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-up\"></span></a></td>\n" +
-    "			<td ng-show=\"showMeridian\"></td>\n" +
-    "		</tr>\n" +
-    "		<tr>\n" +
-    "			<td class=\"form-group\" ng-class=\"{'has-error': invalidHours}\">\n" +
-    "				<input style=\"width:50px;\" type=\"text\" ng-model=\"hours\" ng-change=\"updateHours()\" class=\"form-control text-center\" ng-readonly=\"readonlyInput\" maxlength=\"2\">\n" +
-    "			</td>\n" +
-    "			<td>:</td>\n" +
-    "			<td class=\"form-group\" ng-class=\"{'has-error': invalidMinutes}\">\n" +
-    "				<input style=\"width:50px;\" type=\"text\" ng-model=\"minutes\" ng-change=\"updateMinutes()\" class=\"form-control text-center\" ng-readonly=\"readonlyInput\" maxlength=\"2\">\n" +
-    "			</td>\n" +
-    "			<td ng-show=\"showMeridian\"><button type=\"button\" class=\"btn btn-default text-center\" ng-click=\"toggleMeridian()\">{{meridian}}</button></td>\n" +
-    "		</tr>\n" +
-    "		<tr class=\"text-center\">\n" +
-    "			<td><a ng-click=\"decrementHours()\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-down\"></span></a></td>\n" +
-    "			<td>&nbsp;</td>\n" +
-    "			<td><a ng-click=\"decrementMinutes()\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-down\"></span></a></td>\n" +
-    "			<td ng-show=\"showMeridian\"></td>\n" +
-    "		</tr>\n" +
-    "	</tbody>\n" +
+    "  <tbody>\n" +
+    "    <tr class=\"text-center\" ng-show=\"::showSpinners\">\n" +
+    "      <td><a ng-click=\"incrementHours()\" ng-class=\"{disabled: noIncrementHours()}\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-up\"></span></a></td>\n" +
+    "      <td>&nbsp;</td>\n" +
+    "      <td><a ng-click=\"incrementMinutes()\" ng-class=\"{disabled: noIncrementMinutes()}\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-up\"></span></a></td>\n" +
+    "      <td ng-show=\"showMeridian\"></td>\n" +
+    "    </tr>\n" +
+    "    <tr>\n" +
+    "      <td class=\"form-group\" ng-class=\"{'has-error': invalidHours}\">\n" +
+    "        <input style=\"width:50px;\" type=\"text\" ng-model=\"hours\" ng-change=\"updateHours()\" class=\"form-control text-center\" ng-readonly=\"::readonlyInput\" maxlength=\"2\">\n" +
+    "      </td>\n" +
+    "      <td>:</td>\n" +
+    "      <td class=\"form-group\" ng-class=\"{'has-error': invalidMinutes}\">\n" +
+    "        <input style=\"width:50px;\" type=\"text\" ng-model=\"minutes\" ng-change=\"updateMinutes()\" class=\"form-control text-center\" ng-readonly=\"::readonlyInput\" maxlength=\"2\">\n" +
+    "      </td>\n" +
+    "      <td ng-show=\"showMeridian\"><button type=\"button\" ng-class=\"{disabled: noToggleMeridian()}\" class=\"btn btn-default text-center\" ng-click=\"toggleMeridian()\">{{meridian}}</button></td>\n" +
+    "    </tr>\n" +
+    "    <tr class=\"text-center\" ng-show=\"::showSpinners\">\n" +
+    "      <td><a ng-click=\"decrementHours()\" ng-class=\"{disabled: noDecrementHours()}\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-down\"></span></a></td>\n" +
+    "      <td>&nbsp;</td>\n" +
+    "      <td><a ng-click=\"decrementMinutes()\" ng-class=\"{disabled: noDecrementMinutes()}\" class=\"btn btn-link\"><span class=\"glyphicon glyphicon-chevron-down\"></span></a></td>\n" +
+    "      <td ng-show=\"showMeridian\"></td>\n" +
+    "    </tr>\n" +
+    "  </tbody>\n" +
     "</table>\n" +
     "");
 }]);
 
 angular.module("template/typeahead/typeahead-match.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/typeahead/typeahead-match.html",
-    "<a tabindex=\"-1\" bind-html-unsafe=\"match.label | typeaheadHighlight:query\"></a>");
+    "<a href tabindex=\"-1\" ng-bind-html=\"match.label | typeaheadHighlight:query\"></a>\n" +
+    "");
 }]);
 
 angular.module("template/typeahead/typeahead-popup.html", []).run(["$templateCache", function($templateCache) {
   $templateCache.put("template/typeahead/typeahead-popup.html",
-    "<ul class=\"dropdown-menu\" ng-show=\"isOpen()\" ng-style=\"{top: position.top+'px', left: position.left+'px'}\" style=\"display: block;\" role=\"listbox\" aria-hidden=\"{{!isOpen()}}\">\n" +
-    "    <li ng-repeat=\"match in matches track by $index\" ng-class=\"{active: isActive($index) }\" ng-mouseenter=\"selectActive($index)\" ng-click=\"selectMatch($index)\" role=\"option\" id=\"{{match.id}}\">\n" +
+    "<ul class=\"dropdown-menu\" ng-show=\"isOpen() && !moveInProgress\" ng-style=\"{top: position().top+'px', left: position().left+'px'}\" style=\"display: block;\" role=\"listbox\" aria-hidden=\"{{!isOpen()}}\">\n" +
+    "    <li ng-repeat=\"match in matches track by $index\" ng-class=\"{active: isActive($index) }\" ng-mouseenter=\"selectActive($index)\" ng-click=\"selectMatch($index)\" role=\"option\" id=\"{{::match.id}}\">\n" +
     "        <div typeahead-match index=\"$index\" match=\"match\" query=\"query\" template-url=\"templateUrl\"></div>\n" +
     "    </li>\n" +
     "</ul>\n" +
@@ -63141,7 +64961,7 @@
 })(window, window.angular);
 
 /**
- * @license AngularJS v1.4.0
+ * @license AngularJS v1.4.7
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -63247,7 +65067,8 @@
      * `$swipe` will listen for `mouse` and `touch` events.
      *
      * The four events are `start`, `move`, `end`, and `cancel`. `start`, `move`, and `end`
-     * receive as a parameter a coordinates object of the form `{ x: 150, y: 310 }`.
+     * receive as a parameter a coordinates object of the form `{ x: 150, y: 310 }` and the raw
+     * `event`. `cancel` receives the raw `event` as its single parameter.
      *
      * `start` is called on either `mousedown` or `touchstart`. After this event, `$swipe` is
      * watching for `touchmove` or `mousemove` events. These events are ignored until the total
@@ -63769,7 +65590,7 @@
 })(window, window.angular);
 
 /**
- * @license AngularJS v1.4.0
+ * @license AngularJS v1.4.7
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -63826,7 +65647,7 @@
  *
  * ```javascript
  * <!-- keep in mind that ngModel automatically sets these error flags -->
- * myField.$error = { minlength : true, required : false };
+ * myField.$error = { minlength : true, required : true };
  * ```
  *
  * Then the `required` message will be displayed first. When required is false then the `minlength` message
@@ -64026,7 +65847,7 @@
     *
     * @description
     * `ngMessages` is a directive that is designed to show and hide messages based on the state
-    * of a key/value object that it listens on. The directive itself compliments error message
+    * of a key/value object that it listens on. The directive itself complements error message
     * reporting with the `ngModel` $error object (which stores a key/value state of validation errors).
     *
     * `ngMessages` manages the state of internal messages within its container element. The internal
@@ -64100,6 +65921,9 @@
        controller: ['$element', '$scope', '$attrs', function($element, $scope, $attrs) {
          var ctrl = this;
          var latestKey = 0;
+         var nextAttachId = 0;
+
+         this.getAttachId = function getAttachId() { return nextAttachId++; };
 
          var messages = this.messages = {};
          var renderLater, cachedCollection;
@@ -64411,11 +66235,15 @@
                 $animate.enter(elm, null, element);
                 currentElement = elm;
 
+                // Each time we attach this node to a message we get a new id that we can match
+                // when we are destroying the node later.
+                var $$attachId = currentElement.$$attachId = ngMessagesCtrl.getAttachId();
+
                 // in the event that the parent element is destroyed
                 // by any other structural directive then it's time
                 // to deregister the message from the controller
                 currentElement.on('$destroy', function() {
-                  if (currentElement) {
+                  if (currentElement && currentElement.$$attachId === $$attachId) {
                     ngMessagesCtrl.deregister(commentNode);
                     messageCtrl.detach();
                   }
--- a/server/ammicosrv/ammico/static/ammico/js/lib.min.js	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/static/ammico/js/lib.min.js	Wed Dec 02 19:38:02 2015 +0100
@@ -1,25 +1,20 @@
-if(function(t,e){"object"==typeof module&&"object"==typeof module.exports?module.exports=t.document?e(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(t)}("undefined"!=typeof window?window:this,function(t,e){function n(t){var e="length"in t&&t.length,n=Z.type(t);return"function"===n||Z.isWindow(t)?!1:1===t.nodeType&&e?!0:"array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t}function i(t,e,n){if(Z.isFunction(e))return Z.grep(t,function(t,i){return!!e.call(t,i,t)!==n});if(e.nodeType)return Z.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(at.test(e))return Z.filter(e,t,n);e=Z.filter(e,t)}return Z.grep(t,function(t){return U.call(e,t)>=0!==n})}function r(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function s(t){var e=ft[t]={};return Z.each(t.match(pt)||[],function(t,n){e[n]=!0}),e}function o(){Q.removeEventListener("DOMContentLoaded",o,!1),t.removeEventListener("load",o,!1),Z.ready()}function a(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=Z.expando+a.uid++}function l(t,e,n){var i;if(void 0===n&&1===t.nodeType)if(i="data-"+e.replace($t,"-$1").toLowerCase(),n=t.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:yt.test(n)?Z.parseJSON(n):n}catch(r){}bt.set(t,e,n)}else n=void 0;return n}function u(){return!0}function c(){return!1}function h(){try{return Q.activeElement}catch(t){}}function d(t,e){return Z.nodeName(t,"table")&&Z.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function p(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function f(t){var e=Ht.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function m(t,e){for(var n=0,i=t.length;i>n;n++)vt.set(t[n],"globalEval",!e||vt.get(e[n],"globalEval"))}function g(t,e){var n,i,r,s,o,a,l,u;if(1===e.nodeType){if(vt.hasData(t)&&(s=vt.access(t),o=vt.set(e,s),u=s.events)){delete o.handle,o.events={};for(r in u)for(n=0,i=u[r].length;i>n;n++)Z.event.add(e,r,u[r][n])}bt.hasData(t)&&(a=bt.access(t),l=Z.extend({},a),bt.set(e,l))}}function v(t,e){var n=t.getElementsByTagName?t.getElementsByTagName(e||"*"):t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&Z.nodeName(t,e)?Z.merge([t],n):n}function b(t,e){var n=e.nodeName.toLowerCase();"input"===n&&kt.test(t.type)?e.checked=t.checked:("input"===n||"textarea"===n)&&(e.defaultValue=t.defaultValue)}function y(e,n){var i,r=Z(n.createElement(e)).appendTo(n.body),s=t.getDefaultComputedStyle&&(i=t.getDefaultComputedStyle(r[0]))?i.display:Z.css(r[0],"display");return r.detach(),s}function $(t){var e=Q,n=zt[t];return n||(n=y(t,e),"none"!==n&&n||(Ft=(Ft||Z("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Ft[0].contentDocument,e.write(),e.close(),n=y(t,e),Ft.detach()),zt[t]=n),n}function w(t,e,n){var i,r,s,o,a=t.style;return n=n||qt(t),n&&(o=n.getPropertyValue(e)||n[e]),n&&(""!==o||Z.contains(t.ownerDocument,t)||(o=Z.style(t,e)),Lt.test(o)&&Wt.test(e)&&(i=a.width,r=a.minWidth,s=a.maxWidth,a.minWidth=a.maxWidth=a.width=o,o=n.width,a.width=i,a.minWidth=r,a.maxWidth=s)),void 0!==o?o+"":o}function x(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function _(t,e){if(e in t)return e;for(var n=e[0].toUpperCase()+e.slice(1),i=e,r=Gt.length;r--;)if(e=Gt[r]+n,e in t)return e;return i}function k(t,e,n){var i=Bt.exec(e);return i?Math.max(0,i[1]-(n||0))+(i[2]||"px"):e}function C(t,e,n,i,r){for(var s=n===(i?"border":"content")?4:"width"===e?1:0,o=0;4>s;s+=2)"margin"===n&&(o+=Z.css(t,n+xt[s],!0,r)),i?("content"===n&&(o-=Z.css(t,"padding"+xt[s],!0,r)),"margin"!==n&&(o-=Z.css(t,"border"+xt[s]+"Width",!0,r))):(o+=Z.css(t,"padding"+xt[s],!0,r),"padding"!==n&&(o+=Z.css(t,"border"+xt[s]+"Width",!0,r)));return o}function D(t,e,n){var i=!0,r="width"===e?t.offsetWidth:t.offsetHeight,s=qt(t),o="border-box"===Z.css(t,"boxSizing",!1,s);if(0>=r||null==r){if(r=w(t,e,s),(0>r||null==r)&&(r=t.style[e]),Lt.test(r))return r;i=o&&(X.boxSizingReliable()||r===t.style[e]),r=parseFloat(r)||0}return r+C(t,e,n||(o?"border":"content"),i,s)+"px"}function T(t,e){for(var n,i,r,s=[],o=0,a=t.length;a>o;o++)i=t[o],i.style&&(s[o]=vt.get(i,"olddisplay"),n=i.style.display,e?(s[o]||"none"!==n||(i.style.display=""),""===i.style.display&&_t(i)&&(s[o]=vt.access(i,"olddisplay",$(i.nodeName)))):(r=_t(i),"none"===n&&r||vt.set(i,"olddisplay",r?n:Z.css(i,"display"))));for(o=0;a>o;o++)i=t[o],i.style&&(e&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=e?s[o]||"":"none"));return t}function E(t,e,n,i,r){return new E.prototype.init(t,e,n,i,r)}function S(){return setTimeout(function(){Xt=void 0}),Xt=Z.now()}function M(t,e){var n,i=0,r={height:t};for(e=e?1:0;4>i;i+=2-e)n=xt[i],r["margin"+n]=r["padding"+n]=t;return e&&(r.opacity=r.width=t),r}function A(t,e,n){for(var i,r=(ne[e]||[]).concat(ne["*"]),s=0,o=r.length;o>s;s++)if(i=r[s].call(n,e,t))return i}function I(t,e,n){var i,r,s,o,a,l,u,c,h=this,d={},p=t.style,f=t.nodeType&&_t(t),m=vt.get(t,"fxshow");n.queue||(a=Z._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,l=a.empty.fire,a.empty.fire=function(){a.unqueued||l()}),a.unqueued++,h.always(function(){h.always(function(){a.unqueued--,Z.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],u=Z.css(t,"display"),c="none"===u?vt.get(t,"olddisplay")||$(t.nodeName):u,"inline"===c&&"none"===Z.css(t,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",h.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(i in e)if(r=e[i],Jt.exec(r)){if(delete e[i],s=s||"toggle"===r,r===(f?"hide":"show")){if("show"!==r||!m||void 0===m[i])continue;f=!0}d[i]=m&&m[i]||Z.style(t,i)}else u=void 0;if(Z.isEmptyObject(d))"inline"===("none"===u?$(t.nodeName):u)&&(p.display=u);else{m?"hidden"in m&&(f=m.hidden):m=vt.access(t,"fxshow",{}),s&&(m.hidden=!f),f?Z(t).show():h.done(function(){Z(t).hide()}),h.done(function(){var e;vt.remove(t,"fxshow");for(e in d)Z.style(t,e,d[e])});for(i in d)o=A(f?m[i]:0,i,h),i in m||(m[i]=o.start,f&&(o.end=o.start,o.start="width"===i||"height"===i?1:0))}}function O(t,e){var n,i,r,s,o;for(n in t)if(i=Z.camelCase(n),r=e[i],s=t[n],Z.isArray(s)&&(r=s[1],s=t[n]=s[0]),n!==i&&(t[i]=s,delete t[n]),o=Z.cssHooks[i],o&&"expand"in o){s=o.expand(s),delete t[i];for(n in s)n in t||(t[n]=s[n],e[n]=r)}else e[i]=r}function P(t,e,n){var i,r,s=0,o=ee.length,a=Z.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var e=Xt||S(),n=Math.max(0,u.startTime+u.duration-e),i=n/u.duration||0,s=1-i,o=0,l=u.tweens.length;l>o;o++)u.tweens[o].run(s);return a.notifyWith(t,[u,s,n]),1>s&&l?n:(a.resolveWith(t,[u]),!1)},u=a.promise({elem:t,props:Z.extend({},e),opts:Z.extend(!0,{specialEasing:{}},n),originalProperties:e,originalOptions:n,startTime:Xt||S(),duration:n.duration,tweens:[],createTween:function(e,n){var i=Z.Tween(t,u.opts,e,n,u.opts.specialEasing[e]||u.opts.easing);return u.tweens.push(i),i},stop:function(e){var n=0,i=e?u.tweens.length:0;if(r)return this;for(r=!0;i>n;n++)u.tweens[n].run(1);return e?a.resolveWith(t,[u,e]):a.rejectWith(t,[u,e]),this}}),c=u.props;for(O(c,u.opts.specialEasing);o>s;s++)if(i=ee[s].call(u,t,c,u.opts))return i;return Z.map(c,A,u),Z.isFunction(u.opts.start)&&u.opts.start.call(t,u),Z.fx.timer(Z.extend(l,{elem:t,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function N(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var i,r=0,s=e.toLowerCase().match(pt)||[];if(Z.isFunction(n))for(;i=s[r++];)"+"===i[0]?(i=i.slice(1)||"*",(t[i]=t[i]||[]).unshift(n)):(t[i]=t[i]||[]).push(n)}}function H(t,e,n,i){function r(a){var l;return s[a]=!0,Z.each(t[a]||[],function(t,a){var u=a(e,n,i);return"string"!=typeof u||o||s[u]?o?!(l=u):void 0:(e.dataTypes.unshift(u),r(u),!1)}),l}var s={},o=t===ye;return r(e.dataTypes[0])||!s["*"]&&r("*")}function j(t,e){var n,i,r=Z.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((r[n]?t:i||(i={}))[n]=e[n]);return i&&Z.extend(!0,t,i),t}function R(t,e,n){for(var i,r,s,o,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(r in a)if(a[r]&&a[r].test(i)){l.unshift(r);break}if(l[0]in n)s=l[0];else{for(r in n){if(!l[0]||t.converters[r+" "+l[0]]){s=r;break}o||(o=r)}s=s||o}return s?(s!==l[0]&&l.unshift(s),n[s]):void 0}function F(t,e,n,i){var r,s,o,a,l,u={},c=t.dataTypes.slice();if(c[1])for(o in t.converters)u[o.toLowerCase()]=t.converters[o];for(s=c.shift();s;)if(t.responseFields[s]&&(n[t.responseFields[s]]=e),!l&&i&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=s,s=c.shift())if("*"===s)s=l;else if("*"!==l&&l!==s){if(o=u[l+" "+s]||u["* "+s],!o)for(r in u)if(a=r.split(" "),a[1]===s&&(o=u[l+" "+a[0]]||u["* "+a[0]])){o===!0?o=u[r]:u[r]!==!0&&(s=a[0],c.unshift(a[1]));break}if(o!==!0)if(o&&t["throws"])e=o(e);else try{e=o(e)}catch(h){return{state:"parsererror",error:o?h:"No conversion from "+l+" to "+s}}}return{state:"success",data:e}}function z(t,e,n,i){var r;if(Z.isArray(e))Z.each(e,function(e,r){n||ke.test(t)?i(t,r):z(t+"["+("object"==typeof r?e:"")+"]",r,n,i)});else if(n||"object"!==Z.type(e))i(t,e);else for(r in e)z(t+"["+r+"]",e[r],n,i)}function W(t){return Z.isWindow(t)?t:9===t.nodeType&&t.defaultView}var L=[],q=L.slice,V=L.concat,B=L.push,U=L.indexOf,Y={},K=Y.toString,G=Y.hasOwnProperty,X={},Q=t.document,J="2.1.4",Z=function(t,e){return new Z.fn.init(t,e)},tt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,et=/^-ms-/,nt=/-([\da-z])/gi,it=function(t,e){return e.toUpperCase()};Z.fn=Z.prototype={jquery:J,constructor:Z,selector:"",length:0,toArray:function(){return q.call(this)},get:function(t){return null!=t?0>t?this[t+this.length]:this[t]:q.call(this)},pushStack:function(t){var e=Z.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t,e){return Z.each(this,t,e)},map:function(t){return this.pushStack(Z.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack(q.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(0>t?e:0);return this.pushStack(n>=0&&e>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:L.sort,splice:L.splice},Z.extend=Z.fn.extend=function(){var t,e,n,i,r,s,o=arguments[0]||{},a=1,l=arguments.length,u=!1;for("boolean"==typeof o&&(u=o,o=arguments[a]||{},a++),"object"==typeof o||Z.isFunction(o)||(o={}),a===l&&(o=this,a--);l>a;a++)if(null!=(t=arguments[a]))for(e in t)n=o[e],i=t[e],o!==i&&(u&&i&&(Z.isPlainObject(i)||(r=Z.isArray(i)))?(r?(r=!1,s=n&&Z.isArray(n)?n:[]):s=n&&Z.isPlainObject(n)?n:{},o[e]=Z.extend(u,s,i)):void 0!==i&&(o[e]=i));return o},Z.extend({expando:"jQuery"+(J+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===Z.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){return!Z.isArray(t)&&t-parseFloat(t)+1>=0},isPlainObject:function(t){return"object"!==Z.type(t)||t.nodeType||Z.isWindow(t)?!1:t.constructor&&!G.call(t.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?Y[K.call(t)]||"object":typeof t},globalEval:function(t){var e,n=eval;t=Z.trim(t),t&&(1===t.indexOf("use strict")?(e=Q.createElement("script"),e.text=t,Q.head.appendChild(e).parentNode.removeChild(e)):n(t))},camelCase:function(t){return t.replace(et,"ms-").replace(nt,it)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e,i){var r,s=0,o=t.length,a=n(t);if(i){if(a)for(;o>s&&(r=e.apply(t[s],i),r!==!1);s++);else for(s in t)if(r=e.apply(t[s],i),r===!1)break}else if(a)for(;o>s&&(r=e.call(t[s],s,t[s]),r!==!1);s++);else for(s in t)if(r=e.call(t[s],s,t[s]),r===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(tt,"")},makeArray:function(t,e){var i=e||[];return null!=t&&(n(Object(t))?Z.merge(i,"string"==typeof t?[t]:t):B.call(i,t)),i},inArray:function(t,e,n){return null==e?-1:U.call(e,t,n)},merge:function(t,e){for(var n=+e.length,i=0,r=t.length;n>i;i++)t[r++]=e[i];return t.length=r,t},grep:function(t,e,n){for(var i,r=[],s=0,o=t.length,a=!n;o>s;s++)i=!e(t[s],s),i!==a&&r.push(t[s]);return r},map:function(t,e,i){var r,s=0,o=t.length,a=n(t),l=[];if(a)for(;o>s;s++)r=e(t[s],s,i),null!=r&&l.push(r);else for(s in t)r=e(t[s],s,i),null!=r&&l.push(r);return V.apply([],l)},guid:1,proxy:function(t,e){var n,i,r;return"string"==typeof e&&(n=t[e],e=t,t=n),Z.isFunction(t)?(i=q.call(arguments,2),r=function(){return t.apply(e||this,i.concat(q.call(arguments)))},r.guid=t.guid=t.guid||Z.guid++,r):void 0},now:Date.now,support:X}),Z.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){Y["[object "+e+"]"]=e.toLowerCase()});var rt=function(t){function e(t,e,n,i){var r,s,o,a,l,u,h,p,f,m;if((e?e.ownerDocument||e:z)!==I&&A(e),e=e||I,n=n||[],a=e.nodeType,"string"!=typeof t||!t||1!==a&&9!==a&&11!==a)return n;if(!i&&P){if(11!==a&&(r=bt.exec(t)))if(o=r[1]){if(9===a){if(s=e.getElementById(o),!s||!s.parentNode)return n;if(s.id===o)return n.push(s),n}else if(e.ownerDocument&&(s=e.ownerDocument.getElementById(o))&&R(e,s)&&s.id===o)return n.push(s),n}else{if(r[2])return J.apply(n,e.getElementsByTagName(t)),n;if((o=r[3])&&w.getElementsByClassName)return J.apply(n,e.getElementsByClassName(o)),n}if(w.qsa&&(!N||!N.test(t))){if(p=h=F,f=e,m=1!==a&&t,1===a&&"object"!==e.nodeName.toLowerCase()){for(u=C(t),(h=e.getAttribute("id"))?p=h.replace($t,"\\$&"):e.setAttribute("id",p),p="[id='"+p+"'] ",l=u.length;l--;)u[l]=p+d(u[l]);f=yt.test(t)&&c(e.parentNode)||e,m=u.join(",")}if(m)try{return J.apply(n,f.querySelectorAll(m)),n}catch(g){}finally{h||e.removeAttribute("id")}}}return T(t.replace(lt,"$1"),e,n,i)}function n(){function t(n,i){return e.push(n+" ")>x.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function i(t){return t[F]=!0,t}function r(t){var e=I.createElement("div");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function s(t,e){for(var n=t.split("|"),i=t.length;i--;)x.attrHandle[n[i]]=e}function o(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||Y)-(~t.sourceIndex||Y);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function a(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function l(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function u(t){return i(function(e){return e=+e,i(function(n,i){for(var r,s=t([],n.length,e),o=s.length;o--;)n[r=s[o]]&&(n[r]=!(i[r]=n[r]))})})}function c(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function h(){}function d(t){for(var e=0,n=t.length,i="";n>e;e++)i+=t[e].value;return i}function p(t,e,n){var i=e.dir,r=n&&"parentNode"===i,s=L++;return e.first?function(e,n,s){for(;e=e[i];)if(1===e.nodeType||r)return t(e,n,s)}:function(e,n,o){var a,l,u=[W,s];if(o){for(;e=e[i];)if((1===e.nodeType||r)&&t(e,n,o))return!0}else for(;e=e[i];)if(1===e.nodeType||r){if(l=e[F]||(e[F]={}),(a=l[i])&&a[0]===W&&a[1]===s)return u[2]=a[2];if(l[i]=u,u[2]=t(e,n,o))return!0}}}function f(t){return t.length>1?function(e,n,i){for(var r=t.length;r--;)if(!t[r](e,n,i))return!1;return!0}:t[0]}function m(t,n,i){for(var r=0,s=n.length;s>r;r++)e(t,n[r],i);return i}function g(t,e,n,i,r){for(var s,o=[],a=0,l=t.length,u=null!=e;l>a;a++)(s=t[a])&&(!n||n(s,i,r))&&(o.push(s),u&&e.push(a));return o}function v(t,e,n,r,s,o){return r&&!r[F]&&(r=v(r)),s&&!s[F]&&(s=v(s,o)),i(function(i,o,a,l){var u,c,h,d=[],p=[],f=o.length,v=i||m(e||"*",a.nodeType?[a]:a,[]),b=!t||!i&&e?v:g(v,d,t,a,l),y=n?s||(i?t:f||r)?[]:o:b;if(n&&n(b,y,a,l),r)for(u=g(y,p),r(u,[],a,l),c=u.length;c--;)(h=u[c])&&(y[p[c]]=!(b[p[c]]=h));if(i){if(s||t){if(s){for(u=[],c=y.length;c--;)(h=y[c])&&u.push(b[c]=h);s(null,y=[],u,l)}for(c=y.length;c--;)(h=y[c])&&(u=s?tt(i,h):d[c])>-1&&(i[u]=!(o[u]=h))}}else y=g(y===o?y.splice(f,y.length):y),s?s(null,o,y,l):J.apply(o,y)})}function b(t){for(var e,n,i,r=t.length,s=x.relative[t[0].type],o=s||x.relative[" "],a=s?1:0,l=p(function(t){return t===e},o,!0),u=p(function(t){return tt(e,t)>-1},o,!0),c=[function(t,n,i){var r=!s&&(i||n!==E)||((e=n).nodeType?l(t,n,i):u(t,n,i));return e=null,r}];r>a;a++)if(n=x.relative[t[a].type])c=[p(f(c),n)];else{if(n=x.filter[t[a].type].apply(null,t[a].matches),n[F]){for(i=++a;r>i&&!x.relative[t[i].type];i++);return v(a>1&&f(c),a>1&&d(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(lt,"$1"),n,i>a&&b(t.slice(a,i)),r>i&&b(t=t.slice(i)),r>i&&d(t))}c.push(n)}return f(c)}function y(t,n){var r=n.length>0,s=t.length>0,o=function(i,o,a,l,u){var c,h,d,p=0,f="0",m=i&&[],v=[],b=E,y=i||s&&x.find.TAG("*",u),$=W+=null==b?1:Math.random()||.1,w=y.length;for(u&&(E=o!==I&&o);f!==w&&null!=(c=y[f]);f++){if(s&&c){for(h=0;d=t[h++];)if(d(c,o,a)){l.push(c);break}u&&(W=$)}r&&((c=!d&&c)&&p--,i&&m.push(c))}if(p+=f,r&&f!==p){for(h=0;d=n[h++];)d(m,v,o,a);if(i){if(p>0)for(;f--;)m[f]||v[f]||(v[f]=X.call(l));v=g(v)}J.apply(l,v),u&&!i&&v.length>0&&p+n.length>1&&e.uniqueSort(l)}return u&&(W=$,E=b),m};return r?i(o):o}var $,w,x,_,k,C,D,T,E,S,M,A,I,O,P,N,H,j,R,F="sizzle"+1*new Date,z=t.document,W=0,L=0,q=n(),V=n(),B=n(),U=function(t,e){return t===e&&(M=!0),0},Y=1<<31,K={}.hasOwnProperty,G=[],X=G.pop,Q=G.push,J=G.push,Z=G.slice,tt=function(t,e){for(var n=0,i=t.length;i>n;n++)if(t[n]===e)return n;return-1},et="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",rt=it.replace("w","w#"),st="\\["+nt+"*("+it+")(?:"+nt+"*([*^$|!~]?=)"+nt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+rt+"))|)"+nt+"*\\]",ot=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+st+")*)|.*)\\)|)",at=new RegExp(nt+"+","g"),lt=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ut=new RegExp("^"+nt+"*,"+nt+"*"),ct=new RegExp("^"+nt+"*([>+~]|"+nt+")"+nt+"*"),ht=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),dt=new RegExp(ot),pt=new RegExp("^"+rt+"$"),ft={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it.replace("w","w*")+")"),ATTR:new RegExp("^"+st),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},mt=/^(?:input|select|textarea|button)$/i,gt=/^h\d$/i,vt=/^[^{]+\{\s*\[native \w/,bt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,$t=/'|\\/g,wt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),xt=function(t,e,n){var i="0x"+e-65536;return i!==i||n?e:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},_t=function(){A()};try{J.apply(G=Z.call(z.childNodes),z.childNodes),G[z.childNodes.length].nodeType}catch(kt){J={apply:G.length?function(t,e){Q.apply(t,Z.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}w=e.support={},k=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return e?"HTML"!==e.nodeName:!1},A=e.setDocument=function(t){var e,n,i=t?t.ownerDocument||t:z;return i!==I&&9===i.nodeType&&i.documentElement?(I=i,O=i.documentElement,n=i.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",_t,!1):n.attachEvent&&n.attachEvent("onunload",_t)),P=!k(i),w.attributes=r(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=r(function(t){return t.appendChild(i.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=vt.test(i.getElementsByClassName),w.getById=r(function(t){return O.appendChild(t).id=F,!i.getElementsByName||!i.getElementsByName(F).length}),w.getById?(x.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&P){var n=e.getElementById(t);return n&&n.parentNode?[n]:[]}},x.filter.ID=function(t){var e=t.replace(wt,xt);return function(t){return t.getAttribute("id")===e}}):(delete x.find.ID,x.filter.ID=function(t){var e=t.replace(wt,xt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),x.find.TAG=w.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):w.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],r=0,s=e.getElementsByTagName(t);if("*"===t){for(;n=s[r++];)1===n.nodeType&&i.push(n);return i}return s},x.find.CLASS=w.getElementsByClassName&&function(t,e){return P?e.getElementsByClassName(t):void 0},H=[],N=[],(w.qsa=vt.test(i.querySelectorAll))&&(r(function(t){O.appendChild(t).innerHTML="<a id='"+F+"'></a><select id='"+F+"-\f]' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||N.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+F+"-]").length||N.push("~="),t.querySelectorAll(":checked").length||N.push(":checked"),t.querySelectorAll("a#"+F+"+*").length||N.push(".#.+[+~]")}),r(function(t){var e=i.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&N.push("name"+nt+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||N.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),N.push(",.*:")})),(w.matchesSelector=vt.test(j=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&r(function(t){w.disconnectedMatch=j.call(t,"div"),j.call(t,"[s!='']:x"),H.push("!=",ot)}),N=N.length&&new RegExp(N.join("|")),H=H.length&&new RegExp(H.join("|")),e=vt.test(O.compareDocumentPosition),R=e||vt.test(O.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},U=e?function(t,e){if(t===e)return M=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!w.sortDetached&&e.compareDocumentPosition(t)===n?t===i||t.ownerDocument===z&&R(z,t)?-1:e===i||e.ownerDocument===z&&R(z,e)?1:S?tt(S,t)-tt(S,e):0:4&n?-1:1)}:function(t,e){if(t===e)return M=!0,0;var n,r=0,s=t.parentNode,a=e.parentNode,l=[t],u=[e];if(!s||!a)return t===i?-1:e===i?1:s?-1:a?1:S?tt(S,t)-tt(S,e):0;if(s===a)return o(t,e);for(n=t;n=n.parentNode;)l.unshift(n);for(n=e;n=n.parentNode;)u.unshift(n);for(;l[r]===u[r];)r++;return r?o(l[r],u[r]):l[r]===z?-1:u[r]===z?1:0},i):I},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==I&&A(t),n=n.replace(ht,"='$1']"),!(!w.matchesSelector||!P||H&&H.test(n)||N&&N.test(n)))try{var i=j.call(t,n);if(i||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(r){}return e(n,I,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==I&&A(t),R(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==I&&A(t);var n=x.attrHandle[e.toLowerCase()],i=n&&K.call(x.attrHandle,e.toLowerCase())?n(t,e,!P):void 0;return void 0!==i?i:w.attributes||!P?t.getAttribute(e):(i=t.getAttributeNode(e))&&i.specified?i.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],i=0,r=0;if(M=!w.detectDuplicates,S=!w.sortStable&&t.slice(0),t.sort(U),M){for(;e=t[r++];)e===t[r]&&(i=n.push(r));for(;i--;)t.splice(n[i],1)}return S=null,t},_=e.getText=function(t){var e,n="",i=0,r=t.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=_(t)}else if(3===r||4===r)return t.nodeValue}else for(;e=t[i++];)n+=_(e);return n},x=e.selectors={cacheLength:50,createPseudo:i,match:ft,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(wt,xt),t[3]=(t[3]||t[4]||t[5]||"").replace(wt,xt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return ft.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&dt.test(n)&&(e=C(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(wt,xt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=q[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&q(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,i){return function(r){var s=e.attr(r,t);return null==s?"!="===n:n?(s+="","="===n?s===i:"!="===n?s!==i:"^="===n?i&&0===s.indexOf(i):"*="===n?i&&s.indexOf(i)>-1:"$="===n?i&&s.slice(-i.length)===i:"~="===n?(" "+s.replace(at," ")+" ").indexOf(i)>-1:"|="===n?s===i||s.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(t,e,n,i,r){var s="nth"!==t.slice(0,3),o="last"!==t.slice(-4),a="of-type"===e;return 1===i&&0===r?function(t){return!!t.parentNode}:function(e,n,l){var u,c,h,d,p,f,m=s!==o?"nextSibling":"previousSibling",g=e.parentNode,v=a&&e.nodeName.toLowerCase(),b=!l&&!a;if(g){if(s){for(;m;){for(h=e;h=h[m];)if(a?h.nodeName.toLowerCase()===v:1===h.nodeType)return!1;f=m="only"===t&&!f&&"nextSibling"}return!0}if(f=[o?g.firstChild:g.lastChild],o&&b){for(c=g[F]||(g[F]={}),u=c[t]||[],p=u[0]===W&&u[1],d=u[0]===W&&u[2],h=p&&g.childNodes[p];h=++p&&h&&h[m]||(d=p=0)||f.pop();)if(1===h.nodeType&&++d&&h===e){c[t]=[W,p,d];break}}else if(b&&(u=(e[F]||(e[F]={}))[t])&&u[0]===W)d=u[1];else for(;(h=++p&&h&&h[m]||(d=p=0)||f.pop())&&((a?h.nodeName.toLowerCase()!==v:1!==h.nodeType)||!++d||(b&&((h[F]||(h[F]={}))[t]=[W,d]),h!==e)););return d-=r,d===i||d%i===0&&d/i>=0}}},PSEUDO:function(t,n){var r,s=x.pseudos[t]||x.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return s[F]?s(n):s.length>1?(r=[t,t,"",n],x.setFilters.hasOwnProperty(t.toLowerCase())?i(function(t,e){for(var i,r=s(t,n),o=r.length;o--;)i=tt(t,r[o]),t[i]=!(e[i]=r[o])}):function(t){return s(t,0,r)}):s}},pseudos:{not:i(function(t){var e=[],n=[],r=D(t.replace(lt,"$1"));return r[F]?i(function(t,e,n,i){for(var s,o=r(t,null,i,[]),a=t.length;a--;)(s=o[a])&&(t[a]=!(e[a]=s))}):function(t,i,s){return e[0]=t,r(e,null,s,n),e[0]=null,!n.pop()}}),has:i(function(t){return function(n){return e(t,n).length>0}}),contains:i(function(t){return t=t.replace(wt,xt),function(e){return(e.textContent||e.innerText||_(e)).indexOf(t)>-1}}),lang:i(function(t){return pt.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(wt,xt).toLowerCase(),function(e){var n;do if(n=P?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===O},focus:function(t){return t===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!x.pseudos.empty(t)},header:function(t){return gt.test(t.nodeName)},input:function(t){return mt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:u(function(){return[0]}),last:u(function(t,e){return[e-1]}),eq:u(function(t,e,n){return[0>n?n+e:n]}),even:u(function(t,e){for(var n=0;e>n;n+=2)t.push(n);return t}),odd:u(function(t,e){for(var n=1;e>n;n+=2)t.push(n);return t}),lt:u(function(t,e,n){for(var i=0>n?n+e:n;--i>=0;)t.push(i);return t}),gt:u(function(t,e,n){for(var i=0>n?n+e:n;++i<e;)t.push(i);return t})}},x.pseudos.nth=x.pseudos.eq;for($ in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[$]=a($);for($ in{submit:!0,reset:!0})x.pseudos[$]=l($);return h.prototype=x.filters=x.pseudos,x.setFilters=new h,C=e.tokenize=function(t,n){var i,r,s,o,a,l,u,c=V[t+" "];if(c)return n?0:c.slice(0);for(a=t,l=[],u=x.preFilter;a;){(!i||(r=ut.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),l.push(s=[])),i=!1,(r=ct.exec(a))&&(i=r.shift(),s.push({value:i,type:r[0].replace(lt," ")}),a=a.slice(i.length));for(o in x.filter)!(r=ft[o].exec(a))||u[o]&&!(r=u[o](r))||(i=r.shift(),s.push({value:i,type:o,matches:r}),a=a.slice(i.length));if(!i)break}return n?a.length:a?e.error(t):V(t,l).slice(0)},D=e.compile=function(t,e){var n,i=[],r=[],s=B[t+" "];if(!s){for(e||(e=C(t)),n=e.length;n--;)s=b(e[n]),s[F]?i.push(s):r.push(s);s=B(t,y(r,i)),s.selector=t}return s},T=e.select=function(t,e,n,i){var r,s,o,a,l,u="function"==typeof t&&t,h=!i&&C(t=u.selector||t);if(n=n||[],1===h.length){if(s=h[0]=h[0].slice(0),s.length>2&&"ID"===(o=s[0]).type&&w.getById&&9===e.nodeType&&P&&x.relative[s[1].type]){if(e=(x.find.ID(o.matches[0].replace(wt,xt),e)||[])[0],!e)return n;u&&(e=e.parentNode),t=t.slice(s.shift().value.length)}for(r=ft.needsContext.test(t)?0:s.length;r--&&(o=s[r],!x.relative[a=o.type]);)if((l=x.find[a])&&(i=l(o.matches[0].replace(wt,xt),yt.test(s[0].type)&&c(e.parentNode)||e))){if(s.splice(r,1),t=i.length&&d(s),!t)return J.apply(n,i),n;break}}return(u||D(t,h))(i,e,!P,n,yt.test(t)&&c(e.parentNode)||e),n},w.sortStable=F.split("").sort(U).join("")===F,w.detectDuplicates=!!M,A(),w.sortDetached=r(function(t){return 1&t.compareDocumentPosition(I.createElement("div"))}),r(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||s("type|href|height|width",function(t,e,n){return n?void 0:t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&r(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||s("value",function(t,e,n){return n||"input"!==t.nodeName.toLowerCase()?void 0:t.defaultValue}),r(function(t){return null==t.getAttribute("disabled")})||s(et,function(t,e,n){var i;return n?void 0:t[e]===!0?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null}),e}(t);Z.find=rt,Z.expr=rt.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=rt.uniqueSort,Z.text=rt.getText,Z.isXMLDoc=rt.isXML,Z.contains=rt.contains;var st=Z.expr.match.needsContext,ot=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,at=/^.[^:#\[\.,]*$/;Z.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?Z.find.matchesSelector(i,t)?[i]:[]:Z.find.matches(t,Z.grep(e,function(t){return 1===t.nodeType}))},Z.fn.extend({find:function(t){var e,n=this.length,i=[],r=this;
-
-if("string"!=typeof t)return this.pushStack(Z(t).filter(function(){for(e=0;n>e;e++)if(Z.contains(r[e],this))return!0}));for(e=0;n>e;e++)Z.find(t,r[e],i);return i=this.pushStack(n>1?Z.unique(i):i),i.selector=this.selector?this.selector+" "+t:t,i},filter:function(t){return this.pushStack(i(this,t||[],!1))},not:function(t){return this.pushStack(i(this,t||[],!0))},is:function(t){return!!i(this,"string"==typeof t&&st.test(t)?Z(t):t||[],!1).length}});var lt,ut=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ct=Z.fn.init=function(t,e){var n,i;if(!t)return this;if("string"==typeof t){if(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:ut.exec(t),!n||!n[1]&&e)return!e||e.jquery?(e||lt).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof Z?e[0]:e,Z.merge(this,Z.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:Q,!0)),ot.test(n[1])&&Z.isPlainObject(e))for(n in e)Z.isFunction(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return i=Q.getElementById(n[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=Q,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):Z.isFunction(t)?"undefined"!=typeof lt.ready?lt.ready(t):t(Z):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),Z.makeArray(t,this))};ct.prototype=Z.fn,lt=Z(Q);var ht=/^(?:parents|prev(?:Until|All))/,dt={children:!0,contents:!0,next:!0,prev:!0};Z.extend({dir:function(t,e,n){for(var i=[],r=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&Z(t).is(n))break;i.push(t)}return i},sibling:function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n}}),Z.fn.extend({has:function(t){var e=Z(t,this),n=e.length;return this.filter(function(){for(var t=0;n>t;t++)if(Z.contains(this,e[t]))return!0})},closest:function(t,e){for(var n,i=0,r=this.length,s=[],o=st.test(t)||"string"!=typeof t?Z(t,e||this.context):0;r>i;i++)for(n=this[i];n&&n!==e;n=n.parentNode)if(n.nodeType<11&&(o?o.index(n)>-1:1===n.nodeType&&Z.find.matchesSelector(n,t))){s.push(n);break}return this.pushStack(s.length>1?Z.unique(s):s)},index:function(t){return t?"string"==typeof t?U.call(Z(t),this[0]):U.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(Z.unique(Z.merge(this.get(),Z(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),Z.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return Z.dir(t,"parentNode")},parentsUntil:function(t,e,n){return Z.dir(t,"parentNode",n)},next:function(t){return r(t,"nextSibling")},prev:function(t){return r(t,"previousSibling")},nextAll:function(t){return Z.dir(t,"nextSibling")},prevAll:function(t){return Z.dir(t,"previousSibling")},nextUntil:function(t,e,n){return Z.dir(t,"nextSibling",n)},prevUntil:function(t,e,n){return Z.dir(t,"previousSibling",n)},siblings:function(t){return Z.sibling((t.parentNode||{}).firstChild,t)},children:function(t){return Z.sibling(t.firstChild)},contents:function(t){return t.contentDocument||Z.merge([],t.childNodes)}},function(t,e){Z.fn[t]=function(n,i){var r=Z.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=Z.filter(i,r)),this.length>1&&(dt[t]||Z.unique(r),ht.test(t)&&r.reverse()),this.pushStack(r)}});var pt=/\S+/g,ft={};Z.Callbacks=function(t){t="string"==typeof t?ft[t]||s(t):Z.extend({},t);var e,n,i,r,o,a,l=[],u=!t.once&&[],c=function(s){for(e=t.memory&&s,n=!0,a=r||0,r=0,o=l.length,i=!0;l&&o>a;a++)if(l[a].apply(s[0],s[1])===!1&&t.stopOnFalse){e=!1;break}i=!1,l&&(u?u.length&&c(u.shift()):e?l=[]:h.disable())},h={add:function(){if(l){var n=l.length;!function s(e){Z.each(e,function(e,n){var i=Z.type(n);"function"===i?t.unique&&h.has(n)||l.push(n):n&&n.length&&"string"!==i&&s(n)})}(arguments),i?o=l.length:e&&(r=n,c(e))}return this},remove:function(){return l&&Z.each(arguments,function(t,e){for(var n;(n=Z.inArray(e,l,n))>-1;)l.splice(n,1),i&&(o>=n&&o--,a>=n&&a--)}),this},has:function(t){return t?Z.inArray(t,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=e=void 0,this},disabled:function(){return!l},lock:function(){return u=void 0,e||h.disable(),this},locked:function(){return!u},fireWith:function(t,e){return!l||n&&!u||(e=e||[],e=[t,e.slice?e.slice():e],i?u.push(e):c(e)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!n}};return h},Z.extend({Deferred:function(t){var e=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var t=arguments;return Z.Deferred(function(n){Z.each(e,function(e,s){var o=Z.isFunction(t[e])&&t[e];r[s[1]](function(){var t=o&&o.apply(this,arguments);t&&Z.isFunction(t.promise)?t.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s[0]+"With"](this===i?n.promise():this,o?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?Z.extend(t,i):i}},r={};return i.pipe=i.then,Z.each(e,function(t,s){var o=s[2],a=s[3];i[s[1]]=o.add,a&&o.add(function(){n=a},e[1^t][2].disable,e[2][2].lock),r[s[0]]=function(){return r[s[0]+"With"](this===r?i:this,arguments),this},r[s[0]+"With"]=o.fireWith}),i.promise(r),t&&t.call(r,r),r},when:function(t){var e,n,i,r=0,s=q.call(arguments),o=s.length,a=1!==o||t&&Z.isFunction(t.promise)?o:0,l=1===a?t:Z.Deferred(),u=function(t,n,i){return function(r){n[t]=this,i[t]=arguments.length>1?q.call(arguments):r,i===e?l.notifyWith(n,i):--a||l.resolveWith(n,i)}};if(o>1)for(e=new Array(o),n=new Array(o),i=new Array(o);o>r;r++)s[r]&&Z.isFunction(s[r].promise)?s[r].promise().done(u(r,i,s)).fail(l.reject).progress(u(r,n,e)):--a;return a||l.resolveWith(i,s),l.promise()}});var mt;Z.fn.ready=function(t){return Z.ready.promise().done(t),this},Z.extend({isReady:!1,readyWait:1,holdReady:function(t){t?Z.readyWait++:Z.ready(!0)},ready:function(t){(t===!0?--Z.readyWait:Z.isReady)||(Z.isReady=!0,t!==!0&&--Z.readyWait>0||(mt.resolveWith(Q,[Z]),Z.fn.triggerHandler&&(Z(Q).triggerHandler("ready"),Z(Q).off("ready"))))}}),Z.ready.promise=function(e){return mt||(mt=Z.Deferred(),"complete"===Q.readyState?setTimeout(Z.ready):(Q.addEventListener("DOMContentLoaded",o,!1),t.addEventListener("load",o,!1))),mt.promise(e)},Z.ready.promise();var gt=Z.access=function(t,e,n,i,r,s,o){var a=0,l=t.length,u=null==n;if("object"===Z.type(n)){r=!0;for(a in n)Z.access(t,e,a,n[a],!0,s,o)}else if(void 0!==i&&(r=!0,Z.isFunction(i)||(o=!0),u&&(o?(e.call(t,i),e=null):(u=e,e=function(t,e,n){return u.call(Z(t),n)})),e))for(;l>a;a++)e(t[a],n,o?i:i.call(t[a],a,e(t[a],n)));return r?t:u?e.call(t):l?e(t[0],n):s};Z.acceptData=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType},a.uid=1,a.accepts=Z.acceptData,a.prototype={key:function(t){if(!a.accepts(t))return 0;var e={},n=t[this.expando];if(!n){n=a.uid++;try{e[this.expando]={value:n},Object.defineProperties(t,e)}catch(i){e[this.expando]=n,Z.extend(t,e)}}return this.cache[n]||(this.cache[n]={}),n},set:function(t,e,n){var i,r=this.key(t),s=this.cache[r];if("string"==typeof e)s[e]=n;else if(Z.isEmptyObject(s))Z.extend(this.cache[r],e);else for(i in e)s[i]=e[i];return s},get:function(t,e){var n=this.cache[this.key(t)];return void 0===e?n:n[e]},access:function(t,e,n){var i;return void 0===e||e&&"string"==typeof e&&void 0===n?(i=this.get(t,e),void 0!==i?i:this.get(t,Z.camelCase(e))):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,i,r,s=this.key(t),o=this.cache[s];if(void 0===e)this.cache[s]={};else{Z.isArray(e)?i=e.concat(e.map(Z.camelCase)):(r=Z.camelCase(e),e in o?i=[e,r]:(i=r,i=i in o?[i]:i.match(pt)||[])),n=i.length;for(;n--;)delete o[i[n]]}},hasData:function(t){return!Z.isEmptyObject(this.cache[t[this.expando]]||{})},discard:function(t){t[this.expando]&&delete this.cache[t[this.expando]]}};var vt=new a,bt=new a,yt=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,$t=/([A-Z])/g;Z.extend({hasData:function(t){return bt.hasData(t)||vt.hasData(t)},data:function(t,e,n){return bt.access(t,e,n)},removeData:function(t,e){bt.remove(t,e)},_data:function(t,e,n){return vt.access(t,e,n)},_removeData:function(t,e){vt.remove(t,e)}}),Z.fn.extend({data:function(t,e){var n,i,r,s=this[0],o=s&&s.attributes;if(void 0===t){if(this.length&&(r=bt.get(s),1===s.nodeType&&!vt.get(s,"hasDataAttrs"))){for(n=o.length;n--;)o[n]&&(i=o[n].name,0===i.indexOf("data-")&&(i=Z.camelCase(i.slice(5)),l(s,i,r[i])));vt.set(s,"hasDataAttrs",!0)}return r}return"object"==typeof t?this.each(function(){bt.set(this,t)}):gt(this,function(e){var n,i=Z.camelCase(t);if(s&&void 0===e){if(n=bt.get(s,t),void 0!==n)return n;if(n=bt.get(s,i),void 0!==n)return n;if(n=l(s,i,void 0),void 0!==n)return n}else this.each(function(){var n=bt.get(this,i);bt.set(this,i,e),-1!==t.indexOf("-")&&void 0!==n&&bt.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){bt.remove(this,t)})}}),Z.extend({queue:function(t,e,n){var i;return t?(e=(e||"fx")+"queue",i=vt.get(t,e),n&&(!i||Z.isArray(n)?i=vt.access(t,e,Z.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(t,e){e=e||"fx";var n=Z.queue(t,e),i=n.length,r=n.shift(),s=Z._queueHooks(t,e),o=function(){Z.dequeue(t,e)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===e&&n.unshift("inprogress"),delete s.stop,r.call(t,o,s)),!i&&s&&s.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return vt.get(t,n)||vt.access(t,n,{empty:Z.Callbacks("once memory").add(function(){vt.remove(t,[e+"queue",n])})})}}),Z.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length<n?Z.queue(this[0],t):void 0===e?this:this.each(function(){var n=Z.queue(this,t,e);Z._queueHooks(this,t),"fx"===t&&"inprogress"!==n[0]&&Z.dequeue(this,t)})},dequeue:function(t){return this.each(function(){Z.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var n,i=1,r=Z.Deferred(),s=this,o=this.length,a=function(){--i||r.resolveWith(s,[s])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";o--;)n=vt.get(s[o],t+"queueHooks"),n&&n.empty&&(i++,n.empty.add(a));return a(),r.promise(e)}});var wt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,xt=["Top","Right","Bottom","Left"],_t=function(t,e){return t=e||t,"none"===Z.css(t,"display")||!Z.contains(t.ownerDocument,t)},kt=/^(?:checkbox|radio)$/i;!function(){var t=Q.createDocumentFragment(),e=t.appendChild(Q.createElement("div")),n=Q.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),X.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",X.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Ct="undefined";X.focusinBubbles="onfocusin"in t;var Dt=/^key/,Tt=/^(?:mouse|pointer|contextmenu)|click/,Et=/^(?:focusinfocus|focusoutblur)$/,St=/^([^.]*)(?:\.(.+)|)$/;Z.event={global:{},add:function(t,e,n,i,r){var s,o,a,l,u,c,h,d,p,f,m,g=vt.get(t);if(g)for(n.handler&&(s=n,n=s.handler,r=s.selector),n.guid||(n.guid=Z.guid++),(l=g.events)||(l=g.events={}),(o=g.handle)||(o=g.handle=function(e){return typeof Z!==Ct&&Z.event.triggered!==e.type?Z.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(pt)||[""],u=e.length;u--;)a=St.exec(e[u])||[],p=m=a[1],f=(a[2]||"").split(".").sort(),p&&(h=Z.event.special[p]||{},p=(r?h.delegateType:h.bindType)||p,h=Z.event.special[p]||{},c=Z.extend({type:p,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&Z.expr.match.needsContext.test(r),namespace:f.join(".")},s),(d=l[p])||(d=l[p]=[],d.delegateCount=0,h.setup&&h.setup.call(t,i,f,o)!==!1||t.addEventListener&&t.addEventListener(p,o,!1)),h.add&&(h.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),r?d.splice(d.delegateCount++,0,c):d.push(c),Z.event.global[p]=!0)},remove:function(t,e,n,i,r){var s,o,a,l,u,c,h,d,p,f,m,g=vt.hasData(t)&&vt.get(t);if(g&&(l=g.events)){for(e=(e||"").match(pt)||[""],u=e.length;u--;)if(a=St.exec(e[u])||[],p=m=a[1],f=(a[2]||"").split(".").sort(),p){for(h=Z.event.special[p]||{},p=(i?h.delegateType:h.bindType)||p,d=l[p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=s=d.length;s--;)c=d[s],!r&&m!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(d.splice(s,1),c.selector&&d.delegateCount--,h.remove&&h.remove.call(t,c));o&&!d.length&&(h.teardown&&h.teardown.call(t,f,g.handle)!==!1||Z.removeEvent(t,p,g.handle),delete l[p])}else for(p in l)Z.event.remove(t,p+e[u],n,i,!0);Z.isEmptyObject(l)&&(delete g.handle,vt.remove(t,"events"))}},trigger:function(e,n,i,r){var s,o,a,l,u,c,h,d=[i||Q],p=G.call(e,"type")?e.type:e,f=G.call(e,"namespace")?e.namespace.split("."):[];if(o=a=i=i||Q,3!==i.nodeType&&8!==i.nodeType&&!Et.test(p+Z.event.triggered)&&(p.indexOf(".")>=0&&(f=p.split("."),p=f.shift(),f.sort()),u=p.indexOf(":")<0&&"on"+p,e=e[Z.expando]?e:new Z.Event(p,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=f.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=i),n=null==n?[e]:Z.makeArray(n,[e]),h=Z.event.special[p]||{},r||!h.trigger||h.trigger.apply(i,n)!==!1)){if(!r&&!h.noBubble&&!Z.isWindow(i)){for(l=h.delegateType||p,Et.test(l+p)||(o=o.parentNode);o;o=o.parentNode)d.push(o),a=o;a===(i.ownerDocument||Q)&&d.push(a.defaultView||a.parentWindow||t)}for(s=0;(o=d[s++])&&!e.isPropagationStopped();)e.type=s>1?l:h.bindType||p,c=(vt.get(o,"events")||{})[e.type]&&vt.get(o,"handle"),c&&c.apply(o,n),c=u&&o[u],c&&c.apply&&Z.acceptData(o)&&(e.result=c.apply(o,n),e.result===!1&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||h._default&&h._default.apply(d.pop(),n)!==!1||!Z.acceptData(i)||u&&Z.isFunction(i[p])&&!Z.isWindow(i)&&(a=i[u],a&&(i[u]=null),Z.event.triggered=p,i[p](),Z.event.triggered=void 0,a&&(i[u]=a)),e.result}},dispatch:function(t){t=Z.event.fix(t);var e,n,i,r,s,o=[],a=q.call(arguments),l=(vt.get(this,"events")||{})[t.type]||[],u=Z.event.special[t.type]||{};if(a[0]=t,t.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,t)!==!1){for(o=Z.event.handlers.call(this,t,l),e=0;(r=o[e++])&&!t.isPropagationStopped();)for(t.currentTarget=r.elem,n=0;(s=r.handlers[n++])&&!t.isImmediatePropagationStopped();)(!t.namespace_re||t.namespace_re.test(s.namespace))&&(t.handleObj=s,t.data=s.data,i=((Z.event.special[s.origType]||{}).handle||s.handler).apply(r.elem,a),void 0!==i&&(t.result=i)===!1&&(t.preventDefault(),t.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,t),t.result}},handlers:function(t,e){var n,i,r,s,o=[],a=e.delegateCount,l=t.target;if(a&&l.nodeType&&(!t.button||"click"!==t.type))for(;l!==this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==t.type){for(i=[],n=0;a>n;n++)s=e[n],r=s.selector+" ",void 0===i[r]&&(i[r]=s.needsContext?Z(r,this).index(l)>=0:Z.find(r,this,null,[l]).length),i[r]&&i.push(s);i.length&&o.push({elem:l,handlers:i})}return a<e.length&&o.push({elem:this,handlers:e.slice(a)}),o},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var n,i,r,s=e.button;return null==t.pageX&&null!=e.clientX&&(n=t.target.ownerDocument||Q,i=n.documentElement,r=n.body,t.pageX=e.clientX+(i&&i.scrollLeft||r&&r.scrollLeft||0)-(i&&i.clientLeft||r&&r.clientLeft||0),t.pageY=e.clientY+(i&&i.scrollTop||r&&r.scrollTop||0)-(i&&i.clientTop||r&&r.clientTop||0)),t.which||void 0===s||(t.which=1&s?1:2&s?3:4&s?2:0),t}},fix:function(t){if(t[Z.expando])return t;var e,n,i,r=t.type,s=t,o=this.fixHooks[r];for(o||(this.fixHooks[r]=o=Tt.test(r)?this.mouseHooks:Dt.test(r)?this.keyHooks:{}),i=o.props?this.props.concat(o.props):this.props,t=new Z.Event(s),e=i.length;e--;)n=i[e],t[n]=s[n];return t.target||(t.target=Q),3===t.target.nodeType&&(t.target=t.target.parentNode),o.filter?o.filter(t,s):t},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==h()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===h()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&Z.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(t){return Z.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}},simulate:function(t,e,n,i){var r=Z.extend(new Z.Event,n,{type:t,isSimulated:!0,originalEvent:{}});i?Z.event.trigger(r,null,e):Z.event.dispatch.call(e,r),r.isDefaultPrevented()&&n.preventDefault()}},Z.removeEvent=function(t,e,n){t.removeEventListener&&t.removeEventListener(e,n,!1)},Z.Event=function(t,e){return this instanceof Z.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?u:c):this.type=t,e&&Z.extend(this,e),this.timeStamp=t&&t.timeStamp||Z.now(),void(this[Z.expando]=!0)):new Z.Event(t,e)},Z.Event.prototype={isDefaultPrevented:c,isPropagationStopped:c,isImmediatePropagationStopped:c,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=u,t&&t.preventDefault&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=u,t&&t.stopPropagation&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=u,t&&t.stopImmediatePropagation&&t.stopImmediatePropagation(),this.stopPropagation()}},Z.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){Z.event.special[t]={delegateType:e,bindType:e,handle:function(t){var n,i=this,r=t.relatedTarget,s=t.handleObj;return(!r||r!==i&&!Z.contains(i,r))&&(t.type=s.origType,n=s.handler.apply(this,arguments),t.type=e),n}}}),X.focusinBubbles||Z.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){Z.event.simulate(e,t.target,Z.event.fix(t),!0)};Z.event.special[e]={setup:function(){var i=this.ownerDocument||this,r=vt.access(i,e);r||i.addEventListener(t,n,!0),vt.access(i,e,(r||0)+1)},teardown:function(){var i=this.ownerDocument||this,r=vt.access(i,e)-1;r?vt.access(i,e,r):(i.removeEventListener(t,n,!0),vt.remove(i,e))}}}),Z.fn.extend({on:function(t,e,n,i,r){var s,o;if("object"==typeof t){"string"!=typeof e&&(n=n||e,e=void 0);for(o in t)this.on(o,e,n,t[o],r);return this}if(null==n&&null==i?(i=e,n=e=void 0):null==i&&("string"==typeof e?(i=n,n=void 0):(i=n,n=e,e=void 0)),i===!1)i=c;else if(!i)return this;return 1===r&&(s=i,i=function(t){return Z().off(t),s.apply(this,arguments)},i.guid=s.guid||(s.guid=Z.guid++)),this.each(function(){Z.event.add(this,t,i,n,e)})},one:function(t,e,n,i){return this.on(t,e,n,i,1)},off:function(t,e,n){var i,r;if(t&&t.preventDefault&&t.handleObj)return i=t.handleObj,Z(t.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof t){for(r in t)this.off(r,e,t[r]);return this}return(e===!1||"function"==typeof e)&&(n=e,e=void 0),n===!1&&(n=c),this.each(function(){Z.event.remove(this,t,n,e)})},trigger:function(t,e){return this.each(function(){Z.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];return n?Z.event.trigger(t,e,n,!0):void 0}});var Mt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,At=/<([\w:]+)/,It=/<|&#?\w+;/,Ot=/<(?:script|style|link)/i,Pt=/checked\s*(?:[^=]|=\s*.checked.)/i,Nt=/^$|\/(?:java|ecma)script/i,Ht=/^true\/(.*)/,jt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Rt={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Rt.optgroup=Rt.option,Rt.tbody=Rt.tfoot=Rt.colgroup=Rt.caption=Rt.thead,Rt.th=Rt.td,Z.extend({clone:function(t,e,n){var i,r,s,o,a=t.cloneNode(!0),l=Z.contains(t.ownerDocument,t);if(!(X.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||Z.isXMLDoc(t)))for(o=v(a),s=v(t),i=0,r=s.length;r>i;i++)b(s[i],o[i]);if(e)if(n)for(s=s||v(t),o=o||v(a),i=0,r=s.length;r>i;i++)g(s[i],o[i]);else g(t,a);return o=v(a,"script"),o.length>0&&m(o,!l&&v(t,"script")),a},buildFragment:function(t,e,n,i){for(var r,s,o,a,l,u,c=e.createDocumentFragment(),h=[],d=0,p=t.length;p>d;d++)if(r=t[d],r||0===r)if("object"===Z.type(r))Z.merge(h,r.nodeType?[r]:r);else if(It.test(r)){for(s=s||c.appendChild(e.createElement("div")),o=(At.exec(r)||["",""])[1].toLowerCase(),a=Rt[o]||Rt._default,s.innerHTML=a[1]+r.replace(Mt,"<$1></$2>")+a[2],u=a[0];u--;)s=s.lastChild;Z.merge(h,s.childNodes),s=c.firstChild,s.textContent=""}else h.push(e.createTextNode(r));for(c.textContent="",d=0;r=h[d++];)if((!i||-1===Z.inArray(r,i))&&(l=Z.contains(r.ownerDocument,r),s=v(c.appendChild(r),"script"),l&&m(s),n))for(u=0;r=s[u++];)Nt.test(r.type||"")&&n.push(r);return c},cleanData:function(t){for(var e,n,i,r,s=Z.event.special,o=0;void 0!==(n=t[o]);o++){if(Z.acceptData(n)&&(r=n[vt.expando],r&&(e=vt.cache[r]))){if(e.events)for(i in e.events)s[i]?Z.event.remove(n,i):Z.removeEvent(n,i,e.handle);vt.cache[r]&&delete vt.cache[r]}delete bt.cache[n[bt.expando]]}}}),Z.fn.extend({text:function(t){return gt(this,function(t){return void 0===t?Z.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=t)})},null,t,arguments.length)},append:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.appendChild(t)}})},prepend:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},remove:function(t,e){for(var n,i=t?Z.filter(t,this):this,r=0;null!=(n=i[r]);r++)e||1!==n.nodeType||Z.cleanData(v(n)),n.parentNode&&(e&&Z.contains(n.ownerDocument,n)&&m(v(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(Z.cleanData(v(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null==t?!1:t,e=null==e?t:e,this.map(function(){return Z.clone(this,t,e)})},html:function(t){return gt(this,function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Ot.test(t)&&!Rt[(At.exec(t)||["",""])[1].toLowerCase()]){t=t.replace(Mt,"<$1></$2>");try{for(;i>n;n++)e=this[n]||{},1===e.nodeType&&(Z.cleanData(v(e,!1)),e.innerHTML=t);e=0}catch(r){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=arguments[0];return this.domManip(arguments,function(e){t=this.parentNode,Z.cleanData(v(this)),t&&t.replaceChild(e,this)}),t&&(t.length||t.nodeType)?this:this.remove()},detach:function(t){return this.remove(t,!0)},domManip:function(t,e){t=V.apply([],t);var n,i,r,s,o,a,l=0,u=this.length,c=this,h=u-1,d=t[0],m=Z.isFunction(d);if(m||u>1&&"string"==typeof d&&!X.checkClone&&Pt.test(d))return this.each(function(n){var i=c.eq(n);m&&(t[0]=d.call(this,n,i.html())),i.domManip(t,e)});if(u&&(n=Z.buildFragment(t,this[0].ownerDocument,!1,this),i=n.firstChild,1===n.childNodes.length&&(n=i),i)){for(r=Z.map(v(n,"script"),p),s=r.length;u>l;l++)o=n,l!==h&&(o=Z.clone(o,!0,!0),s&&Z.merge(r,v(o,"script"))),e.call(this[l],o,l);if(s)for(a=r[r.length-1].ownerDocument,Z.map(r,f),l=0;s>l;l++)o=r[l],Nt.test(o.type||"")&&!vt.access(o,"globalEval")&&Z.contains(a,o)&&(o.src?Z._evalUrl&&Z._evalUrl(o.src):Z.globalEval(o.textContent.replace(jt,"")))}return this}}),Z.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){Z.fn[t]=function(t){for(var n,i=[],r=Z(t),s=r.length-1,o=0;s>=o;o++)n=o===s?this:this.clone(!0),Z(r[o])[e](n),B.apply(i,n.get());return this.pushStack(i)}});var Ft,zt={},Wt=/^margin/,Lt=new RegExp("^("+wt+")(?!px)[a-z%]+$","i"),qt=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):t.getComputedStyle(e,null)};!function(){function e(){o.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o.innerHTML="",r.appendChild(s);var e=t.getComputedStyle(o,null);n="1%"!==e.top,i="4px"===e.width,r.removeChild(s)}var n,i,r=Q.documentElement,s=Q.createElement("div"),o=Q.createElement("div");o.style&&(o.style.backgroundClip="content-box",o.cloneNode(!0).style.backgroundClip="",X.clearCloneStyle="content-box"===o.style.backgroundClip,s.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",s.appendChild(o),t.getComputedStyle&&Z.extend(X,{pixelPosition:function(){return e(),n},boxSizingReliable:function(){return null==i&&e(),i},reliableMarginRight:function(){var e,n=o.appendChild(Q.createElement("div"));return n.style.cssText=o.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",o.style.width="1px",r.appendChild(s),e=!parseFloat(t.getComputedStyle(n,null).marginRight),r.removeChild(s),o.removeChild(n),e}}))}(),Z.swap=function(t,e,n,i){var r,s,o={};for(s in e)o[s]=t.style[s],t.style[s]=e[s];r=n.apply(t,i||[]);for(s in e)t.style[s]=o[s];return r};var Vt=/^(none|table(?!-c[ea]).+)/,Bt=new RegExp("^("+wt+")(.*)$","i"),Ut=new RegExp("^([+-])=("+wt+")","i"),Yt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:"0",fontWeight:"400"},Gt=["Webkit","O","Moz","ms"];Z.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=w(t,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(t,e,n,i){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var r,s,o,a=Z.camelCase(e),l=t.style;return e=Z.cssProps[a]||(Z.cssProps[a]=_(l,a)),o=Z.cssHooks[e]||Z.cssHooks[a],void 0===n?o&&"get"in o&&void 0!==(r=o.get(t,!1,i))?r:l[e]:(s=typeof n,"string"===s&&(r=Ut.exec(n))&&(n=(r[1]+1)*r[2]+parseFloat(Z.css(t,e)),s="number"),null!=n&&n===n&&("number"!==s||Z.cssNumber[a]||(n+="px"),X.clearCloneStyle||""!==n||0!==e.indexOf("background")||(l[e]="inherit"),o&&"set"in o&&void 0===(n=o.set(t,n,i))||(l[e]=n)),void 0)}},css:function(t,e,n,i){var r,s,o,a=Z.camelCase(e);return e=Z.cssProps[a]||(Z.cssProps[a]=_(t.style,a)),o=Z.cssHooks[e]||Z.cssHooks[a],o&&"get"in o&&(r=o.get(t,!0,n)),void 0===r&&(r=w(t,e,i)),"normal"===r&&e in Kt&&(r=Kt[e]),""===n||n?(s=parseFloat(r),n===!0||Z.isNumeric(s)?s||0:r):r}}),Z.each(["height","width"],function(t,e){Z.cssHooks[e]={get:function(t,n,i){return n?Vt.test(Z.css(t,"display"))&&0===t.offsetWidth?Z.swap(t,Yt,function(){return D(t,e,i)}):D(t,e,i):void 0},set:function(t,n,i){var r=i&&qt(t);return k(t,n,i?C(t,e,i,"border-box"===Z.css(t,"boxSizing",!1,r),r):0)}}}),Z.cssHooks.marginRight=x(X.reliableMarginRight,function(t,e){return e?Z.swap(t,{display:"inline-block"},w,[t,"marginRight"]):void 0}),Z.each({margin:"",padding:"",border:"Width"},function(t,e){Z.cssHooks[t+e]={expand:function(n){for(var i=0,r={},s="string"==typeof n?n.split(" "):[n];4>i;i++)r[t+xt[i]+e]=s[i]||s[i-2]||s[0];return r}},Wt.test(t)||(Z.cssHooks[t+e].set=k)}),Z.fn.extend({css:function(t,e){return gt(this,function(t,e,n){var i,r,s={},o=0;if(Z.isArray(e)){for(i=qt(t),r=e.length;r>o;o++)s[e[o]]=Z.css(t,e[o],!1,i);return s}return void 0!==n?Z.style(t,e,n):Z.css(t,e)},t,e,arguments.length>1)},show:function(){return T(this,!0)},hide:function(){return T(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){_t(this)?Z(this).show():Z(this).hide()})}}),Z.Tween=E,E.prototype={constructor:E,init:function(t,e,n,i,r,s){this.elem=t,this.prop=n,this.easing=r||"swing",this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=s||(Z.cssNumber[n]?"":"px")},cur:function(){var t=E.propHooks[this.prop];return t&&t.get?t.get(this):E.propHooks._default.get(this)},run:function(t){var e,n=E.propHooks[this.prop];return this.pos=e=this.options.duration?Z.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):E.propHooks._default.set(this),this}},E.prototype.init.prototype=E.prototype,E.propHooks={_default:{get:function(t){var e;return null==t.elem[t.prop]||t.elem.style&&null!=t.elem.style[t.prop]?(e=Z.css(t.elem,t.prop,""),e&&"auto"!==e?e:0):t.elem[t.prop]},set:function(t){Z.fx.step[t.prop]?Z.fx.step[t.prop](t):t.elem.style&&(null!=t.elem.style[Z.cssProps[t.prop]]||Z.cssHooks[t.prop])?Z.style(t.elem,t.prop,t.now+t.unit):t.elem[t.prop]=t.now}}},E.propHooks.scrollTop=E.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},Z.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2}},Z.fx=E.prototype.init,Z.fx.step={};var Xt,Qt,Jt=/^(?:toggle|show|hide)$/,Zt=new RegExp("^(?:([+-])=|)("+wt+")([a-z%]*)$","i"),te=/queueHooks$/,ee=[I],ne={"*":[function(t,e){var n=this.createTween(t,e),i=n.cur(),r=Zt.exec(e),s=r&&r[3]||(Z.cssNumber[t]?"":"px"),o=(Z.cssNumber[t]||"px"!==s&&+i)&&Zt.exec(Z.css(n.elem,t)),a=1,l=20;if(o&&o[3]!==s){s=s||o[3],r=r||[],o=+i||1;do a=a||".5",o/=a,Z.style(n.elem,t,o+s);while(a!==(a=n.cur()/i)&&1!==a&&--l)}return r&&(o=n.start=+o||+i||0,n.unit=s,n.end=r[1]?o+(r[1]+1)*r[2]:+r[2]),n}]};Z.Animation=Z.extend(P,{tweener:function(t,e){Z.isFunction(t)?(e=t,t=["*"]):t=t.split(" ");for(var n,i=0,r=t.length;r>i;i++)n=t[i],ne[n]=ne[n]||[],ne[n].unshift(e)},prefilter:function(t,e){e?ee.unshift(t):ee.push(t)}}),Z.speed=function(t,e,n){var i=t&&"object"==typeof t?Z.extend({},t):{complete:n||!n&&e||Z.isFunction(t)&&t,duration:t,easing:n&&e||e&&!Z.isFunction(e)&&e};return i.duration=Z.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in Z.fx.speeds?Z.fx.speeds[i.duration]:Z.fx.speeds._default,(null==i.queue||i.queue===!0)&&(i.queue="fx"),i.old=i.complete,i.complete=function(){Z.isFunction(i.old)&&i.old.call(this),i.queue&&Z.dequeue(this,i.queue)},i},Z.fn.extend({fadeTo:function(t,e,n,i){return this.filter(_t).css("opacity",0).show().end().animate({opacity:e},t,n,i)},animate:function(t,e,n,i){var r=Z.isEmptyObject(t),s=Z.speed(e,n,i),o=function(){var e=P(this,Z.extend({},t),s);(r||vt.get(this,"finish"))&&e.stop(!0)};return o.finish=o,r||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(t,e,n){var i=function(t){var e=t.stop;delete t.stop,e(n)};return"string"!=typeof t&&(n=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,r=null!=t&&t+"queueHooks",s=Z.timers,o=vt.get(this);if(r)o[r]&&o[r].stop&&i(o[r]);else for(r in o)o[r]&&o[r].stop&&te.test(r)&&i(o[r]);for(r=s.length;r--;)s[r].elem!==this||null!=t&&s[r].queue!==t||(s[r].anim.stop(n),e=!1,s.splice(r,1));(e||!n)&&Z.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,n=vt.get(this),i=n[t+"queue"],r=n[t+"queueHooks"],s=Z.timers,o=i?i.length:0;for(n.finish=!0,Z.queue(this,t,[]),r&&r.stop&&r.stop.call(this,!0),
-e=s.length;e--;)s[e].elem===this&&s[e].queue===t&&(s[e].anim.stop(!0),s.splice(e,1));for(e=0;o>e;e++)i[e]&&i[e].finish&&i[e].finish.call(this);delete n.finish})}}),Z.each(["toggle","show","hide"],function(t,e){var n=Z.fn[e];Z.fn[e]=function(t,i,r){return null==t||"boolean"==typeof t?n.apply(this,arguments):this.animate(M(e,!0),t,i,r)}}),Z.each({slideDown:M("show"),slideUp:M("hide"),slideToggle:M("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){Z.fn[t]=function(t,n,i){return this.animate(e,t,n,i)}}),Z.timers=[],Z.fx.tick=function(){var t,e=0,n=Z.timers;for(Xt=Z.now();e<n.length;e++)t=n[e],t()||n[e]!==t||n.splice(e--,1);n.length||Z.fx.stop(),Xt=void 0},Z.fx.timer=function(t){Z.timers.push(t),t()?Z.fx.start():Z.timers.pop()},Z.fx.interval=13,Z.fx.start=function(){Qt||(Qt=setInterval(Z.fx.tick,Z.fx.interval))},Z.fx.stop=function(){clearInterval(Qt),Qt=null},Z.fx.speeds={slow:600,fast:200,_default:400},Z.fn.delay=function(t,e){return t=Z.fx?Z.fx.speeds[t]||t:t,e=e||"fx",this.queue(e,function(e,n){var i=setTimeout(e,t);n.stop=function(){clearTimeout(i)}})},function(){var t=Q.createElement("input"),e=Q.createElement("select"),n=e.appendChild(Q.createElement("option"));t.type="checkbox",X.checkOn=""!==t.value,X.optSelected=n.selected,e.disabled=!0,X.optDisabled=!n.disabled,t=Q.createElement("input"),t.value="t",t.type="radio",X.radioValue="t"===t.value}();var ie,re,se=Z.expr.attrHandle;Z.fn.extend({attr:function(t,e){return gt(this,Z.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){Z.removeAttr(this,t)})}}),Z.extend({attr:function(t,e,n){var i,r,s=t.nodeType;if(t&&3!==s&&8!==s&&2!==s)return typeof t.getAttribute===Ct?Z.prop(t,e,n):(1===s&&Z.isXMLDoc(t)||(e=e.toLowerCase(),i=Z.attrHooks[e]||(Z.expr.match.bool.test(e)?re:ie)),void 0===n?i&&"get"in i&&null!==(r=i.get(t,e))?r:(r=Z.find.attr(t,e),null==r?void 0:r):null!==n?i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:(t.setAttribute(e,n+""),n):void Z.removeAttr(t,e))},removeAttr:function(t,e){var n,i,r=0,s=e&&e.match(pt);if(s&&1===t.nodeType)for(;n=s[r++];)i=Z.propFix[n]||n,Z.expr.match.bool.test(n)&&(t[i]=!1),t.removeAttribute(n)},attrHooks:{type:{set:function(t,e){if(!X.radioValue&&"radio"===e&&Z.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}}}),re={set:function(t,e,n){return e===!1?Z.removeAttr(t,n):t.setAttribute(n,n),n}},Z.each(Z.expr.match.bool.source.match(/\w+/g),function(t,e){var n=se[e]||Z.find.attr;se[e]=function(t,e,i){var r,s;return i||(s=se[e],se[e]=r,r=null!=n(t,e,i)?e.toLowerCase():null,se[e]=s),r}});var oe=/^(?:input|select|textarea|button)$/i;Z.fn.extend({prop:function(t,e){return gt(this,Z.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[Z.propFix[t]||t]})}}),Z.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(t,e,n){var i,r,s,o=t.nodeType;if(t&&3!==o&&8!==o&&2!==o)return s=1!==o||!Z.isXMLDoc(t),s&&(e=Z.propFix[e]||e,r=Z.propHooks[e]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(t,n,e))?i:t[e]=n:r&&"get"in r&&null!==(i=r.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){return t.hasAttribute("tabindex")||oe.test(t.nodeName)||t.href?t.tabIndex:-1}}}}),X.optSelected||(Z.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null}}),Z.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Z.propFix[this.toLowerCase()]=this});var ae=/[\t\r\n\f]/g;Z.fn.extend({addClass:function(t){var e,n,i,r,s,o,a="string"==typeof t&&t,l=0,u=this.length;if(Z.isFunction(t))return this.each(function(e){Z(this).addClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(pt)||[];u>l;l++)if(n=this[l],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(ae," "):" ")){for(s=0;r=e[s++];)i.indexOf(" "+r+" ")<0&&(i+=r+" ");o=Z.trim(i),n.className!==o&&(n.className=o)}return this},removeClass:function(t){var e,n,i,r,s,o,a=0===arguments.length||"string"==typeof t&&t,l=0,u=this.length;if(Z.isFunction(t))return this.each(function(e){Z(this).removeClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(pt)||[];u>l;l++)if(n=this[l],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(ae," "):"")){for(s=0;r=e[s++];)for(;i.indexOf(" "+r+" ")>=0;)i=i.replace(" "+r+" "," ");o=t?Z.trim(i):"",n.className!==o&&(n.className=o)}return this},toggleClass:function(t,e){var n=typeof t;return"boolean"==typeof e&&"string"===n?e?this.addClass(t):this.removeClass(t):this.each(Z.isFunction(t)?function(n){Z(this).toggleClass(t.call(this,n,this.className,e),e)}:function(){if("string"===n)for(var e,i=0,r=Z(this),s=t.match(pt)||[];e=s[i++];)r.hasClass(e)?r.removeClass(e):r.addClass(e);else(n===Ct||"boolean"===n)&&(this.className&&vt.set(this,"__className__",this.className),this.className=this.className||t===!1?"":vt.get(this,"__className__")||"")})},hasClass:function(t){for(var e=" "+t+" ",n=0,i=this.length;i>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(ae," ").indexOf(e)>=0)return!0;return!1}});var le=/\r/g;Z.fn.extend({val:function(t){var e,n,i,r=this[0];{if(arguments.length)return i=Z.isFunction(t),this.each(function(n){var r;1===this.nodeType&&(r=i?t.call(this,n,Z(this).val()):t,null==r?r="":"number"==typeof r?r+="":Z.isArray(r)&&(r=Z.map(r,function(t){return null==t?"":t+""})),e=Z.valHooks[this.type]||Z.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))});if(r)return e=Z.valHooks[r.type]||Z.valHooks[r.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(r,"value"))?n:(n=r.value,"string"==typeof n?n.replace(le,""):null==n?"":n)}}}),Z.extend({valHooks:{option:{get:function(t){var e=Z.find.attr(t,"value");return null!=e?e:Z.trim(Z.text(t))}},select:{get:function(t){for(var e,n,i=t.options,r=t.selectedIndex,s="select-one"===t.type||0>r,o=s?null:[],a=s?r+1:i.length,l=0>r?a:s?r:0;a>l;l++)if(n=i[l],!(!n.selected&&l!==r||(X.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&Z.nodeName(n.parentNode,"optgroup"))){if(e=Z(n).val(),s)return e;o.push(e)}return o},set:function(t,e){for(var n,i,r=t.options,s=Z.makeArray(e),o=r.length;o--;)i=r[o],(i.selected=Z.inArray(i.value,s)>=0)&&(n=!0);return n||(t.selectedIndex=-1),s}}}}),Z.each(["radio","checkbox"],function(){Z.valHooks[this]={set:function(t,e){return Z.isArray(e)?t.checked=Z.inArray(Z(t).val(),e)>=0:void 0}},X.checkOn||(Z.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),Z.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){Z.fn[e]=function(t,n){return arguments.length>0?this.on(e,null,t,n):this.trigger(e)}}),Z.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)},bind:function(t,e,n){return this.on(t,null,e,n)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,n,i){return this.on(e,t,n,i)},undelegate:function(t,e,n){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",n)}});var ue=Z.now(),ce=/\?/;Z.parseJSON=function(t){return JSON.parse(t+"")},Z.parseXML=function(t){var e,n;if(!t||"string"!=typeof t)return null;try{n=new DOMParser,e=n.parseFromString(t,"text/xml")}catch(i){e=void 0}return(!e||e.getElementsByTagName("parsererror").length)&&Z.error("Invalid XML: "+t),e};var he=/#.*$/,de=/([?&])_=[^&]*/,pe=/^(.*?):[ \t]*([^\r\n]*)$/gm,fe=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,me=/^(?:GET|HEAD)$/,ge=/^\/\//,ve=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,be={},ye={},$e="*/".concat("*"),we=t.location.href,xe=ve.exec(we.toLowerCase())||[];Z.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:we,type:"GET",isLocal:fe.test(xe[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$e,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":Z.parseJSON,"text xml":Z.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?j(j(t,Z.ajaxSettings),e):j(Z.ajaxSettings,t)},ajaxPrefilter:N(be),ajaxTransport:N(ye),ajax:function(t,e){function n(t,e,n,o){var l,c,v,b,$,x=e;2!==y&&(y=2,a&&clearTimeout(a),i=void 0,s=o||"",w.readyState=t>0?4:0,l=t>=200&&300>t||304===t,n&&(b=R(h,w,n)),b=F(h,b,w,l),l?(h.ifModified&&($=w.getResponseHeader("Last-Modified"),$&&(Z.lastModified[r]=$),$=w.getResponseHeader("etag"),$&&(Z.etag[r]=$)),204===t||"HEAD"===h.type?x="nocontent":304===t?x="notmodified":(x=b.state,c=b.data,v=b.error,l=!v)):(v=x,(t||!x)&&(x="error",0>t&&(t=0))),w.status=t,w.statusText=(e||x)+"",l?f.resolveWith(d,[c,x,w]):f.rejectWith(d,[w,x,v]),w.statusCode(g),g=void 0,u&&p.trigger(l?"ajaxSuccess":"ajaxError",[w,h,l?c:v]),m.fireWith(d,[w,x]),u&&(p.trigger("ajaxComplete",[w,h]),--Z.active||Z.event.trigger("ajaxStop")))}"object"==typeof t&&(e=t,t=void 0),e=e||{};var i,r,s,o,a,l,u,c,h=Z.ajaxSetup({},e),d=h.context||h,p=h.context&&(d.nodeType||d.jquery)?Z(d):Z.event,f=Z.Deferred(),m=Z.Callbacks("once memory"),g=h.statusCode||{},v={},b={},y=0,$="canceled",w={readyState:0,getResponseHeader:function(t){var e;if(2===y){if(!o)for(o={};e=pe.exec(s);)o[e[1].toLowerCase()]=e[2];e=o[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===y?s:null},setRequestHeader:function(t,e){var n=t.toLowerCase();return y||(t=b[n]=b[n]||t,v[t]=e),this},overrideMimeType:function(t){return y||(h.mimeType=t),this},statusCode:function(t){var e;if(t)if(2>y)for(e in t)g[e]=[g[e],t[e]];else w.always(t[w.status]);return this},abort:function(t){var e=t||$;return i&&i.abort(e),n(0,e),this}};if(f.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,h.url=((t||h.url||we)+"").replace(he,"").replace(ge,xe[1]+"//"),h.type=e.method||e.type||h.method||h.type,h.dataTypes=Z.trim(h.dataType||"*").toLowerCase().match(pt)||[""],null==h.crossDomain&&(l=ve.exec(h.url.toLowerCase()),h.crossDomain=!(!l||l[1]===xe[1]&&l[2]===xe[2]&&(l[3]||("http:"===l[1]?"80":"443"))===(xe[3]||("http:"===xe[1]?"80":"443")))),h.data&&h.processData&&"string"!=typeof h.data&&(h.data=Z.param(h.data,h.traditional)),H(be,h,e,w),2===y)return w;u=Z.event&&h.global,u&&0===Z.active++&&Z.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!me.test(h.type),r=h.url,h.hasContent||(h.data&&(r=h.url+=(ce.test(r)?"&":"?")+h.data,delete h.data),h.cache===!1&&(h.url=de.test(r)?r.replace(de,"$1_="+ue++):r+(ce.test(r)?"&":"?")+"_="+ue++)),h.ifModified&&(Z.lastModified[r]&&w.setRequestHeader("If-Modified-Since",Z.lastModified[r]),Z.etag[r]&&w.setRequestHeader("If-None-Match",Z.etag[r])),(h.data&&h.hasContent&&h.contentType!==!1||e.contentType)&&w.setRequestHeader("Content-Type",h.contentType),w.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$e+"; q=0.01":""):h.accepts["*"]);for(c in h.headers)w.setRequestHeader(c,h.headers[c]);if(h.beforeSend&&(h.beforeSend.call(d,w,h)===!1||2===y))return w.abort();$="abort";for(c in{success:1,error:1,complete:1})w[c](h[c]);if(i=H(ye,h,e,w)){w.readyState=1,u&&p.trigger("ajaxSend",[w,h]),h.async&&h.timeout>0&&(a=setTimeout(function(){w.abort("timeout")},h.timeout));try{y=1,i.send(v,n)}catch(x){if(!(2>y))throw x;n(-1,x)}}else n(-1,"No Transport");return w},getJSON:function(t,e,n){return Z.get(t,e,n,"json")},getScript:function(t,e){return Z.get(t,void 0,e,"script")}}),Z.each(["get","post"],function(t,e){Z[e]=function(t,n,i,r){return Z.isFunction(n)&&(r=r||i,i=n,n=void 0),Z.ajax({url:t,type:e,dataType:r,data:n,success:i})}}),Z._evalUrl=function(t){return Z.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},Z.fn.extend({wrapAll:function(t){var e;return Z.isFunction(t)?this.each(function(e){Z(this).wrapAll(t.call(this,e))}):(this[0]&&(e=Z(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return this.each(Z.isFunction(t)?function(e){Z(this).wrapInner(t.call(this,e))}:function(){var e=Z(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=Z.isFunction(t);return this.each(function(n){Z(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(){return this.parent().each(function(){Z.nodeName(this,"body")||Z(this).replaceWith(this.childNodes)}).end()}}),Z.expr.filters.hidden=function(t){return t.offsetWidth<=0&&t.offsetHeight<=0},Z.expr.filters.visible=function(t){return!Z.expr.filters.hidden(t)};var _e=/%20/g,ke=/\[\]$/,Ce=/\r?\n/g,De=/^(?:submit|button|image|reset|file)$/i,Te=/^(?:input|select|textarea|keygen)/i;Z.param=function(t,e){var n,i=[],r=function(t,e){e=Z.isFunction(e)?e():null==e?"":e,i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=Z.ajaxSettings&&Z.ajaxSettings.traditional),Z.isArray(t)||t.jquery&&!Z.isPlainObject(t))Z.each(t,function(){r(this.name,this.value)});else for(n in t)z(n,t[n],e,r);return i.join("&").replace(_e,"+")},Z.fn.extend({serialize:function(){return Z.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=Z.prop(this,"elements");return t?Z.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!Z(this).is(":disabled")&&Te.test(this.nodeName)&&!De.test(t)&&(this.checked||!kt.test(t))}).map(function(t,e){var n=Z(this).val();return null==n?null:Z.isArray(n)?Z.map(n,function(t){return{name:e.name,value:t.replace(Ce,"\r\n")}}):{name:e.name,value:n.replace(Ce,"\r\n")}}).get()}}),Z.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(t){}};var Ee=0,Se={},Me={0:200,1223:204},Ae=Z.ajaxSettings.xhr();t.attachEvent&&t.attachEvent("onunload",function(){for(var t in Se)Se[t]()}),X.cors=!!Ae&&"withCredentials"in Ae,X.ajax=Ae=!!Ae,Z.ajaxTransport(function(t){var e;return X.cors||Ae&&!t.crossDomain?{send:function(n,i){var r,s=t.xhr(),o=++Ee;if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(r in t.xhrFields)s[r]=t.xhrFields[r];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(r in n)s.setRequestHeader(r,n[r]);e=function(t){return function(){e&&(delete Se[o],e=s.onload=s.onerror=null,"abort"===t?s.abort():"error"===t?i(s.status,s.statusText):i(Me[s.status]||s.status,s.statusText,"string"==typeof s.responseText?{text:s.responseText}:void 0,s.getAllResponseHeaders()))}},s.onload=e(),s.onerror=e("error"),e=Se[o]=e("abort");try{s.send(t.hasContent&&t.data||null)}catch(a){if(e)throw a}},abort:function(){e&&e()}}:void 0}),Z.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(t){return Z.globalEval(t),t}}}),Z.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),Z.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(i,r){e=Z("<script>").prop({async:!0,charset:t.scriptCharset,src:t.url}).on("load error",n=function(t){e.remove(),n=null,t&&r("error"===t.type?404:200,t.type)}),Q.head.appendChild(e[0])},abort:function(){n&&n()}}}});var Ie=[],Oe=/(=)\?(?=&|$)|\?\?/;Z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Ie.pop()||Z.expando+"_"+ue++;return this[t]=!0,t}}),Z.ajaxPrefilter("json jsonp",function(e,n,i){var r,s,o,a=e.jsonp!==!1&&(Oe.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Oe.test(e.data)&&"data");return a||"jsonp"===e.dataTypes[0]?(r=e.jsonpCallback=Z.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Oe,"$1"+r):e.jsonp!==!1&&(e.url+=(ce.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||Z.error(r+" was not called"),o[0]},e.dataTypes[0]="json",s=t[r],t[r]=function(){o=arguments},i.always(function(){t[r]=s,e[r]&&(e.jsonpCallback=n.jsonpCallback,Ie.push(r)),o&&Z.isFunction(s)&&s(o[0]),o=s=void 0}),"script"):void 0}),Z.parseHTML=function(t,e,n){if(!t||"string"!=typeof t)return null;"boolean"==typeof e&&(n=e,e=!1),e=e||Q;var i=ot.exec(t),r=!n&&[];return i?[e.createElement(i[1])]:(i=Z.buildFragment([t],e,r),r&&r.length&&Z(r).remove(),Z.merge([],i.childNodes))};var Pe=Z.fn.load;Z.fn.load=function(t,e,n){if("string"!=typeof t&&Pe)return Pe.apply(this,arguments);var i,r,s,o=this,a=t.indexOf(" ");return a>=0&&(i=Z.trim(t.slice(a)),t=t.slice(0,a)),Z.isFunction(e)?(n=e,e=void 0):e&&"object"==typeof e&&(r="POST"),o.length>0&&Z.ajax({url:t,type:r,dataType:"html",data:e}).done(function(t){s=arguments,o.html(i?Z("<div>").append(Z.parseHTML(t)).find(i):t)}).complete(n&&function(t,e){o.each(n,s||[t.responseText,e,t])}),this},Z.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){Z.fn[e]=function(t){return this.on(e,t)}}),Z.expr.filters.animated=function(t){return Z.grep(Z.timers,function(e){return t===e.elem}).length};var Ne=t.document.documentElement;Z.offset={setOffset:function(t,e,n){var i,r,s,o,a,l,u,c=Z.css(t,"position"),h=Z(t),d={};"static"===c&&(t.style.position="relative"),a=h.offset(),s=Z.css(t,"top"),l=Z.css(t,"left"),u=("absolute"===c||"fixed"===c)&&(s+l).indexOf("auto")>-1,u?(i=h.position(),o=i.top,r=i.left):(o=parseFloat(s)||0,r=parseFloat(l)||0),Z.isFunction(e)&&(e=e.call(t,n,a)),null!=e.top&&(d.top=e.top-a.top+o),null!=e.left&&(d.left=e.left-a.left+r),"using"in e?e.using.call(t,d):h.css(d)}},Z.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){Z.offset.setOffset(this,t,e)});var e,n,i=this[0],r={top:0,left:0},s=i&&i.ownerDocument;if(s)return e=s.documentElement,Z.contains(e,i)?(typeof i.getBoundingClientRect!==Ct&&(r=i.getBoundingClientRect()),n=W(s),{top:r.top+n.pageYOffset-e.clientTop,left:r.left+n.pageXOffset-e.clientLeft}):r},position:function(){if(this[0]){var t,e,n=this[0],i={top:0,left:0};return"fixed"===Z.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),Z.nodeName(t[0],"html")||(i=t.offset()),i.top+=Z.css(t[0],"borderTopWidth",!0),i.left+=Z.css(t[0],"borderLeftWidth",!0)),{top:e.top-i.top-Z.css(n,"marginTop",!0),left:e.left-i.left-Z.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||Ne;t&&!Z.nodeName(t,"html")&&"static"===Z.css(t,"position");)t=t.offsetParent;return t||Ne})}}),Z.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var i="pageYOffset"===n;Z.fn[e]=function(r){return gt(this,function(e,r,s){var o=W(e);return void 0===s?o?o[n]:e[r]:void(o?o.scrollTo(i?t.pageXOffset:s,i?s:t.pageYOffset):e[r]=s)},e,r,arguments.length,null)}}),Z.each(["top","left"],function(t,e){Z.cssHooks[e]=x(X.pixelPosition,function(t,n){return n?(n=w(t,e),Lt.test(n)?Z(t).position()[e]+"px":n):void 0})}),Z.each({Height:"height",Width:"width"},function(t,e){Z.each({padding:"inner"+t,content:e,"":"outer"+t},function(n,i){Z.fn[i]=function(i,r){var s=arguments.length&&(n||"boolean"!=typeof i),o=n||(i===!0||r===!0?"margin":"border");return gt(this,function(e,n,i){var r;return Z.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+t],r["scroll"+t],e.body["offset"+t],r["offset"+t],r["client"+t])):void 0===i?Z.css(e,n,o):Z.style(e,n,i,o)},e,s?i:void 0,s,null)}})}),Z.fn.size=function(){return this.length},Z.fn.andSelf=Z.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return Z});var He=t.jQuery,je=t.$;return Z.noConflict=function(e){return t.$===Z&&(t.$=je),e&&t.jQuery===Z&&(t.jQuery=He),Z},typeof e===Ct&&(t.jQuery=t.$=Z),Z}),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){function e(e,i){var r,s,o,a=e.nodeName.toLowerCase();return"area"===a?(r=e.parentNode,s=r.name,e.href&&s&&"map"===r.nodeName.toLowerCase()?(o=t("img[usemap='#"+s+"']")[0],!!o&&n(o)):!1):(/^(input|select|textarea|button|object)$/.test(a)?!e.disabled:"a"===a?e.href||i:i)&&n(e)}function n(e){return t.expr.filters.visible(e)&&!t(e).parents().addBack().filter(function(){return"hidden"===t.css(this,"visibility")}).length}function i(t){for(var e,n;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(n=parseInt(t.css("zIndex"),10),!isNaN(n)&&0!==n))return n;t=t.parent()}return 0}function r(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=s(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function s(e){var n="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.delegate(n,"mouseout",function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).delegate(n,"mouseover",o)}function o(){t.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,n){t.extend(e,n);for(var i in n)null==n[i]&&(e[i]=n[i]);return e}function l(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.extend(t.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),t.fn.extend({scrollParent:function(e){var n=this.css("position"),i="absolute"===n,r=e?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var e=t(this);return i&&"static"===e.css("position")?!1:r.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==n&&s.length?s:t(this[0].ownerDocument||document)},uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(n){return!!t.data(n,e)}}):function(e,n,i){return!!t.data(e,i[3])},focusable:function(n){return e(n,!isNaN(t.attr(n,"tabindex")))},tabbable:function(n){var i=t.attr(n,"tabindex"),r=isNaN(i);return(r||i>=0)&&e(n,!r)}}),t("<a>").outerWidth(1).jquery||t.each(["Width","Height"],function(e,n){function i(e,n,i,s){return t.each(r,function(){n-=parseFloat(t.css(e,"padding"+this))||0,i&&(n-=parseFloat(t.css(e,"border"+this+"Width"))||0),s&&(n-=parseFloat(t.css(e,"margin"+this))||0)}),n}var r="Width"===n?["Left","Right"]:["Top","Bottom"],s=n.toLowerCase(),o={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+n]=function(e){return void 0===e?o["inner"+n].call(this):this.each(function(){t(this).css(s,i(this,e)+"px")})},t.fn["outer"+n]=function(e,r){return"number"!=typeof e?o["outer"+n].call(this,e):this.each(function(){t(this).css(s,i(this,e,!0,r)+"px")})}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(t.fn.removeData=function(e){return function(n){return arguments.length?e.call(this,t.camelCase(n)):e.call(this)}}(t.fn.removeData)),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),t.fn.extend({focus:function(e){return function(n,i){return"number"==typeof n?this.each(function(){var e=this;setTimeout(function(){t(e).focus(),i&&i.call(e)},n)}):e.apply(this,arguments)}}(t.fn.focus),disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(e){if(void 0!==e)return this.css("zIndex",e);if(this.length)for(var n,i,r=t(this[0]);r.length&&r[0]!==document;){if(n=r.css("position"),("absolute"===n||"relative"===n||"fixed"===n)&&(i=parseInt(r.css("zIndex"),10),!isNaN(i)&&0!==i))return i;r=r.parent()}return 0}}),t.ui.plugin={add:function(e,n,i){var r,s=t.ui[e].prototype;for(r in i)s.plugins[r]=s.plugins[r]||[],s.plugins[r].push([n,i[r]])},call:function(t,e,n,i){var r,s=t.plugins[e];if(s&&(i||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(r=0;r<s.length;r++)t.options[s[r][0]]&&s[r][1].apply(t.element,n)}};var u=0,c=Array.prototype.slice;t.cleanData=function(e){return function(n){var i,r,s;for(s=0;null!=(r=n[s]);s++)try{i=t._data(r,"events"),i&&i.remove&&t(r).triggerHandler("remove")}catch(o){}e(n)}}(t.cleanData),t.widget=function(e,n,i){var r,s,o,a,l={},u=e.split(".")[0];return e=e.split(".")[1],r=u+"-"+e,i||(i=n,n=t.Widget),t.expr[":"][r.toLowerCase()]=function(e){return!!t.data(e,r)},t[u]=t[u]||{},s=t[u][e],o=t[u][e]=function(t,e){return this._createWidget?void(arguments.length&&this._createWidget(t,e)):new o(t,e)},t.extend(o,s,{version:i.version,_proto:t.extend({},i),_childConstructors:[]}),a=new n,a.options=t.widget.extend({},a.options),t.each(i,function(e,i){return t.isFunction(i)?void(l[e]=function(){var t=function(){return n.prototype[e].apply(this,arguments)},r=function(t){return n.prototype[e].apply(this,t)};return function(){var e,n=this._super,s=this._superApply;return this._super=t,this._superApply=r,e=i.apply(this,arguments),this._super=n,this._superApply=s,e}}()):void(l[e]=i)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:s?a.widgetEventPrefix||e:e},l,{constructor:o,namespace:u,widgetName:e,widgetFullName:r}),s?(t.each(s._childConstructors,function(e,n){var i=n.prototype;t.widget(i.namespace+"."+i.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var n,i,r=c.call(arguments,1),s=0,o=r.length;o>s;s++)for(n in r[s])i=r[s][n],r[s].hasOwnProperty(n)&&void 0!==i&&(e[n]=t.isPlainObject(i)?t.isPlainObject(e[n])?t.widget.extend({},e[n],i):t.widget.extend({},i):i);return e},t.widget.bridge=function(e,n){var i=n.prototype.widgetFullName||e;t.fn[e]=function(r){var s="string"==typeof r,o=c.call(arguments,1),a=this;return s?this.each(function(){var n,s=t.data(this,i);return"instance"===r?(a=s,!1):s?t.isFunction(s[r])&&"_"!==r.charAt(0)?(n=s[r].apply(s,o),n!==s&&void 0!==n?(a=n&&n.jquery?a.pushStack(n.get()):n,!1):void 0):t.error("no such method '"+r+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+r+"'")}):(o.length&&(r=t.widget.extend.apply(null,[r].concat(o))),this.each(function(){var e=t.data(this,i);e?(e.option(r||{}),e._init&&e._init()):t.data(this,i,new n(r,this))})),a}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(e,n){n=t(n||this.defaultElement||this)[0],this.element=t(n),this.uuid=u++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),n!==this&&(t.data(n,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===n&&this.destroy()}}),this.document=t(n.style?n.ownerDocument:n.document||n),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:t.noop,_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:t.noop,widget:function(){return this.element},option:function(e,n){var i,r,s,o=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(o={},i=e.split("."),e=i.shift(),i.length){for(r=o[e]=t.widget.extend({},this.options[e]),s=0;s<i.length-1;s++)r[i[s]]=r[i[s]]||{},r=r[i[s]];if(e=i.pop(),1===arguments.length)return void 0===r[e]?null:r[e];r[e]=n}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];o[e]=n}return this._setOptions(o),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!e),e&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(e,n,i){var r,s=this;"boolean"!=typeof e&&(i=n,n=e,e=!1),i?(n=r=t(n),this.bindings=this.bindings.add(n)):(i=n,n=this.element,r=this.widget()),t.each(i,function(i,o){function a(){return e||s.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof o?s[o]:o).apply(s,arguments):void 0;
-
-}"string"!=typeof o&&(a.guid=o.guid=o.guid||a.guid||t.guid++);var l=i.match(/^([\w:-]*)\s*(.*)$/),u=l[1]+s.eventNamespace,c=l[2];c?r.delegate(c,u,a):n.bind(u,a)})},_off:function(e,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(n).undelegate(n),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function n(){return("string"==typeof t?i[t]:t).apply(i,arguments)}var i=this;return setTimeout(n,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){t(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){t(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){t(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){t(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,n,i){var r,s,o=this.options[e];if(i=i||{},n=t.Event(n),n.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),n.target=this.element[0],s=n.originalEvent)for(r in s)r in n||(n[r]=s[r]);return this.element.trigger(n,i),!(t.isFunction(o)&&o.apply(this.element[0],[n].concat(i))===!1||n.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,n){t.Widget.prototype["_"+e]=function(i,r,s){"string"==typeof r&&(r={effect:r});var o,a=r?r===!0||"number"==typeof r?n:r.effect||n:e;r=r||{},"number"==typeof r&&(r={duration:r}),o=!t.isEmptyObject(r),r.complete=s,r.delay&&i.delay(r.delay),o&&t.effects&&t.effects.effect[a]?i[e](r):a!==e&&i[a]?i[a](r.duration,r.easing,s):i.queue(function(n){t(this)[e](),s&&s.call(i[0]),n()})}});var h=(t.widget,!1);t(document).mouseup(function(){h=!1});t.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.bind("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).bind("click."+this.widgetName,function(n){return!0===t.data(n.target,e.widgetName+".preventClickEvent")?(t.removeData(n.target,e.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!h){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var n=this,i=1===e.which,r="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return i&&!r&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){n.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return n._mouseMove(t)},this._mouseUpDelegate=function(t){return n._mouseUp(t)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),h=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||document.documentMode<9)&&!e.button)return this._mouseUp(e);if(!e.which)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),h=!1,!1},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}});!function(){function e(t,e,n){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?n/100:1)]}function n(e,n){return parseInt(t.css(e,n),10)||0}function i(e){var n=e[0];return 9===n.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(n)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:n.preventDefault?{width:0,height:0,offset:{top:n.pageY,left:n.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var r,s,o=Math.max,a=Math.abs,l=Math.round,u=/left|center|right/,c=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==r)return r;var e,n,i=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=i.children()[0];return t("body").append(i),e=s.offsetWidth,i.css("overflow","scroll"),n=s.offsetWidth,e===n&&(n=i[0].clientWidth),i.remove(),r=e-n},getScrollInfo:function(e){var n=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),i=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),r="scroll"===n||"auto"===n&&e.width<e.element[0].scrollWidth,s="scroll"===i||"auto"===i&&e.height<e.element[0].scrollHeight;return{width:s?t.position.scrollbarWidth():0,height:r?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var n=t(e||window),i=t.isWindow(n[0]),r=!!n[0]&&9===n[0].nodeType;return{element:n,isWindow:i,isDocument:r,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:i||r?n.width():n.outerWidth(),height:i||r?n.height():n.outerHeight()}}},t.fn.position=function(r){if(!r||!r.of)return f.apply(this,arguments);r=t.extend({},r);var p,m,g,v,b,y,$=t(r.of),w=t.position.getWithinInfo(r.within),x=t.position.getScrollInfo(w),_=(r.collision||"flip").split(" "),k={};return y=i($),$[0].preventDefault&&(r.at="left top"),m=y.width,g=y.height,v=y.offset,b=t.extend({},v),t.each(["my","at"],function(){var t,e,n=(r[this]||"").split(" ");1===n.length&&(n=u.test(n[0])?n.concat(["center"]):c.test(n[0])?["center"].concat(n):["center","center"]),n[0]=u.test(n[0])?n[0]:"center",n[1]=c.test(n[1])?n[1]:"center",t=h.exec(n[0]),e=h.exec(n[1]),k[this]=[t?t[0]:0,e?e[0]:0],r[this]=[d.exec(n[0])[0],d.exec(n[1])[0]]}),1===_.length&&(_[1]=_[0]),"right"===r.at[0]?b.left+=m:"center"===r.at[0]&&(b.left+=m/2),"bottom"===r.at[1]?b.top+=g:"center"===r.at[1]&&(b.top+=g/2),p=e(k.at,m,g),b.left+=p[0],b.top+=p[1],this.each(function(){var i,u,c=t(this),h=c.outerWidth(),d=c.outerHeight(),f=n(this,"marginLeft"),y=n(this,"marginTop"),C=h+f+n(this,"marginRight")+x.width,D=d+y+n(this,"marginBottom")+x.height,T=t.extend({},b),E=e(k.my,c.outerWidth(),c.outerHeight());"right"===r.my[0]?T.left-=h:"center"===r.my[0]&&(T.left-=h/2),"bottom"===r.my[1]?T.top-=d:"center"===r.my[1]&&(T.top-=d/2),T.left+=E[0],T.top+=E[1],s||(T.left=l(T.left),T.top=l(T.top)),i={marginLeft:f,marginTop:y},t.each(["left","top"],function(e,n){t.ui.position[_[e]]&&t.ui.position[_[e]][n](T,{targetWidth:m,targetHeight:g,elemWidth:h,elemHeight:d,collisionPosition:i,collisionWidth:C,collisionHeight:D,offset:[p[0]+E[0],p[1]+E[1]],my:r.my,at:r.at,within:w,elem:c})}),r.using&&(u=function(t){var e=v.left-T.left,n=e+m-h,i=v.top-T.top,s=i+g-d,l={target:{element:$,left:v.left,top:v.top,width:m,height:g},element:{element:c,left:T.left,top:T.top,width:h,height:d},horizontal:0>n?"left":e>0?"right":"center",vertical:0>s?"top":i>0?"bottom":"middle"};h>m&&a(e+n)<m&&(l.horizontal="center"),d>g&&a(i+s)<g&&(l.vertical="middle"),l.important=o(a(e),a(n))>o(a(i),a(s))?"horizontal":"vertical",r.using.call(this,t,l)}),c.offset(t.extend(T,{using:u}))})},t.ui.position={fit:{left:function(t,e){var n,i=e.within,r=i.isWindow?i.scrollLeft:i.offset.left,s=i.width,a=t.left-e.collisionPosition.marginLeft,l=r-a,u=a+e.collisionWidth-s-r;e.collisionWidth>s?l>0&&0>=u?(n=t.left+l+e.collisionWidth-s-r,t.left+=l-n):t.left=u>0&&0>=l?r:l>u?r+s-e.collisionWidth:r:l>0?t.left+=l:u>0?t.left-=u:t.left=o(t.left-a,t.left)},top:function(t,e){var n,i=e.within,r=i.isWindow?i.scrollTop:i.offset.top,s=e.within.height,a=t.top-e.collisionPosition.marginTop,l=r-a,u=a+e.collisionHeight-s-r;e.collisionHeight>s?l>0&&0>=u?(n=t.top+l+e.collisionHeight-s-r,t.top+=l-n):t.top=u>0&&0>=l?r:l>u?r+s-e.collisionHeight:r:l>0?t.top+=l:u>0?t.top-=u:t.top=o(t.top-a,t.top)}},flip:{left:function(t,e){var n,i,r=e.within,s=r.offset.left+r.scrollLeft,o=r.width,l=r.isWindow?r.scrollLeft:r.offset.left,u=t.left-e.collisionPosition.marginLeft,c=u-l,h=u+e.collisionWidth-o-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(n=t.left+d+p+f+e.collisionWidth-o-s,(0>n||n<a(c))&&(t.left+=d+p+f)):h>0&&(i=t.left-e.collisionPosition.marginLeft+d+p+f-l,(i>0||a(i)<h)&&(t.left+=d+p+f))},top:function(t,e){var n,i,r=e.within,s=r.offset.top+r.scrollTop,o=r.height,l=r.isWindow?r.scrollTop:r.offset.top,u=t.top-e.collisionPosition.marginTop,c=u-l,h=u+e.collisionHeight-o-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(i=t.top+p+f+m+e.collisionHeight-o-s,(0>i||i<a(c))&&(t.top+=p+f+m)):h>0&&(n=t.top-e.collisionPosition.marginTop+p+f+m-l,(n>0||a(n)<h)&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,n,i,r,o,a=document.getElementsByTagName("body")[0],l=document.createElement("div");e=document.createElement(a?"div":"body"),i={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},a&&t.extend(i,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in i)e.style[o]=i[o];e.appendChild(l),n=a||document.documentElement,n.insertBefore(e,n.firstChild),l.style.cssText="position: absolute; left: 10.7432222px;",r=t(l).offset().left,s=r>10&&11>r,e.innerHTML="",n.removeChild(e)}()}();t.ui.position,t.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),e.active<0&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e=this.options.icons;e&&(t("<span>").addClass("ui-accordion-header-icon ui-icon "+e.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(e.header).addClass(e.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?void this._activate(e):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void("disabled"===t&&(this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!e))))},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var n=t.ui.keyCode,i=this.headers.length,r=this.headers.index(e.target),s=!1;switch(e.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(r+1)%i];break;case n.LEFT:case n.UP:s=this.headers[(r-1+i)%i];break;case n.SPACE:case n.ENTER:this._eventHandler(e);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[i-1]}s&&(t(e.target).attr("tabIndex",-1),t(s).attr("tabIndex",0),s.focus(),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().focus()},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,n=this.options,i=n.heightStyle,r=this.element.parent();this.active=this._findActive(n.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var e=t(this),n=e.uniqueId().attr("id"),i=e.next(),r=i.uniqueId().attr("id");e.attr("aria-controls",r),i.attr("aria-labelledby",n)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(n.event),"fill"===i?(e=r.height(),this.element.siblings(":visible").each(function(){var n=t(this),i=n.css("position");"absolute"!==i&&"fixed"!==i&&(e-=n.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===i&&(e=0,this.headers.next().each(function(){e=Math.max(e,t(this).css("height","").height())}).height(e))},_activate:function(e){var n=this._findActive(e)[0];n!==this.active[0]&&(n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var n={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){n[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,n),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var n=this.options,i=this.active,r=t(e.currentTarget),s=r[0]===i[0],o=s&&n.collapsible,a=o?t():r.next(),l=i.next(),u={oldHeader:i,oldPanel:l,newHeader:o?t():r,newPanel:a};e.preventDefault(),s&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=o?!1:this.headers.index(r),this.active=s?t():r,this._toggle(u),i.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(r.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),r.next().addClass("ui-accordion-content-active")))},_toggle:function(e){var n=e.newPanel,i=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=i,this.options.animate?this._animate(n,i,e):(i.hide(),n.show(),this._toggleComplete(e)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),n.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):n.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),n.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,n){var i,r,s,o=this,a=0,l=t.css("box-sizing"),u=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},h=u&&c.down||c,d=function(){o._toggleComplete(n)};return"number"==typeof h&&(s=h),"string"==typeof h&&(r=h),r=r||h.easing||c.easing,s=s||h.duration||c.duration,e.length?t.length?(i=t.show().outerHeight(),e.animate(this.hideProps,{duration:s,easing:r,step:function(t,e){e.now=Math.round(t)}}),void t.hide().animate(this.showProps,{duration:s,easing:r,complete:d,step:function(t,n){n.now=Math.round(t),"height"!==n.prop?"content-box"===l&&(a+=n.now):"content"!==o.options.heightStyle&&(n.now=Math.round(i-e.outerHeight()-a),a=0)}})):e.animate(this.hideProps,s,r,d):t.animate(this.showProps,s,r,d)},_toggleComplete:function(t){var e=t.oldPanel;e.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var n=t(e.target);!this.mouseHandled&&n.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),n.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&t(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var n=t(e.currentTarget);n.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(e,n)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var n=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,n)},blur:function(e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(e){var n,i,r,s,o=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:o=!1,i=this.previousFilter||"",r=String.fromCharCode(e.keyCode),s=!1,clearTimeout(this.filterTimer),r===i?s=!0:r=i+r,n=this._filterMenuItems(r),n=s&&-1!==n.index(this.active.next())?this.active.nextAll(".ui-menu-item"):n,n.length||(r=String.fromCharCode(e.keyCode),n=this._filterMenuItems(r)),n.length?(this.focus(e,n),this.previousFilter=r,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&e.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(t):this.select(t))},refresh:function(){var e,n,i=this,r=this.options.icons.submenu,s=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),n=e.parent(),i=t("<span>").addClass("ui-menu-icon ui-icon "+r).data("ui-menu-submenu-carat",!0);n.attr("aria-haspopup","true").prepend(i),e.attr("aria-labelledby",n.attr("id"))}),e=s.add(this.element),n=e.find(this.options.items),n.not(".ui-menu-item").each(function(){var e=t(this);i._isDivider(e)&&e.addClass("ui-widget-content ui-menu-divider")}),n.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),n.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this._super(t,e)},focus:function(t,e){var n,i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=e.children(".ui-menu"),n.length&&t&&/^mouse/.test(t.type)&&this._startOpening(n),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var n,i,r,s,o,a;this._hasScroll()&&(n=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,r=e.offset().top-this.activeMenu.offset().top-n-i,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),a=e.outerHeight(),0>r?this.activeMenu.scrollTop(s+r):r+a>o&&this.activeMenu.scrollTop(s+r-o+a))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var n=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(e,n){clearTimeout(this.timer),this.timer=this._delay(function(){var i=n?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));i.length||(i=this.element),this._close(i),this.blur(e),this.activeMenu=i},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,n){var i;this.active&&(i="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),i&&i.length&&this.active||(i=this.activeMenu.find(this.options.items)[e]()),this.focus(n,i)},nextPage:function(e){var n,i,r;return this.active?void(this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,r=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=t(this),n.offset().top-i-r<0}),this.focus(e,n)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]()))):void this.next(e)},previousPage:function(e){var n,i,r;return this.active?void(this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,r=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=t(this),n.offset().top-i+r>0}),this.focus(e,n)):this.focus(e,this.activeMenu.find(this.options.items).first()))):void this.next(e)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var n={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,n)},_filterMenuItems:function(e){var n=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),i=new RegExp("^"+n,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return i.test(t.trim(t(this).text()))})}});t.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,n,i,r=this.element[0].nodeName.toLowerCase(),s="textarea"===r,o="input"===r;this.isMultiLine=s?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[s||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(r){if(this.element.prop("readOnly"))return e=!0,i=!0,void(n=!0);e=!1,i=!1,n=!1;var s=t.ui.keyCode;switch(r.keyCode){case s.PAGE_UP:e=!0,this._move("previousPage",r);break;case s.PAGE_DOWN:e=!0,this._move("nextPage",r);break;case s.UP:e=!0,this._keyEvent("previous",r);break;case s.DOWN:e=!0,this._keyEvent("next",r);break;case s.ENTER:this.menu.active&&(e=!0,r.preventDefault(),this.menu.select(r));break;case s.TAB:this.menu.active&&this.menu.select(r);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(r),r.preventDefault());break;default:n=!0,this._searchTimeout(r)}},keypress:function(i){if(e)return e=!1,void((!this.isMultiLine||this.menu.element.is(":visible"))&&i.preventDefault());if(!n){var r=t.ui.keyCode;switch(i.keyCode){case r.PAGE_UP:this._move("previousPage",i);break;case r.PAGE_DOWN:this._move("nextPage",i);break;case r.UP:this._keyEvent("previous",i);break;case r.DOWN:this._keyEvent("next",i)}}},input:function(t){return i?(i=!1,void t.preventDefault()):void this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),void this._change(t))}}),this._initSource(),this.menu=t("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var n=this.menu.element[0];t(e.target).closest(".ui-menu-item").length||this._delay(function(){var e=this;this.document.one("mousedown",function(i){i.target===e.element[0]||i.target===n||t.contains(n,i.target)||e.close()})})},menufocus:function(e,n){var i,r;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),void this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)})):(r=n.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:r})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(r.value),i=n.item.attr("aria-label")||r.value,void(i&&t.trim(i).length&&(this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))))},menuselect:function(t,e){var n=e.item.data("ui-autocomplete-item"),i=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=i,this._delay(function(){this.previous=i,this.selectedItem=n})),!1!==this._trigger("select",t,{item:n})&&this._value(n.value),this.term=this._value(),this.close(t),this.selectedItem=n}}),this.liveRegion=t("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){
-this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,n,i=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(n,i){i(t.ui.autocomplete.filter(e,n.term))}):"string"==typeof this.options.source?(n=this.options.source,this.source=function(e,r){i.xhr&&i.xhr.abort(),i.xhr=t.ajax({url:n,data:e,dataType:"json",success:function(t){r(t)},error:function(){r([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),n=this.menu.element.is(":visible"),i=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!n&&!i)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var n=this.menu.element.empty();this._renderMenu(n,e),this.isNewMenu=!0,this.menu.refresh(),n.show(),this._resizeMenu(),n.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,n){var i=this;t.each(n,function(t,n){i._renderItemData(e,n)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,n){return t("<li>").text(n.label).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e):void this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,n){var i=new RegExp(t.ui.autocomplete.escapeRegex(n),"i");return t.grep(e,function(t){return i.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var n;this._superApply(arguments),this.options.disabled||this.cancelSearch||(n=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(n).appendTo(this.liveRegion))}});var d,p=(t.ui.autocomplete,"ui-button ui-widget ui-state-default ui-corner-all"),f="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",m=function(){var e=t(this);setTimeout(function(){e.find(":ui-button").button("refresh")},1)},g=function(e){var n=e.name,i=e.form,r=t([]);return n&&(n=n.replace(/'/g,"\\'"),r=i?t(i).find("[name='"+n+"'][type=radio]"):t("[name='"+n+"'][type=radio]",e.ownerDocument).filter(function(){return!this.form})),r};t.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,m),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var e=this,n=this.options,i="checkbox"===this.type||"radio"===this.type,r=i?"":"ui-state-active";null===n.label&&(n.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(p).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){n.disabled||this===d&&t(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){n.disabled||t(this).removeClass(r)}).bind("click"+this.eventNamespace,function(t){n.disabled&&(t.preventDefault(),t.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),i&&this.element.bind("change"+this.eventNamespace,function(){e.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return n.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(n.disabled)return!1;t(this).addClass("ui-state-active"),e.buttonElement.attr("aria-pressed","true");var i=e.element[0];g(i).not(i).map(function(){return t(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return n.disabled?!1:(t(this).addClass("ui-state-active"),d=this,void e.document.one("mouseup",function(){d=null}))}).bind("mouseup"+this.eventNamespace,function(){return n.disabled?!1:void t(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(e){return n.disabled?!1:void((e.keyCode===t.ui.keyCode.SPACE||e.keyCode===t.ui.keyCode.ENTER)&&t(this).addClass("ui-state-active"))}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){t(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===t.ui.keyCode.SPACE&&t(this).click()})),this._setOption("disabled",n.disabled),this._resetButton()},_determineButtonType:function(){var t,e,n;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(t=this.element.parents().last(),e="label[for='"+this.element.attr("id")+"']",this.buttonElement=t.find(e),this.buttonElement.length||(t=t.length?t.siblings():this.element.siblings(),this.buttonElement=t.filter(e),this.buttonElement.length||(this.buttonElement=t.find(e))),this.element.addClass("ui-helper-hidden-accessible"),n=this.element.is(":checked"),n&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",n)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(p+" ui-state-active "+f).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(t,e){return this._super(t,e),"disabled"===t?(this.widget().toggleClass("ui-state-disabled",!!e),this.element.prop("disabled",!!e),void(e&&this.buttonElement.removeClass("checkbox"===this.type||"radio"===this.type?"ui-state-focus":"ui-state-focus ui-state-active"))):void this._resetButton()},refresh:function(){var e=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");e!==this.options.disabled&&this._setOption("disabled",e),"radio"===this.type?g(this.element[0]).each(function(){t(this).is(":checked")?t(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):t(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return void(this.options.label&&this.element.val(this.options.label));var e=this.buttonElement.removeClass(f),n=t("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(e.empty()).text(),i=this.options.icons,r=i.primary&&i.secondary,s=[];i.primary||i.secondary?(this.options.text&&s.push("ui-button-text-icon"+(r?"s":i.primary?"-primary":"-secondary")),i.primary&&e.prepend("<span class='ui-button-icon-primary ui-icon "+i.primary+"'></span>"),i.secondary&&e.append("<span class='ui-button-icon-secondary ui-icon "+i.secondary+"'></span>"),this.options.text||(s.push(r?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||e.attr("title",t.trim(n)))):s.push("ui-button-text-only"),e.addClass(s.join(" "))}}),t.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(t,e){"disabled"===t&&this.buttons.button("option",t,e),this._super(t,e)},refresh:function(){var e="rtl"===this.element.css("direction"),n=this.element.find(this.options.items),i=n.filter(":ui-button");n.not(":ui-button").button(),i.button("refresh"),this.buttons=n.map(function(){return t(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(e?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(e?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return t(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}});t.ui.button;t.extend(t.ui,{datepicker:{version:"1.11.4"}});var v;t.extend(r.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,n){var i,r,s;i=e.nodeName.toLowerCase(),r="div"===i||"span"===i,e.id||(this.uuid+=1,e.id="dp"+this.uuid),s=this._newInst(t(e),r),s.settings=t.extend({},n||{}),"input"===i?this._connectDatepicker(e,s):r&&this._inlineDatepicker(e,s)},_newInst:function(e,n){var i=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:i,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:n,dpDiv:n?s(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,n){var i=t(e);n.append=t([]),n.trigger=t([]),i.hasClass(this.markerClassName)||(this._attachments(i,n),i.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(n),t.data(e,"datepicker",n),n.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,n){var i,r,s,o=this._get(n,"appendText"),a=this._get(n,"isRTL");n.append&&n.append.remove(),o&&(n.append=t("<span class='"+this._appendClass+"'>"+o+"</span>"),e[a?"before":"after"](n.append)),e.unbind("focus",this._showDatepicker),n.trigger&&n.trigger.remove(),i=this._get(n,"showOn"),("focus"===i||"both"===i)&&e.focus(this._showDatepicker),("button"===i||"both"===i)&&(r=this._get(n,"buttonText"),s=this._get(n,"buttonImage"),n.trigger=t(this._get(n,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:s,alt:r,title:r}):t("<button type='button'></button>").addClass(this._triggerClass).html(s?t("<img/>").attr({src:s,alt:r,title:r}):r)),e[a?"before":"after"](n.trigger),n.trigger.click(function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,n,i,r,s=new Date(2009,11,20),o=this._get(t,"dateFormat");o.match(/[DM]/)&&(e=function(t){for(n=0,i=0,r=0;r<t.length;r++)t[r].length>n&&(n=t[r].length,i=r);return i},s.setMonth(e(this._get(t,o.match(/MM/)?"monthNames":"monthNamesShort"))),s.setDate(e(this._get(t,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-s.getDay())),t.input.attr("size",this._formatDate(t,s).length)}},_inlineDatepicker:function(e,n){var i=t(e);i.hasClass(this.markerClassName)||(i.addClass(this.markerClassName).append(n.dpDiv),t.data(e,"datepicker",n),this._setDate(n,this._getDefaultDate(n),!0),this._updateDatepicker(n),this._updateAlternate(n),n.settings.disabled&&this._disableDatepicker(e),n.dpDiv.css("display","block"))},_dialogDatepicker:function(e,n,i,r,s){var o,l,u,c,h,d=this._dialogInst;return d||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,r||{}),n=n&&n.constructor===Date?this._formatDate(d,n):n,this._dialogInput.val(n),this._pos=s?s.length?s:[s.pageX,s.pageY]:null,this._pos||(l=document.documentElement.clientWidth,u=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,h=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+c,u/2-150+h]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var n,i=t(e),r=t.data(e,"datepicker");i.hasClass(this.markerClassName)&&(n=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===n?(r.append.remove(),r.trigger.remove(),i.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===n||"span"===n)&&i.removeClass(this.markerClassName).empty(),v===r&&(v=null))},_enableDatepicker:function(e){var n,i,r=t(e),s=t.data(e,"datepicker");r.hasClass(this.markerClassName)&&(n=e.nodeName.toLowerCase(),"input"===n?(e.disabled=!1,s.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===n||"span"===n)&&(i=r.children("."+this._inlineClass),i.children().removeClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var n,i,r=t(e),s=t.data(e,"datepicker");r.hasClass(this.markerClassName)&&(n=e.nodeName.toLowerCase(),"input"===n?(e.disabled=!0,s.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===n||"span"===n)&&(i=r.children("."+this._inlineClass),i.children().addClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;e<this._disabledInputs.length;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(n){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,n,i){var r,s,o,l,u=this._getInst(e);return 2===arguments.length&&"string"==typeof n?"defaults"===n?t.extend({},t.datepicker._defaults):u?"all"===n?t.extend({},u.settings):this._get(u,n):null:(r=n||{},"string"==typeof n&&(r={},r[n]=i),void(u&&(this._curInst===u&&this._hideDatepicker(),s=this._getDateDatepicker(e,!0),o=this._getMinMaxDate(u,"min"),l=this._getMinMaxDate(u,"max"),a(u.settings,r),null!==o&&void 0!==r.dateFormat&&void 0===r.minDate&&(u.settings.minDate=this._formatDate(u,o)),null!==l&&void 0!==r.dateFormat&&void 0===r.maxDate&&(u.settings.maxDate=this._formatDate(u,l)),"disabled"in r&&(r.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),u),this._autoSize(u),this._setDate(u,s),this._updateAlternate(u),this._updateDatepicker(u))))},_changeDatepicker:function(t,e,n){this._optionDatepicker(t,e,n)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var n=this._getInst(t);n&&(this._setDate(n,e),this._updateDatepicker(n),this._updateAlternate(n))},_getDateDatepicker:function(t,e){var n=this._getInst(t);return n&&!n.inline&&this._setDateFromField(n,e),n?this._getDate(n):null},_doKeyDown:function(e){var n,i,r,s=t.datepicker._getInst(e.target),o=!0,a=s.dpDiv.is(".ui-datepicker-rtl");if(s._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),o=!1;break;case 13:return r=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",s.dpDiv),r[0]&&t.datepicker._selectDay(e.target,s.selectedMonth,s.selectedYear,r[0]),n=t.datepicker._get(s,"onSelect"),n?(i=t.datepicker._formatDate(s),n.apply(s.input?s.input[0]:null,[i,s])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(s,"stepBigMonths"):-t.datepicker._get(s,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(s,"stepBigMonths"):+t.datepicker._get(s,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),o=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),o=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?1:-1,"D"),o=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(s,"stepBigMonths"):-t.datepicker._get(s,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),o=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?-1:1,"D"),o=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(s,"stepBigMonths"):+t.datepicker._get(s,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),o=e.ctrlKey||e.metaKey;break;default:o=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):o=!1;o&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var n,i,r=t.datepicker._getInst(e.target);return t.datepicker._get(r,"constrainInput")?(n=t.datepicker._possibleChars(t.datepicker._get(r,"dateFormat")),i=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">i||!n||n.indexOf(i)>-1):void 0},_doKeyUp:function(e){var n,i=t.datepicker._getInst(e.target);if(i.input.val()!==i.lastVal)try{n=t.datepicker.parseDate(t.datepicker._get(i,"dateFormat"),i.input?i.input.val():null,t.datepicker._getFormatConfig(i)),n&&(t.datepicker._setDateFromField(i),t.datepicker._updateAlternate(i),t.datepicker._updateDatepicker(i))}catch(r){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var n,r,s,o,l,u,c;n=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==n&&(t.datepicker._curInst.dpDiv.stop(!0,!0),n&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),r=t.datepicker._get(n,"beforeShow"),s=r?r.apply(e,[e,n]):{},s!==!1&&(a(n.settings,s),n.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(n),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),o=!1,t(e).parents().each(function(){return o|="fixed"===t(this).css("position"),!o}),l={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,n.dpDiv.empty(),n.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(n),l=t.datepicker._checkOffset(n,l,o),n.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":o?"fixed":"absolute",display:"none",left:l.left+"px",top:l.top+"px"}),n.inline||(u=t.datepicker._get(n,"showAnim"),c=t.datepicker._get(n,"duration"),n.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[u]?n.dpDiv.show(u,t.datepicker._get(n,"showOptions"),c):n.dpDiv[u||"show"](u?c:null),t.datepicker._shouldFocusInput(n)&&n.input.focus(),t.datepicker._curInst=n))}},_updateDatepicker:function(e){this.maxRows=4,v=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var n,i=this._getNumberOfMonths(e),r=i[1],s=17,a=e.dpDiv.find("."+this._dayOverClass+" a");a.length>0&&o.apply(a.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),r>1&&e.dpDiv.addClass("ui-datepicker-multi-"+r).css("width",s*r+"em"),e.dpDiv[(1!==i[0]||1!==i[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.focus(),e.yearshtml&&(n=e.yearshtml,setTimeout(function(){n===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),n=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,n,i){var r=e.dpDiv.outerWidth(),s=e.dpDiv.outerHeight(),o=e.input?e.input.outerWidth():0,a=e.input?e.input.outerHeight():0,l=document.documentElement.clientWidth+(i?0:t(document).scrollLeft()),u=document.documentElement.clientHeight+(i?0:t(document).scrollTop());return n.left-=this._get(e,"isRTL")?r-o:0,n.left-=i&&n.left===e.input.offset().left?t(document).scrollLeft():0,n.top-=i&&n.top===e.input.offset().top+a?t(document).scrollTop():0,n.left-=Math.min(n.left,n.left+r>l&&l>r?Math.abs(n.left+r-l):0),n.top-=Math.min(n.top,n.top+s>u&&u>s?Math.abs(s+a):0),n},_findPos:function(e){for(var n,i=this._getInst(e),r=this._get(i,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[r?"previousSibling":"nextSibling"];return n=t(e).offset(),[n.left,n.top]},_hideDatepicker:function(e){var n,i,r,s,o=this._curInst;!o||e&&o!==t.data(e,"datepicker")||this._datepickerShowing&&(n=this._get(o,"showAnim"),i=this._get(o,"duration"),r=function(){t.datepicker._tidyDialog(o)},t.effects&&(t.effects.effect[n]||t.effects[n])?o.dpDiv.hide(n,t.datepicker._get(o,"showOptions"),i,r):o.dpDiv["slideDown"===n?"slideUp":"fadeIn"===n?"fadeOut":"hide"](n?i:null,r),n||r(),this._datepickerShowing=!1,s=this._get(o,"onClose"),s&&s.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var n=t(e.target),i=t.datepicker._getInst(n[0]);(n[0].id!==t.datepicker._mainDivId&&0===n.parents("#"+t.datepicker._mainDivId).length&&!n.hasClass(t.datepicker.markerClassName)&&!n.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||n.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==i)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,n,i){var r=t(e),s=this._getInst(r[0]);this._isDisabledDatepicker(r[0])||(this._adjustInstDate(s,n+("M"===i?this._get(s,"showCurrentAtPos"):0),i),this._updateDatepicker(s))},_gotoToday:function(e){var n,i=t(e),r=this._getInst(i[0]);this._get(r,"gotoCurrent")&&r.currentDay?(r.selectedDay=r.currentDay,r.drawMonth=r.selectedMonth=r.currentMonth,r.drawYear=r.selectedYear=r.currentYear):(n=new Date,r.selectedDay=n.getDate(),r.drawMonth=r.selectedMonth=n.getMonth(),r.drawYear=r.selectedYear=n.getFullYear()),this._notifyChange(r),this._adjustDate(i)},_selectMonthYear:function(e,n,i){var r=t(e),s=this._getInst(r[0]);s["selected"+("M"===i?"Month":"Year")]=s["draw"+("M"===i?"Month":"Year")]=parseInt(n.options[n.selectedIndex].value,10),this._notifyChange(s),this._adjustDate(r)},_selectDay:function(e,n,i,r){var s,o=t(e);t(r).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(s=this._getInst(o[0]),s.selectedDay=s.currentDay=t("a",r).html(),s.selectedMonth=s.currentMonth=n,s.selectedYear=s.currentYear=i,this._selectDate(e,this._formatDate(s,s.currentDay,s.currentMonth,s.currentYear)))},_clearDate:function(e){var n=t(e);this._selectDate(n,"")},_selectDate:function(e,n){var i,r=t(e),s=this._getInst(r[0]);n=null!=n?n:this._formatDate(s),s.input&&s.input.val(n),this._updateAlternate(s),i=this._get(s,"onSelect"),i?i.apply(s.input?s.input[0]:null,[n,s]):s.input&&s.input.trigger("change"),s.inline?this._updateDatepicker(s):(this._hideDatepicker(),this._lastInput=s.input[0],"object"!=typeof s.input[0]&&s.input.focus(),this._lastInput=null)},_updateAlternate:function(e){var n,i,r,s=this._get(e,"altField");s&&(n=this._get(e,"altFormat")||this._get(e,"dateFormat"),i=this._getDate(e),r=this.formatDate(n,i,this._getFormatConfig(e)),t(s).each(function(){t(this).val(r)}))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,n=new Date(t.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),e=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((e-n)/864e5)/7)+1},parseDate:function(e,n,i){if(null==e||null==n)throw"Invalid arguments";if(n="object"==typeof n?n.toString():n+"",""===n)return null;var r,s,o,a,l=0,u=(i?i.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof u?u:(new Date).getFullYear()%100+parseInt(u,10),h=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,d=(i?i.dayNames:null)||this._defaults.dayNames,p=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,f=(i?i.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,b=-1,y=!1,$=function(t){var n=r+1<e.length&&e.charAt(r+1)===t;return n&&r++,n},w=function(t){var e=$(t),i="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,r="y"===t?i:1,s=new RegExp("^\\d{"+r+","+i+"}"),o=n.substring(l).match(s);if(!o)throw"Missing number at position "+l;return l+=o[0].length,parseInt(o[0],10)},x=function(e,i,r){var s=-1,o=t.map($(e)?r:i,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(o,function(t,e){var i=e[1];return n.substr(l,i.length).toLowerCase()===i.toLowerCase()?(s=e[0],l+=i.length,!1):void 0}),-1!==s)return s+1;throw"Unknown name at position "+l},_=function(){if(n.charAt(l)!==e.charAt(r))throw"Unexpected literal at position "+l;l++};for(r=0;r<e.length;r++)if(y)"'"!==e.charAt(r)||$("'")?_():y=!1;else switch(e.charAt(r)){case"d":v=w("d");break;case"D":x("D",h,d);break;case"o":b=w("o");break;case"m":g=w("m");break;case"M":g=x("M",p,f);break;case"y":m=w("y");break;case"@":a=new Date(w("@")),m=a.getFullYear(),g=a.getMonth()+1,v=a.getDate();break;case"!":a=new Date((w("!")-this._ticksTo1970)/1e4),m=a.getFullYear(),g=a.getMonth()+1,v=a.getDate();break;case"'":$("'")?_():y=!0;break;default:_()}if(l<n.length&&(o=n.substr(l),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=m?0:-100)),b>-1)for(g=1,v=b;;){if(s=this._getDaysInMonth(m,g-1),s>=v)break;g++,v-=s}if(a=this._daylightSavingAdjust(new Date(m,g-1,v)),a.getFullYear()!==m||a.getMonth()+1!==g||a.getDate()!==v)throw"Invalid date";return a},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(t,e,n){if(!e)return"";var i,r=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,s=(n?n.dayNames:null)||this._defaults.dayNames,o=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,a=(n?n.monthNames:null)||this._defaults.monthNames,l=function(e){var n=i+1<t.length&&t.charAt(i+1)===e;return n&&i++,n},u=function(t,e,n){var i=""+e;if(l(t))for(;i.length<n;)i="0"+i;return i},c=function(t,e,n,i){return l(t)?i[e]:n[e]},h="",d=!1;if(e)for(i=0;i<t.length;i++)if(d)"'"!==t.charAt(i)||l("'")?h+=t.charAt(i):d=!1;else switch(t.charAt(i)){case"d":h+=u("d",e.getDate(),2);break;case"D":h+=c("D",e.getDay(),r,s);break;case"o":h+=u("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":h+=u("m",e.getMonth()+1,2);break;case"M":h+=c("M",e.getMonth(),o,a);break;case"y":h+=l("y")?e.getFullYear():(e.getYear()%100<10?"0":"")+e.getYear()%100;break;case"@":h+=e.getTime();break;case"!":h+=1e4*e.getTime()+this._ticksTo1970;break;case"'":l("'")?h+="'":d=!0;break;default:h+=t.charAt(i)}return h},_possibleChars:function(t){var e,n="",i=!1,r=function(n){var i=e+1<t.length&&t.charAt(e+1)===n;return i&&e++,i};for(e=0;e<t.length;e++)if(i)"'"!==t.charAt(e)||r("'")?n+=t.charAt(e):i=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":n+="0123456789";break;case"D":case"M":return null;case"'":r("'")?n+="'":i=!0;break;default:n+=t.charAt(e)}return n},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var n=this._get(t,"dateFormat"),i=t.lastVal=t.input?t.input.val():null,r=this._getDefaultDate(t),s=r,o=this._getFormatConfig(t);try{s=this.parseDate(n,i,o)||r}catch(a){i=e?"":i}t.selectedDay=s.getDate(),t.drawMonth=t.selectedMonth=s.getMonth(),t.drawYear=t.selectedYear=s.getFullYear(),t.currentDay=i?s.getDate():0,t.currentMonth=i?s.getMonth():0,t.currentYear=i?s.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,n,i){var r=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},s=function(n){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),n,t.datepicker._getFormatConfig(e))}catch(i){}for(var r=(n.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,s=r.getFullYear(),o=r.getMonth(),a=r.getDate(),l=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,u=l.exec(n);u;){
-switch(u[2]||"d"){case"d":case"D":a+=parseInt(u[1],10);break;case"w":case"W":a+=7*parseInt(u[1],10);break;case"m":case"M":o+=parseInt(u[1],10),a=Math.min(a,t.datepicker._getDaysInMonth(s,o));break;case"y":case"Y":s+=parseInt(u[1],10),a=Math.min(a,t.datepicker._getDaysInMonth(s,o))}u=l.exec(n)}return new Date(s,o,a)},o=null==n||""===n?i:"string"==typeof n?s(n):"number"==typeof n?isNaN(n)?i:r(n):new Date(n.getTime());return o=o&&"Invalid Date"===o.toString()?i:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,n){var i=!e,r=t.selectedMonth,s=t.selectedYear,o=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=o.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=o.getMonth(),t.drawYear=t.selectedYear=t.currentYear=o.getFullYear(),r===t.selectedMonth&&s===t.selectedYear||n||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(i?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var n=this._get(e,"stepMonths"),i="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(i,-n,"M")},next:function(){t.datepicker._adjustDate(i,+n,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(i)},selectDay:function(){return t.datepicker._selectDay(i,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(i,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(i,this,"Y"),!1}};t(this).bind(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,n,i,r,s,o,a,l,u,c,h,d,p,f,m,g,v,b,y,$,w,x,_,k,C,D,T,E,S,M,A,I,O,P,N,H,j,R,F,z=new Date,W=this._daylightSavingAdjust(new Date(z.getFullYear(),z.getMonth(),z.getDate())),L=this._get(t,"isRTL"),q=this._get(t,"showButtonPanel"),V=this._get(t,"hideIfNoPrevNext"),B=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),Y=this._get(t,"showCurrentAtPos"),K=this._get(t,"stepMonths"),G=1!==U[0]||1!==U[1],X=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-Y,tt=t.drawYear;if(0>Z&&(Z+=12,tt--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(tt,Z,1))>e;)Z--,0>Z&&(Z=11,tt--);for(t.drawMonth=Z,t.drawYear=tt,n=this._get(t,"prevText"),n=B?this.formatDate(n,this._daylightSavingAdjust(new Date(tt,Z-K,1)),this._getFormatConfig(t)):n,i=this._canAdjustMonth(t,-1,tt,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"e":"w")+"'>"+n+"</span></a>":V?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"e":"w")+"'>"+n+"</span></a>",r=this._get(t,"nextText"),r=B?this.formatDate(r,this._daylightSavingAdjust(new Date(tt,Z+K,1)),this._getFormatConfig(t)):r,s=this._canAdjustMonth(t,1,tt,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+r+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"w":"e")+"'>"+r+"</span></a>":V?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+r+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"w":"e")+"'>"+r+"</span></a>",o=this._get(t,"currentText"),a=this._get(t,"gotoCurrent")&&t.currentDay?X:W,o=B?this.formatDate(o,a,this._getFormatConfig(t)):o,l=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",u=q?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(L?l:"")+(this._isInRange(t,a)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(L?"":l)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,h=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),m=this._get(t,"monthNamesShort"),g=this._get(t,"beforeShowDay"),v=this._get(t,"showOtherMonths"),b=this._get(t,"selectOtherMonths"),y=this._getDefaultDate(t),$="",x=0;x<U[0];x++){for(_="",this.maxRows=4,k=0;k<U[1];k++){if(C=this._daylightSavingAdjust(new Date(tt,Z,t.selectedDay)),D=" ui-corner-all",T="",G){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(k){case 0:T+=" ui-datepicker-group-first",D=" ui-corner-"+(L?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",D=" ui-corner-"+(L?"left":"right");break;default:T+=" ui-datepicker-group-middle",D=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+D+"'>"+(/all|left/.test(D)&&0===x?L?s:i:"")+(/all|right/.test(D)&&0===x?L?i:s:"")+this._generateMonthYearHeader(t,Z,tt,Q,J,x>0||k>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead><tr>",E=h?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)S=(w+c)%7,E+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+"><span title='"+d[S]+"'>"+p[S]+"</span></th>";for(T+=E+"</tr></thead><tbody>",M=this._getDaysInMonth(tt,Z),tt===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,M)),A=(this._getFirstDayOfMonth(tt,Z)-c+7)%7,I=Math.ceil((A+M)/7),O=G&&this.maxRows>I?this.maxRows:I,this.maxRows=O,P=this._daylightSavingAdjust(new Date(tt,Z,1-A)),N=0;O>N;N++){for(T+="<tr>",H=h?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(P)+"</td>":"",w=0;7>w;w++)j=g?g.apply(t.input?t.input[0]:null,[P]):[!0,""],R=P.getMonth()!==Z,F=R&&!b||!j[0]||Q&&Q>P||J&&P>J,H+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(R?" ui-datepicker-other-month":"")+(P.getTime()===C.getTime()&&Z===t.selectedMonth&&t._keyEvent||y.getTime()===P.getTime()&&y.getTime()===C.getTime()?" "+this._dayOverClass:"")+(F?" "+this._unselectableClass+" ui-state-disabled":"")+(R&&!v?"":" "+j[1]+(P.getTime()===X.getTime()?" "+this._currentClass:"")+(P.getTime()===W.getTime()?" ui-datepicker-today":""))+"'"+(R&&!v||!j[2]?"":" title='"+j[2].replace(/'/g,"&#39;")+"'")+(F?"":" data-handler='selectDay' data-event='click' data-month='"+P.getMonth()+"' data-year='"+P.getFullYear()+"'")+">"+(R&&!v?"&#xa0;":F?"<span class='ui-state-default'>"+P.getDate()+"</span>":"<a class='ui-state-default"+(P.getTime()===W.getTime()?" ui-state-highlight":"")+(P.getTime()===X.getTime()?" ui-state-active":"")+(R?" ui-priority-secondary":"")+"' href='#'>"+P.getDate()+"</a>")+"</td>",P.setDate(P.getDate()+1),P=this._daylightSavingAdjust(P);T+=H+"</tr>"}Z++,Z>11&&(Z=0,tt++),T+="</tbody></table>"+(G?"</div>"+(U[0]>0&&k===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),_+=T}$+=_}return $+=u,t._keyEvent=!1,$},_generateMonthYearHeader:function(t,e,n,i,r,s,o,a){var l,u,c,h,d,p,f,m,g=this._get(t,"changeMonth"),v=this._get(t,"changeYear"),b=this._get(t,"showMonthAfterYear"),y="<div class='ui-datepicker-title'>",$="";if(s||!g)$+="<span class='ui-datepicker-month'>"+o[e]+"</span>";else{for(l=i&&i.getFullYear()===n,u=r&&r.getFullYear()===n,$+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!l||c>=i.getMonth())&&(!u||c<=r.getMonth())&&($+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+a[c]+"</option>");$+="</select>"}if(b||(y+=$+(!s&&g&&v?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",s||!v)y+="<span class='ui-datepicker-year'>"+n+"</span>";else{for(h=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?n+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(h[0]),m=Math.max(f,p(h[1]||"")),f=i?Math.max(f,i.getFullYear()):f,m=r?Math.min(m,r.getFullYear()):m,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===n?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",y+=t.yearshtml,t.yearshtml=null}return y+=this._get(t,"yearSuffix"),b&&(y+=(!s&&g&&v?"":"&#xa0;")+$),y+="</div>"},_adjustInstDate:function(t,e,n){var i=t.drawYear+("Y"===n?e:0),r=t.drawMonth+("M"===n?e:0),s=Math.min(t.selectedDay,this._getDaysInMonth(i,r))+("D"===n?e:0),o=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(i,r,s)));t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),("M"===n||"Y"===n)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var n=this._getMinMaxDate(t,"min"),i=this._getMinMaxDate(t,"max"),r=n&&n>e?n:e;return i&&r>i?i:r},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,n,i){var r=this._getNumberOfMonths(t),s=this._daylightSavingAdjust(new Date(n,i+(0>e?e:r[0]*r[1]),1));return 0>e&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(t,s)},_isInRange:function(t,e){var n,i,r=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),o=null,a=null,l=this._get(t,"yearRange");return l&&(n=l.split(":"),i=(new Date).getFullYear(),o=parseInt(n[0],10),a=parseInt(n[1],10),n[0].match(/[+\-].*/)&&(o+=i),n[1].match(/[+\-].*/)&&(a+=i)),(!r||e.getTime()>=r.getTime())&&(!s||e.getTime()<=s.getTime())&&(!o||e.getFullYear()>=o)&&(!a||e.getFullYear()<=a)},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,n,i){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var r=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(i,n,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),r,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).mousedown(t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var n=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(n)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(n)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(n))},t.datepicker=new r,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.11.4";t.datepicker;t.widget("ui.draggable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(e){var n=this.options;return this._blurActiveElement(e),this.helper||n.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blockFrames(n.iframeFix===!0?"iframe":n.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var n=this.document[0];if(this.handleElement.is(e.target))try{n.activeElement&&"body"!==n.activeElement.nodeName.toLowerCase()&&t(n.activeElement).blur()}catch(i){}},_mouseStart:function(e){var n=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._normalizeRightBottom(),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,n){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!n){var i=this._uiHash();if(this._trigger("drag",e,i)===!1)return this._mouseUp({}),!1;this.position=i.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var n=this,i=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(i=t.ui.ddmanager.drop(this,e)),this.dropped&&(i=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!i||"valid"===this.options.revert&&i||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,i)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){n._trigger("stop",e)!==!1&&n._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.focus(),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(e){var n=this.options,i=t.isFunction(n.helper),r=i?t(n.helper.apply(this.element[0],[e])):"clone"===n.helper?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo("parent"===n.appendTo?this.element[0].parentNode:n.appendTo),i&&r[0]===this.element[0]&&this._setPositionRelative(),r[0]===this.element[0]||/(fixed|absolute)/.test(r.css("position"))||r.css("position","absolute"),r},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),n=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==n&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,n,i,r=this.options,s=this.document[0];return this.relativeContainer=null,r.containment?"window"===r.containment?void(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===r.containment?void(this.containment=[0,0,t(s).width()-this.helperProportions.width-this.margins.left,(t(s).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):r.containment.constructor===Array?void(this.containment=r.containment):("parent"===r.containment&&(r.containment=this.helper[0].parentNode),n=t(r.containment),i=n[0],void(i&&(e=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(e?Math.max(i.scrollWidth,i.offsetWidth):i.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(i.scrollHeight,i.offsetHeight):i.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n))):void(this.containment=null)},_convertPositionTo:function(t,e){e||(e=this.position);var n="absolute"===t?1:-1,i=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*n+this.offset.parent.top*n-("fixed"===this.cssPosition?-this.offset.scroll.top:i?0:this.offset.scroll.top)*n,left:e.left+this.offset.relative.left*n+this.offset.parent.left*n-("fixed"===this.cssPosition?-this.offset.scroll.left:i?0:this.offset.scroll.left)*n}},_generatePosition:function(t,e){var n,i,r,s,o=this.options,a=this._isRootNode(this.scrollParent[0]),l=t.pageX,u=t.pageY;return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(i=this.relativeContainer.offset(),n=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]):n=this.containment,t.pageX-this.offset.click.left<n[0]&&(l=n[0]+this.offset.click.left),t.pageY-this.offset.click.top<n[1]&&(u=n[1]+this.offset.click.top),t.pageX-this.offset.click.left>n[2]&&(l=n[2]+this.offset.click.left),t.pageY-this.offset.click.top>n[3]&&(u=n[3]+this.offset.click.top)),o.grid&&(r=o.grid[1]?this.originalPageY+Math.round((u-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,u=n?r-this.offset.click.top>=n[1]||r-this.offset.click.top>n[3]?r:r-this.offset.click.top>=n[1]?r-o.grid[1]:r+o.grid[1]:r,s=o.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,l=n?s-this.offset.click.left>=n[0]||s-this.offset.click.left>n[2]?s:s-this.offset.click.left>=n[0]?s-o.grid[0]:s+o.grid[0]:s),"y"===o.axis&&(l=this.originalPageX),"x"===o.axis&&(u=this.originalPageY)),{top:u-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(e,n,i){return i=i||this._uiHash(),t.ui.plugin.call(this,e,[n,i,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,n,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,n,i){var r=t.extend({},n,{item:i.element});i.sortables=[],t(i.options.connectToSortable).each(function(){var n=t(this).sortable("instance");n&&!n.options.disabled&&(i.sortables.push(n),n.refreshPositions(),n._trigger("activate",e,r))})},stop:function(e,n,i){var r=t.extend({},n,{item:i.element});i.cancelHelperRemoval=!1,t.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,r))})},drag:function(e,n,i){t.each(i.sortables,function(){var r=!1,s=this;s.positionAbs=i.positionAbs,s.helperProportions=i.helperProportions,s.offset.click=i.offset.click,s._intersectsWith(s.containerCache)&&(r=!0,t.each(i.sortables,function(){return this.positionAbs=i.positionAbs,this.helperProportions=i.helperProportions,this.offset.click=i.offset.click,this!==s&&this._intersectsWith(this.containerCache)&&t.contains(s.element[0],this.element[0])&&(r=!1),r})),r?(s.isOver||(s.isOver=1,i._parent=n.helper.parent(),s.currentItem=n.helper.appendTo(s.element).data("ui-sortable-item",!0),s.options._helper=s.options.helper,s.options.helper=function(){return n.helper[0]},e.target=s.currentItem[0],s._mouseCapture(e,!0),s._mouseStart(e,!0,!0),s.offset.click.top=i.offset.click.top,s.offset.click.left=i.offset.click.left,s.offset.parent.left-=i.offset.parent.left-s.offset.parent.left,s.offset.parent.top-=i.offset.parent.top-s.offset.parent.top,i._trigger("toSortable",e),i.dropped=s.element,t.each(i.sortables,function(){this.refreshPositions()}),i.currentItem=i.element,s.fromOutside=i),s.currentItem&&(s._mouseDrag(e),n.position=s.position)):s.isOver&&(s.isOver=0,s.cancelHelperRemoval=!0,s.options._revert=s.options.revert,s.options.revert=!1,s._trigger("out",e,s._uiHash(s)),s._mouseStop(e,!0),s.options.revert=s.options._revert,s.options.helper=s.options._helper,s.placeholder&&s.placeholder.remove(),n.helper.appendTo(i._parent),i._refreshOffsets(e),n.position=i._generatePosition(e,!0),i._trigger("fromSortable",e),i.dropped=!1,t.each(i.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,n,i){var r=t("body"),s=i.options;r.css("cursor")&&(s._cursor=r.css("cursor")),r.css("cursor",s.cursor)},stop:function(e,n,i){var r=i.options;r._cursor&&t("body").css("cursor",r._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,n,i){var r=t(n.helper),s=i.options;r.css("opacity")&&(s._opacity=r.css("opacity")),r.css("opacity",s.opacity)},stop:function(e,n,i){var r=i.options;r._opacity&&t(n.helper).css("opacity",r._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(e,n,i){var r=i.options,s=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(r.axis&&"x"===r.axis||(i.overflowOffset.top+o.offsetHeight-e.pageY<r.scrollSensitivity?o.scrollTop=s=o.scrollTop+r.scrollSpeed:e.pageY-i.overflowOffset.top<r.scrollSensitivity&&(o.scrollTop=s=o.scrollTop-r.scrollSpeed)),r.axis&&"y"===r.axis||(i.overflowOffset.left+o.offsetWidth-e.pageX<r.scrollSensitivity?o.scrollLeft=s=o.scrollLeft+r.scrollSpeed:e.pageX-i.overflowOffset.left<r.scrollSensitivity&&(o.scrollLeft=s=o.scrollLeft-r.scrollSpeed))):(r.axis&&"x"===r.axis||(e.pageY-t(a).scrollTop()<r.scrollSensitivity?s=t(a).scrollTop(t(a).scrollTop()-r.scrollSpeed):t(window).height()-(e.pageY-t(a).scrollTop())<r.scrollSensitivity&&(s=t(a).scrollTop(t(a).scrollTop()+r.scrollSpeed))),r.axis&&"y"===r.axis||(e.pageX-t(a).scrollLeft()<r.scrollSensitivity?s=t(a).scrollLeft(t(a).scrollLeft()-r.scrollSpeed):t(window).width()-(e.pageX-t(a).scrollLeft())<r.scrollSensitivity&&(s=t(a).scrollLeft(t(a).scrollLeft()+r.scrollSpeed)))),s!==!1&&t.ui.ddmanager&&!r.dropBehaviour&&t.ui.ddmanager.prepareOffsets(i,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,n,i){var r=i.options;i.snapElements=[],t(r.snap.constructor!==String?r.snap.items||":data(ui-draggable)":r.snap).each(function(){var e=t(this),n=e.offset();this!==i.element[0]&&i.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:n.top,left:n.left})})},drag:function(e,n,i){var r,s,o,a,l,u,c,h,d,p,f=i.options,m=f.snapTolerance,g=n.offset.left,v=g+i.helperProportions.width,b=n.offset.top,y=b+i.helperProportions.height;for(d=i.snapElements.length-1;d>=0;d--)l=i.snapElements[d].left-i.margins.left,u=l+i.snapElements[d].width,c=i.snapElements[d].top-i.margins.top,h=c+i.snapElements[d].height,l-m>v||g>u+m||c-m>y||b>h+m||!t.contains(i.snapElements[d].item.ownerDocument,i.snapElements[d].item)?(i.snapElements[d].snapping&&i.options.snap.release&&i.options.snap.release.call(i.element,e,t.extend(i._uiHash(),{snapItem:i.snapElements[d].item})),i.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(r=Math.abs(c-y)<=m,s=Math.abs(h-b)<=m,o=Math.abs(l-v)<=m,a=Math.abs(u-g)<=m,r&&(n.position.top=i._convertPositionTo("relative",{top:c-i.helperProportions.height,left:0}).top),s&&(n.position.top=i._convertPositionTo("relative",{top:h,left:0}).top),o&&(n.position.left=i._convertPositionTo("relative",{top:0,left:l-i.helperProportions.width}).left),a&&(n.position.left=i._convertPositionTo("relative",{top:0,left:u}).left)),p=r||s||o||a,"outer"!==f.snapMode&&(r=Math.abs(c-b)<=m,s=Math.abs(h-y)<=m,o=Math.abs(l-g)<=m,a=Math.abs(u-v)<=m,r&&(n.position.top=i._convertPositionTo("relative",{top:c,left:0}).top),s&&(n.position.top=i._convertPositionTo("relative",{top:h-i.helperProportions.height,left:0}).top),o&&(n.position.left=i._convertPositionTo("relative",{top:0,left:l}).left),a&&(n.position.left=i._convertPositionTo("relative",{top:0,left:u-i.helperProportions.width}).left)),!i.snapElements[d].snapping&&(r||s||o||a||p)&&i.options.snap.snap&&i.options.snap.snap.call(i.element,e,t.extend(i._uiHash(),{snapItem:i.snapElements[d].item})),i.snapElements[d].snapping=r||s||o||a||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,n,i){var r,s=i.options,o=t.makeArray(t(s.stack)).sort(function(e,n){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(n).css("zIndex"),10)||0)});o.length&&(r=parseInt(t(o[0]).css("zIndex"),10)||0,t(o).each(function(e){t(this).css("zIndex",r+e)}),this.css("zIndex",r+o.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,n,i){var r=t(n.helper),s=i.options;r.css("zIndex")&&(s._zIndex=r.css("zIndex")),r.css("zIndex",s.zIndex)},stop:function(e,n,i){var r=i.options;r._zIndex&&t(n.helper).css("zIndex",r._zIndex)}});t.ui.draggable;t.widget("ui.resizable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseInt(t,10)||0},_isNumber:function(t){return!isNaN(parseInt(t,10))},_hasScroll:function(e,n){if("hidden"===t(e).css("overflow"))return!1;var i=n&&"left"===n?"scrollLeft":"scrollTop",r=!1;return e[i]>0?!0:(e[i]=1,r=e[i]>0,e[i]=0,r)},_create:function(){var e,n,i,r,s,o=this,a=this.options;if(this.element.addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({
-marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),e=this.handles.split(","),this.handles={},n=0;n<e.length;n++)i=t.trim(e[n]),s="ui-resizable-"+i,r=t("<div class='ui-resizable-handle "+s+"'></div>"),r.css({zIndex:a.zIndex}),"se"===i&&r.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[i]=".ui-resizable-"+i,this.element.append(r);this._renderAxis=function(e){var n,i,r,s;e=e||this.element;for(n in this.handles)this.handles[n].constructor===String?this.handles[n]=this.element.children(this.handles[n]).first().show():(this.handles[n].jquery||this.handles[n].nodeType)&&(this.handles[n]=t(this.handles[n]),this._on(this.handles[n],{mousedown:o._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=t(this.handles[n],this.element),s=/sw|ne|nw|se|n|s/.test(n)?i.outerHeight():i.outerWidth(),r=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),e.css(r,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(r=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=r&&r[1]?r[1]:"se")}),a.autoHide&&(this._handles.hide(),t(this.element).addClass("ui-resizable-autohide").mouseenter(function(){a.disabled||(t(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){a.disabled||o.resizing||(t(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,n=function(e){t(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(n(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_mouseCapture:function(e){var n,i,r=!1;for(n in this.handles)i=t(this.handles[n])[0],(i===e.target||t.contains(i,e.target))&&(r=!0);return!this.options.disabled&&r},_mouseStart:function(e){var n,i,r,s=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(n+=t(s.containment).scrollLeft()||0,i+=t(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:n,top:i},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,r=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===r?this.axis+"-resize":r),o.addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var n,i,r=this.originalMousePosition,s=this.axis,o=e.pageX-r.left||0,a=e.pageY-r.top||0,l=this._change[s];return this._updatePrevProperties(),l?(n=l.apply(this,[e,o,a]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(n=this._updateRatio(n,e)),n=this._respectSize(n,e),this._updateCache(n),this._propagate("resize",e),i=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(i)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var n,i,r,s,o,a,l,u=this.options,c=this;return this._helper&&(n=this._proportionallyResizeElements,i=n.length&&/textarea/i.test(n[0].nodeName),r=i&&this._hasScroll(n[0],"left")?0:c.sizeDiff.height,s=i?0:c.sizeDiff.width,o={width:c.helper.width()-s,height:c.helper.height()-r},a=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null,l=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null,u.animate||this.element.css(t.extend(o,{top:l,left:a})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!u.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,n,i,r,s,o=this.options;s={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||t)&&(e=s.minHeight*this.aspectRatio,i=s.minWidth/this.aspectRatio,n=s.maxHeight*this.aspectRatio,r=s.maxWidth/this.aspectRatio,e>s.minWidth&&(s.minWidth=e),i>s.minHeight&&(s.minHeight=i),n<s.maxWidth&&(s.maxWidth=n),r<s.maxHeight&&(s.maxHeight=r)),this._vBoundaries=s},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,n=this.size,i=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===i&&(t.left=e.left+(n.width-t.width),t.top=null),"nw"===i&&(t.top=e.top+(n.height-t.height),t.left=e.left+(n.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,n=this.axis,i=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,r=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,s=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,o=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,u=/sw|nw|w/.test(n),c=/nw|ne|n/.test(n);return s&&(t.width=e.minWidth),o&&(t.height=e.minHeight),i&&(t.width=e.maxWidth),r&&(t.height=e.maxHeight),s&&u&&(t.left=a-e.minWidth),i&&u&&(t.left=a-e.maxWidth),o&&c&&(t.top=l-e.minHeight),r&&c&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,n=[],i=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],r=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)n[e]=parseInt(i[e],10)||0,n[e]+=parseInt(r[e],10)||0;return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,n=this.helper||this.element;e<this._proportionallyResizeElements.length;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,n=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var n=this.originalSize,i=this.originalPosition;return{left:i.left+e,width:n.width-e}},n:function(t,e,n){var i=this.originalSize,r=this.originalPosition;return{top:r.top+n,height:i.height-n}},s:function(t,e,n){return{height:this.originalSize.height+n}},se:function(e,n,i){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,n,i]))},sw:function(e,n,i){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,n,i]))},ne:function(e,n,i){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,n,i]))},nw:function(e,n,i){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,n,i]))}},_propagate:function(e,n){t.ui.plugin.call(this,e,[n,this.ui()]),"resize"!==e&&this._trigger(e,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var n=t(this).resizable("instance"),i=n.options,r=n._proportionallyResizeElements,s=r.length&&/textarea/i.test(r[0].nodeName),o=s&&n._hasScroll(r[0],"left")?0:n.sizeDiff.height,a=s?0:n.sizeDiff.width,l={width:n.size.width-a,height:n.size.height-o},u=parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left)||null,c=parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top)||null;n.element.animate(t.extend(l,c&&u?{top:c,left:u}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var i={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};r&&r.length&&t(r[0]).css({width:i.width,height:i.height}),n._updateCache(i),n._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,n,i,r,s,o,a,l=t(this).resizable("instance"),u=l.options,c=l.element,h=u.containment,d=h instanceof t?h.get(0):/parent/.test(h)?c.parent().get(0):h;d&&(l.containerElement=t(d),/document/.test(h)||h===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),n=[],t(["Top","Right","Left","Bottom"]).each(function(t,i){n[t]=l._num(e.css("padding"+i))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-n[3],width:e.innerWidth()-n[1]},i=l.containerOffset,r=l.containerSize.height,s=l.containerSize.width,o=l._hasScroll(d,"left")?d.scrollWidth:s,a=l._hasScroll(d)?d.scrollHeight:r,l.parentData={element:d,left:i.left,top:i.top,width:o,height:a}))},resize:function(e){var n,i,r,s,o=t(this).resizable("instance"),a=o.options,l=o.containerOffset,u=o.position,c=o._aspectRatio||e.shiftKey,h={top:0,left:0},d=o.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(h=l),u.left<(o._helper?l.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-l.left:o.position.left-h.left),c&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=a.helper?l.left:0),u.top<(o._helper?l.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-l.top:o.position.top),c&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?l.top:0),r=o.containerElement.get(0)===o.element.parent().get(0),s=/relative|absolute/.test(o.containerElement.css("position")),r&&s?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),n=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-h.left:o.offset.left-l.left)),i=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-h.top:o.offset.top-l.top)),n+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-n,c&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),i+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-i,c&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),n=e.options,i=e.containerOffset,r=e.containerPosition,s=e.containerElement,o=t(e.helper),a=o.offset(),l=o.outerWidth()-e.sizeDiff.width,u=o.outerHeight()-e.sizeDiff.height;e._helper&&!n.animate&&/relative/.test(s.css("position"))&&t(this).css({left:a.left-r.left-i.left,width:l,height:u}),e._helper&&!n.animate&&/static/.test(s.css("position"))&&t(this).css({left:a.left-r.left-i.left,width:l,height:u})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),n=e.options;t(n.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseInt(e.width(),10),height:parseInt(e.height(),10),left:parseInt(e.css("left"),10),top:parseInt(e.css("top"),10)})})},resize:function(e,n){var i=t(this).resizable("instance"),r=i.options,s=i.originalSize,o=i.originalPosition,a={height:i.size.height-s.height||0,width:i.size.width-s.width||0,top:i.position.top-o.top||0,left:i.position.left-o.left||0};t(r.alsoResize).each(function(){var e=t(this),i=t(this).data("ui-resizable-alsoresize"),r={},s=e.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(s,function(t,e){var n=(i[e]||0)+(a[e]||0);n&&n>=0&&(r[e]=n||null)}),e.css(r)})},stop:function(){t(this).removeData("resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),n=e.options,i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof n.ghost?n.ghost:""),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,n=t(this).resizable("instance"),i=n.options,r=n.size,s=n.originalSize,o=n.originalPosition,a=n.axis,l="number"==typeof i.grid?[i.grid,i.grid]:i.grid,u=l[0]||1,c=l[1]||1,h=Math.round((r.width-s.width)/u)*u,d=Math.round((r.height-s.height)/c)*c,p=s.width+h,f=s.height+d,m=i.maxWidth&&i.maxWidth<p,g=i.maxHeight&&i.maxHeight<f,v=i.minWidth&&i.minWidth>p,b=i.minHeight&&i.minHeight>f;i.grid=l,v&&(p+=u),b&&(f+=c),m&&(p-=u),g&&(f-=c),/^(se|s|e)$/.test(a)?(n.size.width=p,n.size.height=f):/^(ne)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.top=o.top-d):/^(sw)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.left=o.left-h):((0>=f-c||0>=p-u)&&(e=n._getPaddingPlusBorderDimensions(this)),f-c>0?(n.size.height=f,n.position.top=o.top-d):(f=c-e.height,n.size.height=f,n.position.top=o.top+s.height-f),p-u>0?(n.size.width=p,n.position.left=o.left-h):(p=u-e.width,n.size.width=p,n.position.left=o.left+s.width-p))}});t.ui.resizable,t.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var n=t(this).css(e).offset().top;0>n&&t(this).css("top",e.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:t.noop,enable:t.noop,close:function(e){var n,i=this;if(this._isOpen&&this._trigger("beforeClose",e)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{n=this.document[0].activeElement,n&&"body"!==n.nodeName.toLowerCase()&&t(n).blur()}catch(r){}this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,n){var i=!1,r=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),s=Math.max.apply(null,r);return s>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),i=!0),i&&!n&&this._trigger("focus",e),i},open:function(){var e=this;return this._isOpen?void(this._moveToTop()&&this._focusTabbable()):(this._isOpen=!0,this.opener=t(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),void this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).focus()},_keepFocus:function(e){function n(){var e=this.document[0].activeElement,n=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);n||this._focusTabbable()}e.preventDefault(),n.call(this),this._delay(n)},_createWrapper:function(){this.uiDialog=t("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),void this.close(e);if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var n=this.uiDialog.find(":tabbable"),i=n.filter(":first"),r=n.filter(":last");e.target!==r[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==i[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){r.focus()}),e.preventDefault()):(this._delay(function(){i.focus()}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(e),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title||t.html("&#160;"),t.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var e=this,n=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(n)||t.isArray(n)&&!n.length?void this.uiDialog.removeClass("ui-dialog-buttons"):(t.each(n,function(n,i){var r,s;i=t.isFunction(i)?{click:i,text:n}:i,i=t.extend({type:"button"},i),r=i.click,i.click=function(){r.apply(e.element[0],arguments)},s={icons:i.icons,text:i.showText},delete i.icons,delete i.showText,t("<button></button>",i).button(s).appendTo(e.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),void this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var n=this,i=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(i,r){t(this).addClass("ui-dialog-dragging"),n._blockFrames(),n._trigger("dragStart",i,e(r))},drag:function(t,i){n._trigger("drag",t,e(i))},stop:function(r,s){var o=s.offset.left-n.document.scrollLeft(),a=s.offset.top-n.document.scrollTop();i.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" top"+(a>=0?"+":"")+a,of:n.window},t(this).removeClass("ui-dialog-dragging"),n._unblockFrames(),n._trigger("dragStop",r,e(s))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var n=this,i=this.options,r=i.resizable,s=this.uiDialog.css("position"),o="string"==typeof r?r:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(i,r){t(this).addClass("ui-dialog-resizing"),n._blockFrames(),n._trigger("resizeStart",i,e(r))},resize:function(t,i){n._trigger("resize",t,e(i))},stop:function(r,s){var o=n.uiDialog.offset(),a=o.left-n.document.scrollLeft(),l=o.top-n.document.scrollTop();i.height=n.uiDialog.height(),i.width=n.uiDialog.width(),i.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" top"+(l>=0?"+":"")+l,of:n.window},t(this).removeClass("ui-dialog-resizing"),n._unblockFrames(),n._trigger("resizeStop",r,e(s))}}).css("position",s)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),n=t.inArray(this,e);-1!==n&&e.splice(n,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var n=this,i=!1,r={};t.each(e,function(t,e){n._setOption(t,e),t in n.sizeRelatedOptions&&(i=!0),t in n.resizableRelatedOptions&&(r[t]=e)}),i&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",r)},_setOption:function(t,e){var n,i,r=this.uiDialog;"dialogClass"===t&&r.removeClass(this.options.dialogClass).addClass(e),"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:""+e}),"draggable"===t&&(n=r.is(":data(ui-draggable)"),n&&!e&&r.draggable("destroy"),!n&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&(i=r.is(":data(ui-resizable)"),i&&!e&&r.resizable("destroy"),i&&"string"==typeof e&&r.resizable("option","handles",e),i||e===!1||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,n,i=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),e=Math.max(0,i.minHeight-t),n="number"==typeof i.maxHeight?Math.max(0,i.maxHeight-t):"none","auto"===i.height?this.element.css({minHeight:e,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,i.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}});t.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,n=this.options,i=n.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(i)?i:function(t){return t.is(i)},this.proportions=function(){return arguments.length?void(e=arguments[0]):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(n.scope),n.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;e<t.length;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(e,n){if("accept"===e)this.accept=t.isFunction(n)?n:function(t){return t.is(n)};else if("scope"===e){var i=t.ui.ddmanager.droppables[this.options.scope];this._splice(i),this._addToManager(n)}this._super(e,n)},_activate:function(e){var n=t.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),n&&this._trigger("activate",e,this.ui(n))},_deactivate:function(e){var n=t.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),n&&this._trigger("deactivate",e,this.ui(n))},_over:function(e){var n=t.ui.ddmanager.current;n&&(n.currentItem||n.element)[0]!==this.element[0]&&this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",e,this.ui(n)))},_out:function(e){var n=t.ui.ddmanager.current;n&&(n.currentItem||n.element)[0]!==this.element[0]&&this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",e,this.ui(n)))},_drop:function(e,n){var i=n||t.ui.ddmanager.current,r=!1;return i&&(i.currentItem||i.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var n=t(this).droppable("instance");return n.options.greedy&&!n.options.disabled&&n.options.scope===i.options.scope&&n.accept.call(n.element[0],i.currentItem||i.element)&&t.ui.intersect(i,t.extend(n,{offset:n.element.offset()}),n.options.tolerance,e)?(r=!0,!1):void 0}),r?!1:this.accept.call(this.element[0],i.currentItem||i.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",e,this.ui(i)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}}}),t.ui.intersect=function(){function t(t,e,n){return t>=e&&e+n>t}return function(e,n,i,r){if(!n.offset)return!1;var s=(e.positionAbs||e.position.absolute).left+e.margins.left,o=(e.positionAbs||e.position.absolute).top+e.margins.top,a=s+e.helperProportions.width,l=o+e.helperProportions.height,u=n.offset.left,c=n.offset.top,h=u+n.proportions().width,d=c+n.proportions().height;switch(i){case"fit":return s>=u&&h>=a&&o>=c&&d>=l;case"intersect":return u<s+e.helperProportions.width/2&&a-e.helperProportions.width/2<h&&c<o+e.helperProportions.height/2&&l-e.helperProportions.height/2<d;case"pointer":return t(r.pageY,c,n.proportions().height)&&t(r.pageX,u,n.proportions().width);case"touch":return(o>=c&&d>=o||l>=c&&d>=l||c>o&&l>d)&&(s>=u&&h>=s||a>=u&&h>=a||u>s&&a>h);default:return!1}}}(),t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,n){
-var i,r,s=t.ui.ddmanager.droppables[e.options.scope]||[],o=n?n.type:null,a=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(i=0;i<s.length;i++)if(!(s[i].options.disabled||e&&!s[i].accept.call(s[i].element[0],e.currentItem||e.element))){for(r=0;r<a.length;r++)if(a[r]===s[i].element[0]){s[i].proportions().height=0;continue t}s[i].visible="none"!==s[i].element.css("display"),s[i].visible&&("mousedown"===o&&s[i]._activate.call(s[i],n),s[i].offset=s[i].element.offset(),s[i].proportions({width:s[i].element[0].offsetWidth,height:s[i].element[0].offsetHeight}))}},drop:function(e,n){var i=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&t.ui.intersect(e,this,this.options.tolerance,n)&&(i=this._drop.call(this,n)||i),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,n)))}),i},dragStart:function(e,n){e.element.parentsUntil("body").bind("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,n)})},drag:function(e,n){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,n),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var i,r,s,o=t.ui.intersect(e,this,this.options.tolerance,n),a=!o&&this.isover?"isout":o&&!this.isover?"isover":null;a&&(this.options.greedy&&(r=this.options.scope,s=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===r}),s.length&&(i=t(s[0]).droppable("instance"),i.greedyChild="isover"===a)),i&&"isover"===a&&(i.isover=!1,i.isout=!0,i._out.call(i,n)),this[a]=!0,this["isout"===a?"isover":"isout"]=!1,this["isover"===a?"_over":"_out"].call(this,n),i&&"isout"===a&&(i.isout=!1,i.isover=!0,i._over.call(i,n)))}})},dragStop:function(e,n){e.element.parentsUntil("body").unbind("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,n)}};var b=(t.ui.droppable,"ui-effects-"),y=t;t.effects={effect:{}},function(t,e){function n(t,e,n){var i=h[e.type]||{};return null==t?n||!e.def?null:e.def:(t=i.floor?~~t:parseFloat(t),isNaN(t)?e.def:i.mod?(t+i.mod)%i.mod:0>t?0:i.max<t?i.max:t)}function i(e){var n=u(),i=n._rgba=[];return e=e.toLowerCase(),f(l,function(t,r){var s,o=r.re.exec(e),a=o&&r.parse(o),l=r.space||"rgba";return a?(s=n[l](a),n[c[l].cache]=s[c[l].cache],i=n._rgba=s._rgba,!1):void 0}),i.length?("0,0,0,0"===i.join()&&t.extend(i,s.transparent),n):s[e]}function r(t,e,n){return n=(n+1)%1,1>6*n?t+(e-t)*n*6:1>2*n?e:2>3*n?t+(e-t)*(2/3-n)*6:t}var s,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",a=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],u=t.Color=function(e,n,i,r){return new t.Color.fn.parse(e,n,i,r)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},h={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=u.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),u.fn=t.extend(u.prototype,{parse:function(r,o,a,l){if(r===e)return this._rgba=[null,null,null,null],this;(r.jquery||r.nodeType)&&(r=t(r).css(o),o=e);var h=this,d=t.type(r),p=this._rgba=[];return o!==e&&(r=[r,o,a,l],d="array"),"string"===d?this.parse(i(r)||s._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=n(r[e.idx],e)}),this):"object"===d?(r instanceof u?f(c,function(t,e){r[e.cache]&&(h[e.cache]=r[e.cache].slice())}):f(c,function(e,i){var s=i.cache;f(i.props,function(t,e){if(!h[s]&&i.to){if("alpha"===t||null==r[t])return;h[s]=i.to(h._rgba)}h[s][e.idx]=n(r[t],e,!0)}),h[s]&&t.inArray(null,h[s].slice(0,3))<0&&(h[s][3]=1,i.from&&(h._rgba=i.from(h[s])))}),this):void 0},is:function(t){var e=u(t),n=!0,i=this;return f(c,function(t,r){var s,o=e[r.cache];return o&&(s=i[r.cache]||r.to&&r.to(i._rgba)||[],f(r.props,function(t,e){return null!=o[e.idx]?n=o[e.idx]===s[e.idx]:void 0})),n}),n},_space:function(){var t=[],e=this;return f(c,function(n,i){e[i.cache]&&t.push(n)}),t.pop()},transition:function(t,e){var i=u(t),r=i._space(),s=c[r],o=0===this.alpha()?u("transparent"):this,a=o[s.cache]||s.to(o._rgba),l=a.slice();return i=i[s.cache],f(s.props,function(t,r){var s=r.idx,o=a[s],u=i[s],c=h[r.type]||{};null!==u&&(null===o?l[s]=u:(c.mod&&(u-o>c.mod/2?o+=c.mod:o-u>c.mod/2&&(o-=c.mod)),l[s]=n((u-o)*e+o,r)))}),this[r](l)},blend:function(e){if(1===this._rgba[3])return this;var n=this._rgba.slice(),i=n.pop(),r=u(e)._rgba;return u(t.map(n,function(t,e){return(1-i)*r[e]+i*t}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===n[3]&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===n[3]&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),i=n.pop();return e&&n.push(~~(255*i)),"#"+t.map(n,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),u.fn.parse.prototype=u.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,n,i=t[0]/255,r=t[1]/255,s=t[2]/255,o=t[3],a=Math.max(i,r,s),l=Math.min(i,r,s),u=a-l,c=a+l,h=.5*c;return e=l===a?0:i===a?60*(r-s)/u+360:r===a?60*(s-i)/u+120:60*(i-r)/u+240,n=0===u?0:.5>=h?u/c:u/(2-c),[Math.round(e)%360,n,h,null==o?1:o]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,n=t[1],i=t[2],s=t[3],o=.5>=i?i*(1+n):i+n-i*n,a=2*i-o;return[Math.round(255*r(a,o,e+1/3)),Math.round(255*r(a,o,e)),Math.round(255*r(a,o,e-1/3)),s]},f(c,function(i,r){var s=r.props,o=r.cache,l=r.to,c=r.from;u.fn[i]=function(i){if(l&&!this[o]&&(this[o]=l(this._rgba)),i===e)return this[o].slice();var r,a=t.type(i),h="array"===a||"object"===a?i:arguments,d=this[o].slice();return f(s,function(t,e){var i=h["object"===a?t:e.idx];null==i&&(i=d[e.idx]),d[e.idx]=n(i,e)}),c?(r=u(c(d)),r[o]=d,r):u(d)},f(s,function(e,n){u.fn[e]||(u.fn[e]=function(r){var s,o=t.type(r),l="alpha"===e?this._hsla?"hsla":"rgba":i,u=this[l](),c=u[n.idx];return"undefined"===o?c:("function"===o&&(r=r.call(this,c),o=t.type(r)),null==r&&n.empty?this:("string"===o&&(s=a.exec(r),s&&(r=c+parseFloat(s[2])*("+"===s[1]?1:-1))),u[n.idx]=r,this[l](u)))})})}),u.hook=function(e){var n=e.split(" ");f(n,function(e,n){t.cssHooks[n]={set:function(e,r){var s,o,a="";if("transparent"!==r&&("string"!==t.type(r)||(s=i(r)))){if(r=u(s||r),!d.rgba&&1!==r._rgba[3]){for(o="backgroundColor"===n?e.parentNode:e;(""===a||"transparent"===a)&&o&&o.style;)try{a=t.css(o,"backgroundColor"),o=o.parentNode}catch(l){}r=r.blend(a&&"transparent"!==a?a:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=u(e.elem,n),e.end=u(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}})},u.hook(o),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(n,i){e["border"+i+"Color"]=t}),e}},s=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(y),function(){function e(e){var n,i,r=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,s={};if(r&&r.length&&r[0]&&r[r[0]])for(i=r.length;i--;)n=r[i],"string"==typeof r[n]&&(s[t.camelCase(n)]=r[n]);else for(n in r)"string"==typeof r[n]&&(s[n]=r[n]);return s}function n(e,n){var i,s,o={};for(i in n)s=n[i],e[i]!==s&&(r[i]||(t.fx.step[i]||!isNaN(parseFloat(s)))&&(o[i]=s));return o}var i=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,n){t.fx.step[n]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(y.style(t.elem,n,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(r,s,o,a){var l=t.speed(s,o,a);return this.queue(function(){var s,o=t(this),a=o.attr("class")||"",u=l.children?o.find("*").addBack():o;u=u.map(function(){var n=t(this);return{el:n,start:e(this)}}),s=function(){t.each(i,function(t,e){r[e]&&o[e+"Class"](r[e])})},s(),u=u.map(function(){return this.end=e(this.el[0]),this.diff=n(this.start,this.end),this}),o.attr("class",a),u=u.map(function(){var e=this,n=t.Deferred(),i=t.extend({},l,{queue:!1,complete:function(){n.resolve(e)}});return this.el.animate(this.diff,i),n.promise()}),t.when.apply(t,u.get()).done(function(){s(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(o[0])})})},t.fn.extend({addClass:function(e){return function(n,i,r,s){return i?t.effects.animateClass.call(this,{add:n},i,r,s):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(n,i,r,s){return arguments.length>1?t.effects.animateClass.call(this,{remove:n},i,r,s):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(n,i,r,s,o){return"boolean"==typeof i||void 0===i?r?t.effects.animateClass.call(this,i?{add:n}:{remove:n},r,s,o):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:n},i,r,s)}}(t.fn.toggleClass),switchClass:function(e,n,i,r,s){return t.effects.animateClass.call(this,{add:n,remove:e},i,r,s)}})}(),function(){function e(e,n,i,r){return t.isPlainObject(e)&&(n=e,e=e.effect),e={effect:e},null==n&&(n={}),t.isFunction(n)&&(r=n,i=null,n={}),("number"==typeof n||t.fx.speeds[n])&&(r=i,i=n,n={}),t.isFunction(i)&&(r=i,i=null),n&&t.extend(e,n),i=i||n.duration,e.duration=t.fx.off?0:"number"==typeof i?i:i in t.fx.speeds?t.fx.speeds[i]:t.fx.speeds._default,e.complete=r||n.complete,e}function n(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}t.extend(t.effects,{version:"1.11.4",save:function(t,e){for(var n=0;n<e.length;n++)null!==e[n]&&t.data(b+e[n],t[0].style[e[n]])},restore:function(t,e){var n,i;for(i=0;i<e.length;i++)null!==e[i]&&(n=t.data(b+e[i]),void 0===n&&(n=""),t.css(e[i],n))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var n,i;switch(t[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=t[0]/e.height}switch(t[1]){case"left":i=0;break;case"center":i=.5;break;case"right":i=1;break;default:i=t[1]/e.width}return{x:i,y:n}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var n={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},i=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),r={width:e.width(),height:e.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return e.wrap(i),(e[0]===s||t.contains(e[0],s))&&t(s).focus(),i=e.parent(),"static"===e.css("position")?(i.css({position:"relative"}),e.css({position:"relative"})):(t.extend(n,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,i){n[i]=e.css(i),isNaN(parseInt(n[i],10))&&(n[i]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(r),i.css(n).show()},removeWrapper:function(e){var n=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===n||t.contains(e[0],n))&&t(n).focus()),e},setTransition:function(e,n,i,r){return r=r||{},t.each(n,function(t,n){var s=e.cssUnit(n);s[0]>0&&(r[n]=s[0]*i+s[1])}),r}}),t.fn.extend({effect:function(){function n(e){function n(){t.isFunction(s)&&s.call(r[0]),t.isFunction(e)&&e()}var r=t(this),s=i.complete,a=i.mode;(r.is(":hidden")?"hide"===a:"show"===a)?(r[a](),n()):o.call(r[0],i,n)}var i=e.apply(this,arguments),r=i.mode,s=i.queue,o=t.effects.effect[i.effect];return t.fx.off||!o?r?this[r](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):s===!1?this.each(n):this.queue(s||"fx",n)},show:function(t){return function(i){if(n(i))return t.apply(this,arguments);var r=e.apply(this,arguments);return r.mode="show",this.effect.call(this,r)}}(t.fn.show),hide:function(t){return function(i){if(n(i))return t.apply(this,arguments);var r=e.apply(this,arguments);return r.mode="hide",this.effect.call(this,r)}}(t.fn.hide),toggle:function(t){return function(i){if(n(i)||"boolean"==typeof i)return t.apply(this,arguments);var r=e.apply(this,arguments);return r.mode="toggle",this.effect.call(this,r)}}(t.fn.toggle),cssUnit:function(e){var n=this.css(e),i=[];return t.each(["em","px","%","pt"],function(t,e){n.indexOf(e)>0&&(i=[parseFloat(n),e])}),i}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,n){e[n]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,n=4;t<((e=Math.pow(2,--n))-1)/11;);return 1/Math.pow(4,3-n)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,n){t.easing["easeIn"+e]=n,t.easing["easeOut"+e]=function(t){return 1-n(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?n(2*t)/2:1-n(-2*t+2)/2}})}();t.effects,t.effects.effect.blind=function(e,n){var i,r,s,o=t(this),a=/up|down|vertical/,l=/up|left|vertical|horizontal/,u=["position","top","bottom","left","right","height","width"],c=t.effects.setMode(o,e.mode||"hide"),h=e.direction||"up",d=a.test(h),p=d?"height":"width",f=d?"top":"left",m=l.test(h),g={},v="show"===c;o.parent().is(".ui-effects-wrapper")?t.effects.save(o.parent(),u):t.effects.save(o,u),o.show(),i=t.effects.createWrapper(o).css({overflow:"hidden"}),r=i[p](),s=parseFloat(i.css(f))||0,g[p]=v?r:0,m||(o.css(d?"bottom":"right",0).css(d?"top":"left","auto").css({position:"absolute"}),g[f]=v?s:r+s),v&&(i.css(p,0),m||i.css(f,s+r)),i.animate(g,{duration:e.duration,easing:e.easing,queue:!1,complete:function(){"hide"===c&&o.hide(),t.effects.restore(o,u),t.effects.removeWrapper(o),n()}})},t.effects.effect.bounce=function(e,n){var i,r,s,o=t(this),a=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"effect"),u="hide"===l,c="show"===l,h=e.direction||"up",d=e.distance,p=e.times||5,f=2*p+(c||u?1:0),m=e.duration/f,g=e.easing,v="up"===h||"down"===h?"top":"left",b="up"===h||"left"===h,y=o.queue(),$=y.length;for((c||u)&&a.push("opacity"),t.effects.save(o,a),o.show(),t.effects.createWrapper(o),d||(d=o["top"===v?"outerHeight":"outerWidth"]()/3),c&&(s={opacity:1},s[v]=0,o.css("opacity",0).css(v,b?2*-d:2*d).animate(s,m,g)),u&&(d/=Math.pow(2,p-1)),s={},s[v]=0,i=0;p>i;i++)r={},r[v]=(b?"-=":"+=")+d,o.animate(r,m,g).animate(s,m,g),d=u?2*d:d/2;u&&(r={opacity:0},r[v]=(b?"-=":"+=")+d,o.animate(r,m,g)),o.queue(function(){u&&o.hide(),t.effects.restore(o,a),t.effects.removeWrapper(o),n()}),$>1&&y.splice.apply(y,[1,0].concat(y.splice($,f+1))),o.dequeue()},t.effects.effect.clip=function(e,n){var i,r,s,o=t(this),a=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"hide"),u="show"===l,c=e.direction||"vertical",h="vertical"===c,d=h?"height":"width",p=h?"top":"left",f={};t.effects.save(o,a),o.show(),i=t.effects.createWrapper(o).css({overflow:"hidden"}),r="IMG"===o[0].tagName?i:o,s=r[d](),u&&(r.css(d,0),r.css(p,s/2)),f[d]=u?s:0,f[p]=u?0:s/2,r.animate(f,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){u||o.hide(),t.effects.restore(o,a),t.effects.removeWrapper(o),n()}})},t.effects.effect.drop=function(e,n){var i,r=t(this),s=["position","top","bottom","left","right","opacity","height","width"],o=t.effects.setMode(r,e.mode||"hide"),a="show"===o,l=e.direction||"left",u="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l?"pos":"neg",h={opacity:a?1:0};t.effects.save(r,s),r.show(),t.effects.createWrapper(r),i=e.distance||r["top"===u?"outerHeight":"outerWidth"](!0)/2,a&&r.css("opacity",0).css(u,"pos"===c?-i:i),h[u]=(a?"pos"===c?"+=":"-=":"pos"===c?"-=":"+=")+i,r.animate(h,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&r.hide(),t.effects.restore(r,s),t.effects.removeWrapper(r),n()}})},t.effects.effect.explode=function(e,n){function i(){y.push(this),y.length===h*d&&r()}function r(){p.css({visibility:"visible"}),t(y).remove(),m||p.hide(),n()}var s,o,a,l,u,c,h=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=h,p=t(this),f=t.effects.setMode(p,e.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/d),b=Math.ceil(p.outerHeight()/h),y=[];for(s=0;h>s;s++)for(l=g.top+s*b,c=s-(h-1)/2,o=0;d>o;o++)a=g.left+o*v,u=o-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-s*b}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:b,left:a+(m?u*v:0),top:l+(m?c*b:0),opacity:m?0:1}).animate({left:a+(m?0:u*v),top:l+(m?0:c*b),opacity:m?1:0},e.duration||500,e.easing,i)},t.effects.effect.fade=function(e,n){var i=t(this),r=t.effects.setMode(i,e.mode||"toggle");i.animate({opacity:r},{queue:!1,duration:e.duration,easing:e.easing,complete:n})},t.effects.effect.fold=function(e,n){var i,r,s=t(this),o=["position","top","bottom","left","right","height","width"],a=t.effects.setMode(s,e.mode||"hide"),l="show"===a,u="hide"===a,c=e.size||15,h=/([0-9]+)%/.exec(c),d=!!e.horizFirst,p=l!==d,f=p?["width","height"]:["height","width"],m=e.duration/2,g={},v={};t.effects.save(s,o),s.show(),i=t.effects.createWrapper(s).css({overflow:"hidden"}),r=p?[i.width(),i.height()]:[i.height(),i.width()],h&&(c=parseInt(h[1],10)/100*r[u?0:1]),l&&i.css(d?{height:0,width:c}:{height:c,width:0}),g[f[0]]=l?r[0]:c,v[f[1]]=l?r[1]:0,i.animate(g,m,e.easing).animate(v,m,e.easing,function(){u&&s.hide(),t.effects.restore(s,o),t.effects.removeWrapper(s),n()})},t.effects.effect.highlight=function(e,n){var i=t(this),r=["backgroundImage","backgroundColor","opacity"],s=t.effects.setMode(i,e.mode||"show"),o={backgroundColor:i.css("backgroundColor")};"hide"===s&&(o.opacity=0),t.effects.save(i,r),i.show().css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(o,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===s&&i.hide(),t.effects.restore(i,r),n()}})},t.effects.effect.size=function(e,n){var i,r,s,o=t(this),a=["position","top","bottom","left","right","width","height","overflow","opacity"],l=["position","top","bottom","left","right","overflow","opacity"],u=["width","height","overflow"],c=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],d=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=t.effects.setMode(o,e.mode||"effect"),f=e.restore||"effect"!==p,m=e.scale||"both",g=e.origin||["middle","center"],v=o.css("position"),b=f?a:l,y={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),i={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===e.mode&&"show"===p?(o.from=e.to||y,o.to=e.from||i):(o.from=e.from||("show"===p?y:i),o.to=e.to||("hide"===p?y:i)),s={from:{y:o.from.height/i.height,x:o.from.width/i.width},to:{y:o.to.height/i.height,x:o.to.width/i.width}},("box"===m||"both"===m)&&(s.from.y!==s.to.y&&(b=b.concat(h),o.from=t.effects.setTransition(o,h,s.from.y,o.from),o.to=t.effects.setTransition(o,h,s.to.y,o.to)),s.from.x!==s.to.x&&(b=b.concat(d),o.from=t.effects.setTransition(o,d,s.from.x,o.from),o.to=t.effects.setTransition(o,d,s.to.x,o.to))),("content"===m||"both"===m)&&s.from.y!==s.to.y&&(b=b.concat(c).concat(u),o.from=t.effects.setTransition(o,c,s.from.y,o.from),o.to=t.effects.setTransition(o,c,s.to.y,o.to)),t.effects.save(o,b),o.show(),t.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(r=t.effects.getBaseline(g,i),o.from.top=(i.outerHeight-o.outerHeight())*r.y,o.from.left=(i.outerWidth-o.outerWidth())*r.x,o.to.top=(i.outerHeight-o.to.outerHeight)*r.y,o.to.left=(i.outerWidth-o.to.outerWidth)*r.x),o.css(o.from),("content"===m||"both"===m)&&(h=h.concat(["marginTop","marginBottom"]).concat(c),d=d.concat(["marginLeft","marginRight"]),u=a.concat(h).concat(d),o.find("*[width]").each(function(){var n=t(this),i={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};f&&t.effects.save(n,u),n.from={height:i.height*s.from.y,width:i.width*s.from.x,outerHeight:i.outerHeight*s.from.y,outerWidth:i.outerWidth*s.from.x},n.to={height:i.height*s.to.y,width:i.width*s.to.x,outerHeight:i.height*s.to.y,outerWidth:i.width*s.to.x},s.from.y!==s.to.y&&(n.from=t.effects.setTransition(n,h,s.from.y,n.from),n.to=t.effects.setTransition(n,h,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=t.effects.setTransition(n,d,s.from.x,n.from),n.to=t.effects.setTransition(n,d,s.to.x,n.to)),n.css(n.from),n.animate(n.to,e.duration,e.easing,function(){f&&t.effects.restore(n,u)})})),o.animate(o.to,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),t.effects.restore(o,b),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):t.each(["top","left"],function(t,e){o.css(e,function(e,n){var i=parseInt(n,10),r=t?o.to.left:o.to.top;return"auto"===n?r+"px":i+r+"px"})})),t.effects.removeWrapper(o),n()}})},t.effects.effect.scale=function(e,n){var i=t(this),r=t.extend(!0,{},e),s=t.effects.setMode(i,e.mode||"effect"),o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"hide"===s?0:100),a=e.direction||"both",l=e.origin,u={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()},c={y:"horizontal"!==a?o/100:1,x:"vertical"!==a?o/100:1};r.effect="size",r.queue=!1,r.complete=n,"effect"!==s&&(r.origin=l||["middle","center"],r.restore=!0),r.from=e.from||("show"===s?{height:0,width:0,outerHeight:0,outerWidth:0}:u),r.to={height:u.height*c.y,width:u.width*c.x,outerHeight:u.outerHeight*c.y,outerWidth:u.outerWidth*c.x},r.fade&&("show"===s&&(r.from.opacity=0,r.to.opacity=1),"hide"===s&&(r.from.opacity=1,r.to.opacity=0)),i.effect(r)},t.effects.effect.puff=function(e,n){var i=t(this),r=t.effects.setMode(i,e.mode||"hide"),s="hide"===r,o=parseInt(e.percent,10)||150,a=o/100,l={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};t.extend(e,{effect:"scale",queue:!1,fade:!0,mode:r,complete:n,percent:s?o:100,from:s?l:{height:l.height*a,width:l.width*a,outerHeight:l.outerHeight*a,outerWidth:l.outerWidth*a}}),i.effect(e)},t.effects.effect.pulsate=function(e,n){var i,r=t(this),s=t.effects.setMode(r,e.mode||"show"),o="show"===s,a="hide"===s,l=o||"hide"===s,u=2*(e.times||5)+(l?1:0),c=e.duration/u,h=0,d=r.queue(),p=d.length;for((o||!r.is(":visible"))&&(r.css("opacity",0).show(),h=1),i=1;u>i;i++)r.animate({opacity:h},c,e.easing),h=1-h;r.animate({opacity:h},c,e.easing),r.queue(function(){a&&r.hide(),n()}),p>1&&d.splice.apply(d,[1,0].concat(d.splice(p,u+1))),r.dequeue()},t.effects.effect.shake=function(e,n){var i,r=t(this),s=["position","top","bottom","left","right","height","width"],o=t.effects.setMode(r,e.mode||"effect"),a=e.direction||"left",l=e.distance||20,u=e.times||3,c=2*u+1,h=Math.round(e.duration/c),d="up"===a||"down"===a?"top":"left",p="up"===a||"left"===a,f={},m={},g={},v=r.queue(),b=v.length;for(t.effects.save(r,s),r.show(),t.effects.createWrapper(r),f[d]=(p?"-=":"+=")+l,m[d]=(p?"+=":"-=")+2*l,g[d]=(p?"-=":"+=")+2*l,r.animate(f,h,e.easing),i=1;u>i;i++)r.animate(m,h,e.easing).animate(g,h,e.easing);r.animate(m,h,e.easing).animate(f,h/2,e.easing).queue(function(){"hide"===o&&r.hide(),t.effects.restore(r,s),t.effects.removeWrapper(r),n()}),b>1&&v.splice.apply(v,[1,0].concat(v.splice(b,c+1))),r.dequeue()},t.effects.effect.slide=function(e,n){var i,r=t(this),s=["position","top","bottom","left","right","width","height"],o=t.effects.setMode(r,e.mode||"show"),a="show"===o,l=e.direction||"left",u="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l,h={};t.effects.save(r,s),r.show(),i=e.distance||r["top"===u?"outerHeight":"outerWidth"](!0),t.effects.createWrapper(r).css({overflow:"hidden"}),a&&r.css(u,c?isNaN(i)?"-"+i:-i:i),h[u]=(a?c?"+=":"-=":c?"-=":"+=")+i,r.animate(h,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&r.hide(),t.effects.restore(r,s),t.effects.removeWrapper(r),n()}})},t.effects.effect.transfer=function(e,n){var i=t(this),r=t(e.to),s="fixed"===r.css("position"),o=t("body"),a=s?o.scrollTop():0,l=s?o.scrollLeft():0,u=r.offset(),c={top:u.top-a,left:u.left-l,height:r.innerHeight(),width:r.innerWidth()},h=i.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(e.className).css({top:h.top-a,left:h.left-l,height:i.innerHeight(),width:i.innerWidth(),position:s?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),n()})},t.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=t("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),void this._refreshValue())},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this._super(t,e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,n=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(n.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e,n=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e=t(n.options.filter,n.element[0]),e.addClass("ui-selectee"),e.each(function(){var e=t(this),n=e.offset();t.data(this,"selectable-item",{element:this,$element:e,left:n.left,top:n.top,right:n.left+e.outerWidth(),bottom:n.top+e.outerHeight(),startselected:!1,selected:e.hasClass("ui-selected"),selecting:e.hasClass("ui-selecting"),unselecting:e.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=e.addClass("ui-selectee"),this._mouseInit(),this.helper=t("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(e){var n=this,i=this.options;this.opos=[e.pageX,e.pageY],this.options.disabled||(this.selectees=t(i.filter,this.element[0]),this._trigger("start",e),t(i.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),i.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var i=t.data(this,"selectable-item");i.startselected=!0,e.metaKey||e.ctrlKey||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,n._trigger("unselecting",e,{unselecting:i.element}))}),t(e.target).parents().addBack().each(function(){var i,r=t.data(this,"selectable-item");return r?(i=!e.metaKey&&!e.ctrlKey||!r.$element.hasClass("ui-selected"),r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",e,{selecting:r.element}):n._trigger("unselecting",e,{unselecting:r.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var n,i=this,r=this.options,s=this.opos[0],o=this.opos[1],a=e.pageX,l=e.pageY;return s>a&&(n=a,a=s,s=n),o>l&&(n=l,l=o,o=n),this.helper.css({left:s,top:o,width:a-s,height:l-o}),this.selectees.each(function(){var n=t.data(this,"selectable-item"),u=!1;n&&n.element!==i.element[0]&&("touch"===r.tolerance?u=!(n.left>a||n.right<s||n.top>l||n.bottom<o):"fit"===r.tolerance&&(u=n.left>s&&n.right<a&&n.top>o&&n.bottom<l),u?(n.selected&&(n.$element.removeClass("ui-selected"),n.selected=!1),n.unselecting&&(n.$element.removeClass("ui-unselecting"),n.unselecting=!1),n.selecting||(n.$element.addClass("ui-selecting"),n.selecting=!0,i._trigger("selecting",e,{selecting:n.element}))):(n.selecting&&((e.metaKey||e.ctrlKey)&&n.startselected?(n.$element.removeClass("ui-selecting"),n.selecting=!1,n.$element.addClass("ui-selected"),n.selected=!0):(n.$element.removeClass("ui-selecting"),n.selecting=!1,n.startselected&&(n.$element.addClass("ui-unselecting"),n.unselecting=!0),i._trigger("unselecting",e,{unselecting:n.element}))),n.selected&&(e.metaKey||e.ctrlKey||n.startselected||(n.$element.removeClass("ui-selected"),n.selected=!1,n.$element.addClass("ui-unselecting"),n.unselecting=!0,i._trigger("unselecting",e,{unselecting:n.element})))))}),!1}},_mouseStop:function(e){var n=this;return this.dragged=!1,
-t(".ui-unselecting",this.element[0]).each(function(){var i=t.data(this,"selectable-item");i.$element.removeClass("ui-unselecting"),i.unselecting=!1,i.startselected=!1,n._trigger("unselected",e,{unselected:i.element})}),t(".ui-selecting",this.element[0]).each(function(){var i=t.data(this,"selectable-item");i.$element.removeClass("ui-selecting").addClass("ui-selected"),i.selecting=!1,i.selected=!0,i.startselected=!0,n._trigger("selected",e,{selected:i.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var e=this;this.label=t("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),t("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=t("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){e.menuItems||e._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(t,n){t.preventDefault(),e._setSelection(),e._select(n.item.data("ui-selectmenu-item"),t)},focus:function(t,n){var i=n.item.data("ui-selectmenu-item");null!=e.focusIndex&&i.index!==e.focusIndex&&(e._trigger("focus",t,{item:i}),e.isOpen||e._select(i,t)),e.focusIndex=i.index,e.button.attr("aria-activedescendant",e.menuItems.eq(i.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var t,e=this.element.find("option");e.length&&(this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(e,n){var i=this,r="";t.each(n,function(n,s){s.optgroup!==r&&(t("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(s.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:s.optgroup}).appendTo(e),r=s.optgroup),i._renderItemData(e,s)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,n){var i=t("<li>");return n.disabled&&i.addClass("ui-state-disabled"),this._setText(i,n.label),i.appendTo(e)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var n,i,r=".ui-menu-item";this.isOpen?n=this.menuItems.eq(this.focusIndex):(n=this.menuItems.eq(this.element[0].selectedIndex),r+=":not(.ui-state-disabled)"),i="first"===t||"last"===t?n["first"===t?"prevAll":"nextAll"](r).eq(-1):n[t+"All"](r).eq(0),i.length&&this.menuInstance.focus(e,i)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var n=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),n=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),n=!1}n&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex);e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var n=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this._setText(this.buttonText,t.label),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==n&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){"icons"===t&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(e.button),this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"disabled"===t&&(this.menuInstance.option("disabled",e),this.button.toggleClass("ui-state-disabled",e).attr("aria-disabled",e),this.element.prop("disabled",e),e?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===t&&this._resizeButton()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;t||(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(e){var n=[];e.each(function(e,i){var r=t(i),s=r.parent("optgroup");n.push({element:r,index:e,value:r.val(),label:r.text(),optgroup:s.attr("label")||"",disabled:s.prop("disabled")||r.prop("disabled")})}),this.items=n},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),t.widget("ui.slider",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,n,i=this.options,r=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),s="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(n=i.values&&i.values.length||1,r.length>n&&(r.slice(n).remove(),r=r.slice(0,n)),e=r.length;n>e;e++)o.push(s);this.handles=r.add(t(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options,n="";e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=t("<div></div>").appendTo(this.element),n="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(n+("min"===e.range||"max"===e.range?" ui-slider-range-"+e.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(e){var n,i,r,s,o,a,l,u,c=this,h=this.options;return h.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),n={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(n),r=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var n=Math.abs(i-c.values(e));(r>n||r===n&&(e===c._lastChangedValue||c.values(e)===h.min))&&(r=n,s=t(this),o=e)}),a=this._start(e,o),a===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),l=s.offset(),u=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=u?{left:0,top:0}:{left:e.pageX-l.left-s.width()/2,top:e.pageY-l.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,o,i),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},n=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,n),!1},_mouseStop:function(t){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,n,i,r,s;return"horizontal"===this.orientation?(e=this.elementSize.width,n=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,n=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),i=n/e,i>1&&(i=1),0>i&&(i=0),"vertical"===this.orientation&&(i=1-i),r=this._valueMax()-this._valueMin(),s=this._valueMin()+i*r,this._trimAlignValue(s)},_start:function(t,e){var n={handle:this.handles[e],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(e),n.values=this.values()),this._trigger("start",t,n)},_slide:function(t,e,n){var i,r,s;this.options.values&&this.options.values.length?(i=this.values(e?0:1),2===this.options.values.length&&this.options.range===!0&&(0===e&&n>i||1===e&&i>n)&&(n=i),n!==this.values(e)&&(r=this.values(),r[e]=n,s=this._trigger("slide",t,{handle:this.handles[e],value:n,values:r}),i=this.values(e?0:1),s!==!1&&this.values(e,n))):n!==this.value()&&(s=this._trigger("slide",t,{handle:this.handles[e],value:n}),s!==!1&&this.value(n))},_stop:function(t,e){var n={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(e),n.values=this.values()),this._trigger("stop",t,n)},_change:function(t,e){if(!this._keySliding&&!this._mouseSliding){var n={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(e),n.values=this.values()),this._lastChangedValue=e,this._trigger("change",t,n)}},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),void this._change(null,0)):this._value()},values:function(e,n){var i,r,s;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(n),this._refreshValue(),void this._change(null,e);if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(e):this.value();for(i=this.options.values,r=arguments[0],s=0;s<i.length;s+=1)i[s]=this._trimAlignValue(r[s]),this._change(null,s);this._refreshValue()},_setOption:function(e,n){var i,r=0;switch("range"===e&&this.options.range===!0&&("min"===n?(this.options.value=this._values(0),this.options.values=null):"max"===n&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(r=this.options.values.length),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!n),this._super(e,n),e){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===n?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),i=0;r>i;i+=1)this._change(null,i);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,n,i;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this.options.values&&this.options.values.length){for(n=this.options.values.slice(),i=0;i<n.length;i+=1)n[i]=this._trimAlignValue(n[i]);return n}return[]},_trimAlignValue:function(t){if(t<=this._valueMin())return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,n=(t-this._valueMin())%e,i=t-n;return 2*Math.abs(n)>=e&&(i+=n>0?e:-e),parseFloat(i.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),n=this.options.step,i=Math.floor(+(t-e).toFixed(this._precision())/n)*n;t=i+e,this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=t.toString(),n=e.indexOf(".");return-1===n?0:e.length-n-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var e,n,i,r,s,o=this.options.range,a=this.options,l=this,u=this._animateOff?!1:a.animate,c={};this.options.values&&this.options.values.length?this.handles.each(function(i){n=(l.values(i)-l._valueMin())/(l._valueMax()-l._valueMin())*100,c["horizontal"===l.orientation?"left":"bottom"]=n+"%",t(this).stop(1,1)[u?"animate":"css"](c,a.animate),l.options.range===!0&&("horizontal"===l.orientation?(0===i&&l.range.stop(1,1)[u?"animate":"css"]({left:n+"%"},a.animate),1===i&&l.range[u?"animate":"css"]({width:n-e+"%"},{queue:!1,duration:a.animate})):(0===i&&l.range.stop(1,1)[u?"animate":"css"]({bottom:n+"%"},a.animate),1===i&&l.range[u?"animate":"css"]({height:n-e+"%"},{queue:!1,duration:a.animate}))),e=n}):(i=this.value(),r=this._valueMin(),s=this._valueMax(),n=s!==r?(i-r)/(s-r)*100:0,c["horizontal"===this.orientation?"left":"bottom"]=n+"%",this.handle.stop(1,1)[u?"animate":"css"](c,a.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({width:n+"%"},a.animate),"max"===o&&"horizontal"===this.orientation&&this.range[u?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:a.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({height:n+"%"},a.animate),"max"===o&&"vertical"===this.orientation&&this.range[u?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:a.animate}))},_handleEvents:{keydown:function(e){var n,i,r,s,o=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,t(e.target).addClass("ui-state-active"),n=this._start(e,o),n===!1))return}switch(s=this.options.step,i=r=this.options.values&&this.options.values.length?this.values(o):this.value(),e.keyCode){case t.ui.keyCode.HOME:r=this._valueMin();break;case t.ui.keyCode.END:r=this._valueMax();break;case t.ui.keyCode.PAGE_UP:r=this._trimAlignValue(i+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:r=this._trimAlignValue(i-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(i===this._valueMax())return;r=this._trimAlignValue(i+s);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(i===this._valueMin())return;r=this._trimAlignValue(i-s)}this._slide(e,o,r)},keyup:function(e){var n=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,n),this._change(e,n),t(e.target).removeClass("ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,n){return t>=e&&e+n>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),t.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,n){var i=null,r=!1,s=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,s.widgetName+"-item")===s?(i=t(this),!1):void 0}),t.data(e.target,s.widgetName+"-item")===s&&(i=t(e.target)),i&&(!this.options.handle||n||(t(this.options.handle,i).find("*").addBack().each(function(){this===e.target&&(r=!0)}),r))?(this.currentItem=i,this._removeCurrentsFromItems(),!0):!1)},_mouseStart:function(e,n,i){var r,s,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(s=this.document.find("body"),this.storedCursor=s.css("cursor"),s.css("cursor",o.cursor),this.storedStylesheet=t("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(s)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(r=this.containers.length-1;r>=0;r--)this.containers[r]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var n,i,r,s,o=this.options,a=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop+o.scrollSpeed:e.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft+o.scrollSpeed:e.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(e.pageY-this.document.scrollTop()<o.scrollSensitivity?a=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<o.scrollSensitivity&&(a=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)),e.pageX-this.document.scrollLeft()<o.scrollSensitivity?a=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<o.scrollSensitivity&&(a=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed))),a!==!1&&t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),n=this.items.length-1;n>=0;n--)if(i=this.items[n],r=i.item[0],s=this._intersectsWithPointer(i),s&&i.instance===this.currentContainer&&r!==this.currentItem[0]&&this.placeholder[1===s?"next":"prev"]()[0]!==r&&!t.contains(this.placeholder[0],r)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],r):!0)){if(this.direction=1===s?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(i))break;this._rearrange(e,i),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,n){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var i=this,r=this.placeholder.offset(),s=this.options.axis,o={};s&&"x"!==s||(o.left=r.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),s&&"y"!==s||(o.top=r.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){i._clear(e)})}else this._clear(e,n);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var n=this._getItemsAsjQuery(e&&e.connected),i=[];return e=e||{},t(n).each(function(){var n=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);n&&i.push((e.key||n[1]+"[]")+"="+(e.key&&e.expression?n[1]:n[2]))}),!i.length&&e.key&&i.push(e.key+"="),i.join("&")},toArray:function(e){var n=this._getItemsAsjQuery(e&&e.connected),i=[];return e=e||{},n.each(function(){i.push(t(e.item||this).attr(e.attribute||"id")||"")}),i},_intersectsWith:function(t){var e=this.positionAbs.left,n=e+this.helperProportions.width,i=this.positionAbs.top,r=i+this.helperProportions.height,s=t.left,o=s+t.width,a=t.top,l=a+t.height,u=this.offset.click.top,c=this.offset.click.left,h="x"===this.options.axis||i+u>a&&l>i+u,d="y"===this.options.axis||e+c>s&&o>e+c,p=h&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:s<e+this.helperProportions.width/2&&n-this.helperProportions.width/2<o&&a<i+this.helperProportions.height/2&&r-this.helperProportions.height/2<l},_intersectsWithPointer:function(t){var e="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),i=e&&n,r=this._getDragVerticalDirection(),s=this._getDragHorizontalDirection();return i?this.floating?s&&"right"===s||"down"===r?2:1:r&&("down"===r?2:1):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),n=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),i=this._getDragVerticalDirection(),r=this._getDragHorizontalDirection();return this.floating&&r?"right"===r&&n||"left"===r&&!n:i&&("down"===i&&e||"up"===i&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function n(){a.push(this)}var i,r,s,o,a=[],l=[],u=this._connectWith();if(u&&e)for(i=u.length-1;i>=0;i--)for(s=t(u[i],this.document[0]),r=s.length-1;r>=0;r--)o=t.data(s[r],this.widgetFullName),o&&o!==this&&!o.options.disabled&&l.push([t.isFunction(o.options.items)?o.options.items.call(o.element):t(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(l.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=l.length-1;i>=0;i--)l[i][0].each(n);return t(a)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var n=0;n<e.length;n++)if(e[n]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var n,i,r,s,o,a,l,u,c=this.items,h=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(n=d.length-1;n>=0;n--)for(r=t(d[n],this.document[0]),i=r.length-1;i>=0;i--)s=t.data(r[i],this.widgetFullName),s&&s!==this&&!s.options.disabled&&(h.push([t.isFunction(s.options.items)?s.options.items.call(s.element[0],e,{item:this.currentItem}):t(s.options.items,s.element),s]),this.containers.push(s));for(n=h.length-1;n>=0;n--)for(o=h[n][1],a=h[n][0],i=0,u=a.length;u>i;i++)l=t(a[i]),l.data(this.widgetName+"-item",o),c.push({item:l,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var n,i,r,s;for(n=this.items.length-1;n>=0;n--)i=this.items[n],i.instance!==this.currentContainer&&this.currentContainer&&i.item[0]!==this.currentItem[0]||(r=this.options.toleranceElement?t(this.options.toleranceElement,i.item):i.item,e||(i.width=r.outerWidth(),i.height=r.outerHeight()),s=r.offset(),i.left=s.left,i.top=s.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(n=this.containers.length-1;n>=0;n--)s=this.containers[n].element.offset(),this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),
-this.containers[n].containerCache.height=this.containers[n].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var n,i=e.options;i.placeholder&&i.placeholder.constructor!==String||(n=i.placeholder,i.placeholder={element:function(){var i=e.currentItem[0].nodeName.toLowerCase(),r=t("<"+i+">",e.document[0]).addClass(n||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===i?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(r)):"tr"===i?e._createTrPlaceholder(e.currentItem,r):"img"===i&&r.attr("src",e.currentItem.attr("src")),n||r.css("visibility","hidden"),r},update:function(t,r){(!n||i.forcePlaceholderSize)&&(r.height()||r.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),r.width()||r.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(i.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),i.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,n){var i=this;e.children().each(function(){t("<td>&#160;</td>",i.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(n)})},_contactContainers:function(e){var n,i,r,s,o,a,l,u,c,h,d=null,p=null;for(n=this.containers.length-1;n>=0;n--)if(!t.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(d&&t.contains(this.containers[n].element[0],d.element[0]))continue;d=this.containers[n],p=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",e,this._uiHash(this)),this.containers[n].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(r=1e4,s=null,c=d.floating||this._isFloating(this.currentItem),o=c?"left":"top",a=c?"width":"height",h=c?"clientX":"clientY",i=this.items.length-1;i>=0;i--)t.contains(this.containers[p].element[0],this.items[i].item[0])&&this.items[i].item[0]!==this.currentItem[0]&&(l=this.items[i].item.offset()[o],u=!1,e[h]-l>this.items[i][a]/2&&(u=!0),Math.abs(e[h]-l)<r&&(r=Math.abs(e[h]-l),s=this.items[i],this.direction=u?"up":"down"));if(!s&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return void(this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1));s?this._rearrange(e,s,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var n=this.options,i=t.isFunction(n.helper)?t(n.helper.apply(this.element[0],[e,this.currentItem])):"clone"===n.helper?this.currentItem.clone():this.currentItem;return i.parents("body").length||t("parent"!==n.appendTo?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(i[0]),i[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!i[0].style.width||n.forceHelperSize)&&i.width(this.currentItem.width()),(!i[0].style.height||n.forceHelperSize)&&i.height(this.currentItem.height()),i},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,n,i,r=this.options;"parent"===r.containment&&(r.containment=this.helper[0].parentNode),("document"===r.containment||"window"===r.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===r.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===r.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(r.containment)||(e=t(r.containment)[0],n=t(r.containment).offset(),i="hidden"!==t(e).css("overflow"),this.containment=[n.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,n.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,n.left+(i?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,n.top+(i?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,n){n||(n=this.position);var i="absolute"===e?1:-1,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,s=/(html|body)/i.test(r[0].tagName);return{top:n.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():s?0:r.scrollTop())*i,left:n.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():s?0:r.scrollLeft())*i}},_generatePosition:function(e){var n,i,r=this.options,s=e.pageX,o=e.pageY,a="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(a[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(s=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(s=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),r.grid&&(n=this.originalPageY+Math.round((o-this.originalPageY)/r.grid[1])*r.grid[1],o=this.containment?n-this.offset.click.top>=this.containment[1]&&n-this.offset.click.top<=this.containment[3]?n:n-this.offset.click.top>=this.containment[1]?n-r.grid[1]:n+r.grid[1]:n,i=this.originalPageX+Math.round((s-this.originalPageX)/r.grid[0])*r.grid[0],s=this.containment?i-this.offset.click.left>=this.containment[0]&&i-this.offset.click.left<=this.containment[2]?i:i-this.offset.click.left>=this.containment[0]?i-r.grid[0]:i+r.grid[0]:i)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:a.scrollTop()),left:s-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:a.scrollLeft())}},_rearrange:function(t,e,n,i){n?n[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var r=this.counter;this._delay(function(){r===this.counter&&this.refreshPositions(!i)})},_clear:function(t,e){function n(t,e,n){return function(i){n._trigger(t,i,e._uiHash(e))}}this.reverting=!1;var i,r=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&r.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||r.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(r.push(function(t){this._trigger("remove",t,this._uiHash())}),r.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),r.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)e||r.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i<r.length;i++)r[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var n=e||this;return{helper:n.helper,placeholder:n.placeholder||t([]),position:n.position,originalPosition:n.originalPosition,offset:n.positionAbs,item:n.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e={},n=this.element;return t.each(["min","max","step"],function(t,i){var r=n.attr(i);void 0!==r&&r.length&&(e[i]=r)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(this._stop(),this._refresh(),void(this.previous!==this.element.val()&&this._trigger("change",t)))},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function n(){var t=this.element[0]===this.document[0].activeElement;t||(this.element.focus(),this.previous=i,this._delay(function(){this.previous=i}))}var i;i=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),e.preventDefault(),n.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,n.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:void this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var t=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=t.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*t.height())&&t.height()>0&&t.height(t.height()),this.options.disabled&&this.disable()},_keydown:function(e){var n=this.options,i=t.ui.keyCode;switch(e.keyCode){case i.UP:return this._repeat(null,1,e),!0;case i.DOWN:return this._repeat(null,-1,e),!0;case i.PAGE_UP:return this._repeat(null,n.page,e),!0;case i.PAGE_DOWN:return this._repeat(null,-n.page,e),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon "+this.options.icons.down+"'>&#9660;</span></a>"},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,n){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,n)},t),this._spin(e*this.options.step,n)},_spin:function(t,e){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:n})===!1||(this._value(n),this.counter++)},_increment:function(e){var n=this.options.incremental;return n?t.isFunction(n)?n(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=t.toString(),n=e.indexOf(".");return-1===n?0:e.length-n-1},_adjustValue:function(t){var e,n,i=this.options;return e=null!==i.min?i.min:0,n=t-e,n=Math.round(n/i.step)*i.step,t=e+n,t=parseFloat(t.toFixed(this._precision())),null!==i.max&&t>i.max?i.max:null!==i.min&&t<i.min?i.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){if("culture"===t||"numberFormat"===t){var n=this._parse(this.element.val());return this.options[t]=e,void this.element.val(this._format(n))}("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(e.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(e.down)),this._super(t,e),"disabled"===t&&(this.widget().toggleClass("ui-state-disabled",!!e),this.element.prop("disabled",!!e),this.buttons.button(e?"disable":"enable"))},_setOptions:l(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var n;""!==t&&(n=this._parse(t),null!==n&&(e||(n=this._adjustValue(n)),t=this._format(n))),this.element.val(t),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:l(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:l(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:l(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:l(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?void l(this._value).call(this,t):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var n,i;e=e.cloneNode(!1),n=e.href.replace(t,""),i=location.href.replace(t,"");try{n=decodeURIComponent(n)}catch(r){}try{i=decodeURIComponent(i)}catch(r){}return e.hash.length>1&&n===i}}(),_create:function(){var e=this,n=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible),this._processTabs(),n.active=this._initialActive(),t.isArray(n.disabled)&&(n.disabled=t.unique(n.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(n.active):t(),this._refresh(),this.active.length&&this.load(n.active)},_initialActive:function(){var e=this.options.active,n=this.options.collapsible,i=location.hash.substring(1);return null===e&&(i&&this.tabs.each(function(n,r){return t(r).attr("aria-controls")===i?(e=n,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=n?!1:0)),!n&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var n=t(this.document[0].activeElement).closest("li"),i=this.tabs.index(n),r=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:i++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:r=!1,i--;break;case t.ui.keyCode.END:i=this.anchors.length-1;break;case t.ui.keyCode.HOME:i=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),void this._activate(i);case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),void this._activate(i===this.options.active?!1:i);default:return}e.preventDefault(),clearTimeout(this.activating),i=this._focusNextTab(i,r),e.ctrlKey||e.metaKey||(n.attr("aria-selected","false"),this.tabs.eq(i).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",i)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.focus())},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,n){function i(){return e>r&&(e=0),0>e&&(e=r),e}for(var r=this.tabs.length-1;-1!==t.inArray(i(),this.options.disabled);)e=n?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).focus(),t},_setOption:function(t,e){return"active"===t?void this._activate(e):"disabled"===t?void this._setupDisabled(e):(this._super(t,e),"collapsible"===t&&(this.element.toggleClass("ui-tabs-collapsible",e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),void("heightStyle"===t&&this._setupHeightStyle(e)))},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,n=this.tablist.children(":has(a[href])");e.disabled=t.map(n.filter(".ui-state-disabled"),function(t){return n.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,n=this.tabs,i=this.anchors,r=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=t(),this.anchors.each(function(n,i){var r,s,o,a=t(i).uniqueId().attr("id"),l=t(i).closest("li"),u=l.attr("aria-controls");e._isLocal(i)?(r=i.hash,o=r.substring(1),s=e.element.find(e._sanitizeSelector(r))):(o=l.attr("aria-controls")||t({}).uniqueId()[0].id,r="#"+o,s=e.element.find(r),s.length||(s=e._createPanel(o),s.insertAfter(e.panels[n-1]||e.tablist)),s.attr("aria-live","polite")),s.length&&(e.panels=e.panels.add(s)),u&&l.data("ui-tabs-aria-controls",u),l.attr({"aria-controls":o,"aria-labelledby":a}),s.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),n&&(this._off(n.not(this.tabs)),this._off(i.not(this.anchors)),this._off(r.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(e){t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1);for(var n,i=0;n=this.tabs[i];i++)e===!0||-1!==t.inArray(i,e)?t(n).addClass("ui-state-disabled").attr("aria-disabled","true"):t(n).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=e},_setupEvents:function(e){var n={};e&&t.each(e.split(" "),function(t,e){n[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var n,i=this.element.parent();"fill"===e?(n=i.height(),n-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),i=e.css("position");"absolute"!==i&&"fixed"!==i&&(n-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){n-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,n-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(n=0,this.panels.each(function(){n=Math.max(n,t(this).height("").height())}).height(n))},_eventHandler:function(e){var n=this.options,i=this.active,r=t(e.currentTarget),s=r.closest("li"),o=s[0]===i[0],a=o&&n.collapsible,l=a?t():this._getPanelForTab(s),u=i.length?this._getPanelForTab(i):t(),c={oldTab:i,oldPanel:u,newTab:a?t():s,newPanel:l};e.preventDefault(),s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",e,c)===!1||(n.active=a?!1:this.tabs.index(s),this.active=o?t():s,this.xhr&&this.xhr.abort(),u.length||l.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),l.length&&this.load(this.tabs.index(s),e),this._toggle(e,c))},_toggle:function(e,n){function i(){s.running=!1,s._trigger("activate",e,n)}function r(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&s.options.show?s._show(o,s.options.show,i):(o.show(),i())}var s=this,o=n.newPanel,a=n.oldPanel;this.running=!0,a.length&&this.options.hide?this._hide(a,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),a.hide(),r()),a.attr("aria-hidden","true"),n.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&a.length?n.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),n.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var n,i=this._findActive(e);i[0]!==this.active[0]&&(i.length||(i=this.active),n=i.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+t+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var e=t(this),n=e.data("ui-tabs-aria-controls");n?e.attr("aria-controls",n).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var n=this.options.disabled;n!==!1&&(void 0===e?n=!1:(e=this._getIndex(e),n=t.isArray(n)?t.map(n,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,n){return n!==e?n:null})),this._setupDisabled(n))},disable:function(e){var n=this.options.disabled;if(n!==!0){if(void 0===e)n=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,n))return;n=t.isArray(n)?t.merge([e],n).sort():[e]}this._setupDisabled(n)}},load:function(e,n){e=this._getIndex(e);var i=this,r=this.tabs.eq(e),s=r.find(".ui-tabs-anchor"),o=this._getPanelForTab(r),a={tab:r,panel:o},l=function(t,e){"abort"===e&&i.panels.stop(!1,!0),r.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),t===i.xhr&&delete i.xhr};this._isLocal(s[0])||(this.xhr=t.ajax(this._ajaxSettings(s,n,a)),this.xhr&&"canceled"!==this.xhr.statusText&&(r.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.done(function(t,e,r){setTimeout(function(){o.html(t),i._trigger("load",n,a),l(r,e)},1)}).fail(function(t,e){setTimeout(function(){l(t,e)},1)})))},_ajaxSettings:function(e,n,i){var r=this;return{url:e.attr("href"),beforeSend:function(e,s){return r._trigger("beforeLoad",n,t.extend({jqXHR:e,ajaxSettings:s},i))}}},_getPanelForTab:function(e){var n=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),t.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(e,n){var i=(e.attr("aria-describedby")||"").split(/\s+/);i.push(n),e.data("ui-tooltip-id",n).attr("aria-describedby",t.trim(i.join(" ")))},_removeDescribedBy:function(e){var n=e.data("ui-tooltip-id"),i=(e.attr("aria-describedby")||"").split(/\s+/),r=t.inArray(n,i);-1!==r&&i.splice(r,1),e.removeData("ui-tooltip-id"),i=t.trim(i.join(" ")),i?e.attr("aria-describedby",i):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(e,n){var i=this;return"disabled"===e?(this[n?"_disable":"_enable"](),void(this.options[e]=n)):(this._super(e,n),void("content"===e&&t.each(this.tooltips,function(t,e){i._updateContent(e.element)})))},_disable:function(){var e=this;t.each(this.tooltips,function(n,i){var r=t.Event("blur");r.target=r.currentTarget=i.element[0],e.close(r,!0)}),this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.is("[title]")&&e.data("ui-tooltip-title",e.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))})},open:function(e){var n=this,i=t(e?e.target:this.element).closest(this.options.items);i.length&&!i.data("ui-tooltip-id")&&(i.attr("title")&&i.data("ui-tooltip-title",i.attr("title")),i.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&i.parents().each(function(){
-var e,i=t(this);i.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,n.close(e,!0)),i.attr("title")&&(i.uniqueId(),n.parents[this.id]={element:this,title:i.attr("title")},i.attr("title",""))}),this._registerCloseHandlers(e,i),this._updateContent(i,e))},_updateContent:function(t,e){var n,i=this.options.content,r=this,s=e?e.type:null;return"string"==typeof i?this._open(e,t,i):(n=i.call(t[0],function(n){r._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=s),this._open(e,t,n))})}),void(n&&this._open(e,t,n)))},_open:function(e,n,i){function r(t){u.of=t,o.is(":hidden")||o.position(u)}var s,o,a,l,u=t.extend({},this.options.position);if(i){if(s=this._find(n))return void s.tooltip.find(".ui-tooltip-content").html(i);n.is("[title]")&&(e&&"mouseover"===e.type?n.attr("title",""):n.removeAttr("title")),s=this._tooltip(n),o=s.tooltip,this._addDescribedBy(n,o.attr("id")),o.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),i.clone?(l=i.clone(),l.removeAttr("id").find("[id]").removeAttr("id")):l=i,t("<div>").html(l).appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:r}),r(e)):o.position(t.extend({of:n},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(a=this.delayedShow=setInterval(function(){o.is(":visible")&&(r(u.of),clearInterval(a))},t.fx.interval)),this._trigger("open",e,{tooltip:o})}},_registerCloseHandlers:function(e,n){var i={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var i=t.Event(e);i.currentTarget=n[0],this.close(i,!0)}}};n[0]!==this.element[0]&&(i.remove=function(){this._removeTooltip(this._find(n).tooltip)}),e&&"mouseover"!==e.type||(i.mouseleave="close"),e&&"focusin"!==e.type||(i.focusout="close"),this._on(!0,n,i)},close:function(e){var n,i=this,r=t(e?e.currentTarget:this.element),s=this._find(r);return s?(n=s.tooltip,void(s.closing||(clearInterval(this.delayedShow),r.data("ui-tooltip-title")&&!r.attr("title")&&r.attr("title",r.data("ui-tooltip-title")),this._removeDescribedBy(r),s.hiding=!0,n.stop(!0),this._hide(n,this.options.hide,function(){i._removeTooltip(t(this))}),r.removeData("ui-tooltip-open"),this._off(r,"mouseleave focusout keyup"),r[0]!==this.element[0]&&this._off(r,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,n){t(n.element).attr("title",n.title),delete i.parents[e]}),s.closing=!0,this._trigger("close",e,{tooltip:n}),s.hiding||(s.closing=!1)))):void r.removeData("ui-tooltip-open")},_tooltip:function(e){var n=t("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),i=n.uniqueId().attr("id");return t("<div>").addClass("ui-tooltip-content").appendTo(n),n.appendTo(this.document[0].body),this.tooltips[i]={element:e,tooltip:n}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var e=this;t.each(this.tooltips,function(n,i){var r=t.Event("blur"),s=i.element;r.target=r.currentTarget=s[0],e.close(r,!0),t("#"+n).remove(),s.data("ui-tooltip-title")&&(s.attr("title")||s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}t.fn.emulateTransitionEnd=function(e){var n=!1,i=this;t(this).one("bsTransitionEnd",function(){n=!0});var r=function(){n||t(i).trigger(t.support.transition.end)};return setTimeout(r,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.alert");r||n.data("bs.alert",r=new i(this)),"string"==typeof e&&r[e].call(n)})}var n='[data-dismiss="alert"]',i=function(e){t(e).on("click",n,this.close)};i.VERSION="3.3.4",i.TRANSITION_DURATION=150,i.prototype.close=function(e){function n(){o.detach().trigger("closed.bs.alert").remove()}var r=t(this),s=r.attr("data-target");s||(s=r.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var o=t(s);e&&e.preventDefault(),o.length||(o=r.closest(".alert")),o.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(o.removeClass("in"),t.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",n).emulateTransitionEnd(i.TRANSITION_DURATION):n())};var r=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=i,t.fn.alert.noConflict=function(){return t.fn.alert=r,this},t(document).on("click.bs.alert.data-api",n,i.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.button"),s="object"==typeof e&&e;r||i.data("bs.button",r=new n(this,s)),"toggle"==e?r.toggle():e&&r.setState(e)})}var n=function(e,i){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,i),this.isLoading=!1};n.VERSION="3.3.4",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(e){var n="disabled",i=this.$element,r=i.is("input")?"val":"html",s=i.data();e+="Text",null==s.resetText&&i.data("resetText",i[r]()),setTimeout(t.proxy(function(){i[r](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,i.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,i.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var n=this.$element.find("input");"radio"==n.prop("type")&&(n.prop("checked")&&this.$element.hasClass("active")?t=!1:e.find(".active").removeClass("active")),t&&n.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));t&&this.$element.toggleClass("active")};var i=t.fn.button;t.fn.button=e,t.fn.button.Constructor=n,t.fn.button.noConflict=function(){return t.fn.button=i,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var i=t(n.target);i.hasClass("btn")||(i=i.closest(".btn")),e.call(i,"toggle"),n.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.carousel"),s=t.extend({},n.DEFAULTS,i.data(),"object"==typeof e&&e),o="string"==typeof e?e:s.slide;r||i.data("bs.carousel",r=new n(this,s)),"number"==typeof e?r.to(e):o?r[o]():s.interval&&r.pause().cycle()})}var n=function(e,n){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};n.VERSION="3.3.4",n.TRANSITION_DURATION=600,n.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},n.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},n.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},n.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},n.prototype.getItemForDirection=function(t,e){var n=this.getItemIndex(e),i="prev"==t&&0===n||"next"==t&&n==this.$items.length-1;if(i&&!this.options.wrap)return e;var r="prev"==t?-1:1,s=(n+r)%this.$items.length;return this.$items.eq(s)},n.prototype.to=function(t){var e=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",this.$items.eq(t))},n.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},n.prototype.next=function(){return this.sliding?void 0:this.slide("next")},n.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},n.prototype.slide=function(e,i){var r=this.$element.find(".item.active"),s=i||this.getItemForDirection(e,r),o=this.interval,a="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var u=s[0],c=t.Event("slide.bs.carousel",{relatedTarget:u,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,o&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var h=t(this.$indicators.children()[this.getItemIndex(s)]);h&&h.addClass("active")}var d=t.Event("slid.bs.carousel",{relatedTarget:u,direction:a});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,r.addClass(a),s.addClass(a),r.one("bsTransitionEnd",function(){s.removeClass([e,a].join(" ")).addClass("active"),r.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(d)},0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(r.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(d)),o&&this.cycle(),this}};var i=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=n,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this};var r=function(n){var i,r=t(this),s=t(r.attr("data-target")||(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var o=t.extend({},s.data(),r.data()),a=r.attr("data-slide-to");a&&(o.interval=!1),e.call(s,o),a&&s.data("bs.carousel").to(a),n.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",r).on("click.bs.carousel.data-api","[data-slide-to]",r),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var n=t(this);e.call(n,n.data())})})}(jQuery),+function(t){"use strict";function e(e){var n,i=e.attr("data-target")||(n=e.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return t(i)}function n(e){return this.each(function(){var n=t(this),r=n.data("bs.collapse"),s=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);!r&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),r||n.data("bs.collapse",r=new i(this,s)),"string"==typeof e&&r[e]()})}var i=function(e,n){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,n),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};i.VERSION="3.3.4",i.TRANSITION_DURATION=350,i.DEFAULTS={toggle:!0},i.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},i.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,r=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(r&&r.length&&(e=r.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){r&&r.length&&(n.call(r,"hide"),e||r.data("bs.collapse",null));var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var l=t.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(i.TRANSITION_DURATION)[o](this.$element[0][l])}}}},i.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[n](0).one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(i.TRANSITION_DURATION):r.call(this)}}},i.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},i.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(n,i){var r=t(i);this.addAriaAndCollapsedClass(e(r),r)},this)).end()},i.prototype.addAriaAndCollapsedClass=function(t,e){var n=t.hasClass("in");t.attr("aria-expanded",n),e.toggleClass("collapsed",!n).attr("aria-expanded",n)};var r=t.fn.collapse;t.fn.collapse=n,t.fn.collapse.Constructor=i,t.fn.collapse.noConflict=function(){return t.fn.collapse=r,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(i){var r=t(this);r.attr("data-target")||i.preventDefault();var s=e(r),o=s.data("bs.collapse"),a=o?"toggle":r.data();n.call(s,a)})}(jQuery),+function(t){"use strict";function e(e){e&&3===e.which||(t(r).remove(),t(s).each(function(){var i=t(this),r=n(i),s={relatedTarget:this};r.hasClass("open")&&(r.trigger(e=t.Event("hide.bs.dropdown",s)),e.isDefaultPrevented()||(i.attr("aria-expanded","false"),r.removeClass("open").trigger("hidden.bs.dropdown",s)))}))}function n(e){var n=e.attr("data-target");n||(n=e.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var i=n&&t(n);return i&&i.length?i:e.parent()}function i(e){return this.each(function(){var n=t(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new o(this)),"string"==typeof e&&i[e].call(n)})}var r=".dropdown-backdrop",s='[data-toggle="dropdown"]',o=function(e){t(e).on("click.bs.dropdown",this.toggle)};o.VERSION="3.3.4",o.prototype.toggle=function(i){var r=t(this);if(!r.is(".disabled, :disabled")){var s=n(r),o=s.hasClass("open");if(e(),!o){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t('<div class="dropdown-backdrop"/>').insertAfter(t(this)).on("click",e);var a={relatedTarget:this};if(s.trigger(i=t.Event("show.bs.dropdown",a)),i.isDefaultPrevented())return;r.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger("shown.bs.dropdown",a)}return!1}},o.prototype.keydown=function(e){if(/(38|40|27|32)/.test(e.which)&&!/input|textarea/i.test(e.target.tagName)){var i=t(this);if(e.preventDefault(),e.stopPropagation(),!i.is(".disabled, :disabled")){var r=n(i),o=r.hasClass("open");if(!o&&27!=e.which||o&&27==e.which)return 27==e.which&&r.find(s).trigger("focus"),i.trigger("click");var a=" li:not(.disabled):visible a",l=r.find('[role="menu"]'+a+', [role="listbox"]'+a);if(l.length){var u=l.index(e.target);38==e.which&&u>0&&u--,40==e.which&&u<l.length-1&&u++,~u||(u=0),l.eq(u).trigger("focus")}}}};var a=t.fn.dropdown;t.fn.dropdown=i,t.fn.dropdown.Constructor=o,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=a,this},t(document).on("click.bs.dropdown.data-api",e).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,o.prototype.toggle).on("keydown.bs.dropdown.data-api",s,o.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',o.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',o.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,i){return this.each(function(){var r=t(this),s=r.data("bs.modal"),o=t.extend({},n.DEFAULTS,r.data(),"object"==typeof e&&e);s||r.data("bs.modal",s=new n(this,o)),"string"==typeof e?s[e](i):o.show&&s.show(i)})}var n=function(e,n){this.options=n,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};n.VERSION="3.3.4",n.TRANSITION_DURATION=300,n.BACKDROP_TRANSITION_DURATION=150,n.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},n.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},n.prototype.show=function(e){var i=this,r=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(r),this.isShown||r.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){i.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var r=t.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),r&&i.$element[0].offsetWidth,i.$element.addClass("in").attr("aria-hidden",!1),i.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});r?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(n.TRANSITION_DURATION):i.$element.trigger("focus").trigger(s)}))},n.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(n.TRANSITION_DURATION):this.hideModal())},n.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},n.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},n.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},n.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},n.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},n.prototype.backdrop=function(e){var i=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&r;if(this.$backdrop=t('<div class="modal-backdrop '+r+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var o=function(){i.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",o).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):o()}else e&&e()},n.prototype.handleUpdate=function(){this.adjustDialog()},n.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},n.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},n.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},n.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},n.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},n.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var i=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=n,t.fn.modal.noConflict=function(){return t.fn.modal=i,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(n){var i=t(this),r=i.attr("href"),s=t(i.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),o=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(r)&&r},s.data(),i.data());i.is("a")&&n.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){i.is(":visible")&&i.trigger("focus")})}),e.call(s,o,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.tooltip"),s="object"==typeof e&&e;(r||!/destroy|hide/.test(e))&&(r||i.data("bs.tooltip",r=new n(this,s)),"string"==typeof e&&r[e]())})}var n=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.init("tooltip",t,e)};n.VERSION="3.3.4",n.TRANSITION_DURATION=150,n.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},n.prototype.init=function(e,n,i){if(this.enabled=!0,this.type=e,this.$element=t(n),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&t(this.options.viewport.selector||this.options.viewport),this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var r=this.options.trigger.split(" "),s=r.length;s--;){var o=r[s];if("click"==o)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=o){var a="hover"==o?"mouseenter":"focusin",l="hover"==o?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},n.prototype.getDelegateOptions=function(){var e={},n=this.getDefaults();return this._options&&t.each(this._options,function(t,i){n[t]!=i&&(e[t]=i)}),e},n.prototype.enter=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n&&n.$tip&&n.$tip.is(":visible")?void(n.hoverState="in"):(n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),clearTimeout(n.timeout),n.hoverState="in",n.options.delay&&n.options.delay.show?void(n.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)):n.show())},n.prototype.leave=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),clearTimeout(n.timeout),n.hoverState="out",n.options.delay&&n.options.delay.hide?void(n.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)):n.hide()},n.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var i=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!i)return;var r=this,s=this.tip(),o=this.getUID(this.type);this.setContent(),s.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&s.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,u=l.test(a);u&&(a=a.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element);var c=this.getPosition(),h=s[0].offsetWidth,d=s[0].offsetHeight;if(u){var p=a,f=this.options.container?t(this.options.container):this.$element.parent(),m=this.getPosition(f);a="bottom"==a&&c.bottom+d>m.bottom?"top":"top"==a&&c.top-d<m.top?"bottom":"right"==a&&c.right+h>m.width?"left":"left"==a&&c.left-h<m.left?"right":a,s.removeClass(p).addClass(a)}var g=this.getCalculatedOffset(a,c,h,d);this.applyPlacement(g,a);var v=function(){var t=r.hoverState;r.$element.trigger("shown.bs."+r.type),r.hoverState=null,"out"==t&&r.leave(r)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",v).emulateTransitionEnd(n.TRANSITION_DURATION):v()}},n.prototype.applyPlacement=function(e,n){var i=this.tip(),r=i[0].offsetWidth,s=i[0].offsetHeight,o=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(o)&&(o=0),isNaN(a)&&(a=0),e.top=e.top+o,e.left=e.left+a,t.offset.setOffset(i[0],t.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),i.addClass("in");var l=i[0].offsetWidth,u=i[0].offsetHeight;"top"==n&&u!=s&&(e.top=e.top+s-u);var c=this.getViewportAdjustedDelta(n,e,l,u);c.left?e.left+=c.left:e.top+=c.top;var h=/top|bottom/.test(n),d=h?2*c.left-r+l:2*c.top-s+u,p=h?"offsetWidth":"offsetHeight";i.offset(e),this.replaceArrow(d,i[0][p],h)},n.prototype.replaceArrow=function(t,e,n){this.arrow().css(n?"left":"top",50*(1-t/e)+"%").css(n?"top":"left","")},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},n.prototype.hide=function(e){function i(){"in"!=r.hoverState&&s.detach(),r.$element.removeAttr("aria-describedby").trigger("hidden.bs."+r.type),e&&e()}var r=this,s=t(this.$tip),o=t.Event("hide.bs."+this.type);return this.$element.trigger(o),o.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),this.hoverState=null,this)},n.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},n.prototype.hasContent=function(){return this.getTitle()},n.prototype.getPosition=function(e){e=e||this.$element;var n=e[0],i="BODY"==n.tagName,r=n.getBoundingClientRect();null==r.width&&(r=t.extend({},r,{width:r.right-r.left,height:r.bottom-r.top}));var s=i?{top:0,left:0}:e.offset(),o={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},a=i?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},r,o,a,s)},n.prototype.getCalculatedOffset=function(t,e,n,i){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-n/2}:"top"==t?{top:e.top-i,left:e.left+e.width/2-n/2}:"left"==t?{top:e.top+e.height/2-i/2,left:e.left-n}:{top:e.top+e.height/2-i/2,left:e.left+e.width}},n.prototype.getViewportAdjustedDelta=function(t,e,n,i){var r={top:0,left:0};if(!this.$viewport)return r;var s=this.options.viewport&&this.options.viewport.padding||0,o=this.getPosition(this.$viewport);if(/right|left/.test(t)){var a=e.top-s-o.scroll,l=e.top+s-o.scroll+i;a<o.top?r.top=o.top-a:l>o.top+o.height&&(r.top=o.top+o.height-l)}else{var u=e.left-s,c=e.left+s+n;u<o.left?r.left=o.left-u:c>o.width&&(r.left=o.left+o.width-c)}return r},n.prototype.getTitle=function(){var t,e=this.$element,n=this.options;return t=e.attr("data-original-title")||("function"==typeof n.title?n.title.call(e[0]):n.title)},n.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},n.prototype.tip=function(){return this.$tip=this.$tip||t(this.options.template)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},n.prototype.enable=function(){this.enabled=!0},n.prototype.disable=function(){this.enabled=!1},n.prototype.toggleEnabled=function(){this.enabled=!this.enabled},n.prototype.toggle=function(e){var n=this;e&&(n=t(e.currentTarget).data("bs."+this.type),n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n))),n.tip().hasClass("in")?n.leave(n):n.enter(n)},n.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type)})};var i=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=n,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=i,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.popover"),s="object"==typeof e&&e;(r||!/destroy|hide/.test(e))&&(r||i.data("bs.popover",r=new n(this,s)),"string"==typeof e&&r[e]())})}var n=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");n.VERSION="3.3.4",n.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),n.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),n.prototype.constructor=n,n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),n=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof n?"html":"append":"text"](n),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide();
-
-},n.prototype.hasContent=function(){return this.getTitle()||this.getContent()},n.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var i=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=n,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(jQuery),+function(t){"use strict";function e(n,i){this.$body=t(document.body),this.$scrollElement=t(t(n).is(document.body)?window:n),this.options=t.extend({},e.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each(function(){var i=t(this),r=i.data("bs.scrollspy"),s="object"==typeof n&&n;r||i.data("bs.scrollspy",r=new e(this,s)),"string"==typeof n&&r[n]()})}e.VERSION="3.3.4",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,n="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(n="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),r=e.data("target")||e.attr("href"),s=/^#./.test(r)&&t(r);return s&&s.length&&s.is(":visible")&&[[s[n]().top+i,r]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),i=this.options.offset+n-this.$scrollElement.height(),r=this.offsets,s=this.targets,o=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),e>=i)return o!=(t=s[s.length-1])&&this.activate(t);if(o&&e<r[0])return this.activeTarget=null,this.clear();for(t=r.length;t--;)o!=s[t]&&e>=r[t]&&(void 0===r[t+1]||e<r[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var n=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',i=t(n).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var i=t.fn.scrollspy;t.fn.scrollspy=n,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);n.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.tab");r||i.data("bs.tab",r=new n(this)),"string"==typeof e&&r[e]()})}var n=function(e){this.element=t(e)};n.VERSION="3.3.4",n.TRANSITION_DURATION=150,n.prototype.show=function(){var e=this.element,n=e.closest("ul:not(.dropdown-menu)"),i=e.data("target");if(i||(i=e.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var r=n.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),o=t.Event("show.bs.tab",{relatedTarget:r[0]});if(r.trigger(s),e.trigger(o),!o.isDefaultPrevented()&&!s.isDefaultPrevented()){var a=t(i);this.activate(e.closest("li"),n),this.activate(a,a.parent(),function(){r.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:r[0]})})}}},n.prototype.activate=function(e,i,r){function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),r&&r()}var o=i.find("> .active"),a=r&&t.support.transition&&(o.length&&o.hasClass("fade")||!!i.find("> .fade").length);o.length&&a?o.one("bsTransitionEnd",s).emulateTransitionEnd(n.TRANSITION_DURATION):s(),o.removeClass("in")};var i=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=n,t.fn.tab.noConflict=function(){return t.fn.tab=i,this};var r=function(n){n.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',r).on("click.bs.tab.data-api",'[data-toggle="pill"]',r)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.affix"),s="object"==typeof e&&e;r||i.data("bs.affix",r=new n(this,s)),"string"==typeof e&&r[e]()})}var n=function(e,i){this.options=t.extend({},n.DEFAULTS,i),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.4",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(t,e,n,i){var r=this.$target.scrollTop(),s=this.$element.offset(),o=this.$target.height();if(null!=n&&"top"==this.affixed)return n>r?"top":!1;if("bottom"==this.affixed)return null!=n?r+this.unpin<=s.top?!1:"bottom":t-i>=r+o?!1:"bottom";var a=null==this.affixed,l=a?r:s.top,u=a?o:e;return null!=n&&n>=r?"top":null!=i&&l+u>=t-i?"bottom":!1},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},n.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),i=this.options.offset,r=i.top,s=i.bottom,o=t(document.body).height();"object"!=typeof i&&(s=r=i),"function"==typeof r&&(r=i.top(this.$element)),"function"==typeof s&&(s=i.bottom(this.$element));var a=this.getState(o,e,r,s);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var l="affix"+(a?"-"+a:""),u=t.Event(l+".bs.affix");if(this.$element.trigger(u),u.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:o-e-s})}};var i=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=n,t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var n=t(this),i=n.data();i.offset=i.offset||{},null!=i.offsetBottom&&(i.offset.bottom=i.offsetBottom),null!=i.offsetTop&&(i.offset.top=i.offsetTop),e.call(n,i)})})}(jQuery),function(t,e,n){"use strict";function i(t,e){return e=e||Error,function(){var n,i,r=2,s=arguments,o=s[0],a="["+(t?t+":":"")+o+"] ",l=s[1];for(a+=l.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1),n=e+r;return n<s.length?bt(s[n]):t}),a+="\nhttp://errors.angularjs.org/1.4.0/"+(t?t+"/":"")+o,i=r,n="?";i<s.length;i++,n="&")a+=n+"p"+(i-r)+"="+encodeURIComponent(bt(s[i]));return new e(a)}}function r(t){if(null==t||T(t))return!1;var e="length"in Object(t)&&t.length;return t.nodeType===Yi&&e?!0:x(t)||Ri(t)||0===e||"number"==typeof e&&e>0&&e-1 in t}function s(t,e,n){var i,o;if(t)if(C(t))for(i in t)"prototype"==i||"length"==i||"name"==i||t.hasOwnProperty&&!t.hasOwnProperty(i)||e.call(n,t[i],i,t);else if(Ri(t)||r(t)){var a="object"!=typeof t;for(i=0,o=t.length;o>i;i++)(a||i in t)&&e.call(n,t[i],i,t)}else if(t.forEach&&t.forEach!==s)t.forEach(e,n,t);else if(w(t))for(i in t)e.call(n,t[i],i,t);else if("function"==typeof t.hasOwnProperty)for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t);else for(i in t)wi.call(t,i)&&e.call(n,t[i],i,t);return t}function o(t,e,n){for(var i=Object.keys(t).sort(),r=0;r<i.length;r++)e.call(n,t[i[r]],i[r]);return i}function a(t){return function(e,n){t(n,e)}}function l(){return++Hi}function u(t,e){e?t.$$hashKey=e:delete t.$$hashKey}function c(t,e,n){for(var i=t.$$hashKey,r=0,s=e.length;s>r;++r){var o=e[r];if($(o)||C(o))for(var a=Object.keys(o),l=0,h=a.length;h>l;l++){var d=a[l],p=o[d];n&&$(p)?($(t[d])||(t[d]=Ri(p)?[]:{}),c(t[d],[p],!0)):t[d]=p}}return u(t,i),t}function h(t){return c(t,Si.call(arguments,1),!1)}function d(t){return c(t,Si.call(arguments,1),!0)}function p(t){return parseInt(t,10)}function f(t,e){return h(Object.create(t),e)}function m(){}function g(t){return t}function v(t){return function(){return t}}function b(t){return"undefined"==typeof t}function y(t){return"undefined"!=typeof t}function $(t){return null!==t&&"object"==typeof t}function w(t){return null!==t&&"object"==typeof t&&!Oi(t)}function x(t){return"string"==typeof t}function _(t){return"number"==typeof t}function k(t){return"[object Date]"===Ii.call(t)}function C(t){return"function"==typeof t}function D(t){return"[object RegExp]"===Ii.call(t)}function T(t){return t&&t.window===t}function E(t){return t&&t.$evalAsync&&t.$watch}function S(t){return"[object File]"===Ii.call(t)}function M(t){return"[object FormData]"===Ii.call(t)}function A(t){return"[object Blob]"===Ii.call(t)}function I(t){return"boolean"==typeof t}function O(t){return t&&C(t.then)}function P(t){return Fi.test(Ii.call(t))}function N(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function H(t){var e,n={},i=t.split(",");for(e=0;e<i.length;e++)n[i[e]]=!0;return n}function j(t){return $i(t.nodeName||t[0]&&t[0].nodeName)}function R(t,e){var n=t.indexOf(e);return n>=0&&t.splice(n,1),n}function F(t,e,n,i){function r(t,e,n,i,r){var s=F(e,null,i,r);$(e)&&(i.push(e),r.push(s)),n[t]=s}if(T(t)||E(t))throw Pi("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(P(e))throw Pi("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e){if(t===e)throw Pi("cpi","Can't copy! Source and destination are identical.");if(n=n||[],i=i||[],$(t)){var o=n.indexOf(t);if(-1!==o)return i[o];n.push(t),i.push(e)}var a,l;if(Ri(t)){e.length=0;for(var c=0;c<t.length;c++)a=F(t[c],null,n,i),$(t[c])&&(n.push(t[c]),i.push(a)),e.push(a)}else{var h=e.$$hashKey;if(Ri(e)?e.length=0:s(e,function(t,n){delete e[n]}),w(t))for(l in t)r(l,t[l],e,n,i);else if(t&&"function"==typeof t.hasOwnProperty)for(l in t)t.hasOwnProperty(l)&&r(l,t[l],e,n,i);else for(l in t)wi.call(t,l)&&r(l,t[l],e,n,i);u(e,h)}}else if(e=t,t)if(Ri(t))e=F(t,[],n,i);else if(P(t))e=new t.constructor(t);else if(k(t))e=new Date(t.getTime());else if(D(t))e=new RegExp(t.source,t.toString().match(/[^\/]*$/)[0]),e.lastIndex=t.lastIndex;else if($(t)){var d=Object.create(Oi(t));e=F(t,d,n,i)}return e}function z(t,e){if(Ri(t)){e=e||[];for(var n=0,i=t.length;i>n;n++)e[n]=t[n]}else if($(t)){e=e||{};for(var r in t)("$"!==r.charAt(0)||"$"!==r.charAt(1))&&(e[r]=t[r])}return e||t}function W(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var i,r,s,o=typeof t,a=typeof e;if(o==a&&"object"==o){if(!Ri(t)){if(k(t))return k(e)?W(t.getTime(),e.getTime()):!1;if(D(t))return D(e)?t.toString()==e.toString():!1;if(E(t)||E(e)||T(t)||T(e)||Ri(e)||k(e)||D(e))return!1;s=mt();for(r in t)if("$"!==r.charAt(0)&&!C(t[r])){if(!W(t[r],e[r]))return!1;s[r]=!0}for(r in e)if(!(r in s||"$"===r.charAt(0)||e[r]===n||C(e[r])))return!1;return!0}if(!Ri(e))return!1;if((i=t.length)==e.length){for(r=0;i>r;r++)if(!W(t[r],e[r]))return!1;return!0}}return!1}function L(t,e,n){return t.concat(Si.call(e,n))}function q(t,e){return Si.call(t,e||0)}function V(t,e){var n=arguments.length>2?q(arguments,2):[];return!C(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,L(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function B(t,i){var r=i;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?r=n:T(i)?r="$WINDOW":i&&e===i?r="$DOCUMENT":E(i)&&(r="$SCOPE"),r}function U(t,e){return"undefined"==typeof t?n:(_(e)||(e=e?2:null),JSON.stringify(t,B,e))}function Y(t){return x(t)?JSON.parse(t):t}function K(t,e){var n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function G(t,e){return t=new Date(t.getTime()),t.setMinutes(t.getMinutes()+e),t}function X(t,e,n){n=n?-1:1;var i=K(e,t.getTimezoneOffset());return G(t,n*(i-t.getTimezoneOffset()))}function Q(t){t=Di(t).clone();try{t.empty()}catch(e){}var n=Di("<div>").append(t).html();try{return t[0].nodeType===Gi?$i(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+$i(e)})}catch(e){return $i(n)}}function J(t){try{return decodeURIComponent(t)}catch(e){}}function Z(t){var e,n,i={};return s((t||"").split("&"),function(t){if(t&&(e=t.replace(/\+/g,"%20").split("="),n=J(e[0]),y(n))){var r=y(e[1])?J(e[1]):!0;wi.call(i,n)?Ri(i[n])?i[n].push(r):i[n]=[i[n],r]:i[n]=r}}),i}function tt(t){var e=[];return s(t,function(t,n){Ri(t)?s(t,function(t){e.push(nt(n,!0)+(t===!0?"":"="+nt(t,!0)))}):e.push(nt(n,!0)+(t===!0?"":"="+nt(t,!0)))}),e.length?e.join("&"):""}function et(t){return nt(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function nt(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function it(t,e){var n,i,r=Vi.length;for(i=0;r>i;++i)if(n=Vi[i]+e,x(n=t.getAttribute(n)))return n;return null}function rt(t,e){var n,i,r={};s(Vi,function(e){var r=e+"app";!n&&t.hasAttribute&&t.hasAttribute(r)&&(n=t,i=t.getAttribute(r))}),s(Vi,function(e){var r,s=e+"app";!n&&(r=t.querySelector("["+s.replace(":","\\:")+"]"))&&(n=r,i=r.getAttribute(s))}),n&&(r.strictDi=null!==it(n,"strict-di"),e(n,i?[i]:[],r))}function st(n,i,r){$(r)||(r={});var o={strictDi:!1};r=h(o,r);var a=function(){if(n=Di(n),n.injector()){var t=n[0]===e?"document":Q(n);throw Pi("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(/</,"&lt;").replace(/>/,"&gt;"))}i=i||[],i.unshift(["$provide",function(t){t.value("$rootElement",n)}]),r.debugInfoEnabled&&i.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),i.unshift("ng");var s=Xt(i,r.strictDi);return s.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,i){t.$apply(function(){e.data("$injector",i),n(e)(t)})}]),s},l=/^NG_ENABLE_DEBUG_INFO!/,u=/^NG_DEFER_BOOTSTRAP!/;return t&&l.test(t.name)&&(r.debugInfoEnabled=!0,t.name=t.name.replace(l,"")),t&&!u.test(t.name)?a():(t.name=t.name.replace(u,""),Ni.resumeBootstrap=function(t){return s(t,function(t){i.push(t)}),a()},void(C(Ni.resumeDeferredBootstrap)&&Ni.resumeDeferredBootstrap()))}function ot(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function at(t){var e=Ni.element(t).injector();if(!e)throw Pi("test","no injector found for element argument to getTestability");return e.get("$$testability")}function lt(t,e){return e=e||"_",t.replace(Bi,function(t,n){return(n?e:"")+t.toLowerCase()})}function ut(){var e;if(!Ui){var i=qi();Ti=t.jQuery,y(i)&&(Ti=null===i?n:t[i]),Ti&&Ti.fn.on?(Di=Ti,h(Ti.fn,{scope:pr.scope,isolateScope:pr.isolateScope,controller:pr.controller,injector:pr.injector,inheritedData:pr.inheritedData}),e=Ti.cleanData,Ti.cleanData=function(t){var n;if(ji)ji=!1;else for(var i,r=0;null!=(i=t[r]);r++)n=Ti._data(i,"events"),n&&n.$destroy&&Ti(i).triggerHandler("$destroy");e(t)}):Di=Dt,Ni.element=Di,Ui=!0}}function ct(t,e,n){if(!t)throw Pi("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function ht(t,e,n){return n&&Ri(t)&&(t=t[t.length-1]),ct(C(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function dt(t,e){if("hasOwnProperty"===t)throw Pi("badname","hasOwnProperty is not a valid {0} name",e)}function pt(t,e,n){if(!e)return t;for(var i,r=e.split("."),s=t,o=r.length,a=0;o>a;a++)i=r[a],t&&(t=(s=t)[i]);return!n&&C(t)?V(s,t):t}function ft(t){var e=t[0],n=t[t.length-1],i=[e];do{if(e=e.nextSibling,!e)break;i.push(e)}while(e!==n);return Di(i)}function mt(){return Object.create(null)}function gt(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=i("$injector"),r=i("ng"),s=e(t,"angular",Object);return s.$$minErr=s.$$minErr||i,e(s,"module",function(){var t={};return function(i,s,o){var a=function(t,e){if("hasOwnProperty"===t)throw r("badname","hasOwnProperty is not a valid {0} name",e)};return a(i,"module"),s&&t.hasOwnProperty(i)&&(t[i]=null),e(t,i,function(){function t(t,n,i,r){return r||(r=e),function(){return r[i||"push"]([t,n,arguments]),u}}if(!s)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",i);var e=[],r=[],a=[],l=t("$injector","invoke","push",r),u={_invokeQueue:e,_configBlocks:r,_runBlocks:a,requires:s,name:i,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),decorator:t("$provide","decorator"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:l,run:function(t){return a.push(t),this}};return o&&l(o),u})}})}function vt(t){var e=[];return JSON.stringify(t,function(t,n){if(n=B(t,n),$(n)){if(e.indexOf(n)>=0)return"<<already seen>>";e.push(n)}return n})}function bt(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?vt(t):t}function yt(e){h(e,{bootstrap:st,copy:F,extend:h,merge:d,equals:W,element:Di,forEach:s,injector:Xt,noop:m,bind:V,toJson:U,fromJson:Y,identity:g,isUndefined:b,isDefined:y,isString:x,isFunction:C,isObject:$,isNumber:_,isElement:N,isArray:Ri,version:Zi,isDate:k,lowercase:$i,uppercase:xi,callbacks:{counter:0},getTestability:at,$$minErr:i,$$csp:Li,reloadWithDebugInfo:ot}),Ei=gt(t);try{Ei("ngLocale")}catch(n){Ei("ngLocale",[]).provider("$locale",Me)}Ei("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:gn}),t.provider("$compile",ae).directive({a:us,input:Ds,textarea:Ds,form:fs,script:yo,select:xo,style:ko,option:_o,ngBind:Ss,ngBindHtml:As,ngBindTemplate:Ms,ngClass:Os,ngClassEven:Ns,ngClassOdd:Ps,ngCloak:Hs,ngController:js,ngForm:ms,ngHide:po,ngIf:zs,ngInclude:Ws,ngInit:qs,ngNonBindable:io,ngPluralize:ao,ngRepeat:lo,ngShow:ho,ngStyle:fo,ngSwitch:mo,ngSwitchWhen:go,ngSwitchDefault:vo,ngOptions:oo,ngTransclude:bo,ngModel:to,ngList:Vs,ngChange:Is,pattern:Do,ngPattern:Do,required:Co,ngRequired:Co,minlength:Eo,ngMinlength:Eo,maxlength:To,ngMaxlength:To,ngValue:Es,ngModelOptions:no}).directive({ngInclude:Ls}).directive(cs).directive(Rs),t.provider({$anchorScroll:Qt,$animate:Er,$$animateQueue:Tr,$$AnimateRunner:Dr,$browser:re,$cacheFactory:se,$controller:de,$document:pe,$exceptionHandler:fe,$filter:Mn,$interpolate:Ee,$interval:Se,$http:ke,$httpParamSerializer:ge,$httpParamSerializerJQLike:ve,$httpBackend:De,$location:Ve,$log:Be,$parse:cn,$rootScope:mn,$q:hn,$$q:dn,$sce:$n,$sceDelegate:yn,$sniffer:wn,$templateCache:oe,$templateRequest:xn,$$testability:_n,$timeout:kn,$window:Tn,$$rAF:fn,$$asyncCallback:ne,$$jqLite:Bt,$$HashMap:vr,$$cookieReader:Sn})}])}function $t(){return++er}function wt(t){return t.replace(rr,function(t,e,n,i){return i?n.toUpperCase():n}).replace(sr,"Moz$1")}function xt(t){return!ur.test(t)}function _t(t){var e=t.nodeType;return e===Yi||!e||e===Qi}function kt(t,e){var n,i,r,o,a=e.createDocumentFragment(),l=[];if(xt(t))l.push(e.createTextNode(t));else{for(n=n||a.appendChild(e.createElement("div")),i=(cr.exec(t)||["",""])[1].toLowerCase(),r=dr[i]||dr._default,n.innerHTML=r[1]+t.replace(hr,"<$1></$2>")+r[2],o=r[0];o--;)n=n.lastChild;l=L(l,n.childNodes),n=a.firstChild,n.textContent=""}return a.textContent="",a.innerHTML="",s(l,function(t){a.appendChild(t)}),a}function Ct(t,n){n=n||e;var i;return(i=lr.exec(t))?[n.createElement(i[1])]:(i=kt(t,n))?i.childNodes:[]}function Dt(t){if(t instanceof Dt)return t;var e;if(x(t)&&(t=zi(t),e=!0),!(this instanceof Dt)){if(e&&"<"!=t.charAt(0))throw ar("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Dt(t)}e?Ht(this,Ct(t)):Ht(this,t)}function Tt(t){return t.cloneNode(!0)}function Et(t,e){if(e||Mt(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),i=0,r=n.length;r>i;i++)Mt(n[i])}function St(t,e,n,i){if(y(i))throw ar("offargs","jqLite#off() does not support the `selector` argument");var r=At(t),o=r&&r.events,a=r&&r.handle;if(a)if(e)s(e.split(" "),function(e){if(y(n)){var i=o[e];if(R(i||[],n),i&&i.length>0)return}ir(t,e,a),delete o[e]});else for(e in o)"$destroy"!==e&&ir(t,e,a),delete o[e]}function Mt(t,e){var i=t.ng339,r=i&&tr[i];if(r){if(e)return void delete r.data[e];r.handle&&(r.events.$destroy&&r.handle({},"$destroy"),St(t)),delete tr[i],t.ng339=n}}function At(t,e){var i=t.ng339,r=i&&tr[i];return e&&!r&&(t.ng339=i=$t(),r=tr[i]={events:{},data:{},handle:n}),r}function It(t,e,n){if(_t(t)){var i=y(n),r=!i&&e&&!$(e),s=!e,o=At(t,!r),a=o&&o.data;if(i)a[e]=n;else{if(s)return a;if(r)return a&&a[e];h(a,e)}}}function Ot(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function Pt(t,e){e&&t.setAttribute&&s(e.split(" "),function(e){t.setAttribute("class",zi((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+zi(e)+" "," ")))})}function Nt(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");s(e.split(" "),function(t){t=zi(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",zi(n))}}function Ht(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var i=0;n>i;i++)t[t.length++]=e[i]}else t[t.length++]=e}}function jt(t,e){return Rt(t,"$"+(e||"ngController")+"Controller")}function Rt(t,e,i){t.nodeType==Qi&&(t=t.documentElement);for(var r=Ri(e)?e:[e];t;){for(var s=0,o=r.length;o>s;s++)if((i=Di.data(t,r[s]))!==n)return i;t=t.parentNode||t.nodeType===Ji&&t.host}}function Ft(t){for(Et(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function zt(t,e){e||Et(t);var n=t.parentNode;n&&n.removeChild(t)}function Wt(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):Di(n).on("load",e)}function Lt(t,e){var n=fr[e.toLowerCase()];return n&&mr[j(t)]&&n}function qt(t,e){var n=t.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&gr[e]}function Vt(t,e){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var r=e[i||n.type],s=r?r.length:0;if(s){if(b(n.immediatePropagationStopped)){var o=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),o&&o.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},s>1&&(r=z(r));for(var a=0;s>a;a++)n.isImmediatePropagationStopped()||r[a].call(t,n)}};return n.elem=t,n}function Bt(){this.$get=function(){return h(Dt,{hasClass:function(t,e){return t.attr&&(t=t[0]),Ot(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),Nt(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),Pt(t,e)}})}}function Ut(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var i=typeof t;return n="function"==i||"object"==i&&null!==t?t.$$hashKey=i+":"+(e||l)():i+":"+t}function Yt(t,e){if(e){var n=0;this.nextUid=function(){return++n}}s(t,this.put,this)}function Kt(t){var e=t.toString().replace(wr,""),n=e.match(br);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Gt(t,e,n){var i,r,o,a;if("function"==typeof t){if(!(i=t.$inject)){if(i=[],t.length){if(e)throw x(n)&&n||(n=t.name||Kt(t)),xr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);r=t.toString().replace(wr,""),o=r.match(br),s(o[1].split(yr),function(t){t.replace($r,function(t,e,n){i.push(n)})})}t.$inject=i}}else Ri(t)?(a=t.length-1,ht(t[a],"fn"),i=t.slice(0,a)):ht(t,"fn",!0);return i}function Xt(t,e){function i(t){return function(e,n){return $(e)?void s(e,a(t)):t(e,n)}}function r(t,e){if(dt(t,"service"),(C(e)||Ri(e))&&(e=D.instantiate(e)),!e.$get)throw xr("pget","Provider '{0}' must define $get factory method.",t);return k[t+y]=e}function o(t,e){return function(){var n=E.invoke(e,this);if(b(n))throw xr("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function l(t,e,n){return r(t,{$get:n!==!1?o(t,e):e})}function u(t,e){return l(t,["$injector",function(t){return t.instantiate(e)}])}function c(t,e){return l(t,v(e),!1)}function h(t,e){dt(t,"constant"),k[t]=e,T[t]=e}function d(t,e){var n=D.get(t+y),i=n.$get;n.$get=function(){var t=E.invoke(i,n);return E.invoke(e,null,{$delegate:t})}}function p(t){var e,n=[];return s(t,function(t){function i(t){var e,n;for(e=0,n=t.length;n>e;e++){var i=t[e],r=D.get(i[0]);r[i[1]].apply(r,i[2])}}if(!_.get(t)){_.put(t,!0);try{x(t)?(e=Ei(t),n=n.concat(p(e.requires)).concat(e._runBlocks),i(e._invokeQueue),i(e._configBlocks)):C(t)?n.push(D.invoke(t)):Ri(t)?n.push(D.invoke(t)):ht(t,"module")}catch(r){throw Ri(t)&&(t=t[t.length-1]),r.message&&r.stack&&-1==r.stack.indexOf(r.message)&&(r=r.message+"\n"+r.stack),xr("modulerr","Failed to instantiate module {0} due to:\n{1}",t,r.stack||r.message||r)}}}),n}function f(t,n){function i(e,i){if(t.hasOwnProperty(e)){if(t[e]===g)throw xr("cdep","Circular dependency found: {0}",e+" <- "+w.join(" <- "));return t[e]}try{return w.unshift(e),t[e]=g,t[e]=n(e,i)}catch(r){throw t[e]===g&&delete t[e],r}finally{w.shift()}}function r(t,n,r,s){"string"==typeof r&&(s=r,r=null);var o,a,l,u=[],c=Xt.$$annotate(t,e,s);for(a=0,o=c.length;o>a;a++){if(l=c[a],"string"!=typeof l)throw xr("itkn","Incorrect injection token! Expected service name as string, got {0}",l);u.push(r&&r.hasOwnProperty(l)?r[l]:i(l,s))}return Ri(t)&&(t=t[o]),t.apply(n,u)}function s(t,e,n){var i=Object.create((Ri(t)?t[t.length-1]:t).prototype||null),s=r(t,i,e,n);return $(s)||C(s)?s:i}return{invoke:r,instantiate:s,get:i,annotate:Xt.$$annotate,has:function(e){return k.hasOwnProperty(e+y)||t.hasOwnProperty(e)}}}e=e===!0;var g={},y="Provider",w=[],_=new Yt([],!0),k={$provide:{provider:i(r),factory:i(l),service:i(u),value:i(c),constant:i(h),decorator:d}},D=k.$injector=f(k,function(t,e){throw Ni.isString(e)&&w.push(e),xr("unpr","Unknown provider: {0}",w.join(" <- "))}),T={},E=T.$injector=f(T,function(t,e){var i=D.get(t+y,e);return E.invoke(i.$get,i,n,t)});return s(p(t),function(t){E.invoke(t||m)}),E}function Qt(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,i){function r(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===j(t)?(e=t,!0):void 0}),e}function s(){var t=a.yOffset;if(C(t))t=t();else if(N(t)){var n=t[0],i=e.getComputedStyle(n);t="fixed"!==i.position?0:n.getBoundingClientRect().bottom}else _(t)||(t=0);return t}function o(t){if(t){t.scrollIntoView();var n=s();if(n){var i=t.getBoundingClientRect().top;e.scrollBy(0,i-n)}}else e.scrollTo(0,0)}function a(t){t=x(t)?t:n.hash();var e;t?(e=l.getElementById(t))?o(e):(e=r(l.getElementsByName(t)))?o(e):"top"===t&&o(null):o(null)}var l=e.document;return t&&i.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&Wt(function(){i.$evalAsync(a)})}),a}]}function Jt(t,e){return t||e?t?e?(Ri(t)&&(t=t.join(" ")),Ri(e)&&(e=e.join(" ")),t+" "+e):t:e:""}function Zt(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.nodeType===kr)return n}}function te(t){x(t)&&(t=t.split(" "));var e=mt();return s(t,function(t){t.length&&(e[t]=!0)}),e}function ee(t){return $(t)?t:{}}function ne(){this.$get=["$$rAF","$timeout",function(t,e){return t.supported?function(e){return t(e)}:function(t){return e(t,0,!1)}}]}function ie(t,e,n,i){function r(t){try{t.apply(null,q(arguments,1))}finally{if(y--,0===y)for(;$.length;)try{$.pop()()}catch(e){n.error(e)}}}function o(t){var e=t.indexOf("#");return-1===e?"":t.substr(e+1)}function a(){u(),c()}function l(){try{return p.state}catch(t){}}function u(){w=l(),w=b(w)?null:w,W(w,E)&&(w=E),E=w}function c(){(_!==h.url()||x!==w)&&(_=h.url(),x=w,s(D,function(t){t(h.url(),w)}))}var h=this,d=(e[0],t.location),p=t.history,f=t.setTimeout,g=t.clearTimeout,v={};h.isMock=!1;var y=0,$=[];h.$$completeOutstandingRequest=r,h.$$incOutstandingRequestCount=function(){y++},h.notifyWhenNoOutstandingRequests=function(t){0===y?t():$.push(t)};var w,x,_=d.href,k=e.find("base"),C=null;u(),x=w,h.url=function(e,n,r){if(b(r)&&(r=null),d!==t.location&&(d=t.location),p!==t.history&&(p=t.history),e){var s=x===r;if(_===e&&(!i.history||s))return h;var a=_&&Ne(_)===Ne(e);return _=e,x=r,!i.history||a&&s?(a||(C=e),n?d.replace(e):a?d.hash=o(e):d.href=e):(p[n?"replaceState":"pushState"](r,"",e),u(),x=w),h}return C||d.href.replace(/%27/g,"'")},h.state=function(){return w};var D=[],T=!1,E=null;h.onUrlChange=function(e){return T||(i.history&&Di(t).on("popstate",a),Di(t).on("hashchange",a),T=!0),D.push(e),e},h.$$applicationDestroyed=function(){Di(t).off("hashchange popstate",a)},h.$$checkUrlChange=c,h.baseHref=function(){var t=k.attr("href");return t?t.replace(/^(https?\:)?\/\/[^\/]*/,""):""},h.defer=function(t,e){var n;return y++,n=f(function(){delete v[n],r(t)},e||0),v[n]=!0,n},h.defer.cancel=function(t){return v[t]?(delete v[t],g(t),r(m),!0):!1}}function re(){this.$get=["$window","$log","$sniffer","$document",function(t,e,n,i){return new ie(t,i,e,n)}]}function se(){this.$get=function(){function t(t,n){function r(t){t!=d&&(p?p==t&&(p=t.n):p=t,s(t.n,t.p),s(t,d),d=t,d.n=null)}function s(t,e){t!=e&&(t&&(t.p=e),e&&(e.n=t))}if(t in e)throw i("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var o=0,a=h({},n,{id:t}),l={},u=n&&n.capacity||Number.MAX_VALUE,c={},d=null,p=null;return e[t]={put:function(t,e){if(!b(e)){if(u<Number.MAX_VALUE){var n=c[t]||(c[t]={key:t});r(n)}return t in l||o++,l[t]=e,o>u&&this.remove(p.key),e}},get:function(t){if(u<Number.MAX_VALUE){var e=c[t];if(!e)return;r(e)}return l[t]},remove:function(t){if(u<Number.MAX_VALUE){var e=c[t];if(!e)return;e==d&&(d=e.p),e==p&&(p=e.n),s(e.n,e.p),delete c[t]}delete l[t],o--},removeAll:function(){l={},o=0,c={},d=p=null},destroy:function(){l=null,a=null,c=null,delete e[t]},info:function(){return h({},a,{size:o})}}}var e={};return t.info=function(){var t={};return s(e,function(e,n){t[n]=e.info()}),t},t.get=function(t){return e[t]},t}}function oe(){this.$get=["$cacheFactory",function(t){return t("templates")}]}function ae(t,i){function r(t,e,n){var i=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,r={};return s(t,function(t,s){var o=t.match(i);if(!o)throw Sr("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",e,s,t,n?"controller bindings definition":"isolate scope definition");r[s]={mode:o[1][0],collection:"*"===o[2],optional:"?"===o[3],attrName:o[4]||s}}),r}function o(t,e){var n={isolateScope:null,bindToController:null};if($(t.scope)&&(t.bindToController===!0?(n.bindToController=r(t.scope,e,!0),n.isolateScope={}):n.isolateScope=r(t.scope,e,!1)),$(t.bindToController)&&(n.bindToController=r(t.bindToController,e,!0)),$(n.bindToController)){var i=t.controller,s=t.controllerAs;if(!i)throw Sr("noctrl","Cannot bind to controller without directive '{0}'s controller.",e);if(!he(i,s))throw Sr("noident","Cannot bind to controller without identifier for directive '{0}'.",e)}return n}function l(t){var e=t.charAt(0);if(!e||e!==$i(e))throw Sr("baddir","Directive name '{0}' is invalid. The first character must be a lowercase letter",t);if(t!==t.trim())throw Sr("baddir","Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",t)}var u={},c="Directive",d=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,p=/(([\w\-]+)(?:\:([^;]+))?;?)/,b=H("ngSrc,ngSrcset,src,srcset"),w=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,_=/^(on[a-z]+|formaction)$/;
-
-this.directive=function D(e,n){return dt(e,"directive"),x(e)?(l(e),ct(n,"directiveFactory"),u.hasOwnProperty(e)||(u[e]=[],t.factory(e+c,["$injector","$exceptionHandler",function(t,n){var i=[];return s(u[e],function(r,s){try{var a=t.invoke(r);C(a)?a={compile:v(a)}:!a.compile&&a.link&&(a.compile=v(a.link)),a.priority=a.priority||0,a.index=s,a.name=a.name||e,a.require=a.require||a.controller&&a.name,a.restrict=a.restrict||"EA";var l=a.$$bindings=o(a,a.name);$(l.isolateScope)&&(a.$$isolateBindings=l.isolateScope),i.push(a)}catch(u){n(u)}}),i}])),u[e].push(n)):s(e,a(D)),this},this.aHrefSanitizationWhitelist=function(t){return y(t)?(i.aHrefSanitizationWhitelist(t),this):i.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(t){return y(t)?(i.imgSrcSanitizationWhitelist(t),this):i.imgSrcSanitizationWhitelist()};var k=!0;this.debugInfoEnabled=function(t){return y(t)?(k=t,this):k},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(t,i,r,o,a,l,v,y,D,T,S){function M(t,e){try{t.addClass(e)}catch(n){}}function A(t,e,n,i,r){t instanceof Di||(t=Di(t)),s(t,function(e,n){e.nodeType==Gi&&e.nodeValue.match(/\S+/)&&(t[n]=Di(e).wrap("<span></span>").parent()[0])});var o=O(t,e,t,n,i,r);A.$$addScopeClass(t);var a=null;return function(e,n,i){ct(e,"scope"),i=i||{};var r=i.parentBoundTranscludeFn,s=i.transcludeControllers,l=i.futureParentElement;r&&r.$$boundTransclude&&(r=r.$$boundTransclude),a||(a=I(l));var u;if(u="html"!==a?Di(J(a,Di("<div>").append(t).html())):n?pr.clone.call(t):t,s)for(var c in s)u.data("$"+c+"Controller",s[c].instance);return A.$$addScopeInfo(u,e),n&&n(u,e),o&&o(e,u,u,r),u}}function I(t){var e=t&&t[0];return e&&"foreignobject"!==j(e)&&e.toString().match(/SVG/)?"svg":"html"}function O(t,e,i,r,s,o){function a(t,i,r,s){var o,a,l,u,c,h,d,p,g;if(f){var v=i.length;for(g=new Array(v),c=0;c<m.length;c+=3)d=m[c],g[d]=i[d]}else g=i;for(c=0,h=m.length;h>c;)if(l=g[m[c++]],o=m[c++],a=m[c++],o){if(o.scope){u=t.$new(),A.$$addScopeInfo(Di(l),u);var b=o.$$destroyBindings;b&&(o.$$destroyBindings=null,u.$on("$destroyed",b))}else u=t;p=o.transcludeOnThisElement?P(t,o.transclude,s,o.elementTranscludeOnThisElement):!o.templateOnThisElement&&s?s:!s&&e?P(t,e):null,o(a,u,l,r,p,o)}else a&&a(t,l.childNodes,n,s)}for(var l,u,c,h,d,p,f,m=[],g=0;g<t.length;g++)l=new st,u=N(t[g],[],l,0===g?r:n,s),c=u.length?z(u,t[g],l,e,i,null,[],[],o):null,c&&c.scope&&A.$$addScopeClass(l.$$element),d=c&&c.terminal||!(h=t[g].childNodes)||!h.length?null:O(h,c?(c.transcludeOnThisElement||!c.templateOnThisElement)&&c.transclude:e),(c||d)&&(m.push(g,c,d),p=!0,f=f||c),o=null;return p?a:null}function P(t,e,n,i){var r=function(i,r,s,o,a){return i||(i=t.$new(!1,a),i.$$transcluded=!0),e(i,r,{parentBoundTranscludeFn:n,transcludeControllers:s,futureParentElement:o})};return r}function N(t,e,n,i,r){var s,o,a=t.nodeType,l=n.$attr;switch(a){case Yi:V(e,le(j(t)),"E",i,r);for(var u,c,h,f,m,g,v=t.attributes,b=0,y=v&&v.length;y>b;b++){var w=!1,_=!1;u=v[b],c=u.name,m=zi(u.value),f=le(c),(g=ht.test(f))&&(c=c.replace(Mr,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var k=f.replace(/(Start|End)$/,"");B(k)&&f===k+"Start"&&(w=c,_=c.substr(0,c.length-5)+"end",c=c.substr(0,c.length-6)),h=le(c.toLowerCase()),l[h]=c,(g||!n.hasOwnProperty(h))&&(n[h]=m,Lt(t,h)&&(n[h]=!0)),tt(t,e,m,h,g),V(e,h,"A",i,r,w,_)}if(o=t.className,$(o)&&(o=o.animVal),x(o)&&""!==o)for(;s=p.exec(o);)h=le(s[2]),V(e,h,"C",i,r)&&(n[h]=zi(s[3])),o=o.substr(s.index+s[0].length);break;case Gi:X(e,t.nodeValue);break;case Xi:try{s=d.exec(t.nodeValue),s&&(h=le(s[1]),V(e,h,"M",i,r)&&(n[h]=zi(s[2])))}catch(C){}}return e.sort(K),e}function H(t,e,n){var i=[],r=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Sr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==Yi&&(t.hasAttribute(e)&&r++,t.hasAttribute(n)&&r--),i.push(t),t=t.nextSibling}while(r>0)}else i.push(t);return Di(i)}function F(t,e,n){return function(i,r,s,o,a){return r=H(r[0],e,n),t(i,r,s,o,a)}}function z(t,i,s,o,a,u,c,h,d){function p(t,e,n,i){t&&(n&&(t=F(t,n,i)),t.require=b.require,t.directiveName=y,(M===b||b.$$isolateScope)&&(t=nt(t,{isolateScope:!0})),c.push(t)),e&&(n&&(e=F(e,n,i)),e.require=b.require,e.directiveName=y,(M===b||b.$$isolateScope)&&(e=nt(e,{isolateScope:!0})),h.push(e))}function f(t,e,n,i){var r;if(x(e)){var s=e.match(w),o=e.substring(s[0].length),a=s[1]||s[3],l="?"===s[2];if("^^"===a?n=n.parent():(r=i&&i[o],r=r&&r.instance),!r){var u="$"+o+"Controller";r=a?n.inheritedData(u):n.data(u)}if(!r&&!l)throw Sr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",o,t)}else if(Ri(e)){r=[];for(var c=0,h=e.length;h>c;c++)r[c]=f(t,e[c],n,i)}return r||null}function m(t,e,n,i,r,s){var o=mt();for(var a in i){var u=i[a],c={$scope:u===M||u.$$isolateScope?r:s,$element:t,$attrs:e,$transclude:n},h=u.controller;"@"==h&&(h=e[u.name]);var d=l(h,c,!0,u.controllerAs);o[u.name]=d,R||t.data("$"+u.name+"Controller",d.instance)}return o}function g(t,e,r,o,a,l){function u(t,e,i){var r;return E(t)||(i=e,e=t,t=n),R&&(r=w),i||(i=R?_.parent():_),a(t,e,r,i,P)}var d,p,g,y,$,w,x,_,k;if(i===r?(k=s,_=s.$$element):(_=Di(r),k=new st(_,s)),M&&($=e.$new(!0)),a&&(x=u,x.$$boundTransclude=a),S&&(w=m(_,k,x,S,$,e)),M&&(A.$$addScopeInfo(_,$,!0,!(I&&(I===M||I===M.$$originalDirective))),A.$$addScopeClass(_,!0),$.$$isolateBindings=M.$$isolateBindings,rt(e,k,$,$.$$isolateBindings,M,$)),w){var C,D,T=M||v;T&&w[T.name]&&(C=T.$$bindings.bindToController,y=w[T.name],y&&y.identifier&&C&&(D=y,l.$$destroyBindings=rt(e,k,y.instance,C,T)));for(d in w){y=w[d];var O=y();O!==y.instance&&(y.instance=O,_.data("$"+b.name+"Controller",O),y===D&&(l.$$destroyBindings(),l.$$destroyBindings=rt(e,k,O,C,T)))}}for(d=0,p=c.length;p>d;d++)g=c[d],it(g,g.isolateScope?$:e,_,k,g.require&&f(g.directiveName,g.require,_,w),x);var P=e;for(M&&(M.template||null===M.templateUrl)&&(P=$),t&&t(P,r.childNodes,n,a),d=h.length-1;d>=0;d--)g=h[d],it(g,g.isolateScope?$:e,_,k,g.require&&f(g.directiveName,g.require,_,w),x)}d=d||{};for(var v,b,y,_,k,D,T=-Number.MAX_VALUE,S=d.controllerDirectives,M=d.newIsolateScopeDirective,I=d.templateDirective,O=d.nonTlbTranscludeDirective,P=!1,j=!1,R=d.hasElementTranscludeDirective,z=s.$$element=Di(i),W=u,V=o,B=0,K=t.length;K>B;B++){b=t[B];var X=b.$$start,Z=b.$$end;if(X&&(z=H(i,X,Z)),_=n,T>b.priority)break;if((D=b.scope)&&(b.templateUrl||($(D)?(G("new/isolated scope",M||v,b,z),M=b):G("new/isolated scope",M,b,z)),v=v||b),y=b.name,!b.templateUrl&&b.controller&&(D=b.controller,S=S||mt(),G("'"+y+"' controller",S[y],b,z),S[y]=b),(D=b.transclude)&&(P=!0,b.$$tlb||(G("transclusion",O,b,z),O=b),"element"==D?(R=!0,T=b.priority,_=z,z=s.$$element=Di(e.createComment(" "+y+": "+s[y]+" ")),i=z[0],et(a,q(_),i),V=A(_,o,T,W&&W.name,{nonTlbTranscludeDirective:O})):(_=Di(Tt(i)).contents(),z.empty(),V=A(_,o))),b.template)if(j=!0,G("template",I,b,z),I=b,D=C(b.template)?b.template(z,s):b.template,D=ut(D),b.replace){if(W=b,_=xt(D)?[]:ce(J(b.templateNamespace,zi(D))),i=_[0],1!=_.length||i.nodeType!==Yi)throw Sr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",y,"");et(a,z,i);var tt={$attr:{}},ot=N(i,[],tt),at=t.splice(B+1,t.length-(B+1));M&&L(ot),t=t.concat(ot).concat(at),U(s,tt),K=t.length}else z.html(D);if(b.templateUrl)j=!0,G("template",I,b,z),I=b,b.replace&&(W=b),g=Y(t.splice(B,t.length-B),z,s,a,P&&V,c,h,{controllerDirectives:S,newIsolateScopeDirective:M,templateDirective:I,nonTlbTranscludeDirective:O}),K=t.length;else if(b.compile)try{k=b.compile(z,s,V),C(k)?p(null,k,X,Z):k&&p(k.pre,k.post,X,Z)}catch(lt){r(lt,Q(z))}b.terminal&&(g.terminal=!0,T=Math.max(T,b.priority))}return g.scope=v&&v.scope===!0,g.transcludeOnThisElement=P,g.elementTranscludeOnThisElement=R,g.templateOnThisElement=j,g.transclude=V,d.hasElementTranscludeDirective=R,g}function L(t){for(var e=0,n=t.length;n>e;e++)t[e]=f(t[e],{$$isolateScope:!0})}function V(e,i,s,o,a,l,h){if(i===a)return null;var d=null;if(u.hasOwnProperty(i))for(var p,m=t.get(i+c),g=0,v=m.length;v>g;g++)try{p=m[g],(o===n||o>p.priority)&&-1!=p.restrict.indexOf(s)&&(l&&(p=f(p,{$$start:l,$$end:h})),e.push(p),d=p)}catch(b){r(b)}return d}function B(e){if(u.hasOwnProperty(e))for(var n,i=t.get(e+c),r=0,s=i.length;s>r;r++)if(n=i[r],n.multiElement)return!0;return!1}function U(t,e){var n=e.$attr,i=t.$attr,r=t.$$element;s(t,function(i,r){"$"!=r.charAt(0)&&(e[r]&&e[r]!==i&&(i+=("style"===r?";":" ")+e[r]),t.$set(r,i,!0,n[r]))}),s(e,function(e,s){"class"==s?(M(r,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==s?(r.attr("style",r.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==s.charAt(0)||t.hasOwnProperty(s)||(t[s]=e,i[s]=n[s])})}function Y(t,e,n,i,r,a,l,u){var c,h,d=[],p=e[0],m=t.shift(),g=f(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),v=C(m.templateUrl)?m.templateUrl(e,n):m.templateUrl,b=m.templateNamespace;return e.empty(),o(D.getTrustedResourceUrl(v)).then(function(o){var f,y,w,x;if(o=ut(o),m.replace){if(w=xt(o)?[]:ce(J(b,zi(o))),f=w[0],1!=w.length||f.nodeType!==Yi)throw Sr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,v);y={$attr:{}},et(i,e,f);var _=N(f,[],y);$(m.scope)&&L(_),t=_.concat(t),U(n,y)}else f=p,e.html(o);for(t.unshift(g),c=z(t,f,n,r,e,m,a,l,u),s(i,function(t,n){t==f&&(i[n]=e[0])}),h=O(e[0].childNodes,r);d.length;){var k=d.shift(),C=d.shift(),D=d.shift(),T=d.shift(),E=e[0];if(!k.$$destroyed){if(C!==p){var S=C.className;u.hasElementTranscludeDirective&&m.replace||(E=Tt(f)),et(D,Di(C),E),M(Di(E),S)}x=c.transcludeOnThisElement?P(k,c.transclude,T):T,c(h,k,E,i,x,c)}}d=null}),function(t,e,n,i,r){var s=r;e.$$destroyed||(d?d.push(e,n,i,s):(c.transcludeOnThisElement&&(s=P(e,c.transclude,r)),c(h,e,n,i,s,c)))}}function K(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name<e.name?-1:1:t.index-e.index}function G(t,e,n,i){if(e)throw Sr("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",e.name,n.name,t,Q(i))}function X(t,e){var n=i(e,!0);n&&t.push({priority:0,compile:function(t){var e=t.parent(),i=!!e.length;return i&&A.$$addBindingClass(e),function(t,e){var r=e.parent();i||A.$$addBindingClass(r),A.$$addBindingInfo(r,n.expressions),t.$watch(n,function(t){e[0].nodeValue=t})}}})}function J(t,n){switch(t=$i(t||"html")){case"svg":case"math":var i=e.createElement("div");return i.innerHTML="<"+t+">"+n+"</"+t+">",i.childNodes[0].childNodes;default:return n}}function Z(t,e){if("srcdoc"==e)return D.HTML;var n=j(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?D.RESOURCE_URL:void 0}function tt(t,e,n,r,s){var o=Z(t,r);s=b[r]||s;var a=i(n,!0,o,s);if(a){if("multiple"===r&&"select"===j(t))throw Sr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",Q(t));e.push({priority:100,compile:function(){return{pre:function(t,e,l){var u=l.$$observers||(l.$$observers={});if(_.test(r))throw Sr("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var c=l[r];c!==n&&(a=c&&i(c,!0,o,s),n=c),a&&(l[r]=a(t),(u[r]||(u[r]=[])).$$inter=!0,(l.$$observers&&l.$$observers[r].$$scope||t).$watch(a,function(t,e){"class"===r&&t!=e?l.$updateClass(t,e):l.$set(r,t)}))}}}})}}function et(t,n,i){var r,s,o=n[0],a=n.length,l=o.parentNode;if(t)for(r=0,s=t.length;s>r;r++)if(t[r]==o){t[r++]=i;for(var u=r,c=u+a-1,h=t.length;h>u;u++,c++)h>c?t[u]=t[c]:delete t[u];t.length-=a-1,t.context===o&&(t.context=i);break}l&&l.replaceChild(i,o);var d=e.createDocumentFragment();d.appendChild(o),Di(i).data(Di(o).data()),Ti?(ji=!0,Ti.cleanData([o])):delete Di.cache[o[Di.expando]];for(var p=1,f=n.length;f>p;p++){var m=n[p];Di(m).remove(),d.appendChild(m),delete n[p]}n[0]=i,n.length=1}function nt(t,e){return h(function(){return t.apply(null,arguments)},t,e)}function it(t,e,n,i,s,o){try{t(e,n,i,s,o)}catch(a){r(a,Q(n))}}function rt(t,e,n,r,o,l){var u;s(r,function(r,s){var l,c,h,d,p=r.attrName,f=r.optional,g=r.mode;switch(g){case"@":e.$observe(p,function(t){n[s]=t}),e.$$observers[p].$$scope=t,e[p]&&(n[s]=i(e[p])(t));break;case"=":if(f&&!e[p])return;c=a(e[p]),d=c.literal?W:function(t,e){return t===e||t!==t&&e!==e},h=c.assign||function(){throw l=n[s]=c(t),Sr("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",e[p],o.name)},l=n[s]=c(t);var v=function(e){return d(e,n[s])||(d(e,l)?h(t,e=n[s]):n[s]=e),l=e};v.$stateful=!0;var b;b=r.collection?t.$watchCollection(e[p],v):t.$watch(a(e[p],v),null,c.literal),u=u||[],u.push(b);break;case"&":if(!e.hasOwnProperty(p)&&f)break;if(c=a(e[p]),c===m&&f)break;n[s]=function(e){return c(t,e)}}});var c=u?function(){for(var t=0,e=u.length;e>t;++t)u[t]()}:m;return l&&c!==m?(l.$on("$destroy",c),m):c}var st=function(t,e){if(e){var n,i,r,s=Object.keys(e);for(n=0,i=s.length;i>n;n++)r=s[n],this[r]=e[r]}else this.$attr={};this.$$element=t};st.prototype={$normalize:le,$addClass:function(t){t&&t.length>0&&T.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&T.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=ue(t,e);n&&n.length&&T.addClass(this.$$element,n);var i=ue(e,t);i&&i.length&&T.removeClass(this.$$element,i)},$set:function(t,e,i,o){var a,l=this.$$element[0],u=Lt(l,t),c=qt(l,t),h=t;if(u?(this.$$element.prop(t,e),o=u):c&&(this[c]=e,h=c),this[t]=e,o?this.$attr[t]=o:(o=this.$attr[t],o||(this.$attr[t]=o=lt(t,"-"))),a=j(this.$$element),"a"===a&&"href"===t||"img"===a&&"src"===t)this[t]=e=S(e,"src"===t);else if("img"===a&&"srcset"===t){for(var d="",p=zi(e),f=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,m=/\s/.test(p)?f:/(,)/,g=p.split(m),v=Math.floor(g.length/2),b=0;v>b;b++){var y=2*b;d+=S(zi(g[y]),!0),d+=" "+zi(g[y+1])}var $=zi(g[2*b]).split(/\s/);d+=S(zi($[0]),!0),2===$.length&&(d+=" "+zi($[1])),this[t]=e=d}i!==!1&&(null===e||e===n?this.$$element.removeAttr(o):this.$$element.attr(o,e));var w=this.$$observers;w&&s(w[h],function(t){try{t(e)}catch(n){r(n)}})},$observe:function(t,e){var n=this,i=n.$$observers||(n.$$observers=mt()),r=i[t]||(i[t]=[]);return r.push(e),v.$evalAsync(function(){!r.$$inter&&n.hasOwnProperty(t)&&e(n[t])}),function(){R(r,e)}}};var ot=i.startSymbol(),at=i.endSymbol(),ut="{{"==ot||"}}"==at?g:function(t){return t.replace(/\{\{/g,ot).replace(/}}/g,at)},ht=/^ngAttr[A-Z]/;return A.$$addBindingInfo=k?function(t,e){var n=t.data("$binding")||[];Ri(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:m,A.$$addBindingClass=k?function(t){M(t,"ng-binding")}:m,A.$$addScopeInfo=k?function(t,e,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(r,e)}:m,A.$$addScopeClass=k?function(t,e){M(t,e?"ng-isolate-scope":"ng-scope")}:m,A}]}function le(t){return wt(t.replace(Mr,""))}function ue(t,e){var n="",i=t.split(/\s+/),r=e.split(/\s+/);t:for(var s=0;s<i.length;s++){for(var o=i[s],a=0;a<r.length;a++)if(o==r[a])continue t;n+=(n.length>0?" ":"")+o}return n}function ce(t){t=Di(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===Xi&&Mi.call(t,e,1)}return t}function he(t,e){if(e&&x(e))return e;if(x(t)){var n=Ir.exec(t);if(n)return n[3]}}function de(){var t={},e=!1;this.register=function(e,n){dt(e,"controller"),$(e)?h(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(r,s){function o(t,e,n,r){if(!t||!$(t.$scope))throw i("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,e);t.$scope[e]=n}return function(i,a,l,u){var c,d,p,f;if(l=l===!0,u&&x(u)&&(f=u),x(i)){if(d=i.match(Ir),!d)throw Ar("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",i);p=d[1],f=f||d[3],i=t.hasOwnProperty(p)?t[p]:pt(a.$scope,p,!0)||(e?pt(s,p,!0):n),ht(i,p,!0)}if(l){var m=(Ri(i)?i[i.length-1]:i).prototype;c=Object.create(m||null),f&&o(a,f,c,p||i.name);var g;return g=h(function(){var t=r.invoke(i,c,a,p);return t!==c&&($(t)||C(t))&&(c=t,f&&o(a,f,c,p||i.name)),c},{instance:c,identifier:f})}return c=r.instantiate(i,a,p),f&&o(a,f,c,p||i.name),c}}]}function pe(){this.$get=["$window",function(t){return Di(t.document)}]}function fe(){this.$get=["$log",function(t){return function(e,n){t.error.apply(t,arguments)}}]}function me(t){return $(t)?k(t)?t.toISOString():U(t):t}function ge(){this.$get=function(){return function(t){if(!t)return"";var e=[];return o(t,function(t,n){null===t||b(t)||(Ri(t)?s(t,function(t,i){e.push(nt(n)+"="+nt(me(t)))}):e.push(nt(n)+"="+nt(me(t))))}),e.join("&")}}}function ve(){this.$get=function(){return function(t){function e(t,i,r){null===t||b(t)||(Ri(t)?s(t,function(t){e(t,i+"[]")}):$(t)&&!k(t)?o(t,function(t,n){e(t,i+(r?"":"[")+n+(r?"":"]"))}):n.push(nt(i)+"="+nt(me(t))))}if(!t)return"";var n=[];return e(t,"",!0),n.join("&")}}}function be(t,e){if(x(t)){var n=t.replace(jr,"").trim();if(n){var i=e("Content-Type");(i&&0===i.indexOf(Or)||ye(n))&&(t=Y(n))}}return t}function ye(t){var e=t.match(Nr);return e&&Hr[e[0]].test(t)}function $e(t){function e(t,e){t&&(i[t]=i[t]?i[t]+", "+e:e)}var n,i=mt();return x(t)?s(t.split("\n"),function(t){n=t.indexOf(":"),e($i(zi(t.substr(0,n))),zi(t.substr(n+1)))}):$(t)&&s(t,function(t,n){e($i(n),zi(t))}),i}function we(t){var e;return function(n){if(e||(e=$e(t)),n){var i=e[$i(n)];return void 0===i&&(i=null),i}return e}}function xe(t,e,n,i){return C(i)?i(t,e,n):(s(i,function(i){t=i(t,e,n)}),t)}function _e(t){return t>=200&&300>t}function ke(){var t=this.defaults={transformResponse:[be],transformRequest:[function(t){return!$(t)||S(t)||A(t)||M(t)?t:U(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:z(Pr),put:z(Pr),patch:z(Pr)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},e=!1;this.useApplyAsync=function(t){return y(t)?(e=!!t,this):e};var r=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(o,a,l,u,c,d){function p(e){function r(t){var e=h({},t);return e.data=t.data?xe(t.data,t.headers,t.status,l.transformResponse):t.data,_e(t.status)?e:c.reject(e)}function o(t,e){var n,i={};return s(t,function(t,r){C(t)?(n=t(e),null!=n&&(i[r]=n)):i[r]=t}),i}function a(e){var n,i,r,s=t.headers,a=h({},e.headers);s=h({},s.common,s[$i(e.method)]);t:for(n in s){i=$i(n);for(r in a)if($i(r)===i)continue t;a[n]=s[n]}return o(a,z(e))}if(!Ni.isObject(e))throw i("$http")("badreq","Http request configuration must be an object.  Received: {0}",e);var l=h({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse,paramSerializer:t.paramSerializer},e);l.headers=a(e),l.method=xi(l.method),l.paramSerializer=x(l.paramSerializer)?d.get(l.paramSerializer):l.paramSerializer;var u=function(e){var i=e.headers,o=xe(e.data,we(i),n,e.transformRequest);return b(o)&&s(i,function(t,e){"content-type"===$i(e)&&delete i[e]}),b(e.withCredentials)&&!b(t.withCredentials)&&(e.withCredentials=t.withCredentials),g(e,o).then(r,r)},p=[u,n],f=c.when(l);for(s(_,function(t){(t.request||t.requestError)&&p.unshift(t.request,t.requestError),(t.response||t.responseError)&&p.push(t.response,t.responseError)});p.length;){var m=p.shift(),v=p.shift();f=f.then(m,v)}return f.success=function(t){return ht(t,"fn"),f.then(function(e){t(e.data,e.status,e.headers,l)}),f},f.error=function(t){return ht(t,"fn"),f.then(null,function(e){t(e.data,e.status,e.headers,l)}),f},f}function f(t){s(arguments,function(t){p[t]=function(e,n){return p(h({},n||{},{method:t,url:e}))}})}function m(t){s(arguments,function(t){p[t]=function(e,n,i){return p(h({},i||{},{method:t,url:e,data:n}))}})}function g(i,r){function s(t,n,i,r){function s(){l(n,t,i,r)}f&&(_e(t)?f.put(k,[t,n,$e(i),r]):f.remove(k)),e?u.$applyAsync(s):(s(),u.$$phase||u.$apply())}function l(t,e,n,r){e=Math.max(e,0),(_e(e)?g.resolve:g.reject)({data:t,status:e,headers:we(n),config:i,statusText:r})}function h(t){l(t.data,t.status,z(t.headers()),t.statusText)}function d(){var t=p.pendingRequests.indexOf(i);-1!==t&&p.pendingRequests.splice(t,1)}var f,m,g=c.defer(),x=g.promise,_=i.headers,k=v(i.url,i.paramSerializer(i.params));if(p.pendingRequests.push(i),x.then(d,d),!i.cache&&!t.cache||i.cache===!1||"GET"!==i.method&&"JSONP"!==i.method||(f=$(i.cache)?i.cache:$(t.cache)?t.cache:w),f&&(m=f.get(k),y(m)?O(m)?m.then(h,h):Ri(m)?l(m[1],m[0],z(m[2]),m[3]):l(m,200,{},"OK"):f.put(k,x)),b(m)){var C=Dn(i.url)?a()[i.xsrfCookieName||t.xsrfCookieName]:n;C&&(_[i.xsrfHeaderName||t.xsrfHeaderName]=C),o(i.method,k,r,s,_,i.timeout,i.withCredentials,i.responseType)}return x}function v(t,e){return e.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+e),t}var w=l("$http");t.paramSerializer=x(t.paramSerializer)?d.get(t.paramSerializer):t.paramSerializer;var _=[];return s(r,function(t){_.unshift(x(t)?d.get(t):d.invoke(t))}),p.pendingRequests=[],f("get","delete","head","jsonp"),m("post","put","patch"),p.defaults=t,p}]}function Ce(){return new t.XMLHttpRequest}function De(){this.$get=["$browser","$window","$document",function(t,e,n){return Te(t,Ce,t.defer,e.angular.callbacks,n[0])}]}function Te(t,e,i,r,o){function a(t,e,n){var i=o.createElement("script"),s=null;return i.type="text/javascript",i.src=t,i.async=!0,s=function(t){ir(i,"load",s),ir(i,"error",s),o.body.removeChild(i),i=null;var a=-1,l="unknown";t&&("load"!==t.type||r[e].called||(t={type:"error"}),l=t.type,a="error"===t.type?404:200),n&&n(a,l)},nr(i,"load",s),nr(i,"error",s),o.body.appendChild(i),s}return function(o,l,u,c,h,d,p,f){function g(){$&&$(),w&&w.abort()}function v(e,r,s,o,a){k!==n&&i.cancel(k),$=w=null,e(r,s,o,a),t.$$completeOutstandingRequest(m)}if(t.$$incOutstandingRequestCount(),l=l||t.url(),"jsonp"==$i(o)){var b="_"+(r.counter++).toString(36);r[b]=function(t){r[b].data=t,r[b].called=!0};var $=a(l.replace("JSON_CALLBACK","angular.callbacks."+b),b,function(t,e){v(c,t,r[b].data,"",e),r[b]=m})}else{var w=e();w.open(o,l,!0),s(h,function(t,e){y(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==Cn(l).protocol?404:0),v(c,n,e,w.getAllResponseHeaders(),t)};var x=function(){v(c,-1,null,null,"")};if(w.onerror=x,w.onabort=x,p&&(w.withCredentials=!0),f)try{w.responseType=f}catch(_){if("json"!==f)throw _}w.send(u)}if(d>0)var k=i(g,d);else O(d)&&d.then(g)}}function Ee(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,r){function s(t){return"\\\\\\"+t}function o(n){return n.replace(d,t).replace(p,e)}function a(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=U(t)}return t}function l(s,l,d,p){function f(t){try{return t=E(t),p&&!y(t)?t:a(t)}catch(e){i(Rr.interr(s,e))}}p=!!p;for(var m,g,v,$=0,w=[],x=[],_=s.length,k=[],D=[];_>$;){if(-1==(m=s.indexOf(t,$))||-1==(g=s.indexOf(e,m+u))){$!==_&&k.push(o(s.substring($)));break}$!==m&&k.push(o(s.substring($,m))),v=s.substring(m+u,g),w.push(v),x.push(n(v,f)),$=g+c,D.push(k.length),k.push("")}if(d&&k.length>1&&Rr.throwNoconcat(s),!l||w.length){var T=function(t){for(var e=0,n=w.length;n>e;e++){if(p&&b(t[e]))return;k[D[e]]=t[e]}return k.join("")},E=function(t){return d?r.getTrusted(d,t):r.valueOf(t)};return h(function(t){var e=0,n=w.length,r=new Array(n);try{for(;n>e;e++)r[e]=x[e](t);return T(r)}catch(o){i(Rr.interr(s,o))}},{exp:s,expressions:w,$$watchDelegate:function(t,e){var n;return t.$watchGroup(x,function(i,r){var s=T(i);C(e)&&e.call(this,s,i!==r?n:s,t),n=s})}})}}var u=t.length,c=e.length,d=new RegExp(t.replace(/./g,s),"g"),p=new RegExp(e.replace(/./g,s),"g");return l.startSymbol=function(){return t},l.endSymbol=function(){return e},l}]}function Se(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,i){function r(r,o,a,l){var u=arguments.length>4,c=u?q(arguments,4):[],h=e.setInterval,d=e.clearInterval,p=0,f=y(l)&&!l,m=(f?i:n).defer(),g=m.promise;return a=y(a)?a:0,g.then(null,null,u?function(){r.apply(null,c)}:r),g.$$intervalId=h(function(){m.notify(p++),a>0&&p>=a&&(m.resolve(p),d(g.$$intervalId),delete s[g.$$intervalId]),f||t.$apply()},o),s[g.$$intervalId]=m,g}var s={};return r.cancel=function(t){return t&&t.$$intervalId in s?(s[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete s[t.$$intervalId],!0):!1},r}]}function Me(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(t){return 1===t?"one":"other"}}}}function Ae(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=et(e[n]);return e.join("/")}function Ie(t,e){var n=Cn(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=p(n.port)||zr[n.protocol]||null}function Oe(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var i=Cn(t);e.$$path=decodeURIComponent(n&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),e.$$search=Z(i.search),e.$$hash=decodeURIComponent(i.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function Pe(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function Ne(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function He(t){return t.replace(/(#.+)|#$/,"$1")}function je(t){return t.substr(0,Ne(t).lastIndexOf("/")+1)}function Re(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function Fe(t,e){this.$$html5=!0,e=e||"";var i=je(t);Ie(t,this),this.$$parse=function(t){var e=Pe(i,t);if(!x(e))throw Wr("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,i);Oe(e,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=tt(this.$$search),e=this.$$hash?"#"+et(this.$$hash):"";this.$$url=Ae(this.$$path)+(t?"?"+t:"")+e,this.$$absUrl=i+this.$$url.substr(1)},this.$$parseLinkUrl=function(r,s){if(s&&"#"===s[0])return this.hash(s.slice(1)),!0;var o,a,l;return(o=Pe(t,r))!==n?(a=o,l=(o=Pe(e,o))!==n?i+(Pe("/",o)||o):t+a):(o=Pe(i,r))!==n?l=i+o:i==r+"/"&&(l=i),l&&this.$$parse(l),!!l}}function ze(t,e){var n=je(t);Ie(t,this),this.$$parse=function(i){function r(t,e,n){var i,r=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),r.exec(e)?t:(i=r.exec(t),i?i[1]:t)}var s,o=Pe(t,i)||Pe(n,i);"#"===o.charAt(0)?(s=Pe(e,o),b(s)&&(s=o)):s=this.$$html5?o:"",Oe(s,this),this.$$path=r(this.$$path,s,t),this.$$compose()},this.$$compose=function(){var n=tt(this.$$search),i=this.$$hash?"#"+et(this.$$hash):"";this.$$url=Ae(this.$$path)+(n?"?"+n:"")+i,this.$$absUrl=t+(this.$$url?e+this.$$url:"")},this.$$parseLinkUrl=function(e,n){return Ne(t)==Ne(e)?(this.$$parse(e),!0):!1}}function We(t,e){this.$$html5=!0,ze.apply(this,arguments);var n=je(t);this.$$parseLinkUrl=function(i,r){if(r&&"#"===r[0])return this.hash(r.slice(1)),!0;var s,o;return t==Ne(i)?s=i:(o=Pe(n,i))?s=t+e+o:n===i+"/"&&(s=n),s&&this.$$parse(s),!!s},this.$$compose=function(){var n=tt(this.$$search),i=this.$$hash?"#"+et(this.$$hash):"";this.$$url=Ae(this.$$path)+(n?"?"+n:"")+i,this.$$absUrl=t+e+this.$$url}}function Le(t){return function(){return this[t]}}function qe(t,e){return function(n){return b(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function Ve(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return y(e)?(t=e,this):t},this.html5Mode=function(t){return I(t)?(e.enabled=t,this):$(t)?(I(t.enabled)&&(e.enabled=t.enabled),I(t.requireBase)&&(e.requireBase=t.requireBase),I(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,i,r,s,o){function a(t,e,n){var r=u.url(),s=u.$$state;try{i.url(t,e,n),u.$$state=i.state()}catch(o){throw u.url(r),u.$$state=s,o}}function l(t,e){n.$broadcast("$locationChangeSuccess",u.absUrl(),t,u.$$state,e)}var u,c,h,d=i.baseHref(),p=i.url();if(e.enabled){if(!d&&e.requireBase)throw Wr("nobase","$location in HTML5 mode requires a <base> tag to be present!");h=Re(p)+(d||"/"),c=r.history?Fe:We}else h=Ne(p),c=ze;u=new c(h,"#"+t),u.$$parseLinkUrl(p,p),u.$$state=i.state();var f=/^\s*(javascript|mailto):/i;s.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var r=Di(t.target);"a"!==j(r[0]);)if(r[0]===s[0]||!(r=r.parent())[0])return;var a=r.prop("href"),l=r.attr("href")||r.attr("xlink:href");$(a)&&"[object SVGAnimatedString]"===a.toString()&&(a=Cn(a.animVal).href),f.test(a)||!a||r.attr("target")||t.isDefaultPrevented()||u.$$parseLinkUrl(a,l)&&(t.preventDefault(),u.absUrl()!=i.url()&&(n.$apply(),o.angular["ff-684208-preventDefault"]=!0))}}),He(u.absUrl())!=He(p)&&i.url(u.absUrl(),!0);var m=!0;return i.onUrlChange(function(t,e){n.$evalAsync(function(){var i,r=u.absUrl(),s=u.$$state;u.$$parse(t),u.$$state=e,i=n.$broadcast("$locationChangeStart",t,r,e,s).defaultPrevented,u.absUrl()===t&&(i?(u.$$parse(r),u.$$state=s,a(r,!1,s)):(m=!1,l(r,s)))}),n.$$phase||n.$digest()}),n.$watch(function(){var t=He(i.url()),e=He(u.absUrl()),s=i.state(),o=u.$$replace,c=t!==e||u.$$html5&&r.history&&s!==u.$$state;(m||c)&&(m=!1,n.$evalAsync(function(){var e=u.absUrl(),i=n.$broadcast("$locationChangeStart",e,t,u.$$state,s).defaultPrevented;u.absUrl()===e&&(i?(u.$$parse(t),u.$$state=s):(c&&a(e,o,s===u.$$state?null:u.$$state),l(t,s)))})),u.$$replace=!1}),u}]}function Be(){var t=!0,e=this;this.debugEnabled=function(e){return y(e)?(t=e,this):t},this.$get=["$window",function(n){function i(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function r(t){var e=n.console||{},r=e[t]||e.log||m,o=!1;try{o=!!r.apply}catch(a){}return o?function(){var t=[];return s(arguments,function(e){t.push(i(e))}),r.apply(e,t)}:function(t,e){r(t,null==e?"":e)}}return{log:r("log"),info:r("info"),warn:r("warn"),error:r("error"),debug:function(){var n=r("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function Ue(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw qr("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Ye(t,e){if(t){if(t.constructor===t)throw qr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw qr("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw qr("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw qr("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function Ke(t,e){if(t){if(t.constructor===t)throw qr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===Vr||t===Br||t===Ur)throw qr("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Ge(t,e){return"undefined"!=typeof t?t:e}function Xe(t,e){return"undefined"==typeof t?e:"undefined"==typeof e?t:t+e}function Qe(t,e){var n=t(e);return!n.$stateful}function Je(t,e){var n,i;switch(t.type){case Xr.Program:n=!0,s(t.body,function(t){Je(t.expression,e),n=n&&t.expression.constant;
-
-}),t.constant=n;break;case Xr.Literal:t.constant=!0,t.toWatch=[];break;case Xr.UnaryExpression:Je(t.argument,e),t.constant=t.argument.constant,t.toWatch=t.argument.toWatch;break;case Xr.BinaryExpression:Je(t.left,e),Je(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=t.left.toWatch.concat(t.right.toWatch);break;case Xr.LogicalExpression:Je(t.left,e),Je(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=t.constant?[]:[t];break;case Xr.ConditionalExpression:Je(t.test,e),Je(t.alternate,e),Je(t.consequent,e),t.constant=t.test.constant&&t.alternate.constant&&t.consequent.constant,t.toWatch=t.constant?[]:[t];break;case Xr.Identifier:t.constant=!1,t.toWatch=[t];break;case Xr.MemberExpression:Je(t.object,e),t.computed&&Je(t.property,e),t.constant=t.object.constant&&(!t.computed||t.property.constant),t.toWatch=[t];break;case Xr.CallExpression:n=t.filter?Qe(e,t.callee.name):!1,i=[],s(t.arguments,function(t){Je(t,e),n=n&&t.constant,t.constant||i.push.apply(i,t.toWatch)}),t.constant=n,t.toWatch=t.filter&&Qe(e,t.callee.name)?i:[t];break;case Xr.AssignmentExpression:Je(t.left,e),Je(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=[t];break;case Xr.ArrayExpression:n=!0,i=[],s(t.elements,function(t){Je(t,e),n=n&&t.constant,t.constant||i.push.apply(i,t.toWatch)}),t.constant=n,t.toWatch=i;break;case Xr.ObjectExpression:n=!0,i=[],s(t.properties,function(t){Je(t.value,e),n=n&&t.value.constant,t.value.constant||i.push.apply(i,t.value.toWatch)}),t.constant=n,t.toWatch=i;break;case Xr.ThisExpression:t.constant=!1,t.toWatch=[]}}function Ze(t){if(1==t.length){var e=t[0].expression,i=e.toWatch;return 1!==i.length?i:i[0]!==e?i:n}}function tn(t){return t.type===Xr.Identifier||t.type===Xr.MemberExpression}function en(t){return 1===t.body.length&&tn(t.body[0].expression)?{type:Xr.AssignmentExpression,left:t.body[0].expression,right:{type:Xr.NGValueParameter},operator:"="}:void 0}function nn(t){return 0===t.body.length||1===t.body.length&&(t.body[0].expression.type===Xr.Literal||t.body[0].expression.type===Xr.ArrayExpression||t.body[0].expression.type===Xr.ObjectExpression)}function rn(t){return t.constant}function sn(t,e){this.astBuilder=t,this.$filter=e}function on(t,e){this.astBuilder=t,this.$filter=e}function an(t,e,n,i){Ye(t,i);for(var r,s=e.split("."),o=0;s.length>1;o++){r=Ue(s.shift(),i);var a=Ye(t[r],i);a||(a={},t[r]=a),t=a}return r=Ue(s.shift(),i),Ye(t[r],i),t[r]=n,n}function ln(t){return"constructor"==t}function un(t){return C(t.valueOf)?t.valueOf():Jr.call(t)}function cn(){var t=mt(),e=mt();this.$get=["$filter","$sniffer",function(i,r){function o(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=un(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function a(t,e,i,r,s){var a,l=r.inputs;if(1===l.length){var u=o;return l=l[0],t.$watch(function(t){var e=l(t);return o(e,u)||(a=r(t,n,n,[e]),u=e&&un(e)),a},e,i,s)}for(var c=[],h=[],d=0,p=l.length;p>d;d++)c[d]=o,h[d]=null;return t.$watch(function(t){for(var e=!1,i=0,s=l.length;s>i;i++){var u=l[i](t);(e||(e=!o(u,c[i])))&&(h[i]=u,c[i]=u&&un(u))}return e&&(a=r(t,n,n,h)),a},e,i,s)}function l(t,e,n,i){var r,s;return r=t.$watch(function(t){return i(t)},function(t,n,i){s=t,C(e)&&e.apply(this,arguments),y(t)&&i.$$postDigest(function(){y(s)&&r()})},n)}function u(t,e,n,i){function r(t){var e=!0;return s(t,function(t){y(t)||(e=!1)}),e}var o,a;return o=t.$watch(function(t){return i(t)},function(t,n,i){a=t,C(e)&&e.call(this,t,n,i),r(t)&&i.$$postDigest(function(){r(a)&&o()})},n)}function c(t,e,n,i){var r;return r=t.$watch(function(t){return i(t)},function(t,n,i){C(e)&&e.apply(this,arguments),r()},n)}function h(t,e){if(!e)return t;var n=t.$$watchDelegate,i=n!==u&&n!==l,r=i?function(n,i,r,s){var o=t(n,i,r,s);return e(o,n,i)}:function(n,i,r,s){var o=t(n,i,r,s),a=e(o,n,i);return y(o)?a:o};return t.$$watchDelegate&&t.$$watchDelegate!==a?r.$$watchDelegate=t.$$watchDelegate:e.$stateful||(r.$$watchDelegate=a,r.inputs=t.inputs?t.inputs:[t]),r}var d={csp:r.csp,expensiveChecks:!1},p={csp:r.csp,expensiveChecks:!0};return function(n,r,s){var o,f,g;switch(typeof n){case"string":n=n.trim(),g=n;var v=s?e:t;if(o=v[g],!o){":"===n.charAt(0)&&":"===n.charAt(1)&&(f=!0,n=n.substring(2));var b=s?p:d,y=new Gr(b),$=new Qr(y,i,b);o=$.parse(n),o.constant?o.$$watchDelegate=c:f?o.$$watchDelegate=o.literal?u:l:o.inputs&&(o.$$watchDelegate=a),v[g]=o}return h(o,r);case"function":return h(n,r);default:return m}}}]}function hn(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return pn(function(e){t.$evalAsync(e)},e)}]}function dn(){this.$get=["$browser","$exceptionHandler",function(t,e){return pn(function(e){t.defer(e)},e)}]}function pn(t,e){function r(t,e,n){function i(e){return function(n){r||(r=!0,e.call(t,n))}}var r=!1;return[i(e),i(n)]}function o(){this.$$state={status:0}}function a(t,e){return function(n){e.call(t,n)}}function l(t){var i,r,s;s=t.pending,t.processScheduled=!1,t.pending=n;for(var o=0,a=s.length;a>o;++o){r=s[o][0],i=s[o][t.status];try{C(i)?r.resolve(i(t.value)):1===t.status?r.resolve(t.value):r.reject(t.value)}catch(l){r.reject(l),e(l)}}}function u(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){l(e)}))}function c(){this.promise=new o,this.resolve=a(this,this.resolve),this.reject=a(this,this.reject),this.notify=a(this,this.notify)}function h(t){var e=new c,n=0,i=Ri(t)?[]:{};return s(t,function(t,r){n++,v(t).then(function(t){i.hasOwnProperty(r)||(i[r]=t,--n||e.resolve(i))},function(t){i.hasOwnProperty(r)||e.reject(t)})}),0===n&&e.resolve(i),e.promise}var d=i("$q",TypeError),p=function(){return new c};o.prototype={then:function(t,e,n){var i=new c;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,t,e,n]),this.$$state.status>0&&u(this.$$state),i.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return g(e,!0,t)},function(e){return g(e,!1,t)},e)}},c.prototype={resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(d("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,i;i=r(this,this.$$resolve,this.$$reject);try{($(t)||C(t))&&(n=t&&t.then),C(n)?(this.promise.$$state.status=-1,n.call(t,i[0],i[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,u(this.promise.$$state))}catch(s){i[1](s),e(s)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,u(this.promise.$$state)},notify:function(n){var i=this.promise.$$state.pending;this.promise.$$state.status<=0&&i&&i.length&&t(function(){for(var t,r,s=0,o=i.length;o>s;s++){r=i[s][0],t=i[s][3];try{r.notify(C(t)?t(n):n)}catch(a){e(a)}}})}};var f=function(t){var e=new c;return e.reject(t),e.promise},m=function(t,e){var n=new c;return e?n.resolve(t):n.reject(t),n.promise},g=function(t,e,n){var i=null;try{C(n)&&(i=n())}catch(r){return m(r,!1)}return O(i)?i.then(function(){return m(t,e)},function(t){return m(t,!1)}):m(t,e)},v=function(t,e,n,i){var r=new c;return r.resolve(t),r.promise.then(e,n,i)},b=function y(t){function e(t){i.resolve(t)}function n(t){i.reject(t)}if(!C(t))throw d("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof y))return new y(t);var i=new c;return t(e,n),i.promise};return b.defer=p,b.reject=f,b.when=v,b.all=h,b}function fn(){this.$get=["$window","$timeout",function(t,e){function n(){for(var t=0;t<c.length;t++){var e=c[t];e&&(c[t]=null,e())}u=c.length=0}function i(t){var e=c.length;return u++,c.push(t),0===e&&(l=a(n)),function(){e>=0&&(c[e]=null,e=null,0===--u&&l&&(l(),l=null,c.length=0))}}var r=t.requestAnimationFrame||t.webkitRequestAnimationFrame,s=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,o=!!r,a=o?function(t){var e=r(t);return function(){s(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};i.supported=o;var l,u=0,c=[];return i}]}function mn(){function t(t){function e(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=l(),this.$$ChildScope=null}return e.prototype=t,e}var e=10,n=i("$rootScope"),o=null,a=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(i,u,c,h){function d(t){t.currentScope.$$destroyed=!0}function p(){this.$id=l(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function f(t){if(k.$$phase)throw n("inprog","{0} already in progress",k.$$phase);k.$$phase=t}function g(){k.$$phase=null}function v(t,e){do t.$$watchersCount+=e;while(t=t.$parent)}function y(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function w(){}function x(){for(;E.length;)try{E.shift()()}catch(t){u(t)}a=null}function _(){null===a&&(a=h.defer(function(){k.$apply(x)}))}p.prototype={constructor:p,$new:function(e,n){var i;return n=n||this,e?(i=new p,i.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=t(this)),i=new this.$$ChildScope),i.$parent=n,i.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=i,n.$$childTail=i):n.$$childHead=n.$$childTail=i,(e||n!=this)&&i.$on("$destroy",d),i},$watch:function(t,e,n,i){var r=c(t);if(r.$$watchDelegate)return r.$$watchDelegate(this,e,n,r,t);var s=this,a=s.$$watchers,l={fn:e,last:w,get:r,exp:i||t,eq:!!n};return o=null,C(e)||(l.fn=m),a||(a=s.$$watchers=[]),a.unshift(l),v(this,1),function(){R(a,l)>=0&&v(s,-1),o=null}},$watchGroup:function(t,e){function n(){l=!1,u?(u=!1,e(r,r,a)):e(r,i,a)}var i=new Array(t.length),r=new Array(t.length),o=[],a=this,l=!1,u=!0;if(!t.length){var c=!0;return a.$evalAsync(function(){c&&e(r,r,a)}),function(){c=!1}}return 1===t.length?this.$watch(t[0],function(t,n,s){r[0]=t,i[0]=n,e(r,t===n?r:i,s)}):(s(t,function(t,e){var s=a.$watch(t,function(t,s){r[e]=t,i[e]=s,l||(l=!0,a.$evalAsync(n))});o.push(s)}),function(){for(;o.length;)o.shift()()})},$watchCollection:function(t,e){function n(t){s=t;var e,n,i,a,l;if(!b(s)){if($(s))if(r(s)){o!==p&&(o=p,g=o.length=0,h++),e=s.length,g!==e&&(h++,o.length=g=e);for(var u=0;e>u;u++)l=o[u],a=s[u],i=l!==l&&a!==a,i||l===a||(h++,o[u]=a)}else{o!==f&&(o=f={},g=0,h++),e=0;for(n in s)s.hasOwnProperty(n)&&(e++,a=s[n],l=o[n],n in o?(i=l!==l&&a!==a,i||l===a||(h++,o[n]=a)):(g++,o[n]=a,h++));if(g>e){h++;for(n in o)s.hasOwnProperty(n)||(g--,delete o[n])}}else o!==s&&(o=s,h++);return h}}function i(){if(m?(m=!1,e(s,s,l)):e(s,a,l),u)if($(s))if(r(s)){a=new Array(s.length);for(var t=0;t<s.length;t++)a[t]=s[t]}else{a={};for(var n in s)wi.call(s,n)&&(a[n]=s[n])}else a=s}n.$stateful=!0;var s,o,a,l=this,u=e.length>1,h=0,d=c(t,n),p=[],f={},m=!0,g=0;return this.$watch(d,i)},$digest:function(){var t,i,r,s,l,c,d,p,m,v,b=e,y=this,$=[];f("$digest"),h.$$checkUrlChange(),this===k&&null!==a&&(h.defer.cancel(a),x()),o=null;do{for(c=!1,p=y;D.length;){try{v=D.shift(),v.scope.$eval(v.expression,v.locals)}catch(_){u(_)}o=null}t:do{if(s=p.$$watchers)for(l=s.length;l--;)try{if(t=s[l])if((i=t.get(p))===(r=t.last)||(t.eq?W(i,r):"number"==typeof i&&"number"==typeof r&&isNaN(i)&&isNaN(r))){if(t===o){c=!1;break t}}else c=!0,o=t,t.last=t.eq?F(i,null):i,t.fn(i,r===w?i:r,p),5>b&&(m=4-b,$[m]||($[m]=[]),$[m].push({msg:C(t.exp)?"fn: "+(t.exp.name||t.exp.toString()):t.exp,newVal:i,oldVal:r}))}catch(_){u(_)}if(!(d=p.$$watchersCount&&p.$$childHead||p!==y&&p.$$nextSibling))for(;p!==y&&!(d=p.$$nextSibling);)p=p.$parent}while(p=d);if((c||D.length)&&!b--)throw g(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,$)}while(c||D.length);for(g();T.length;)try{T.shift()()}catch(_){u(_)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===k&&h.$$applicationDestroyed(),v(this,-this.$$watchersCount);for(var e in this.$$listenerCount)y(this,this.$$listenerCount[e],e);t&&t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t&&t.$$childTail==this&&(t.$$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=m,this.$on=this.$watch=this.$watchGroup=function(){return m},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(t,e){return c(t)(this,e)},$evalAsync:function(t,e){k.$$phase||D.length||h.defer(function(){D.length&&k.$digest()}),D.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){T.push(t)},$apply:function(t){try{return f("$apply"),this.$eval(t)}catch(e){u(e)}finally{g();try{k.$digest()}catch(e){throw u(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&E.push(e),_()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var i=this;do i.$$listenerCount[t]||(i.$$listenerCount[t]=0),i.$$listenerCount[t]++;while(i=i.$parent);var r=this;return function(){var i=n.indexOf(e);-1!==i&&(n[i]=null,y(r,1,t))}},$emit:function(t,e){var n,i,r,s=[],o=this,a=!1,l={name:t,targetScope:o,stopPropagation:function(){a=!0},preventDefault:function(){l.defaultPrevented=!0},defaultPrevented:!1},c=L([l],arguments,1);do{for(n=o.$$listeners[t]||s,l.currentScope=o,i=0,r=n.length;r>i;i++)if(n[i])try{n[i].apply(null,c)}catch(h){u(h)}else n.splice(i,1),i--,r--;if(a)return l.currentScope=null,l;o=o.$parent}while(o);return l.currentScope=null,l},$broadcast:function(t,e){var n=this,i=n,r=n,s={name:t,targetScope:n,preventDefault:function(){s.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[t])return s;for(var o,a,l,c=L([s],arguments,1);i=r;){for(s.currentScope=i,o=i.$$listeners[t]||[],a=0,l=o.length;l>a;a++)if(o[a])try{o[a].apply(null,c)}catch(h){u(h)}else o.splice(a,1),a--,l--;if(!(r=i.$$listenerCount[t]&&i.$$childHead||i!==n&&i.$$nextSibling))for(;i!==n&&!(r=i.$$nextSibling);)i=i.$parent}return s.currentScope=null,s}};var k=new p,D=k.$$asyncQueue=[],T=k.$$postDigestQueue=[],E=k.$$applyAsyncQueue=[];return k}]}function gn(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return y(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return y(t)?(e=t,this):e},this.$get=function(){return function(n,i){var r,s=i?e:t;return r=Cn(n).href,""===r||r.match(s)?n:"unsafe:"+r}}}function vn(t){if("self"===t)return t;if(x(t)){if(t.indexOf("***")>-1)throw Zr("iwcard","Illegal sequence *** in string matcher.  String: {0}",t);return t=Wi(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(D(t))return new RegExp("^"+t.source+"$");throw Zr("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function bn(t){var e=[];return y(t)&&s(t,function(t){e.push(vn(t))}),e}function yn(){this.SCE_CONTEXTS=ts;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=bn(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=bn(t)),e},this.$get=["$injector",function(i){function r(t,e){return"self"===t?Dn(e):!!t.exec(e.href)}function s(n){var i,s,o=Cn(n.toString()),a=!1;for(i=0,s=t.length;s>i;i++)if(r(t[i],o)){a=!0;break}if(a)for(i=0,s=e.length;s>i;i++)if(r(e[i],o)){a=!1;break}return a}function o(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function a(t,e){var i=d.hasOwnProperty(t)?d[t]:null;if(!i)throw Zr("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||e===n||""===e)return e;if("string"!=typeof e)throw Zr("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new i(e)}function l(t){return t instanceof h?t.$$unwrapTrustedValue():t}function u(t,e){if(null===e||e===n||""===e)return e;var i=d.hasOwnProperty(t)?d[t]:null;if(i&&e instanceof i)return e.$$unwrapTrustedValue();if(t===ts.RESOURCE_URL){if(s(e))return e;throw Zr("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",e.toString())}if(t===ts.HTML)return c(e);throw Zr("unsafe","Attempting to use an unsafe value in a safe context.")}var c=function(t){throw Zr("unsafe","Attempting to use an unsafe value in a safe context.")};i.has("$sanitize")&&(c=i.get("$sanitize"));var h=o(),d={};return d[ts.HTML]=o(h),d[ts.CSS]=o(h),d[ts.URL]=o(h),d[ts.JS]=o(h),d[ts.RESOURCE_URL]=o(d[ts.URL]),{trustAs:a,getTrusted:u,valueOf:l}}]}function $n(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>Ci)throw Zr("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var i=z(ts);i.isEnabled=function(){return t},i.trustAs=n.trustAs,i.getTrusted=n.getTrusted,i.valueOf=n.valueOf,t||(i.trustAs=i.getTrusted=function(t,e){return e},i.valueOf=g),i.parseAs=function(t,n){var r=e(n);return r.literal&&r.constant?r:e(n,function(e){return i.getTrusted(t,e)})};var r=i.parseAs,o=i.getTrusted,a=i.trustAs;return s(ts,function(t,e){var n=$i(e);i[wt("parse_as_"+n)]=function(e){return r(t,e)},i[wt("get_trusted_"+n)]=function(e){return o(t,e)},i[wt("trust_as_"+n)]=function(e){return a(t,e)}}),i}]}function wn(){this.$get=["$window","$document",function(t,e){var n,i,r={},s=p((/android (\d+)/.exec($i((t.navigator||{}).userAgent))||[])[1]),o=/Boxee/i.test((t.navigator||{}).userAgent),a=e[0]||{},l=/^(Moz|webkit|ms)(?=[A-Z])/,u=a.body&&a.body.style,c=!1,h=!1;if(u){for(var d in u)if(i=l.exec(d)){n=i[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in u&&"webkit"),c=!!("transition"in u||n+"Transition"in u),h=!!("animation"in u||n+"Animation"in u),!s||c&&h||(c=x(u.webkitTransition),h=x(u.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>s||o),hasEvent:function(t){if("input"===t&&11>=Ci)return!1;if(b(r[t])){var e=a.createElement("div");r[t]="on"+t in e}return r[t]},csp:Li(),vendorPrefix:n,transitions:c,animations:h,android:s}}]}function xn(){this.$get=["$templateCache","$http","$q",function(t,e,n){function i(r,s){function o(t){if(!s)throw Sr("tpload","Failed to load template: {0} (HTTP status: {1} {2})",r,t.status,t.statusText);return n.reject(t)}i.totalPendingRequests++;var a=e.defaults&&e.defaults.transformResponse;Ri(a)?a=a.filter(function(t){return t!==be}):a===be&&(a=null);var l={cache:t,transformResponse:a};return e.get(r,l)["finally"](function(){i.totalPendingRequests--}).then(function(e){return t.put(r,e.data),e.data},o)}return i.totalPendingRequests=0,i}]}function _n(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var i={};return i.findBindings=function(t,e,n){var i=t.getElementsByClassName("ng-binding"),r=[];return s(i,function(t){var i=Ni.element(t).data("$binding");i&&s(i,function(i){if(n){var s=new RegExp("(^|\\s)"+Wi(e)+"(\\s|\\||$)");s.test(i)&&r.push(t)}else-1!=i.indexOf(e)&&r.push(t)})}),r},i.findModels=function(t,e,n){for(var i=["ng-","data-ng-","ng\\:"],r=0;r<i.length;++r){var s=n?"=":"*=",o="["+i[r]+"model"+s+'"'+e+'"]',a=t.querySelectorAll(o);if(a.length)return a}},i.getLocation=function(){return n.url()},i.setLocation=function(e){e!==n.url()&&(n.url(e),t.$digest())},i.whenStable=function(t){e.notifyWhenNoOutstandingRequests(t)},i}]}function kn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(t,e,n,i,r){function s(s,a,l){C(s)||(l=a,a=s,s=m);var u,c=q(arguments,3),h=y(l)&&!l,d=(h?i:n).defer(),p=d.promise;return u=e.defer(function(){try{d.resolve(s.apply(null,c))}catch(e){d.reject(e),r(e)}finally{delete o[p.$$timeoutId]}h||t.$apply()},a),p.$$timeoutId=u,o[u]=d,p}var o={};return s.cancel=function(t){return t&&t.$$timeoutId in o?(o[t.$$timeoutId].reject("canceled"),delete o[t.$$timeoutId],e.defer.cancel(t.$$timeoutId)):!1},s}]}function Cn(t){var e=t;return Ci&&(es.setAttribute("href",e),e=es.href),es.setAttribute("href",e),{href:es.href,protocol:es.protocol?es.protocol.replace(/:$/,""):"",host:es.host,search:es.search?es.search.replace(/^\?/,""):"",hash:es.hash?es.hash.replace(/^#/,""):"",hostname:es.hostname,port:es.port,pathname:"/"===es.pathname.charAt(0)?es.pathname:"/"+es.pathname}}function Dn(t){var e=x(t)?Cn(t):t;return e.protocol===ns.protocol&&e.host===ns.host}function Tn(){this.$get=v(t)}function En(t){function e(t){try{return decodeURIComponent(t)}catch(e){return t}}var i=t[0]||{},r={},s="";return function(){var t,o,a,l,u,c=i.cookie||"";if(c!==s)for(s=c,t=s.split("; "),r={},a=0;a<t.length;a++)o=t[a],l=o.indexOf("="),l>0&&(u=e(o.substring(0,l)),r[u]===n&&(r[u]=e(o.substring(l+1))));return r}}function Sn(){this.$get=En}function Mn(t){function e(i,r){if($(i)){var o={};return s(i,function(t,n){o[n]=e(n,t)}),o}return t.factory(i+n,r)}var n="Filter";this.register=e,this.$get=["$injector",function(t){return function(e){return t.get(e+n)}}],e("currency",Hn),e("date",Gn),e("filter",An),e("json",Xn),e("limitTo",Qn),e("lowercase",as),e("number",jn),e("orderBy",Jn),e("uppercase",ls)}function An(){return function(t,e,n){if(!r(t)){if(null==t)return t;throw i("filter")("notarray","Expected array but received: {0}",t)}var s,o,a=Nn(e);switch(a){case"function":s=e;break;case"boolean":case"null":case"number":case"string":o=!0;case"object":s=On(e,n,o);break;default:return t}return Array.prototype.filter.call(t,s)}}function In(t){return C(t.toString)&&t.toString!==Object.prototype.toString}function On(t,e,n){var i,r=$(t)&&"$"in t;return e===!0?e=W:C(e)||(e=function(t,e){return b(t)?!1:null===t||null===e?t===e:$(e)||$(t)&&!In(t)?!1:(t=$i(""+t),e=$i(""+e),-1!==t.indexOf(e))}),i=function(i){return r&&!$(i)?Pn(i,t.$,e,!1):Pn(i,t,e,n)}}function Pn(t,e,n,i,r){var s=Nn(t),o=Nn(e);if("string"===o&&"!"===e.charAt(0))return!Pn(t,e.substring(1),n,i);if(Ri(t))return t.some(function(t){return Pn(t,e,n,i)});switch(s){case"object":var a;if(i){for(a in t)if("$"!==a.charAt(0)&&Pn(t[a],e,n,!0))return!0;return r?!1:Pn(t,e,n,!1)}if("object"===o){for(a in e){var l=e[a];if(!C(l)&&!b(l)){var u="$"===a,c=u?t:t[a];if(!Pn(c,l,n,u,u))return!1}}return!0}return n(t,e);case"function":return!1;default:return n(t,e)}}function Nn(t){return null===t?"null":typeof t}function Hn(t){var e=t.NUMBER_FORMATS;return function(t,n,i){return b(n)&&(n=e.CURRENCY_SYM),b(i)&&(i=e.PATTERNS[1].maxFrac),null==t?t:Rn(t,e.PATTERNS[1],e.GROUP_SEP,e.DECIMAL_SEP,i).replace(/\u00A4/g,n)}}function jn(t){var e=t.NUMBER_FORMATS;return function(t,n){return null==t?t:Rn(t,e.PATTERNS[0],e.GROUP_SEP,e.DECIMAL_SEP,n)}}function Rn(t,e,n,i,r){if($(t))return"";var s=0>t;t=Math.abs(t);var o=t===1/0;if(!o&&!isFinite(t))return"";var a=t+"",l="",u=!1,c=[];if(o&&(l="∞"),!o&&-1!==a.indexOf("e")){var h=a.match(/([\d\.]+)e(-?)(\d+)/);h&&"-"==h[2]&&h[3]>r+1?t=0:(l=a,u=!0)}if(o||u)r>0&&1>t&&(l=t.toFixed(r),t=parseFloat(l));else{var d=(a.split(is)[1]||"").length;b(r)&&(r=Math.min(Math.max(e.minFrac,d),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+r)).toString()+"e"+-r);var p=(""+t).split(is),f=p[0];p=p[1]||"";var m,g=0,v=e.lgSize,y=e.gSize;if(f.length>=v+y)for(g=f.length-v,m=0;g>m;m++)(g-m)%y===0&&0!==m&&(l+=n),l+=f.charAt(m);for(m=g;m<f.length;m++)(f.length-m)%v===0&&0!==m&&(l+=n),l+=f.charAt(m);for(;p.length<r;)p+="0";r&&"0"!==r&&(l+=i+p.substr(0,r))}return 0===t&&(s=!1),c.push(s?e.negPre:e.posPre,l,s?e.negSuf:e.posSuf),c.join("")}function Fn(t,e,n){var i="";for(0>t&&(i="-",t=-t),t=""+t;t.length<e;)t="0"+t;return n&&(t=t.substr(t.length-e)),i+t}function zn(t,e,n,i){return n=n||0,function(r){var s=r["get"+t]();return(n>0||s>-n)&&(s+=n),0===s&&-12==n&&(s=12),Fn(s,e,i)}}function Wn(t,e){return function(n,i){var r=n["get"+t](),s=xi(e?"SHORT"+t:t);return i[s][r]}}function Ln(t,e,n){var i=-1*n,r=i>=0?"+":"";return r+=Fn(Math[i>0?"floor":"ceil"](i/60),2)+Fn(Math.abs(i%60),2)}function qn(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function Vn(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function Bn(t){return function(e){var n=qn(e.getFullYear()),i=Vn(e),r=+i-+n,s=1+Math.round(r/6048e5);return Fn(s,t)}}function Un(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function Yn(t,e){return t.getFullYear()<=0?e.ERAS[0]:e.ERAS[1]}function Kn(t,e){return t.getFullYear()<=0?e.ERANAMES[0]:e.ERANAMES[1]}function Gn(t){function e(t){var e;if(e=t.match(n)){var i=new Date(0),r=0,s=0,o=e[8]?i.setUTCFullYear:i.setFullYear,a=e[8]?i.setUTCHours:i.setHours;e[9]&&(r=p(e[9]+e[10]),s=p(e[9]+e[11])),o.call(i,p(e[1]),p(e[2])-1,p(e[3]));var l=p(e[4]||0)-r,u=p(e[5]||0)-s,c=p(e[6]||0),h=Math.round(1e3*parseFloat("0."+(e[7]||0)));return a.call(i,l,u,c,h),i}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,i,r){var o,a,l="",u=[];if(i=i||"mediumDate",i=t.DATETIME_FORMATS[i]||i,x(n)&&(n=os.test(n)?p(n):e(n)),_(n)&&(n=new Date(n)),!k(n)||!isFinite(n.getTime()))return n;for(;i;)a=ss.exec(i),a?(u=L(u,a,1),i=u.pop()):(u.push(i),i=null);var c=n.getTimezoneOffset();return r&&(c=K(r,n.getTimezoneOffset()),n=X(n,r,!0)),s(u,function(e){o=rs[e],l+=o?o(n,t.DATETIME_FORMATS,c):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}}function Xn(){return function(t,e){return b(e)&&(e=2),U(t,e)}}function Qn(){return function(t,e,n){return e=Math.abs(Number(e))===1/0?Number(e):p(e),isNaN(e)?t:(_(t)&&(t=t.toString()),Ri(t)||x(t)?(n=!n||isNaN(n)?0:p(n),n=0>n&&n>=-t.length?t.length+n:n,e>=0?t.slice(n,n+e):0===n?t.slice(e,t.length):t.slice(Math.max(0,n+e),n)):t)}}function Jn(t){return function(e,n,i){function s(t,e){for(var i=0;i<n.length;i++){var r=n[i](t,e);if(0!==r)return r}return 0}function o(t,e){return e?function(e,n){return t(n,e)}:t}function a(t){switch(typeof t){case"number":case"boolean":case"string":return!0;default:return!1}}function l(t){return null===t?"null":"function"==typeof t.valueOf&&(t=t.valueOf(),a(t))?t:"function"==typeof t.toString&&(t=t.toString(),a(t))?t:""}function u(t,e){var n=typeof t,i=typeof e;return n===i&&"object"===n&&(t=l(t),e=l(e)),n===i?("string"===n&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e?0:e>t?-1:1):i>n?-1:1}return r(e)?(n=Ri(n)?n:[n],0===n.length&&(n=["+"]),n=n.map(function(e){var n=!1,i=e||g;if(x(e)){if(("+"==e.charAt(0)||"-"==e.charAt(0))&&(n="-"==e.charAt(0),e=e.substring(1)),""===e)return o(u,n);if(i=t(e),i.constant){var r=i();return o(function(t,e){return u(t[r],e[r])},n)}}return o(function(t,e){return u(i(t),i(e))},n)}),Si.call(e).sort(o(s,i))):e}}function Zn(t){return C(t)&&(t={link:t}),t.restrict=t.restrict||"AC",v(t)}function ti(t,e){t.$name=e}function ei(t,e,i,r,o){var a=this,l=[],u=a.$$parentForm=t.parent().controller("form")||hs;a.$error={},a.$$success={},a.$pending=n,a.$name=o(e.name||e.ngForm||"")(i),a.$dirty=!1,a.$pristine=!0,a.$valid=!0,a.$invalid=!1,a.$submitted=!1,u.$addControl(a),a.$rollbackViewValue=function(){s(l,function(t){t.$rollbackViewValue()})},a.$commitViewValue=function(){s(l,function(t){t.$commitViewValue()})},a.$addControl=function(t){dt(t.$name,"input"),l.push(t),t.$name&&(a[t.$name]=t)},a.$$renameControl=function(t,e){var n=t.$name;a[n]===t&&delete a[n],a[e]=t,t.$name=e},a.$removeControl=function(t){t.$name&&a[t.$name]===t&&delete a[t.$name],s(a.$pending,function(e,n){a.$setValidity(n,null,t)}),s(a.$error,function(e,n){a.$setValidity(n,null,t)}),s(a.$$success,function(e,n){a.$setValidity(n,null,t)}),R(l,t)},gi({ctrl:this,$element:t,set:function(t,e,n){var i=t[e];if(i){var r=i.indexOf(n);-1===r&&i.push(n)}else t[e]=[n]},unset:function(t,e,n){var i=t[e];i&&(R(i,n),0===i.length&&delete t[e])},parentForm:u,$animate:r}),a.$setDirty=function(){r.removeClass(t,Ys),r.addClass(t,Ks),a.$dirty=!0,a.$pristine=!1,u.$setDirty()},a.$setPristine=function(){r.setClass(t,Ys,Ks+" "+ds),a.$dirty=!1,a.$pristine=!0,a.$submitted=!1,s(l,function(t){t.$setPristine()})},a.$setUntouched=function(){s(l,function(t){t.$setUntouched()})},a.$setSubmitted=function(){r.addClass(t,ds),a.$submitted=!0,u.$setSubmitted()}}function ni(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function ii(t,e,n,i,r,s){ri(t,e,n,i,r,s),ni(i)}function ri(t,e,n,i,r,s){var o=$i(e[0].type);if(!r.android){var a=!1;e.on("compositionstart",function(t){a=!0}),e.on("compositionend",function(){a=!1,l()})}var l=function(t){if(u&&(s.defer.cancel(u),u=null),!a){var r=e.val(),l=t&&t.type;"password"===o||n.ngTrim&&"false"===n.ngTrim||(r=zi(r)),(i.$viewValue!==r||""===r&&i.$$hasNativeValidators)&&i.$setViewValue(r,l)}};if(r.hasEvent("input"))e.on("input",l);else{var u,c=function(t,e,n){u||(u=s.defer(function(){u=null,e&&e.value===n||l(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||c(t,this,this.value)}),r.hasEvent("paste")&&e.on("paste cut",c)}e.on("change",l),i.$render=function(){e.val(i.$isEmpty(i.$viewValue)?"":i.$viewValue)}}function si(t,e){if(k(t))return t;if(x(t)){xs.lastIndex=0;var n=xs.exec(t);if(n){var i=+n[1],r=+n[2],s=0,o=0,a=0,l=0,u=qn(i),c=7*(r-1);return e&&(s=e.getHours(),o=e.getMinutes(),a=e.getSeconds(),l=e.getMilliseconds()),new Date(i,0,u.getDate()+c,s,o,a,l)}}return 0/0}function oi(t,e){return function(n,i){var r,o;if(k(n))return n;if(x(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),gs.test(n))return new Date(n);if(t.lastIndex=0,r=t.exec(n))return r.shift(),o=i?{yyyy:i.getFullYear(),MM:i.getMonth()+1,dd:i.getDate(),HH:i.getHours(),mm:i.getMinutes(),ss:i.getSeconds(),sss:i.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},s(r,function(t,n){n<e.length&&(o[e[n]]=+t)}),new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0)}return 0/0}}function ai(t,e,i,r){return function(s,o,a,l,u,c,h){function d(t){return t&&!(t.getTime&&t.getTime()!==t.getTime())}function p(t){return y(t)?k(t)?t:i(t):n}li(s,o,a,l),ri(s,o,a,l,u,c);var f,m=l&&l.$options&&l.$options.timezone;if(l.$$parserName=t,l.$parsers.push(function(t){if(l.$isEmpty(t))return null;if(e.test(t)){var r=i(t,f);return m&&(r=X(r,m)),r}return n}),l.$formatters.push(function(t){if(t&&!k(t))throw Js("datefmt","Expected `{0}` to be a date",t);return d(t)?(f=t,f&&m&&(f=X(f,m,!0)),h("date")(t,r,m)):(f=null,"")}),y(a.min)||a.ngMin){var g;l.$validators.min=function(t){return!d(t)||b(g)||i(t)>=g},a.$observe("min",function(t){g=p(t),l.$validate()})}if(y(a.max)||a.ngMax){var v;l.$validators.max=function(t){return!d(t)||b(v)||i(t)<=v},a.$observe("max",function(t){v=p(t),l.$validate()})}}}function li(t,e,i,r){var s=e[0],o=r.$$hasNativeValidators=$(s.validity);o&&r.$parsers.push(function(t){var i=e.prop(yi)||{};return i.badInput&&!i.typeMismatch?n:t})}function ui(t,e,i,r,s,o){if(li(t,e,i,r),ri(t,e,i,r,s,o),r.$$parserName="number",r.$parsers.push(function(t){return r.$isEmpty(t)?null:ys.test(t)?parseFloat(t):n}),r.$formatters.push(function(t){if(!r.$isEmpty(t)){if(!_(t))throw Js("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),y(i.min)||i.ngMin){var a;r.$validators.min=function(t){return r.$isEmpty(t)||b(a)||t>=a},i.$observe("min",function(t){y(t)&&!_(t)&&(t=parseFloat(t,10)),a=_(t)&&!isNaN(t)?t:n,r.$validate()})}if(y(i.max)||i.ngMax){var l;r.$validators.max=function(t){return r.$isEmpty(t)||b(l)||l>=t},i.$observe("max",function(t){y(t)&&!_(t)&&(t=parseFloat(t,10)),l=_(t)&&!isNaN(t)?t:n,r.$validate()})}}function ci(t,e,n,i,r,s){ri(t,e,n,i,r,s),ni(i),i.$$parserName="url",i.$validators.url=function(t,e){
-var n=t||e;return i.$isEmpty(n)||vs.test(n)}}function hi(t,e,n,i,r,s){ri(t,e,n,i,r,s),ni(i),i.$$parserName="email",i.$validators.email=function(t,e){var n=t||e;return i.$isEmpty(n)||bs.test(n)}}function di(t,e,n,i){b(n.name)&&e.attr("name",l());var r=function(t){e[0].checked&&i.$setViewValue(n.value,t&&t.type)};e.on("click",r),i.$render=function(){var t=n.value;e[0].checked=t==i.$viewValue},n.$observe("value",i.$render)}function pi(t,e,n,r,s){var o;if(y(r)){if(o=t(r),!o.constant)throw i("ngModel")("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(e)}return s}function fi(t,e,n,i,r,s,o,a){var l=pi(a,t,"ngTrueValue",n.ngTrueValue,!0),u=pi(a,t,"ngFalseValue",n.ngFalseValue,!1),c=function(t){i.$setViewValue(e[0].checked,t&&t.type)};e.on("click",c),i.$render=function(){e[0].checked=i.$viewValue},i.$isEmpty=function(t){return t===!1},i.$formatters.push(function(t){return W(t,l)}),i.$parsers.push(function(t){return t?l:u})}function mi(t,e){return t="ngClass"+t,["$animate",function(n){function i(t,e){var n=[];t:for(var i=0;i<t.length;i++){for(var r=t[i],s=0;s<e.length;s++)if(r==e[s])continue t;n.push(r)}return n}function r(t){var e=[];return Ri(t)?(s(t,function(t){e=e.concat(r(t))}),e):x(t)?t.split(" "):$(t)?(s(t,function(t,n){t&&(e=e.concat(n.split(" ")))}),e):t}return{restrict:"AC",link:function(o,a,l){function u(t){var e=h(t,1);l.$addClass(e)}function c(t){var e=h(t,-1);l.$removeClass(e)}function h(t,e){var n=a.data("$classCounts")||mt(),i=[];return s(t,function(t){(e>0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&i.push(t))}),a.data("$classCounts",n),i.join(" ")}function d(t,e){var r=i(e,t),s=i(t,e);r=h(r,1),s=h(s,-1),r&&r.length&&n.addClass(a,r),s&&s.length&&n.removeClass(a,s)}function p(t){if(e===!0||o.$index%2===e){var n=r(t||[]);if(f){if(!W(t,f)){var i=r(f);d(i,n)}}else u(n)}f=z(t)}var f;o.$watch(l[t],p,!0),l.$observe("class",function(e){p(o.$eval(l[t]))}),"ngClass"!==t&&o.$watch("$index",function(n,i){var s=1&n;if(s!==(1&i)){var a=r(o.$eval(l[t]));s===e?u(a):c(a)}})}}}]}function gi(t){function e(t,e,l){e===n?i("$pending",t,l):r("$pending",t,l),I(e)?e?(h(a.$error,t,l),c(a.$$success,t,l)):(c(a.$error,t,l),h(a.$$success,t,l)):(h(a.$error,t,l),h(a.$$success,t,l)),a.$pending?(s(Qs,!0),a.$valid=a.$invalid=n,o("",null)):(s(Qs,!1),a.$valid=vi(a.$error),a.$invalid=!a.$valid,o("",a.$valid));var u;u=a.$pending&&a.$pending[t]?n:a.$error[t]?!1:a.$$success[t]?!0:null,o(t,u),d.$setValidity(t,u,a)}function i(t,e,n){a[t]||(a[t]={}),c(a[t],e,n)}function r(t,e,i){a[t]&&h(a[t],e,i),vi(a[t])&&(a[t]=n)}function s(t,e){e&&!u[t]?(p.addClass(l,t),u[t]=!0):!e&&u[t]&&(p.removeClass(l,t),u[t]=!1)}function o(t,e){t=t?"-"+lt(t,"-"):"",s(Bs+t,e===!0),s(Us+t,e===!1)}var a=t.ctrl,l=t.$element,u={},c=t.set,h=t.unset,d=t.parentForm,p=t.$animate;u[Us]=!(u[Bs]=l.hasClass(Bs)),a.$setValidity=e}function vi(t){if(t)for(var e in t)return!1;return!0}var bi=/^\/(.+)\/([a-z]*)$/,yi="validity",$i=function(t){return x(t)?t.toLowerCase():t},wi=Object.prototype.hasOwnProperty,xi=function(t){return x(t)?t.toUpperCase():t},_i=function(t){return x(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},ki=function(t){return x(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&($i=_i,xi=ki);var Ci,Di,Ti,Ei,Si=[].slice,Mi=[].splice,Ai=[].push,Ii=Object.prototype.toString,Oi=Object.getPrototypeOf,Pi=i("ng"),Ni=t.angular||(t.angular={}),Hi=0;Ci=e.documentMode,m.$inject=[],g.$inject=[];var ji,Ri=Array.isArray,Fi=/^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/,zi=function(t){return x(t)?t.trim():t},Wi=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Li=function(){if(y(Li.isActive_))return Li.isActive_;var t=!(!e.querySelector("[ng-csp]")&&!e.querySelector("[data-ng-csp]"));if(!t)try{new Function("")}catch(n){t=!0}return Li.isActive_=t},qi=function(){if(y(qi.name_))return qi.name_;var t,n,i,r,s=Vi.length;for(n=0;s>n;++n)if(i=Vi[n],t=e.querySelector("["+i.replace(":","\\:")+"jq]")){r=t.getAttribute(i+"jq");break}return qi.name_=r},Vi=["ng-","data-ng-","ng:","x-ng-"],Bi=/[A-Z]/g,Ui=!1,Yi=1,Ki=2,Gi=3,Xi=8,Qi=9,Ji=11,Zi={full:"1.4.0",major:1,minor:4,dot:0,codeName:"jaracimrman-existence"};Dt.expando="ng339";var tr=Dt.cache={},er=1,nr=function(t,e,n){t.addEventListener(e,n,!1)},ir=function(t,e,n){t.removeEventListener(e,n,!1)};Dt._data=function(t){return this.cache[t[this.expando]]||{}};var rr=/([\:\-\_]+(.))/g,sr=/^moz([A-Z])/,or={mouseleave:"mouseout",mouseenter:"mouseover"},ar=i("jqLite"),lr=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ur=/<|&#?\w+;/,cr=/<([\w:]+)/,hr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,dr={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};dr.optgroup=dr.option,dr.tbody=dr.tfoot=dr.colgroup=dr.caption=dr.thead,dr.th=dr.td;var pr=Dt.prototype={ready:function(n){function i(){r||(r=!0,n())}var r=!1;"complete"===e.readyState?setTimeout(i):(this.on("DOMContentLoaded",i),Dt(t).on("load",i))},toString:function(){var t=[];return s(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return Di(t>=0?this[t]:this[this.length+t])},length:0,push:Ai,sort:[].sort,splice:[].splice},fr={};s("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){fr[$i(t)]=t});var mr={};s("input,select,option,textarea,button,form,details".split(","),function(t){mr[t]=!0});var gr={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};s({data:It,removeData:Mt},function(t,e){Dt[e]=t}),s({data:It,inheritedData:Rt,scope:function(t){return Di.data(t,"$scope")||Rt(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return Di.data(t,"$isolateScope")||Di.data(t,"$isolateScopeNoTemplate")},controller:jt,injector:function(t){return Rt(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:Ot,css:function(t,e,n){return e=wt(e),y(n)?void(t.style[e]=n):t.style[e]},attr:function(t,e,i){var r=t.nodeType;if(r!==Gi&&r!==Ki&&r!==Xi){var s=$i(e);if(fr[s]){if(!y(i))return t[e]||(t.attributes.getNamedItem(e)||m).specified?s:n;i?(t[e]=!0,t.setAttribute(e,s)):(t[e]=!1,t.removeAttribute(s))}else if(y(i))t.setAttribute(e,i);else if(t.getAttribute){var o=t.getAttribute(e,2);return null===o?n:o}}},prop:function(t,e,n){return y(n)?void(t[e]=n):t[e]},text:function(){function t(t,e){if(b(e)){var n=t.nodeType;return n===Yi||n===Gi?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if(b(e)){if(t.multiple&&"select"===j(t)){var n=[];return s(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return b(e)?t.innerHTML:(Et(t,!0),void(t.innerHTML=e))},empty:Ft},function(t,e){Dt.prototype[e]=function(e,i){var r,s,o=this.length;if(t!==Ft&&(2==t.length&&t!==Ot&&t!==jt?e:i)===n){if($(e)){for(r=0;o>r;r++)if(t===It)t(this[r],e);else for(s in e)t(this[r],s,e[s]);return this}for(var a=t.$dv,l=a===n?Math.min(o,1):o,u=0;l>u;u++){var c=t(this[u],e,i);a=a?a+c:c}return a}for(r=0;o>r;r++)t(this[r],e,i);return this}}),s({removeData:Mt,on:function So(t,e,n,i){if(y(i))throw ar("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(_t(t)){var r=At(t,!0),s=r.events,o=r.handle;o||(o=r.handle=Vt(t,s));for(var a=e.indexOf(" ")>=0?e.split(" "):[e],l=a.length;l--;){e=a[l];var u=s[e];u||(s[e]=[],"mouseenter"===e||"mouseleave"===e?So(t,or[e],function(t){var n=this,i=t.relatedTarget;(!i||i!==n&&!n.contains(i))&&o(t,e)}):"$destroy"!==e&&nr(t,e,o),u=s[e]),u.push(n)}}},off:St,one:function(t,e,n){t=Di(t),t.on(e,function i(){t.off(e,n),t.off(e,i)}),t.on(e,n)},replaceWith:function(t,e){var n,i=t.parentNode;Et(t),s(new Dt(e),function(e){n?i.insertBefore(e,n.nextSibling):i.replaceChild(e,t),n=e})},children:function(t){var e=[];return s(t.childNodes,function(t){t.nodeType===Yi&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===Yi||n===Ji){e=new Dt(e);for(var i=0,r=e.length;r>i;i++){var s=e[i];t.appendChild(s)}}},prepend:function(t,e){if(t.nodeType===Yi){var n=t.firstChild;s(new Dt(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=Di(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:zt,detach:function(t){zt(t,!0)},after:function(t,e){var n=t,i=t.parentNode;e=new Dt(e);for(var r=0,s=e.length;s>r;r++){var o=e[r];i.insertBefore(o,n.nextSibling),n=o}},addClass:Nt,removeClass:Pt,toggleClass:function(t,e,n){e&&s(e.split(" "),function(e){var i=n;b(i)&&(i=!Ot(t,e)),(i?Nt:Pt)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==Ji?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:Tt,triggerHandler:function(t,e,n){var i,r,o,a=e.type||e,l=At(t),u=l&&l.events,c=u&&u[a];c&&(i={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:m,type:a,target:t},e.type&&(i=h(i,e)),r=z(c),o=n?[i].concat(n):[i],s(r,function(e){i.isImmediatePropagationStopped()||e.apply(t,o)}))}},function(t,e){Dt.prototype[e]=function(e,n,i){for(var r,s=0,o=this.length;o>s;s++)b(r)?(r=t(this[s],e,n,i),y(r)&&(r=Di(r))):Ht(r,t(this[s],e,n,i));return y(r)?r:this},Dt.prototype.bind=Dt.prototype.on,Dt.prototype.unbind=Dt.prototype.off}),Yt.prototype={put:function(t,e){this[Ut(t,this.nextUid)]=e},get:function(t){return this[Ut(t,this.nextUid)]},remove:function(t){var e=this[t=Ut(t,this.nextUid)];return delete this[t],e}};var vr=[function(){this.$get=[function(){return Yt}]}],br=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,yr=/,/,$r=/^\s*(_?)(\S+?)\1\s*$/,wr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,xr=i("$injector");Xt.$$annotate=Gt;var _r=i("$animate"),kr=1,Cr="ng-animate",Dr=function(){this.$get=["$q","$$rAF",function(t,e){function n(){}return n.all=m,n.chain=m,n.prototype={end:m,cancel:m,resume:m,pause:m,complete:m,then:function(n,i){return t(function(t){e(function(){t()})}).then(n,i)}},n}]},Tr=function(){var t=new Yt,e=[];this.$get=["$$AnimateRunner","$rootScope",function(n,i){function r(n,r,o){var a=t.get(n);a||(t.put(n,a={}),e.push(n)),r&&s(r.split(" "),function(t){t&&(a[t]=!0)}),o&&s(o.split(" "),function(t){t&&(a[t]=!1)}),e.length>1||i.$$postDigest(function(){s(e,function(e){var n=t.get(e);if(n){var i=te(e.attr("class")),r="",o="";s(n,function(t,e){var n=!!i[e];t!==n&&(t?r+=(r.length?" ":"")+e:o+=(o.length?" ":"")+e)}),s(e,function(t){r&&Nt(t,r),o&&Pt(t,o)}),t.remove(e)}}),e.length=0})}return{enabled:m,on:m,off:m,pin:m,push:function(t,e,i,s){return s&&s(),i=i||{},i.from&&t.css(i.from),i.to&&t.css(i.to),(i.addClass||i.removeClass)&&r(t,i.addClass,i.removeClass),new n}}}]},Er=["$provide",function(t){var e=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,i){if(n&&"."!==n.charAt(0))throw _r("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var r=n+"-animation";e.$$registeredAnimations[n.substr(1)]=r,t.factory(r,i)},this.classNameFilter=function(t){if(1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null,this.$$classNameFilter)){var e=new RegExp("(\\s+|\\/)"+Cr+"(\\s+|\\/)");if(e.test(this.$$classNameFilter.toString()))throw _r("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Cr)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(t){function e(t,e,n){if(n){var i=Zt(n);!i||i.parentNode||i.previousElementSibling||(n=null)}n?n.after(t):e.prepend(t)}return{on:t.on,off:t.off,pin:t.pin,enabled:t.enabled,cancel:function(t){t.end&&t.end()},enter:function(n,i,r,s){return i=i&&Di(i),r=r&&Di(r),i=i||r.parent(),e(n,i,r),t.push(n,"enter",ee(s))},move:function(n,i,r,s){return i=i&&Di(i),r=r&&Di(r),i=i||r.parent(),e(n,i,r),t.push(n,"move",ee(s))},leave:function(e,n){return t.push(e,"leave",ee(n),function(){e.remove()})},addClass:function(e,n,i){return i=ee(i),i.addClass=Jt(i.addclass,n),t.push(e,"addClass",i)},removeClass:function(e,n,i){return i=ee(i),i.removeClass=Jt(i.removeClass,n),t.push(e,"removeClass",i)},setClass:function(e,n,i,r){return r=ee(r),r.addClass=Jt(r.addClass,n),r.removeClass=Jt(r.removeClass,i),t.push(e,"setClass",r)},animate:function(e,n,i,r,s){return s=ee(s),s.from=s.from?h(s.from,n):n,s.to=s.to?h(s.to,i):i,r=r||"ng-inline-animate",s.tempClasses=Jt(s.tempClasses,r),t.push(e,"animate",s)}}}]}],Sr=i("$compile");ae.$inject=["$provide","$$sanitizeUriProvider"];var Mr=/^((?:x|data)[\:\-_])/i,Ar=i("$controller"),Ir=/^(\S+)(\s+as\s+(\w+))?$/,Or="application/json",Pr={"Content-Type":Or+";charset=utf-8"},Nr=/^\[|^\{(?!\{)/,Hr={"[":/]$/,"{":/}$/},jr=/^\)\]\}',?\n/,Rr=Ni.$interpolateMinErr=i("$interpolate");Rr.throwNoconcat=function(t){throw Rr("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",t)},Rr.interr=function(t,e){return Rr("interr","Can't interpolate: {0}\n{1}",t,e.toString())};var Fr=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,zr={http:80,https:443,ftp:21},Wr=i("$location"),Lr={$$html5:!1,$$replace:!1,absUrl:Le("$$absUrl"),url:function(t){if(b(t))return this.$$url;var e=Fr.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:Le("$$protocol"),host:Le("$$host"),port:Le("$$port"),path:qe("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(x(t)||_(t))t=t.toString(),this.$$search=Z(t);else{if(!$(t))throw Wr("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=F(t,{}),s(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:b(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:qe("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};s([We,ze,Fe],function(t){t.prototype=Object.create(Lr),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==Fe||!this.$$html5)throw Wr("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=b(e)?null:e,this}});var qr=i("$parse"),Vr=Function.prototype.call,Br=Function.prototype.apply,Ur=Function.prototype.bind,Yr=mt();s("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(t){Yr[t]=!0});var Kr={n:"\n",f:"\f",r:"\r",t:"	",v:"","'":"'",'"':'"'},Gr=function(t){this.options=t};Gr.prototype={constructor:Gr,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index<this.text.length;){var e=this.text.charAt(this.index);if('"'===e||"'"===e)this.readString(e);else if(this.isNumber(e)||"."===e&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(e))this.readIdent();else if(this.is(e,"(){}[].,;:?"))this.tokens.push({index:this.index,text:e}),this.index++;else if(this.isWhitespace(e))this.index++;else{var n=e+this.peek(),i=n+this.peek(2),r=Yr[e],s=Yr[n],o=Yr[i];if(r||s||o){var a=o?i:s?n:e;this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(t,e){return-1!==e.indexOf(t)},peek:function(t){var e=t||1;return this.index+e<this.text.length?this.text.charAt(this.index+e):!1},isNumber:function(t){return t>="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||"	"===t||"\n"===t||""===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var i=y(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw qr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,i,this.text)},readNumber:function(){for(var t="",e=this.index;this.index<this.text.length;){var n=$i(this.text.charAt(this.index));if("."==n||this.isNumber(n))t+=n;else{var i=this.peek();if("e"==n&&this.isExpOperator(i))t+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"==t.charAt(t.length-1))t+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!=t.charAt(t.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:e,text:t,constant:!0,value:Number(t)})},readIdent:function(){for(var t=this.index;this.index<this.text.length;){var e=this.text.charAt(this.index);if(!this.isIdent(e)&&!this.isNumber(e))break;this.index++}this.tokens.push({index:t,text:this.text.slice(t,this.index),identifier:!0})},readString:function(t){var e=this.index;this.index++;for(var n="",i=t,r=!1;this.index<this.text.length;){var s=this.text.charAt(this.index);if(i+=s,r){if("u"===s){var o=this.text.substring(this.index+1,this.index+5);o.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+o+"]"),this.index+=4,n+=String.fromCharCode(parseInt(o,16))}else{var a=Kr[s];n+=a||s}r=!1}else if("\\"===s)r=!0;else{if(s===t)return this.index++,void this.tokens.push({index:e,text:i,constant:!0,value:n});n+=s}this.index++}this.throwError("Unterminated quote",e)}};var Xr=function(t,e){this.lexer=t,this.options=e};Xr.Program="Program",Xr.ExpressionStatement="ExpressionStatement",Xr.AssignmentExpression="AssignmentExpression",Xr.ConditionalExpression="ConditionalExpression",Xr.LogicalExpression="LogicalExpression",Xr.BinaryExpression="BinaryExpression",Xr.UnaryExpression="UnaryExpression",Xr.CallExpression="CallExpression",Xr.MemberExpression="MemberExpression",Xr.Identifier="Identifier",Xr.Literal="Literal",Xr.ArrayExpression="ArrayExpression",Xr.Property="Property",Xr.ObjectExpression="ObjectExpression",Xr.ThisExpression="ThisExpression",Xr.NGValueParameter="NGValueParameter",Xr.prototype={ast:function(t){this.text=t,this.tokens=this.lexer.lex(t);var e=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),e},program:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.expressionStatement()),!this.expect(";"))return{type:Xr.Program,body:t}},expressionStatement:function(){return{type:Xr.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var t=this.ternary();return this.expect("=")&&(t={type:Xr.AssignmentExpression,left:t,right:this.assignment(),operator:"="}),t},ternary:function(){var t,e,n=this.logicalOR();return this.expect("?")&&(t=this.expression(),this.consume(":"))?(e=this.expression(),{type:Xr.ConditionalExpression,test:n,alternate:t,consequent:e}):n},logicalOR:function(){for(var t=this.logicalAND();this.expect("||");)t={type:Xr.LogicalExpression,operator:"||",left:t,right:this.logicalAND()};return t},logicalAND:function(){for(var t=this.equality();this.expect("&&");)t={type:Xr.LogicalExpression,operator:"&&",left:t,right:this.equality()};return t},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e={type:Xr.BinaryExpression,operator:t.text,left:e,right:this.relational()};return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e={type:Xr.BinaryExpression,operator:t.text,left:e,right:this.additive()};return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e={type:Xr.BinaryExpression,operator:t.text,left:e,right:this.multiplicative()};return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e={type:Xr.BinaryExpression,operator:t.text,left:e,right:this.unary()};return e},unary:function(){var t;return(t=this.expect("+","-","!"))?{type:Xr.UnaryExpression,operator:t.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var t;this.expect("(")?(t=this.filterChain(),this.consume(")")):this.expect("[")?t=this.arrayDeclaration():this.expect("{")?t=this.object():this.constants.hasOwnProperty(this.peek().text)?t=F(this.constants[this.consume().text]):this.peek().identifier?t=this.identifier():this.peek().constant?t=this.constant():this.throwError("not a primary expression",this.peek());for(var e;e=this.expect("(","[",".");)"("===e.text?(t={type:Xr.CallExpression,callee:t,arguments:this.parseArguments()},this.consume(")")):"["===e.text?(t={type:Xr.MemberExpression,object:t,property:this.expression(),computed:!0},this.consume("]")):"."===e.text?t={type:Xr.MemberExpression,object:t,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return t},filter:function(t){for(var e=[t],n={type:Xr.CallExpression,callee:this.identifier(),arguments:e,filter:!0};this.expect(":");)e.push(this.expression());return n},parseArguments:function(){var t=[];if(")"!==this.peekToken().text)do t.push(this.expression());while(this.expect(","));return t},identifier:function(){var t=this.consume();return t.identifier||this.throwError("is not a valid identifier",t),{type:Xr.Identifier,name:t.text}},constant:function(){return{type:Xr.Literal,value:this.consume().value}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Xr.ArrayExpression,elements:t}},object:function(){var t,e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;t={type:Xr.Property,kind:"init"},this.peek().constant?t.key=this.constant():this.peek().identifier?t.key=this.identifier():this.throwError("invalid key",this.peek()),this.consume(":"),t.value=this.expression(),e.push(t)}while(this.expect(","));return this.consume("}"),{type:Xr.ObjectExpression,properties:e}},throwError:function(t,e){throw qr("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",e.text,t,e.index+1,this.text,this.text.substring(e.index))},consume:function(t){if(0===this.tokens.length)throw qr("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},peekToken:function(){if(0===this.tokens.length)throw qr("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(t,e,n,i){return this.peekAhead(0,t,e,n,i)},peekAhead:function(t,e,n,i,r){if(this.tokens.length>t){var s=this.tokens[t],o=s.text;if(o===e||o===n||o===i||o===r||!e&&!n&&!i&&!r)return s}return!1},expect:function(t,e,n,i){var r=this.peek(t,e,n,i);return r?(this.tokens.shift(),r):!1},constants:{"true":{type:Xr.Literal,value:!0},"false":{type:Xr.Literal,value:!1},"null":{type:Xr.Literal,value:null},undefined:{type:Xr.Literal,value:n},"this":{type:Xr.ThisExpression}}},sn.prototype={compile:function(t,e){var i=this,r=this.astBuilder.ast(t);this.state={nextId:0,filters:{},expensiveChecks:e,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Je(r,i.$filter);var o,a="";if(this.stage="assign",o=en(r)){this.state.computing="assign";var l=this.nextId();this.recurse(o,l),a="fn.assign="+this.generateFunction("assign","s,v,l")}var u=Ze(r.body);i.stage="inputs",s(u,function(t,e){var n="fn"+e;i.state[n]={vars:[],body:[],own:{}},i.state.computing=n;var r=i.nextId();i.recurse(t,r),i.return_(r),i.state.inputs.push(n),t.watchId=e}),this.state.computing="fn",this.stage="main",this.recurse(r);var c='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+a+this.watchFns()+"return fn;",h=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","ifDefined","plus","text",c)(this.$filter,Ue,Ye,Ke,Ge,Xe,t);return this.state=this.stage=n,h.literal=nn(r),h.constant=rn(r),h},USE:"use",STRICT:"strict",watchFns:function(){var t=[],e=this.state.inputs,n=this;return s(e,function(e){t.push("var "+e+"="+n.generateFunction(e,"s"))}),e.length&&t.push("fn.inputs=["+e.join(",")+"];"),t.join("")},generateFunction:function(t,e){return"function("+e+"){"+this.varsPrefix(t)+this.body(t)+"};"},filterPrefix:function(){var t=[],e=this;return s(this.state.filters,function(n,i){t.push(n+"=$filter("+e.escape(i)+")")}),t.length?"var "+t.join(",")+";":""},varsPrefix:function(t){return this.state[t].vars.length?"var "+this.state[t].vars.join(",")+";":""},body:function(t){return this.state[t].body.join("")},recurse:function(t,e,i,r,o,a){var l,u,c,h,d=this;if(r=r||m,!a&&y(t.watchId))return e=e||this.nextId(),void this.if_("i",this.lazyAssign(e,this.computedMember("i",t.watchId)),this.lazyRecurse(t,e,i,r,o,!0));switch(t.type){case Xr.Program:s(t.body,function(e,i){d.recurse(e.expression,n,n,function(t){u=t}),i!==t.body.length-1?d.current().body.push(u,";"):d.return_(u)});break;case Xr.Literal:h=this.escape(t.value),this.assign(e,h),r(h);break;case Xr.UnaryExpression:this.recurse(t.argument,n,n,function(t){u=t}),h=t.operator+"("+this.ifDefined(u,0)+")",this.assign(e,h),r(h);break;case Xr.BinaryExpression:this.recurse(t.left,n,n,function(t){l=t}),this.recurse(t.right,n,n,function(t){u=t}),h="+"===t.operator?this.plus(l,u):"-"===t.operator?this.ifDefined(l,0)+t.operator+this.ifDefined(u,0):"("+l+")"+t.operator+"("+u+")",this.assign(e,h),r(h);break;case Xr.LogicalExpression:e=e||this.nextId(),d.recurse(t.left,e),d.if_("&&"===t.operator?e:d.not(e),d.lazyRecurse(t.right,e)),r(e);break;case Xr.ConditionalExpression:e=e||this.nextId(),d.recurse(t.test,e),d.if_(e,d.lazyRecurse(t.alternate,e),d.lazyRecurse(t.consequent,e)),r(e);break;case Xr.Identifier:e=e||this.nextId(),i&&(i.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",t.name)+"?l:s"),i.computed=!1,i.name=t.name),Ue(t.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",t.name)),function(){d.if_("inputs"===d.stage||"s",function(){o&&1!==o&&d.if_(d.not(d.nonComputedMember("s",t.name)),d.lazyAssign(d.nonComputedMember("s",t.name),"{}")),d.assign(e,d.nonComputedMember("s",t.name))})},e&&d.lazyAssign(e,d.nonComputedMember("l",t.name))),(d.state.expensiveChecks||ln(t.name))&&d.addEnsureSafeObject(e),r(e);break;case Xr.MemberExpression:l=i&&(i.context=this.nextId())||this.nextId(),e=e||this.nextId(),d.recurse(t.object,l,n,function(){d.if_(d.notNull(l),function(){t.computed?(u=d.nextId(),d.recurse(t.property,u),d.addEnsureSafeMemberName(u),o&&1!==o&&d.if_(d.not(d.computedMember(l,u)),d.lazyAssign(d.computedMember(l,u),"{}")),h=d.ensureSafeObject(d.computedMember(l,u)),d.assign(e,h),i&&(i.computed=!0,i.name=u)):(Ue(t.property.name),o&&1!==o&&d.if_(d.not(d.nonComputedMember(l,t.property.name)),d.lazyAssign(d.nonComputedMember(l,t.property.name),"{}")),h=d.nonComputedMember(l,t.property.name),(d.state.expensiveChecks||ln(t.property.name))&&(h=d.ensureSafeObject(h)),d.assign(e,h),i&&(i.computed=!1,i.name=t.property.name)),r(e)})},!!o);break;case Xr.CallExpression:e=e||this.nextId(),t.filter?(u=d.filter(t.callee.name),c=[],s(t.arguments,function(t){var e=d.nextId();d.recurse(t,e),c.push(e)}),h=u+"("+c.join(",")+")",d.assign(e,h),r(e)):(u=d.nextId(),l={},c=[],d.recurse(t.callee,u,l,function(){d.if_(d.notNull(u),function(){d.addEnsureSafeFunction(u),s(t.arguments,function(t){d.recurse(t,d.nextId(),n,function(t){c.push(d.ensureSafeObject(t))})}),l.name?(d.state.expensiveChecks||d.addEnsureSafeObject(l.context),h=d.member(l.context,l.name,l.computed)+"("+c.join(",")+")"):h=u+"("+c.join(",")+")",h=d.ensureSafeObject(h),d.assign(e,h),r(e)})}));break;case Xr.AssignmentExpression:if(u=this.nextId(),l={},!tn(t.left))throw qr("lval","Trying to assing a value to a non l-value");this.recurse(t.left,n,l,function(){d.if_(d.notNull(l.context),function(){d.recurse(t.right,u),d.addEnsureSafeObject(d.member(l.context,l.name,l.computed)),h=d.member(l.context,l.name,l.computed)+t.operator+u,d.assign(e,h),r(e||h)})},1);break;case Xr.ArrayExpression:c=[],s(t.elements,function(t){d.recurse(t,d.nextId(),n,function(t){c.push(t)})}),h="["+c.join(",")+"]",this.assign(e,h),r(h);break;case Xr.ObjectExpression:c=[],s(t.properties,function(t){d.recurse(t.value,d.nextId(),n,function(e){c.push(d.escape(t.key.type===Xr.Identifier?t.key.name:""+t.key.value)+":"+e)})}),h="{"+c.join(",")+"}",this.assign(e,h),r(h);break;case Xr.ThisExpression:this.assign(e,"s"),r("s");break;case Xr.NGValueParameter:this.assign(e,"v"),r("v")}},getHasOwnProperty:function(t,e){var n=t+"."+e,i=this.current().own;return i.hasOwnProperty(n)||(i[n]=this.nextId(!1,t+"&&("+this.escape(e)+" in "+t+")")),i[n]},assign:function(t,e){return t?(this.current().body.push(t,"=",e,";"),t):void 0},filter:function(t){return this.state.filters.hasOwnProperty(t)||(this.state.filters[t]=this.nextId(!0)),this.state.filters[t]},ifDefined:function(t,e){return"ifDefined("+t+","+this.escape(e)+")"},plus:function(t,e){return"plus("+t+","+e+")"},return_:function(t){this.current().body.push("return ",t,";")},if_:function(t,e,n){if(t===!0)e();else{var i=this.current().body;i.push("if(",t,"){"),e(),i.push("}"),n&&(i.push("else{"),n(),i.push("}"))}},not:function(t){return"!("+t+")"},notNull:function(t){return t+"!=null"},nonComputedMember:function(t,e){return t+"."+e},computedMember:function(t,e){return t+"["+e+"]"},member:function(t,e,n){return n?this.computedMember(t,e):this.nonComputedMember(t,e)},addEnsureSafeObject:function(t){this.current().body.push(this.ensureSafeObject(t),";")},addEnsureSafeMemberName:function(t){this.current().body.push(this.ensureSafeMemberName(t),";")},addEnsureSafeFunction:function(t){this.current().body.push(this.ensureSafeFunction(t),";")},ensureSafeObject:function(t){return"ensureSafeObject("+t+",text)"},ensureSafeMemberName:function(t){return"ensureSafeMemberName("+t+",text)"},ensureSafeFunction:function(t){return"ensureSafeFunction("+t+",text)"},lazyRecurse:function(t,e,n,i,r,s){var o=this;return function(){o.recurse(t,e,n,i,r,s)}},lazyAssign:function(t,e){var n=this;return function(){n.assign(t,e)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)},escape:function(t){if(x(t))return"'"+t.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(_(t))return t.toString();if(t===!0)return"true";if(t===!1)return"false";if(null===t)return"null";if("undefined"==typeof t)return"undefined";throw qr("esc","IMPOSSIBLE")},nextId:function(t,e){var n="v"+this.state.nextId++;return t||this.current().vars.push(n+(e?"="+e:"")),n},current:function(){return this.state[this.state.computing]}},on.prototype={compile:function(t,e){var n=this,i=this.astBuilder.ast(t);this.expression=t,this.expensiveChecks=e,Je(i,n.$filter);var r,o;(r=en(i))&&(o=this.recurse(r));var a,l=Ze(i.body);l&&(a=[],s(l,function(t,e){var i=n.recurse(t);t.input=i,a.push(i),t.watchId=e}));var u=[];s(i.body,function(t){u.push(n.recurse(t.expression))});var c=0===i.body.length?function(){}:1===i.body.length?u[0]:function(t,e){var n;return s(u,function(i){n=i(t,e)}),n};return o&&(c.assign=function(t,e,n){return o(t,n,e)}),a&&(c.inputs=a),c.literal=nn(i),c.constant=rn(i),c},recurse:function(t,e,i){var r,o,a,l=this;if(t.input)return this.inputs(t.input,t.watchId);switch(t.type){case Xr.Literal:return this.value(t.value,e);case Xr.UnaryExpression:return o=this.recurse(t.argument),this["unary"+t.operator](o,e);case Xr.BinaryExpression:return r=this.recurse(t.left),o=this.recurse(t.right),this["binary"+t.operator](r,o,e);
-
-case Xr.LogicalExpression:return r=this.recurse(t.left),o=this.recurse(t.right),this["binary"+t.operator](r,o,e);case Xr.ConditionalExpression:return this["ternary?:"](this.recurse(t.test),this.recurse(t.alternate),this.recurse(t.consequent),e);case Xr.Identifier:return Ue(t.name,l.expression),l.identifier(t.name,l.expensiveChecks||ln(t.name),e,i,l.expression);case Xr.MemberExpression:return r=this.recurse(t.object,!1,!!i),t.computed||(Ue(t.property.name,l.expression),o=t.property.name),t.computed&&(o=this.recurse(t.property)),t.computed?this.computedMember(r,o,e,i,l.expression):this.nonComputedMember(r,o,l.expensiveChecks,e,i,l.expression);case Xr.CallExpression:return a=[],s(t.arguments,function(t){a.push(l.recurse(t))}),t.filter&&(o=this.$filter(t.callee.name)),t.filter||(o=this.recurse(t.callee,!0)),t.filter?function(t,i,r,s){for(var l=[],u=0;u<a.length;++u)l.push(a[u](t,i,r,s));var c=o.apply(n,l,s);return e?{context:n,name:n,value:c}:c}:function(t,n,i,r){var s,u=o(t,n,i,r);if(null!=u.value){Ye(u.context,l.expression),Ke(u.value,l.expression);for(var c=[],h=0;h<a.length;++h)c.push(Ye(a[h](t,n,i,r),l.expression));s=Ye(u.value.apply(u.context,c),l.expression)}return e?{value:s}:s};case Xr.AssignmentExpression:return r=this.recurse(t.left,!0,1),o=this.recurse(t.right),function(t,n,i,s){var a=r(t,n,i,s),u=o(t,n,i,s);return Ye(a.value,l.expression),a.context[a.name]=u,e?{value:u}:u};case Xr.ArrayExpression:return a=[],s(t.elements,function(t){a.push(l.recurse(t))}),function(t,n,i,r){for(var s=[],o=0;o<a.length;++o)s.push(a[o](t,n,i,r));return e?{value:s}:s};case Xr.ObjectExpression:return a=[],s(t.properties,function(t){a.push({key:t.key.type===Xr.Identifier?t.key.name:""+t.key.value,value:l.recurse(t.value)})}),function(t,n,i,r){for(var s={},o=0;o<a.length;++o)s[a[o].key]=a[o].value(t,n,i,r);return e?{value:s}:s};case Xr.ThisExpression:return function(t){return e?{value:t}:t};case Xr.NGValueParameter:return function(t,n,i,r){return e?{value:i}:i}}},"unary+":function(t,e){return function(n,i,r,s){var o=t(n,i,r,s);return o=y(o)?+o:0,e?{value:o}:o}},"unary-":function(t,e){return function(n,i,r,s){var o=t(n,i,r,s);return o=y(o)?-o:0,e?{value:o}:o}},"unary!":function(t,e){return function(n,i,r,s){var o=!t(n,i,r,s);return e?{value:o}:o}},"binary+":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o),l=e(i,r,s,o),u=Xe(a,l);return n?{value:u}:u}},"binary-":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o),l=e(i,r,s,o),u=(y(a)?a:0)-(y(l)?l:0);return n?{value:u}:u}},"binary*":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)*e(i,r,s,o);return n?{value:a}:a}},"binary/":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)/e(i,r,s,o);return n?{value:a}:a}},"binary%":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)%e(i,r,s,o);return n?{value:a}:a}},"binary===":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)===e(i,r,s,o);return n?{value:a}:a}},"binary!==":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)!==e(i,r,s,o);return n?{value:a}:a}},"binary==":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)==e(i,r,s,o);return n?{value:a}:a}},"binary!=":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)!=e(i,r,s,o);return n?{value:a}:a}},"binary<":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)<e(i,r,s,o);return n?{value:a}:a}},"binary>":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)>e(i,r,s,o);return n?{value:a}:a}},"binary<=":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)<=e(i,r,s,o);return n?{value:a}:a}},"binary>=":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)>=e(i,r,s,o);return n?{value:a}:a}},"binary&&":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)&&e(i,r,s,o);return n?{value:a}:a}},"binary||":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)||e(i,r,s,o);return n?{value:a}:a}},"ternary?:":function(t,e,n,i){return function(r,s,o,a){var l=t(r,s,o,a)?e(r,s,o,a):n(r,s,o,a);return i?{value:l}:l}},value:function(t,e){return function(){return e?{context:n,name:n,value:t}:t}},identifier:function(t,e,i,r,s){return function(o,a,l,u){var c=a&&t in a?a:o;r&&1!==r&&c&&!c[t]&&(c[t]={});var h=c?c[t]:n;return e&&Ye(h,s),i?{context:c,name:t,value:h}:h}},computedMember:function(t,e,n,i,r){return function(s,o,a,l){var u,c,h=t(s,o,a,l);return null!=h&&(u=e(s,o,a,l),Ue(u,r),i&&1!==i&&h&&!h[u]&&(h[u]={}),c=h[u],Ye(c,r)),n?{context:h,name:u,value:c}:c}},nonComputedMember:function(t,e,i,r,s,o){return function(a,l,u,c){var h=t(a,l,u,c);s&&1!==s&&h&&!h[e]&&(h[e]={});var d=null!=h?h[e]:n;return(i||ln(e))&&Ye(d,o),r?{context:h,name:e,value:d}:d}},inputs:function(t,e){return function(n,i,r,s){return s?s[e]:t(n,i,r)}}};var Qr=function(t,e,n){this.lexer=t,this.$filter=e,this.options=n,this.ast=new Xr(this.lexer),this.astCompiler=n.csp?new on(this.ast,e):new sn(this.ast,e)};Qr.prototype={constructor:Qr,parse:function(t){return this.astCompiler.compile(t,this.options.expensiveChecks)}};var Jr=(mt(),mt(),Object.prototype.valueOf),Zr=i("$sce"),ts={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Sr=i("$compile"),es=e.createElement("a"),ns=Cn(t.location.href);En.$inject=["$document"],Mn.$inject=["$provide"],Hn.$inject=["$locale"],jn.$inject=["$locale"];var is=".",rs={yyyy:zn("FullYear",4),yy:zn("FullYear",2,0,!0),y:zn("FullYear",1),MMMM:Wn("Month"),MMM:Wn("Month",!0),MM:zn("Month",2,1),M:zn("Month",1,1),dd:zn("Date",2),d:zn("Date",1),HH:zn("Hours",2),H:zn("Hours",1),hh:zn("Hours",2,-12),h:zn("Hours",1,-12),mm:zn("Minutes",2),m:zn("Minutes",1),ss:zn("Seconds",2),s:zn("Seconds",1),sss:zn("Milliseconds",3),EEEE:Wn("Day"),EEE:Wn("Day",!0),a:Un,Z:Ln,ww:Bn(2),w:Bn(1),G:Yn,GG:Yn,GGG:Yn,GGGG:Kn},ss=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,os=/^\-?\d+$/;Gn.$inject=["$locale"];var as=v($i),ls=v(xi);Jn.$inject=["$parse"];var us=v({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Ii.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),cs={};s(fr,function(t,e){function n(t,n,r){t.$watch(r[i],function(t){r.$set(e,!!t)})}if("multiple"!=t){var i=le("ng-"+e),r=n;"checked"===t&&(r=function(t,e,r){r.ngModel!==r[i]&&n(t,e,r)}),cs[i]=function(){return{restrict:"A",priority:100,link:r}}}}),s(gr,function(t,e){cs[e]=function(){return{priority:100,link:function(t,n,i){if("ngPattern"===e&&"/"==i.ngPattern.charAt(0)){var r=i.ngPattern.match(bi);if(r)return void i.$set("ngPattern",new RegExp(r[1],r[2]))}t.$watch(i[e],function(t){i.$set(e,t)})}}}}),s(["src","srcset","href"],function(t){var e=le("ng-"+t);cs[e]=function(){return{priority:99,link:function(n,i,r){var s=t,o=t;"href"===t&&"[object SVGAnimatedString]"===Ii.call(i.prop("href"))&&(o="xlinkHref",r.$attr[o]="xlink:href",s=null),r.$observe(e,function(e){return e?(r.$set(o,e),void(Ci&&s&&i.prop(s,r[o]))):void("href"===t&&r.$set(o,null))})}}}});var hs={$addControl:m,$$renameControl:ti,$removeControl:m,$setValidity:m,$setDirty:m,$setPristine:m,$setSubmitted:m},ds="ng-submitted";ei.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var ps=function(t){return["$timeout",function(e){var i={name:"form",restrict:t?"EAC":"E",controller:ei,compile:function(i,r){i.addClass(Ys).addClass(Bs);var s=r.name?"name":t&&r.ngForm?"ngForm":!1;return{pre:function(t,i,r,o){if(!("action"in r)){var a=function(e){t.$apply(function(){o.$commitViewValue(),o.$setSubmitted()}),e.preventDefault()};nr(i[0],"submit",a),i.on("$destroy",function(){e(function(){ir(i[0],"submit",a)},0,!1)})}var l=o.$$parentForm;s&&(an(t,o.$name,o,o.$name),r.$observe(s,function(e){o.$name!==e&&(an(t,o.$name,n,o.$name),l.$$renameControl(o,e),an(t,o.$name,o,o.$name))})),i.on("$destroy",function(){l.$removeControl(o),s&&an(t,r[s],n,o.$name),h(o,hs)})}}}};return i}]},fs=ps(),ms=ps(!0),gs=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,vs=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,bs=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ys=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,$s=/^(\d{4})-(\d{2})-(\d{2})$/,ws=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,xs=/^(\d{4})-W(\d\d)$/,_s=/^(\d{4})-(\d\d)$/,ks=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Cs={text:ii,date:ai("date",$s,oi($s,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ai("datetimelocal",ws,oi(ws,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ai("time",ks,oi(ks,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ai("week",xs,si,"yyyy-Www"),month:ai("month",_s,oi(_s,["yyyy","MM"]),"yyyy-MM"),number:ui,url:ci,email:hi,radio:di,checkbox:fi,hidden:m,button:m,submit:m,reset:m,file:m},Ds=["$browser","$sniffer","$filter","$parse",function(t,e,n,i){return{restrict:"E",require:["?ngModel"],link:{pre:function(r,s,o,a){a[0]&&(Cs[$i(o.type)]||Cs.text)(r,s,o,a[0],e,t,n,i)}}}}],Ts=/^(true|false|\d+)$/,Es=function(){return{restrict:"A",priority:100,compile:function(t,e){return Ts.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},Ss=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,i,r){t.$$addBindingInfo(i,r.ngBind),i=i[0],e.$watch(r.ngBind,function(t){i.textContent=t===n?"":t})}}}}],Ms=["$interpolate","$compile",function(t,e){return{compile:function(i){return e.$$addBindingClass(i),function(i,r,s){var o=t(r.attr(s.$attr.ngBindTemplate));e.$$addBindingInfo(r,o.expressions),r=r[0],s.$observe("ngBindTemplate",function(t){r.textContent=t===n?"":t})}}}}],As=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(i,r){var s=e(r.ngBindHtml),o=e(r.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(i),function(e,i,r){n.$$addBindingInfo(i,r.ngBindHtml),e.$watch(o,function(){i.html(t.getTrustedHtml(s(e))||"")})}}}}],Is=v({restrict:"A",require:"ngModel",link:function(t,e,n,i){i.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),Os=mi("",!0),Ps=mi("Odd",0),Ns=mi("Even",1),Hs=Zn({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),js=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Rs={},Fs={blur:!0,focus:!0};s("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=le("ng-"+t);Rs[e]=["$parse","$rootScope",function(n,i){return{restrict:"A",compile:function(r,s){var o=n(s[e],null,!0);return function(e,n){n.on(t,function(n){var r=function(){o(e,{$event:n})};Fs[t]&&i.$$phase?e.$evalAsync(r):e.$apply(r)})}}}}]});var zs=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,r,s,o){var a,l,u;n.$watch(r.ngIf,function(n){n?l||o(function(n,s){l=s,n[n.length++]=e.createComment(" end ngIf: "+r.ngIf+" "),a={clone:n},t.enter(n,i.parent(),i)}):(u&&(u.remove(),u=null),l&&(l.$destroy(),l=null),a&&(u=ft(a.clone),t.leave(u).then(function(){u=null}),a=null))})}}}],Ws=["$templateRequest","$anchorScroll","$animate","$sce",function(t,e,n,i){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ni.noop,compile:function(r,s){var o=s.ngInclude||s.src,a=s.onload||"",l=s.autoscroll;return function(r,s,u,c,h){var d,p,f,m=0,g=function(){p&&(p.remove(),p=null),d&&(d.$destroy(),d=null),f&&(n.leave(f).then(function(){p=null}),p=f,f=null)};r.$watch(i.parseAsResourceUrl(o),function(i){var o=function(){!y(l)||l&&!r.$eval(l)||e()},u=++m;i?(t(i,!0).then(function(t){if(u===m){var e=r.$new();c.template=t;var l=h(e,function(t){g(),n.enter(t,null,s).then(o)});d=e,f=l,d.$emit("$includeContentLoaded",i),r.$eval(a)}},function(){u===m&&(g(),r.$emit("$includeContentError",i))}),r.$emit("$includeContentRequested",i)):(g(),c.template=null)})}}}}],Ls=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,i,r,s){return/SVG/.test(i[0].toString())?(i.empty(),void t(kt(s.template,e).childNodes)(n,function(t){i.append(t)},{futureParentElement:i})):(i.html(s.template),void t(i.contents())(n))}}}],qs=Zn({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),Vs=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,i,r){var o=e.attr(i.$attr.ngList)||", ",a="false"!==i.ngTrim,l=a?zi(o):o,u=function(t){if(!b(t)){var e=[];return t&&s(t.split(l),function(t){t&&e.push(a?zi(t):t)}),e}};r.$parsers.push(u),r.$formatters.push(function(t){return Ri(t)?t.join(o):n}),r.$isEmpty=function(t){return!t||!t.length}}}},Bs="ng-valid",Us="ng-invalid",Ys="ng-pristine",Ks="ng-dirty",Gs="ng-untouched",Xs="ng-touched",Qs="ng-pending",Js=new i("ngModel"),Zs=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,i,r,o,a,l,u,c,h){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,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=n,this.$name=h(i.name||"",!1)(t);var d,p=o(i.ngModel),f=p.assign,g=p,v=f,$=null,w=this;this.$$setOptions=function(t){if(w.$options=t,t&&t.getterSetter){var e=o(i.ngModel+"()"),n=o(i.ngModel+"($$$p)");g=function(t){var n=p(t);return C(n)&&(n=e(t)),n},v=function(t,e){C(p(t))?n(t,{$$$p:w.$modelValue}):f(t,w.$modelValue)}}else if(!p.assign)throw Js("nonassign","Expression '{0}' is non-assignable. Element: {1}",i.ngModel,Q(r))},this.$render=m,this.$isEmpty=function(t){return b(t)||""===t||null===t||t!==t};var x=r.inheritedData("$formController")||hs,k=0;gi({ctrl:this,$element:r,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},parentForm:x,$animate:a}),this.$setPristine=function(){w.$dirty=!1,w.$pristine=!0,a.removeClass(r,Ks),a.addClass(r,Ys)},this.$setDirty=function(){w.$dirty=!0,w.$pristine=!1,a.removeClass(r,Ys),a.addClass(r,Ks),x.$setDirty()},this.$setUntouched=function(){w.$touched=!1,w.$untouched=!0,a.setClass(r,Gs,Xs)},this.$setTouched=function(){w.$touched=!0,w.$untouched=!1,a.setClass(r,Xs,Gs)},this.$rollbackViewValue=function(){l.cancel($),w.$viewValue=w.$$lastCommittedViewValue,w.$render()},this.$validate=function(){if(!_(w.$modelValue)||!isNaN(w.$modelValue)){var t=w.$$lastCommittedViewValue,e=w.$$rawModelValue,i=w.$valid,r=w.$modelValue,s=w.$options&&w.$options.allowInvalid;w.$$runValidators(e,t,function(t){s||i===t||(w.$modelValue=t?e:n,w.$modelValue!==r&&w.$$writeModelToScope())})}},this.$$runValidators=function(t,e,i){function r(){var t=w.$$parserName||"parse";return d!==n?(d||(s(w.$validators,function(t,e){l(e,null)}),s(w.$asyncValidators,function(t,e){l(e,null)})),l(t,d),d):(l(t,null),!0)}function o(){var n=!0;return s(w.$validators,function(i,r){var s=i(t,e);n=n&&s,l(r,s)}),n?!0:(s(w.$asyncValidators,function(t,e){l(e,null)}),!1)}function a(){var i=[],r=!0;s(w.$asyncValidators,function(s,o){var a=s(t,e);if(!O(a))throw Js("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",a);l(o,n),i.push(a.then(function(){l(o,!0)},function(t){r=!1,l(o,!1)}))}),i.length?c.all(i).then(function(){u(r)},m):u(!0)}function l(t,e){h===k&&w.$setValidity(t,e)}function u(t){h===k&&i(t)}k++;var h=k;return r()&&o()?void a():void u(!1)},this.$commitViewValue=function(){var t=w.$viewValue;l.cancel($),(w.$$lastCommittedViewValue!==t||""===t&&w.$$hasNativeValidators)&&(w.$$lastCommittedViewValue=t,w.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){w.$modelValue!==o&&w.$$writeModelToScope()}var i=w.$$lastCommittedViewValue,r=i;if(d=b(r)?n:!0)for(var s=0;s<w.$parsers.length;s++)if(r=w.$parsers[s](r),b(r)){d=!1;break}_(w.$modelValue)&&isNaN(w.$modelValue)&&(w.$modelValue=g(t));var o=w.$modelValue,a=w.$options&&w.$options.allowInvalid;w.$$rawModelValue=r,a&&(w.$modelValue=r,e()),w.$$runValidators(r,w.$$lastCommittedViewValue,function(t){a||(w.$modelValue=t?r:n,e())})},this.$$writeModelToScope=function(){v(t,w.$modelValue),s(w.$viewChangeListeners,function(t){try{t()}catch(n){e(n)}})},this.$setViewValue=function(t,e){w.$viewValue=t,(!w.$options||w.$options.updateOnDefault)&&w.$$debounceViewValueCommit(e)},this.$$debounceViewValueCommit=function(e){var n,i=0,r=w.$options;r&&y(r.debounce)&&(n=r.debounce,_(n)?i=n:_(n[e])?i=n[e]:_(n["default"])&&(i=n["default"])),l.cancel($),i?$=l(function(){w.$commitViewValue()},i):u.$$phase?w.$commitViewValue():t.$apply(function(){w.$commitViewValue()})},t.$watch(function(){var e=g(t);if(e!==w.$modelValue&&(w.$modelValue===w.$modelValue||e===e)){w.$modelValue=w.$$rawModelValue=e,d=n;for(var i=w.$formatters,r=i.length,s=e;r--;)s=i[r](s);w.$viewValue!==s&&(w.$viewValue=w.$$lastCommittedViewValue=s,w.$render(),w.$$runValidators(e,s,m))}return e})}],to=["$rootScope",function(t){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Zs,priority:1,compile:function(e){return e.addClass(Ys).addClass(Gs).addClass(Bs),{pre:function(t,e,n,i){var r=i[0],s=i[1]||hs;r.$$setOptions(i[2]&&i[2].$options),s.$addControl(r),n.$observe("name",function(t){r.$name!==t&&s.$$renameControl(r,t)}),t.$on("$destroy",function(){s.$removeControl(r)})},post:function(e,n,i,r){var s=r[0];s.$options&&s.$options.updateOn&&n.on(s.$options.updateOn,function(t){s.$$debounceViewValueCommit(t&&t.type)}),n.on("blur",function(n){s.$touched||(t.$$phase?e.$evalAsync(s.$setTouched):e.$apply(s.$setTouched))})}}}}}],eo=/(\s+|^)default(\s+|$)/,no=function(){return{restrict:"A",controller:["$scope","$attrs",function(t,e){var i=this;this.$options=F(t.$eval(e.ngModelOptions)),this.$options.updateOn!==n?(this.$options.updateOnDefault=!1,this.$options.updateOn=zi(this.$options.updateOn.replace(eo,function(){return i.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},io=Zn({terminal:!0,priority:1e3}),ro=i("ngOptions"),so=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,oo=["$compile","$parse",function(t,n){function i(t,e,i){function s(t,e,n,i,r){this.selectValue=t,this.viewValue=e,this.label=n,this.group=i,this.disabled=r}var o=t.match(so);if(!o)throw ro("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",t,Q(e));var a=o[5]||o[7],l=o[6],u=/ as /.test(o[0])&&o[1],c=o[9],h=n(o[2]?o[1]:a),d=u&&n(u),p=d||h,f=c&&n(c),m=c?function(t,e){return f(i,e)}:function(t){return Ut(t)},g=function(t,e){return m(t,x(t,e))},v=n(o[2]||o[1]),b=n(o[3]||""),y=n(o[4]||""),$=n(o[8]),w={},x=l?function(t,e){return w[l]=e,w[a]=t,w}:function(t){return w[a]=t,w};return{trackBy:c,getTrackByValue:g,getWatchables:n($,function(t){var e=[];return t=t||[],Object.keys(t).forEach(function(n){var r=x(t[n],n),s=m(t[n],r);if(e.push(s),o[2]||o[1]){var a=v(i,r);e.push(a)}if(o[4]){var l=y(i,r);e.push(l)}}),e}),getOptions:function(){var t,e=[],n={},o=$(i)||[];if(!l&&r(o))t=o;else{t=[];for(var a in o)o.hasOwnProperty(a)&&"$"!==a.charAt(0)&&t.push(a)}for(var u=t.length,h=0;u>h;h++){var d=o===t?h:t[h],f=o[d],w=x(f,d),_=p(i,w),k=m(_,w),C=v(i,w),D=b(i,w),T=y(i,w),E=new s(k,_,C,D,T);e.push(E),n[k]=E}return{items:e,selectValueMap:n,getOptionFromViewValue:function(t){return n[g(t)]},getViewValueFromOption:function(t){return c?Ni.copy(t.viewValue):t.viewValue}}}}}var o=e.createElement("option"),a=e.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:function(e,n,r,l){function u(t,e){t.element=e,e.disabled=t.disabled,t.value!==e.value&&(e.value=t.selectValue),t.label!==e.label&&(e.label=t.label,e.textContent=t.label)}function c(t,e,n,i){var r;return e&&$i(e.nodeName)===n?r=e:(r=i.cloneNode(!1),e?t.insertBefore(r,e):t.appendChild(r)),r}function h(t){for(var e;t;)e=t.nextSibling,zt(t),t=e}function d(t){var e=m&&m[0],n=x&&x[0];if(e||n)for(;t&&(t===e||t===n);)t=t.nextSibling;return t}function p(){var t=_&&g.readValue();_=k.getOptions();var e={},i=n[0].firstChild;if(w&&n.prepend(m),i=d(i),_.items.forEach(function(t){var r,s,l;t.group?(r=e[t.group],r||(s=c(n[0],i,"optgroup",a),i=s.nextSibling,s.label=t.group,r=e[t.group]={groupElement:s,currentOptionElement:s.firstChild}),l=c(r.groupElement,r.currentOptionElement,"option",o),u(t,l),r.currentOptionElement=l.nextSibling):(l=c(n[0],i,"option",o),u(t,l),i=l.nextSibling)}),Object.keys(e).forEach(function(t){h(e[t].currentOptionElement)}),h(i),f.$render(),!f.$isEmpty(t)){var r=g.readValue();(k.trackBy&&!W(t,r)||t!==r)&&(f.$setViewValue(r),f.$render())}}var f=l[1];if(f){for(var m,g=l[0],v=r.multiple,b=0,y=n.children(),$=y.length;$>b;b++)if(""===y[b].value){m=y.eq(b);break}var w=!!m,x=Di(o.cloneNode(!1));x.val("?");var _,k=i(r.ngOptions,n,e),C=function(){w||n.prepend(m),n.val(""),m.prop("selected",!0),m.attr("selected",!0)},D=function(){w||m.remove()},T=function(){n.prepend(x),n.val("?"),x.prop("selected",!0),x.attr("selected",!0)},E=function(){x.remove()};v?(f.$isEmpty=function(t){return!t||0===t.length},g.writeValue=function(t){_.items.forEach(function(t){t.element.selected=!1}),t&&t.forEach(function(t){var e=_.getOptionFromViewValue(t);e&&!e.disabled&&(e.element.selected=!0)})},g.readValue=function(){var t=n.val()||[],e=[];return s(t,function(t){var n=_.selectValueMap[t];n.disabled||e.push(_.getViewValueFromOption(n))}),e},k.trackBy&&e.$watchCollection(function(){return Ri(f.$viewValue)?f.$viewValue.map(function(t){return k.getTrackByValue(t)}):void 0},function(){f.$render()})):(g.writeValue=function(t){var e=_.getOptionFromViewValue(t);e&&!e.disabled?n[0].value!==e.selectValue&&(E(),D(),n[0].value=e.selectValue,e.element.selected=!0,e.element.setAttribute("selected","selected")):null===t||w?(E(),C()):(D(),T())},g.readValue=function(){var t=_.selectValueMap[n.val()];return t&&!t.disabled?(D(),E(),_.getViewValueFromOption(t)):null},k.trackBy&&e.$watch(function(){return k.getTrackByValue(f.$viewValue)},function(){f.$render()})),w?(m.remove(),t(m)(e),m.removeClass("ng-scope")):m=Di(o.cloneNode(!1)),p(),e.$watchCollection(k.getWatchables,p)}}}}],ao=["$locale","$interpolate","$log",function(t,e,n){var i=/{}/g,r=/^when(Minus)?(.+)$/;return{link:function(o,a,l){function u(t){a.text(t||"")}var c,h=l.count,d=l.$attr.when&&a.attr(l.$attr.when),p=l.offset||0,f=o.$eval(d)||{},g={},v=e.startSymbol(),y=e.endSymbol(),$=v+h+"-"+p+y,w=Ni.noop;s(l,function(t,e){var n=r.exec(e);if(n){var i=(n[1]?"-":"")+$i(n[2]);f[i]=a.attr(l.$attr[e])}}),s(f,function(t,n){g[n]=e(t.replace(i,$))}),o.$watch(h,function(e){var i=parseFloat(e),r=isNaN(i);if(r||i in f||(i=t.pluralCat(i-p)),i!==c&&!(r&&_(c)&&isNaN(c))){w();var s=g[i];b(s)?(null!=e&&n.debug("ngPluralize: no rule defined for '"+i+"' in "+d),w=m,u()):w=o.$watch(s,u),c=i}})}}}],lo=["$parse","$animate",function(t,o){var a="$$NG_REMOVED",l=i("ngRepeat"),u=function(t,e,n,i,r,s,o){t[n]=i,r&&(t[r]=s),t.$index=e,t.$first=0===e,t.$last=e===o-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},c=function(t){return t.clone[0]},h=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(i,d){var p=d.ngRepeat,f=e.createComment(" end ngRepeat: "+p+" "),m=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw l("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",p);var g=m[1],v=m[2],b=m[3],y=m[4];if(m=g.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw l("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",g);var $=m[3]||m[1],w=m[2];if(b&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(b)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(b)))throw l("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",b);var x,_,k,C,D={$id:Ut};return y?x=t(y):(k=function(t,e){return Ut(e)},C=function(t){return t}),function(t,e,i,d,m){x&&(_=function(e,n,i){return w&&(D[w]=e),D[$]=n,D.$index=i,x(t,D)});var g=mt();t.$watchCollection(v,function(i){var d,v,y,x,D,T,E,S,M,A,I,O,P=e[0],N=mt();if(b&&(t[b]=i),r(i))M=i,S=_||k;else{S=_||C,M=[];for(var H in i)i.hasOwnProperty(H)&&"$"!==H.charAt(0)&&M.push(H)}for(x=M.length,I=new Array(x),d=0;x>d;d++)if(D=i===M?d:M[d],T=i[D],E=S(D,T,d),g[E])A=g[E],delete g[E],N[E]=A,I[d]=A;else{if(N[E])throw s(I,function(t){t&&t.scope&&(g[t.id]=t)}),l("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",p,E,T);I[d]={id:E,scope:n,clone:n},N[E]=!0}for(var j in g){if(A=g[j],O=ft(A.clone),o.leave(O),O[0].parentNode)for(d=0,v=O.length;v>d;d++)O[d][a]=!0;A.scope.$destroy()}for(d=0;x>d;d++)if(D=i===M?d:M[d],T=i[D],A=I[d],A.scope){y=P;do y=y.nextSibling;while(y&&y[a]);c(A)!=y&&o.move(ft(A.clone),null,Di(P)),P=h(A),u(A.scope,d,$,T,w,D,x)}else m(function(t,e){A.scope=e;var n=f.cloneNode(!1);t[t.length++]=n,o.enter(t,null,Di(P)),P=n,A.clone=t,N[A.id]=A,u(A.scope,d,$,T,w,D,x)});g=N})}}}}],uo="ng-hide",co="ng-hide-animate",ho=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,i){e.$watch(i.ngShow,function(e){t[e?"removeClass":"addClass"](n,uo,{tempClasses:co})})}}}],po=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,i){e.$watch(i.ngHide,function(e){t[e?"addClass":"removeClass"](n,uo,{tempClasses:co})})}}}],fo=Zn(function(t,e,n){t.$watch(n.ngStyle,function(t,n){n&&t!==n&&s(n,function(t,n){e.css(n,"")}),t&&e.css(t)},!0)}),mo=["$animate",function(t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,i,r,o){var a=r.ngSwitch||r.on,l=[],u=[],c=[],h=[],d=function(t,e){return function(){t.splice(e,1)}};n.$watch(a,function(n){var i,r;for(i=0,r=c.length;r>i;++i)t.cancel(c[i]);for(c.length=0,i=0,r=h.length;r>i;++i){var a=ft(u[i].clone);h[i].$destroy();var p=c[i]=t.leave(a);p.then(d(c,i))}u.length=0,h.length=0,(l=o.cases["!"+n]||o.cases["?"])&&s(l,function(n){n.transclude(function(i,r){h.push(r);var s=n.element;i[i.length++]=e.createComment(" end ngSwitchWhen: ");var o={clone:i};u.push(o),t.enter(i,s.parent(),s)})})})}}}],go=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,i,r){i.cases["!"+n.ngSwitchWhen]=i.cases["!"+n.ngSwitchWhen]||[],i.cases["!"+n.ngSwitchWhen].push({transclude:r,element:e})}}),vo=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,i,r){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:r,element:e})}}),bo=Zn({restrict:"EAC",link:function(t,e,n,r,s){if(!s)throw i("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",Q(e));s(function(t){e.empty(),e.append(t)})}}),yo=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var i=n.id,r=e[0].text;t.put(i,r)}}}}],$o={$setViewValue:m,$render:m},wo=["$element","$scope","$attrs",function(t,i,r){var s=this,o=new Yt;s.ngModelCtrl=$o,s.unknownOption=Di(e.createElement("option")),s.renderUnknownOption=function(e){var n="? "+Ut(e)+" ?";s.unknownOption.val(n),t.prepend(s.unknownOption),t.val(n)},i.$on("$destroy",function(){s.renderUnknownOption=m}),s.removeUnknownOption=function(){s.unknownOption.parent()&&s.unknownOption.remove()},s.readValue=function(){return s.removeUnknownOption(),t.val()},s.writeValue=function(e){s.hasOption(e)?(s.removeUnknownOption(),t.val(e),""===e&&s.emptyOption.prop("selected",!0)):null==e&&s.emptyOption?(s.removeUnknownOption(),t.val("")):s.renderUnknownOption(e)},s.addOption=function(t,e){dt(t,'"option value"'),""===t&&(s.emptyOption=e);var n=o.get(t)||0;o.put(t,n+1)},s.removeOption=function(t){var e=o.get(t);e&&(1===e?(o.remove(t),""===t&&(s.emptyOption=n)):o.put(t,e-1))},s.hasOption=function(t){return!!o.get(t)}}],xo=function(){return{restrict:"E",require:["select","?ngModel"],controller:wo,link:function(t,e,n,i){var r=i[1];if(r){var o=i[0];if(o.ngModelCtrl=r,r.$render=function(){o.writeValue(r.$viewValue)},e.on("change",function(){t.$apply(function(){r.$setViewValue(o.readValue())})}),n.multiple){o.readValue=function(){var t=[];return s(e.find("option"),function(e){e.selected&&t.push(e.value)}),t},o.writeValue=function(t){var n=new Yt(t);s(e.find("option"),function(t){t.selected=y(n.get(t.value))})};var a,l=0/0;t.$watch(function(){l!==r.$viewValue||W(a,r.$viewValue)||(a=z(r.$viewValue),r.$render()),l=r.$viewValue}),r.$isEmpty=function(t){return!t||0===t.length}}}}}},_o=["$interpolate",function(t){function e(t){t[0].hasAttribute("selected")&&(t[0].selected=!0)}return{restrict:"E",priority:100,compile:function(n,i){if(b(i.value)){var r=t(n.text(),!0);r||i.$set("value",n.text())}return function(t,n,i){var s="$selectController",o=n.parent(),a=o.data(s)||o.parent().data(s);a&&a.ngModelCtrl&&(r?t.$watch(r,function(t,r){i.$set("value",t),r!==t&&a.removeOption(r),a.addOption(t,n),a.ngModelCtrl.$render(),e(n)}):(a.addOption(i.value,n),a.ngModelCtrl.$render(),e(n)),n.on("$destroy",function(){a.removeOption(i.value),a.ngModelCtrl.$render()}))}}}}],ko=v({restrict:"E",terminal:!1}),Co=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,i){i&&(n.required=!0,i.$validators.required=function(t,e){return!n.required||!i.$isEmpty(e)},n.$observe("required",function(){i.$validate()}))}}},Do=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,r,s){if(s){var o,a=r.ngPattern||r.pattern;r.$observe("pattern",function(t){if(x(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw i("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",a,t,Q(e));o=t||n,s.$validate()}),s.$validators.pattern=function(t){return s.$isEmpty(t)||b(o)||o.test(t)}}}}},To=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,i){if(i){var r=-1;n.$observe("maxlength",function(t){var e=p(t);r=isNaN(e)?-1:e,i.$validate()}),i.$validators.maxlength=function(t,e){return 0>r||i.$isEmpty(e)||e.length<=r}}}}},Eo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,i){if(i){var r=0;n.$observe("minlength",function(t){r=p(t)||0,i.$validate()}),i.$validators.minlength=function(t,e){return i.$isEmpty(e)||e.length>=r}}}}};return t.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(ut(),yt(Ni),void Di(e).ready(function(){rt(e,st)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document).find("head").prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(t,e,n){"use strict";function i(){function t(t,n){return e.extend(Object.create(t),n)}function n(t,e){var n=e.caseInsensitiveMatch,i={originalPath:t,regexp:t},r=i.keys=[];return t=t.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(t,e,n,i){var s="?"===i?i:null,o="*"===i?i:null;return r.push({name:n,optional:!!s}),e=e||"",""+(s?"":e)+"(?:"+(s?e:"")+(o&&"(.+?)"||"([^/]+)")+(s||"")+")"+(s||"")}).replace(/([\/$\*])/g,"\\$1"),i.regexp=new RegExp("^"+t+"$",n?"i":""),i}var i={};this.when=function(t,r){var s=e.copy(r);if(e.isUndefined(s.reloadOnSearch)&&(s.reloadOnSearch=!0),
-e.isUndefined(s.caseInsensitiveMatch)&&(s.caseInsensitiveMatch=this.caseInsensitiveMatch),i[t]=e.extend(s,t&&n(t,s)),t){var o="/"==t[t.length-1]?t.substr(0,t.length-1):t+"/";i[o]=e.extend({redirectTo:t},n(o,s))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(t){return"string"==typeof t&&(t={redirectTo:t}),this.when(null,t),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function(n,r,s,o,a,u,c){function h(t,e){var n=e.keys,i={};if(!e.regexp)return null;var r=e.regexp.exec(t);if(!r)return null;for(var s=1,o=r.length;o>s;++s){var a=n[s-1],l=r[s];a&&l&&(i[a.name]=l)}return i}function d(t){var i=y.current;g=f(),v=g&&i&&g.$$route===i.$$route&&e.equals(g.pathParams,i.pathParams)&&!g.reloadOnSearch&&!b,v||!i&&!g||n.$broadcast("$routeChangeStart",g,i).defaultPrevented&&t&&t.preventDefault()}function p(){var t=y.current,i=g;v?(t.params=i.params,e.copy(t.params,s),n.$broadcast("$routeUpdate",t)):(i||t)&&(b=!1,y.current=i,i&&i.redirectTo&&(e.isString(i.redirectTo)?r.path(m(i.redirectTo,i.params)).search(i.params).replace():r.url(i.redirectTo(i.pathParams,r.path(),r.search())).replace()),o.when(i).then(function(){if(i){var t,n,r=e.extend({},i.resolve);return e.forEach(r,function(t,n){r[n]=e.isString(t)?a.get(t):a.invoke(t,null,null,n)}),e.isDefined(t=i.template)?e.isFunction(t)&&(t=t(i.params)):e.isDefined(n=i.templateUrl)&&(e.isFunction(n)&&(n=n(i.params)),n=c.getTrustedResourceUrl(n),e.isDefined(n)&&(i.loadedTemplateUrl=n,t=u(n))),e.isDefined(t)&&(r.$template=t),o.all(r)}}).then(function(r){i==y.current&&(i&&(i.locals=r,e.copy(i.params,s)),n.$broadcast("$routeChangeSuccess",i,t))},function(e){i==y.current&&n.$broadcast("$routeChangeError",i,t,e)}))}function f(){var n,s;return e.forEach(i,function(i,o){!s&&(n=h(r.path(),i))&&(s=t(i,{params:e.extend({},r.search(),n),pathParams:n}),s.$$route=i)}),s||i[null]&&t(i[null],{params:{},pathParams:{}})}function m(t,n){var i=[];return e.forEach((t||"").split(":"),function(t,e){if(0===e)i.push(t);else{var r=t.match(/(\w+)(?:[?*])?(.*)/),s=r[1];i.push(n[s]),i.push(r[2]||""),delete n[s]}}),i.join("")}var g,v,b=!1,y={routes:i,reload:function(){b=!0,n.$evalAsync(function(){d(),p()})},updateParams:function(t){if(!this.current||!this.current.$$route)throw l("norout","Tried updating route when with no current route");t=e.extend({},this.current.params,t),r.path(m(this.current.$$route.originalPath,t)),r.search(t)}};return n.$on("$locationChangeStart",d),n.$on("$locationChangeSuccess",p),y}]}function r(){this.$get=function(){return{}}}function s(t,n,i){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(r,s,o,a,l){function u(){p&&(i.cancel(p),p=null),h&&(h.$destroy(),h=null),d&&(p=i.leave(d),p.then(function(){p=null}),d=null)}function c(){var o=t.current&&t.current.locals,a=o&&o.$template;if(e.isDefined(a)){var c=r.$new(),p=t.current,g=l(c,function(t){i.enter(t,null,d||s).then(function(){!e.isDefined(f)||f&&!r.$eval(f)||n()}),u()});d=g,h=p.scope=c,h.$emit("$viewContentLoaded"),h.$eval(m)}else u()}var h,d,p,f=o.autoscroll,m=o.onload||"";r.$on("$routeChangeSuccess",c),c()}}}function o(t,e,n){return{restrict:"ECA",priority:-400,link:function(i,r){var s=n.current,o=s.locals;r.html(o.$template);var a=t(r.contents());if(s.controller){o.$scope=i;var l=e(s.controller,o);s.controllerAs&&(i[s.controllerAs]=l),r.data("$ngControllerController",l),r.children().data("$ngControllerController",l)}a(i)}}}var a=e.module("ngRoute",["ng"]).provider("$route",i),l=e.$$minErr("ngRoute");a.provider("$routeParams",r),a.directive("ngView",s),a.directive("ngView",o),s.$inject=["$route","$anchorScroll","$animate"],o.$inject=["$compile","$controller","$route"]}(window,window.angular),function(t,e,n){"use strict";function i(t){return null!=t&&""!==t&&"hasOwnProperty"!==t&&a.test("."+t)}function r(t,e){if(!i(e))throw o("badmember",'Dotted member path "@{0}" is invalid.',e);for(var r=e.split("."),s=0,a=r.length;a>s&&t!==n;s++){var l=r[s];t=null!==t?t[l]:n}return t}function s(t,n){n=n||{},e.forEach(n,function(t,e){delete n[e]});for(var i in t)!t.hasOwnProperty(i)||"$"===i.charAt(0)&&"$"===i.charAt(1)||(n[i]=t[i]);return n}var o=e.$$minErr("$resource"),a=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;e.module("ngResource",["ng"]).provider("$resource",function(){var t=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}},this.$get=["$http","$q",function(i,a){function l(t){return u(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function u(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,e?"%20":"+")}function c(e,n){this.template=e,this.defaults=f({},t.defaults,n),this.urlParams={}}function h(l,u,v,b){function y(t,e){var n={};return e=f({},u,e),p(e,function(e,i){g(e)&&(e=e()),n[i]=e&&e.charAt&&"@"==e.charAt(0)?r(t,e.substr(1)):e}),n}function $(t){return t.resource}function w(t){s(t||{},this)}var x=new c(l,b);return v=f({},t.defaults.actions,v),w.prototype.toJSON=function(){var t=f({},this);return delete t.$promise,delete t.$resolved,t},p(v,function(t,r){var l=/^(POST|PUT|PATCH)$/i.test(t.method);w[r]=function(u,c,h,v){var b,_,k,C={};switch(arguments.length){case 4:k=v,_=h;case 3:case 2:if(!g(c)){C=u,b=c,_=h;break}if(g(u)){_=u,k=c;break}_=c,k=h;case 1:g(u)?_=u:l?b=u:C=u;break;case 0:break;default:throw o("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var D=this instanceof w,T=D?b:t.isArray?[]:new w(b),E={},S=t.interceptor&&t.interceptor.response||$,M=t.interceptor&&t.interceptor.responseError||n;p(t,function(t,e){"params"!=e&&"isArray"!=e&&"interceptor"!=e&&(E[e]=m(t))}),l&&(E.data=b),x.setUrlParams(E,f({},y(b,t.params||{}),C),t.url);var A=i(E).then(function(n){var i=n.data,a=T.$promise;if(i){if(e.isArray(i)!==!!t.isArray)throw o("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",r,t.isArray?"array":"object",e.isArray(i)?"array":"object",E.method,E.url);t.isArray?(T.length=0,p(i,function(t){T.push("object"==typeof t?new w(t):t)})):(s(i,T),T.$promise=a)}return T.$resolved=!0,n.resource=T,n},function(t){return T.$resolved=!0,(k||d)(t),a.reject(t)});return A=A.then(function(t){var e=S(t);return(_||d)(e,t.headers),e},M),D?A:(T.$promise=A,T.$resolved=!1,T)},w.prototype["$"+r]=function(t,e,n){g(t)&&(n=e,e=t,t={});var i=w[r].call(this,t,this,e,n);return i.$promise||i}}),w.bind=function(t){return h(l,f({},u,t),v)},w}var d=e.noop,p=e.forEach,f=e.extend,m=e.copy,g=e.isFunction;return c.prototype={setUrlParams:function(t,n,i){var r,s,a=this,u=i||a.template,c=a.urlParams={};p(u.split(/\W/),function(t){if("hasOwnProperty"===t)throw o("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(t)&&t&&new RegExp("(^|[^\\\\]):"+t+"(\\W|$)").test(u)&&(c[t]=!0)}),u=u.replace(/\\:/g,":"),n=n||{},p(a.urlParams,function(t,i){r=n.hasOwnProperty(i)?n[i]:a.defaults[i],e.isDefined(r)&&null!==r?(s=l(r),u=u.replace(new RegExp(":"+i+"(\\W|$)","g"),function(t,e){return s+e})):u=u.replace(new RegExp("(/?):"+i+"(\\W|$)","g"),function(t,e,n){return"/"==n.charAt(0)?n:e+n})}),a.defaults.stripTrailingSlashes&&(u=u.replace(/\/+$/,"")||"/"),u=u.replace(/\/\.(?=\w+($|\?))/,"."),t.url=u.replace(/\/\\\./,"/."),p(n,function(e,n){a.urlParams[n]||(t.params=t.params||{},t.params[n]=e)})}},h}]})}(window,window.angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.transition","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("collapse",["$animate",function(t){return{link:function(e,n,i){function r(){n.removeClass("collapse").addClass("collapsing"),t.addClass(n,"in",{to:{height:n[0].scrollHeight+"px"}}).then(s)}function s(){n.removeClass("collapsing"),n.css({height:"auto"})}function o(){n.css({height:n[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing"),t.removeClass(n,"in",{to:{height:"0"}}).then(a)}function a(){n.css({height:"0"}),n.removeClass("collapsing"),n.addClass("collapse")}e.$watch(i.collapse,function(t){t?o():r()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(t,e,n){this.groups=[],this.closeOthers=function(i){var r=angular.isDefined(e.closeOthers)?t.$eval(e.closeOthers):n.closeOthers;r&&angular.forEach(this.groups,function(t){t!==i&&(t.isOpen=!1)})},this.addGroup=function(t){var e=this;this.groups.push(t),t.$on("$destroy",function(n){e.removeGroup(t)})},this.removeGroup=function(t){var e=this.groups.indexOf(t);-1!==e&&this.groups.splice(e,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(t){this.heading=t}},link:function(t,e,n,i){i.addGroup(t),t.$watch("isOpen",function(e){e&&i.closeOthers(t)}),t.toggleOpen=function(){t.isDisabled||(t.isOpen=!t.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(t,e,n,i,r){i.setHeading(r(t,angular.noop))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(t,e,n,i){t.$watch(function(){return i[n.accordionTransclude]},function(t){t&&(e.html(""),e.append(t))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(t,e){t.closeable="close"in e,this.close=t.close}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}).directive("dismissOnTimeout",["$timeout",function(t){return{require:"alert",link:function(e,n,i,r){t(function(){r.close()},parseInt(i.dismissOnTimeout,10))}}}]),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(t,e,n){e.addClass("ng-binding").data("$binding",n.bindHtmlUnsafe),t.$watch(n.bindHtmlUnsafe,function(t){e.html(t||"")})}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(t){this.activeClass=t.activeClass||"active",this.toggleEvent=t.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(t,e,n,i){var r=i[0],s=i[1];s.$render=function(){e.toggleClass(r.activeClass,angular.equals(s.$modelValue,t.$eval(n.btnRadio)))},e.bind(r.toggleEvent,function(){var i=e.hasClass(r.activeClass);(!i||angular.isDefined(n.uncheckable))&&t.$apply(function(){s.$setViewValue(i?null:t.$eval(n.btnRadio)),s.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(t,e,n,i){function r(){return o(n.btnCheckboxTrue,!0)}function s(){return o(n.btnCheckboxFalse,!1)}function o(e,n){var i=t.$eval(e);return angular.isDefined(i)?i:n}var a=i[0],l=i[1];l.$render=function(){e.toggleClass(a.activeClass,angular.equals(l.$modelValue,r()))},e.bind(a.toggleEvent,function(){t.$apply(function(){l.$setViewValue(e.hasClass(a.activeClass)?s():r()),l.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("CarouselController",["$scope","$interval","$animate",function(t,e,n){function i(t){if(angular.isUndefined(c[t].index))return c[t];{var e;c.length}for(e=0;e<c.length;++e)if(c[e].index==t)return c[e]}function r(){s();var n=+t.interval;!isNaN(n)&&n>0&&(a=e(o,n))}function s(){a&&(e.cancel(a),a=null)}function o(){var e=+t.interval;l&&!isNaN(e)&&e>0?t.next():t.pause()}var a,l,u=this,c=u.slides=t.slides=[],h=-1;u.currentSlide=null;var d=!1;u.select=t.select=function(e,i){function s(){d||(angular.extend(e,{direction:i,active:!0}),angular.extend(u.currentSlide||{},{direction:i,active:!1}),n.enabled()&&!t.noTransition&&e.$element&&(t.$currentTransition=!0,e.$element.one("$animate:close",function(){t.$currentTransition=null})),u.currentSlide=e,h=o,r())}var o=u.indexOfSlide(e);void 0===i&&(i=o>u.getCurrentIndex()?"next":"prev"),e&&e!==u.currentSlide&&s()},t.$on("$destroy",function(){d=!0}),u.getCurrentIndex=function(){return u.currentSlide&&angular.isDefined(u.currentSlide.index)?+u.currentSlide.index:h},u.indexOfSlide=function(t){return angular.isDefined(t.index)?+t.index:c.indexOf(t)},t.next=function(){var e=(u.getCurrentIndex()+1)%c.length;return t.$currentTransition?void 0:u.select(i(e),"next")},t.prev=function(){var e=u.getCurrentIndex()-1<0?c.length-1:u.getCurrentIndex()-1;return t.$currentTransition?void 0:u.select(i(e),"prev")},t.isActive=function(t){return u.currentSlide===t},t.$watch("interval",r),t.$on("$destroy",s),t.play=function(){l||(l=!0,r())},t.pause=function(){t.noPause||(l=!1,s())},u.addSlide=function(e,n){e.$element=n,c.push(e),1===c.length||e.active?(u.select(c[c.length-1]),1==c.length&&t.play()):e.active=!1},u.removeSlide=function(t){angular.isDefined(t.index)&&c.sort(function(t,e){return+t.index>+e.index});var e=c.indexOf(t);c.splice(e,1),c.length>0&&t.active?u.select(e>=c.length?c[e-1]:c[e]):h>e&&h--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?",index:"=?"},link:function(t,e,n,i){i.addSlide(t,e),t.$on("$destroy",function(){i.removeSlide(t)}),t.$watch("active",function(e){e&&i.select(t)})}}}).animation(".item",["$animate",function(t){return{beforeAddClass:function(e,n,i){if("active"==n&&e.parent()&&!e.parent().scope().noTransition){var r=!1,s=e.isolateScope().direction,o="next"==s?"left":"right";return e.addClass(s),t.addClass(e,o).then(function(){r||e.removeClass(o+" "+s),i()}),function(){r=!0}}i()},beforeRemoveClass:function(e,n,i){if("active"==n&&e.parent()&&!e.parent().scope().noTransition){var r=!1,s=e.isolateScope().direction,o="next"==s?"left":"right";return t.addClass(e,o).then(function(){r||e.removeClass(o),i()}),function(){r=!0}}i()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(t,e){function n(t){var n=[],i=t.split("");return angular.forEach(s,function(e,r){var s=t.indexOf(r);if(s>-1){t=t.split(""),i[s]="("+e.regex+")",t[s]="$";for(var o=s+1,a=s+r.length;a>o;o++)i[o]="",t[o]="$";t=t.join(""),n.push({index:s,apply:e.apply})}}),{regex:new RegExp("^"+i.join("")+"$"),map:e(n,"index")}}function i(t,e,n){return 1>n?!1:1===e&&n>28?29===n&&(t%4===0&&t%100!==0||t%400===0):3===e||5===e||8===e||10===e?31>n:!0}var r=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.parsers={};var s={yyyy:{regex:"\\d{4}",apply:function(t){this.year=+t}},yy:{regex:"\\d{2}",apply:function(t){this.year=+t+2e3}},y:{regex:"\\d{1,4}",apply:function(t){this.year=+t}},MMMM:{regex:t.DATETIME_FORMATS.MONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.MONTH.indexOf(e)}},MMM:{regex:t.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.SHORTMONTH.indexOf(e)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(t){this.month=t-1}},M:{regex:"[1-9]|1[0-2]",apply:function(t){this.month=t-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(t){this.date=+t}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(t){this.date=+t}},EEEE:{regex:t.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:t.DATETIME_FORMATS.SHORTDAY.join("|")},HH:{regex:"(?:0|1)[0-9]|2[0-3]",apply:function(t){this.hours=+t}},H:{regex:"1?[0-9]|2[0-3]",apply:function(t){this.hours=+t}},mm:{regex:"[0-5][0-9]",apply:function(t){this.minutes=+t}},m:{regex:"[0-9]|[1-5][0-9]",apply:function(t){this.minutes=+t}},sss:{regex:"[0-9][0-9][0-9]",apply:function(t){this.milliseconds=+t}},ss:{regex:"[0-5][0-9]",apply:function(t){this.seconds=+t}},s:{regex:"[0-9]|[1-5][0-9]",apply:function(t){this.seconds=+t}}};this.parse=function(e,s,o){if(!angular.isString(e)||!s)return e;s=t.DATETIME_FORMATS[s]||s,s=s.replace(r,"\\$&"),this.parsers[s]||(this.parsers[s]=n(s));var a=this.parsers[s],l=a.regex,u=a.map,c=e.match(l);if(c&&c.length){var h,d;h=o?{year:o.getFullYear(),month:o.getMonth(),date:o.getDate(),hours:o.getHours(),minutes:o.getMinutes(),seconds:o.getSeconds(),milliseconds:o.getMilliseconds()}:{year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0};for(var p=1,f=c.length;f>p;p++){var m=u[p-1];m.apply&&m.apply.call(h,c[p])}return i(h.year,h.month,h.date)&&(d=new Date(h.year,h.month,h.date,h.hours,h.minutes,h.seconds,h.milliseconds||0)),d}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(t,e){function n(t,n){return t.currentStyle?t.currentStyle[n]:e.getComputedStyle?e.getComputedStyle(t)[n]:t.style[n]}function i(t){return"static"===(n(t,"position")||"static")}var r=function(e){for(var n=t[0],r=e.offsetParent||n;r&&r!==n&&i(r);)r=r.offsetParent;return r||n};return{position:function(e){var n=this.offset(e),i={top:0,left:0},s=r(e[0]);s!=t[0]&&(i=this.offset(angular.element(s)),i.top+=s.clientTop-s.scrollTop,i.left+=s.clientLeft-s.scrollLeft);var o=e[0].getBoundingClientRect();return{width:o.width||e.prop("offsetWidth"),height:o.height||e.prop("offsetHeight"),top:n.top-i.top,left:n.left-i.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(e.pageYOffset||t[0].documentElement.scrollTop),left:i.left+(e.pageXOffset||t[0].documentElement.scrollLeft)}},positionElements:function(t,e,n,i){var r,s,o,a,l=n.split("-"),u=l[0],c=l[1]||"center";r=i?this.offset(t):this.position(t),s=e.prop("offsetWidth"),o=e.prop("offsetHeight");var h={center:function(){return r.left+r.width/2-s/2},left:function(){return r.left},right:function(){return r.left+r.width}},d={center:function(){return r.top+r.height/2-o/2},top:function(){return r.top},bottom:function(){return r.top+r.height}};switch(u){case"right":a={top:d[c](),left:h[u]()};break;case"left":a={top:d[c](),left:r.left-s};break;case"bottom":a={top:d[u](),left:h[c]()};break;default:a={top:r.top-o,left:h[c]()}}return a}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null,shortcutPropagation:!1}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(t,e,n,i,r,s,o,a){var l=this,u={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange","shortcutPropagation"],function(n,r){l[n]=angular.isDefined(e[n])?8>r?i(e[n])(t.$parent):t.$parent.$eval(e[n]):a[n]}),angular.forEach(["minDate","maxDate"],function(i){e[i]?t.$parent.$watch(n(e[i]),function(t){l[i]=t?new Date(t):null,l.refreshView()}):l[i]=a[i]?new Date(a[i]):null}),t.datepickerMode=t.datepickerMode||a.datepickerMode,t.maxMode=l.maxMode,t.uniqueId="datepicker-"+t.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(e.initDate)?(this.activeDate=t.$parent.$eval(e.initDate)||new Date,t.$parent.$watch(e.initDate,function(t){t&&(u.$isEmpty(u.$modelValue)||u.$invalid)&&(l.activeDate=t,l.refreshView())})):this.activeDate=new Date,t.isActive=function(e){return 0===l.compare(e.date,l.activeDate)?(t.activeDateId=e.uid,!0):!1},this.init=function(t){u=t,u.$render=function(){l.render()}},this.render=function(){if(u.$viewValue){var t=new Date(u.$viewValue),e=!isNaN(t);e?this.activeDate=t:s.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.'),u.$setValidity("date",e)}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var t=u.$viewValue?new Date(u.$viewValue):null;u.$setValidity("date-disabled",!t||this.element&&!this.isDisabled(t))}},this.createDateObject=function(t,e){var n=u.$viewValue?new Date(u.$viewValue):null;return{date:t,label:o(t,e),selected:n&&0===this.compare(t,n),disabled:this.isDisabled(t),current:0===this.compare(t,new Date),customClass:this.customClass(t)}},this.isDisabled=function(n){return this.minDate&&this.compare(n,this.minDate)<0||this.maxDate&&this.compare(n,this.maxDate)>0||e.dateDisabled&&t.dateDisabled({date:n,mode:t.datepickerMode})},this.customClass=function(e){return t.customClass({date:e,mode:t.datepickerMode})},this.split=function(t,e){for(var n=[];t.length>0;)n.push(t.splice(0,e));return n},t.select=function(e){if(t.datepickerMode===l.minMode){var n=u.$viewValue?new Date(u.$viewValue):new Date(0,0,0,0,0,0,0);n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),u.$setViewValue(n),u.$render()}else l.activeDate=e,t.datepickerMode=l.modes[l.modes.indexOf(t.datepickerMode)-1]},t.move=function(t){var e=l.activeDate.getFullYear()+t*(l.step.years||0),n=l.activeDate.getMonth()+t*(l.step.months||0);l.activeDate.setFullYear(e,n,1),l.refreshView()},t.toggleMode=function(e){e=e||1,t.datepickerMode===l.maxMode&&1===e||t.datepickerMode===l.minMode&&-1===e||(t.datepickerMode=l.modes[l.modes.indexOf(t.datepickerMode)+e])},t.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var c=function(){r(function(){l.element[0].focus()},0,!1)};t.$on("datepicker.focus",c),t.keydown=function(e){var n=t.keys[e.which];if(n&&!e.shiftKey&&!e.altKey)if(e.preventDefault(),l.shortcutPropagation||e.stopPropagation(),"enter"===n||"space"===n){if(l.isDisabled(l.activeDate))return;t.select(l.activeDate),c()}else!e.ctrlKey||"up"!==n&&"down"!==n?(l.handleKeyDown(n,e),l.refreshView()):(t.toggleMode("up"===n?1:-1),c())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(t,e,n,i){var r=i[0],s=i[1];s&&r.init(s)}}}).directive("daypicker",["dateFilter",function(t){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(e,n,i,r){function s(t,e){return 1!==e||t%4!==0||t%100===0&&t%400!==0?l[e]:29}function o(t,e){var n=new Array(e),i=new Date(t),r=0;for(i.setHours(12);e>r;)n[r++]=new Date(i),i.setDate(i.getDate()+1);return n}function a(t){var e=new Date(t);e.setDate(e.getDate()+4-(e.getDay()||7));var n=e.getTime();return e.setMonth(0),e.setDate(1),Math.floor(Math.round((n-e)/864e5)/7)+1}e.showWeeks=r.showWeeks,r.step={months:1},r.element=n;var l=[31,28,31,30,31,30,31,31,30,31,30,31];r._refreshView=function(){var n=r.activeDate.getFullYear(),i=r.activeDate.getMonth(),s=new Date(n,i,1),l=r.startingDay-s.getDay(),u=l>0?7-l:-l,c=new Date(s);u>0&&c.setDate(-u+1);for(var h=o(c,42),d=0;42>d;d++)h[d]=angular.extend(r.createDateObject(h[d],r.formatDay),{secondary:h[d].getMonth()!==i,uid:e.uniqueId+"-"+d});e.labels=new Array(7);for(var p=0;7>p;p++)e.labels[p]={abbr:t(h[p].date,r.formatDayHeader),full:t(h[p].date,"EEEE")};if(e.title=t(r.activeDate,r.formatDayTitle),e.rows=r.split(h,7),e.showWeeks){e.weekNumbers=[];for(var f=(11-r.startingDay)%7,m=e.rows.length,g=0;m>g;g++)e.weekNumbers.push(a(e.rows[g][f].date))}},r.compare=function(t,e){return new Date(t.getFullYear(),t.getMonth(),t.getDate())-new Date(e.getFullYear(),e.getMonth(),e.getDate())},r.handleKeyDown=function(t,e){var n=r.activeDate.getDate();if("left"===t)n-=1;else if("up"===t)n-=7;else if("right"===t)n+=1;else if("down"===t)n+=7;else if("pageup"===t||"pagedown"===t){var i=r.activeDate.getMonth()+("pageup"===t?-1:1);r.activeDate.setMonth(i,1),n=Math.min(s(r.activeDate.getFullYear(),r.activeDate.getMonth()),n)}else"home"===t?n=1:"end"===t&&(n=s(r.activeDate.getFullYear(),r.activeDate.getMonth()));r.activeDate.setDate(n)},r.refreshView()}}}]).directive("monthpicker",["dateFilter",function(t){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(e,n,i,r){r.step={years:1},r.element=n,r._refreshView=function(){for(var n=new Array(12),i=r.activeDate.getFullYear(),s=0;12>s;s++)n[s]=angular.extend(r.createDateObject(new Date(i,s,1),r.formatMonth),{uid:e.uniqueId+"-"+s});e.title=t(r.activeDate,r.formatMonthTitle),e.rows=r.split(n,3)},r.compare=function(t,e){return new Date(t.getFullYear(),t.getMonth())-new Date(e.getFullYear(),e.getMonth())},r.handleKeyDown=function(t,e){var n=r.activeDate.getMonth();if("left"===t)n-=1;else if("up"===t)n-=3;else if("right"===t)n+=1;else if("down"===t)n+=3;else if("pageup"===t||"pagedown"===t){var i=r.activeDate.getFullYear()+("pageup"===t?-1:1);r.activeDate.setFullYear(i)}else"home"===t?n=0:"end"===t&&(n=11);r.activeDate.setMonth(n)},r.refreshView()}}}]).directive("yearpicker",["dateFilter",function(t){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(t,e,n,i){function r(t){return parseInt((t-1)/s,10)*s+1}var s=i.yearRange;i.step={years:s},i.element=e,i._refreshView=function(){for(var e=new Array(s),n=0,o=r(i.activeDate.getFullYear());s>n;n++)e[n]=angular.extend(i.createDateObject(new Date(o+n,0,1),i.formatYear),{uid:t.uniqueId+"-"+n});t.title=[e[0].label,e[s-1].label].join(" - "),t.rows=i.split(e,5)},i.compare=function(t,e){return t.getFullYear()-e.getFullYear()},i.handleKeyDown=function(t,e){var n=i.activeDate.getFullYear();"left"===t?n-=1:"up"===t?n-=5:"right"===t?n+=1:"down"===t?n+=5:"pageup"===t||"pagedown"===t?n+=("pageup"===t?-1:1)*i.step.years:"home"===t?n=r(i.activeDate.getFullYear()):"end"===t&&(n=r(i.activeDate.getFullYear())+s-1),i.activeDate.setFullYear(n)},i.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(t,e,n,i,r,s,o){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(a,l,u,c){function h(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}function d(t){if(angular.isNumber(t)&&(t=new Date(t)),t){if(angular.isDate(t)&&!isNaN(t))return t;if(angular.isString(t)){var e=s.parse(t,f,a.date)||new Date(t);return isNaN(e)?void 0:e}return void 0}return null}function p(t,e){var n=t||e;if(angular.isNumber(n)&&(n=new Date(n)),n){if(angular.isDate(n)&&!isNaN(n))return!0;if(angular.isString(n)){var i=s.parse(n,f)||new Date(n);return!isNaN(i)}return!1}return!0}var f,m=angular.isDefined(u.closeOnDateSelection)?a.$parent.$eval(u.closeOnDateSelection):o.closeOnDateSelection,g=angular.isDefined(u.datepickerAppendToBody)?a.$parent.$eval(u.datepickerAppendToBody):o.appendToBody;a.showButtonBar=angular.isDefined(u.showButtonBar)?a.$parent.$eval(u.showButtonBar):o.showButtonBar,a.getText=function(t){return a[t+"Text"]||o[t+"Text"]};var v=!1;if(o.html5Types[u.type]?(f=o.html5Types[u.type],v=!0):(f=u.datepickerPopup||o.datepickerPopup,u.$observe("datepickerPopup",function(t,e){var n=t||o.datepickerPopup;if(n!==f&&(f=n,c.$modelValue=null,!f))throw new Error("datepickerPopup must have a date format specified.")})),!f)throw new Error("datepickerPopup must have a date format specified.");if(v&&u.datepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");var b=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>");b.attr({"ng-model":"date","ng-change":"dateSelection()"});var y=angular.element(b.children()[0]);if(v&&"month"==u.type&&(y.attr("datepicker-mode",'"month"'),y.attr("min-mode","month")),u.datepickerOptions){var $=a.$parent.$eval(u.datepickerOptions);$.initDate&&(a.initDate=$.initDate,y.attr("init-date","initDate"),delete $.initDate),angular.forEach($,function(t,e){y.attr(h(e),t)})}a.watchData={},angular.forEach(["minDate","maxDate","datepickerMode","initDate","shortcutPropagation"],function(t){if(u[t]){var n=e(u[t]);if(a.$parent.$watch(n,function(e){a.watchData[t]=e}),y.attr(h(t),"watchData."+t),"datepickerMode"===t){var i=n.assign;a.$watch("watchData."+t,function(t,e){t!==e&&i(a.$parent,t)})}}}),u.dateDisabled&&y.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),u.showWeeks&&y.attr("show-weeks",u.showWeeks),u.customClass&&y.attr("custom-class","customClass({ date: date, mode: mode })"),v?c.$formatters.push(function(t){return a.date=t,t}):(c.$$parserName="date",c.$validators.date=p,c.$parsers.unshift(d),c.$formatters.push(function(t){return a.date=t,c.$isEmpty(t)?t:r(t,f)})),a.dateSelection=function(t){angular.isDefined(t)&&(a.date=t);var e=a.date?r(a.date,f):"";l.val(e),c.$setViewValue(e),m&&(a.isOpen=!1,l[0].focus())},c.$viewChangeListeners.push(function(){a.date=s.parse(c.$viewValue,f,a.date)||new Date(c.$viewValue)});var w=function(t){a.isOpen&&t.target!==l[0]&&a.$apply(function(){a.isOpen=!1})},x=function(t,e){a.keydown(t)};l.bind("keydown",x),a.keydown=function(t){27===t.which?(t.preventDefault(),a.isOpen&&t.stopPropagation(),a.close()):40!==t.which||a.isOpen||(a.isOpen=!0)},a.$watch("isOpen",function(t){t?(a.$broadcast("datepicker.focus"),a.position=g?i.offset(l):i.position(l),a.position.top=a.position.top+l.prop("offsetHeight"),n.bind("click",w)):n.unbind("click",w)}),a.select=function(t){if("today"===t){var e=new Date;angular.isDate(a.date)?(t=new Date(a.date),
-t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate())):t=new Date(e.setHours(0,0,0,0))}a.dateSelection(t)},a.close=function(){a.isOpen=!1,l[0].focus()};var _=t(b)(a);b.remove(),g?n.find("body").append(_):l.after(_),a.$on("$destroy",function(){_.remove(),l.unbind("keydown",x),n.unbind("click",w)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(t,e,n){e.bind("click",function(t){t.preventDefault(),t.stopPropagation()})}}}),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document","$rootScope",function(t,e){var n=null;this.open=function(e){n||(t.bind("click",i),t.bind("keydown",r)),n&&n!==e&&(n.isOpen=!1),n=e},this.close=function(e){n===e&&(n=null,t.unbind("click",i),t.unbind("keydown",r))};var i=function(t){if(n&&(!t||"disabled"!==n.getAutoClose())){var i=n.getToggleElement();if(!(t&&i&&i[0].contains(t.target))){var r=n.getElement();t&&"outsideClick"===n.getAutoClose()&&r&&r[0].contains(t.target)||(n.isOpen=!1,e.$$phase||n.$apply())}}},r=function(t){27===t.which&&(n.focusToggleElement(),i())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate","$position","$document",function(t,e,n,i,r,s,o,a){var l,u=this,c=t.$new(),h=i.openClass,d=angular.noop,p=e.onToggle?n(e.onToggle):angular.noop,f=!1;this.init=function(i){u.$element=i,e.isOpen&&(l=n(e.isOpen),d=l.assign,t.$watch(l,function(t){c.isOpen=!!t})),f=angular.isDefined(e.dropdownAppendToBody),f&&u.dropdownMenu&&(a.find("body").append(u.dropdownMenu),i.on("$destroy",function(){u.dropdownMenu.remove()}))},this.toggle=function(t){return c.isOpen=arguments.length?!!t:!c.isOpen},this.isOpen=function(){return c.isOpen},c.getToggleElement=function(){return u.toggleElement},c.getAutoClose=function(){return e.autoClose||"always"},c.getElement=function(){return u.$element},c.focusToggleElement=function(){u.toggleElement&&u.toggleElement[0].focus()},c.$watch("isOpen",function(e,n){if(f&&u.dropdownMenu){var i=o.positionElements(u.$element,u.dropdownMenu,"bottom-left",!0);u.dropdownMenu.css({top:i.top+"px",left:i.left+"px",display:e?"block":"none"})}s[e?"addClass":"removeClass"](u.$element,h),e?(c.focusToggleElement(),r.open(c)):r.close(c),d(t,e),angular.isDefined(e)&&e!==n&&p(t,{open:!!e})}),t.$on("$locationChangeSuccess",function(){c.isOpen=!1}),t.$on("$destroy",function(){c.$destroy()})}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(t,e,n,i){i.init(e)}}}).directive("dropdownMenu",function(){return{restrict:"AC",require:"?^dropdown",link:function(t,e,n,i){i&&(i.dropdownMenu=e)}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(t,e,n,i){if(i){i.toggleElement=e;var r=function(r){r.preventDefault(),e.hasClass("disabled")||n.disabled||t.$apply(function(){i.toggle()})};e.bind("click",r),e.attr({"aria-haspopup":!0,"aria-expanded":!1}),t.$watch(i.isOpen,function(t){e.attr("aria-expanded",!!t)}),t.$on("$destroy",function(){e.unbind("click",r)})}}}}),angular.module("ui.bootstrap.modal",[]).factory("$$stackedMap",function(){return{createNew:function(){var t=[];return{add:function(e,n){t.push({key:e,value:n})},get:function(e){for(var n=0;n<t.length;n++)if(e==t[n].key)return t[n]},keys:function(){for(var e=[],n=0;n<t.length;n++)e.push(t[n].key);return e},top:function(){return t[t.length-1]},remove:function(e){for(var n=-1,i=0;i<t.length;i++)if(e==t[i].key){n=i;break}return t.splice(n,1)[0]},removeTop:function(){return t.splice(t.length-1,1)[0]},length:function(){return t.length}}}}}).directive("modalBackdrop",["$timeout",function(t){function e(e,n,i){e.animate=!1,t(function(){e.animate=!0})}return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",compile:function(t,n){return t.addClass(n.backdropClass),e}}}]).directive("modalWindow",["$modalStack","$q",function(t,e){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(t,e){return e.templateUrl||"template/modal/window.html"},link:function(n,i,r){i.addClass(r.windowClass||""),n.size=r.size,n.close=function(e){var n=t.getTop();n&&n.value.backdrop&&"static"!=n.value.backdrop&&e.target===e.currentTarget&&(e.preventDefault(),e.stopPropagation(),t.dismiss(n.key,"backdrop click"))},n.$isRendered=!0;var s=e.defer();r.$observe("modalRender",function(t){"true"==t&&s.resolve()}),s.promise.then(function(){n.animate=!0;var e=i[0].querySelectorAll("[autofocus]");e.length?e[0].focus():i[0].focus();var r=t.getTop();r&&t.modalRendered(r.key)})}}}]).directive("modalAnimationClass",[function(){return{compile:function(t,e){e.modalAnimation&&t.addClass(e.modalAnimationClass)}}}]).directive("modalTransclude",function(){return{link:function(t,e,n,i,r){r(t.$parent,function(t){e.empty(),e.append(t)})}}}).factory("$modalStack",["$animate","$timeout","$document","$compile","$rootScope","$$stackedMap",function(t,e,n,i,r,s){function o(){for(var t=-1,e=f.keys(),n=0;n<e.length;n++)f.get(e[n]).value.backdrop&&(t=n);return t}function a(t){var e=n.find("body").eq(0),i=f.get(t).value;f.remove(t),u(i.modalDomEl,i.modalScope,function(){e.toggleClass(p,f.length()>0),l()})}function l(){if(h&&-1==o()){var t=d;u(h,d,function(){t=null}),h=void 0,d=void 0}}function u(n,i,s){function o(){o.done||(o.done=!0,n.remove(),i.$destroy(),s&&s())}i.animate=!1,n.attr("modal-animation")&&t.enabled()?n.one("$animate:close",function(){r.$evalAsync(o)}):e(o)}function c(t,e,n){return!t.value.modalScope.$broadcast("modal.closing",e,n).defaultPrevented}var h,d,p="modal-open",f=s.createNew(),m={};return r.$watch(o,function(t){d&&(d.index=t)}),n.bind("keydown",function(t){var e;27===t.which&&(e=f.top(),e&&e.value.keyboard&&(t.preventDefault(),r.$apply(function(){m.dismiss(e.key,"escape key press")})))}),m.open=function(t,e){var s=n[0].activeElement;f.add(t,{deferred:e.deferred,renderDeferred:e.renderDeferred,modalScope:e.scope,backdrop:e.backdrop,keyboard:e.keyboard});var a=n.find("body").eq(0),l=o();if(l>=0&&!h){d=r.$new(!0),d.index=l;var u=angular.element('<div modal-backdrop="modal-backdrop"></div>');u.attr("backdrop-class",e.backdropClass),e.animation&&u.attr("modal-animation","true"),h=i(u)(d),a.append(h)}var c=angular.element('<div modal-window="modal-window"></div>');c.attr({"template-url":e.windowTemplateUrl,"window-class":e.windowClass,size:e.size,index:f.length()-1,animate:"animate"}).html(e.content),e.animation&&c.attr("modal-animation","true");var m=i(c)(e.scope);f.top().value.modalDomEl=m,f.top().value.modalOpener=s,a.append(m),a.addClass(p)},m.close=function(t,e){var n=f.get(t);return n&&c(n,e,!0)?(n.value.deferred.resolve(e),a(t),n.value.modalOpener.focus(),!0):!n},m.dismiss=function(t,e){var n=f.get(t);return n&&c(n,e,!1)?(n.value.deferred.reject(e),a(t),n.value.modalOpener.focus(),!0):!n},m.dismissAll=function(t){for(var e=this.getTop();e&&this.dismiss(e.key,t);)e=this.getTop()},m.getTop=function(){return f.top()},m.modalRendered=function(t){var e=f.get(t);e&&e.value.renderDeferred.resolve()},m}]).provider("$modal",function(){var t={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$templateRequest","$controller","$modalStack",function(e,n,i,r,s,o){function a(t){return t.template?i.when(t.template):r(angular.isFunction(t.templateUrl)?t.templateUrl():t.templateUrl)}function l(t){var n=[];return angular.forEach(t,function(t){(angular.isFunction(t)||angular.isArray(t))&&n.push(i.when(e.invoke(t)))}),n}var u={};return u.open=function(e){var r=i.defer(),u=i.defer(),c=i.defer(),h={result:r.promise,opened:u.promise,rendered:c.promise,close:function(t){return o.close(h,t)},dismiss:function(t){return o.dismiss(h,t)}};if(e=angular.extend({},t.options,e),e.resolve=e.resolve||{},!e.template&&!e.templateUrl)throw new Error("One of template or templateUrl options is required.");var d=i.all([a(e)].concat(l(e.resolve)));return d.then(function(t){var i=(e.scope||n).$new();i.$close=h.close,i.$dismiss=h.dismiss;var a,l={},u=1;e.controller&&(l.$scope=i,l.$modalInstance=h,angular.forEach(e.resolve,function(e,n){l[n]=t[u++]}),a=s(e.controller,l),e.controllerAs&&(i[e.controllerAs]=a)),o.open(h,{scope:i,deferred:r,renderDeferred:c,content:t[0],animation:e.animation,backdrop:e.backdrop,keyboard:e.keyboard,backdropClass:e.backdropClass,windowClass:e.windowClass,windowTemplateUrl:e.windowTemplateUrl,size:e.size})},function(t){r.reject(t)}),d.then(function(){u.resolve(!0)},function(t){u.reject(t)}),h},u}]};return t}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(t,e,n){var i=this,r={$setViewValue:angular.noop},s=e.numPages?n(e.numPages).assign:angular.noop;this.init=function(o,a){r=o,this.config=a,r.$render=function(){i.render()},e.itemsPerPage?t.$parent.$watch(n(e.itemsPerPage),function(e){i.itemsPerPage=parseInt(e,10),t.totalPages=i.calculateTotalPages()}):this.itemsPerPage=a.itemsPerPage,t.$watch("totalItems",function(){t.totalPages=i.calculateTotalPages()}),t.$watch("totalPages",function(e){s(t.$parent,e),t.page>e?t.selectPage(e):r.$render()})},this.calculateTotalPages=function(){var e=this.itemsPerPage<1?1:Math.ceil(t.totalItems/this.itemsPerPage);return Math.max(e||0,1)},this.render=function(){t.page=parseInt(r.$viewValue,10)||1},t.selectPage=function(e,n){t.page!==e&&e>0&&e<=t.totalPages&&(n&&n.target&&n.target.blur(),r.$setViewValue(e),r.$render())},t.getText=function(e){return t[e+"Text"]||i.config[e+"Text"]},t.noPrevious=function(){return 1===t.page},t.noNext=function(){return t.page===t.totalPages}}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(t,e){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(n,i,r,s){function o(t,e,n){return{number:t,text:e,active:n}}function a(t,e){var n=[],i=1,r=e,s=angular.isDefined(c)&&e>c;s&&(h?(i=Math.max(t-Math.floor(c/2),1),r=i+c-1,r>e&&(r=e,i=r-c+1)):(i=(Math.ceil(t/c)-1)*c+1,r=Math.min(i+c-1,e)));for(var a=i;r>=a;a++){var l=o(a,a,a===t);n.push(l)}if(s&&!h){if(i>1){var u=o(i-1,"...",!1);n.unshift(u)}if(e>r){var d=o(r+1,"...",!1);n.push(d)}}return n}var l=s[0],u=s[1];if(u){var c=angular.isDefined(r.maxSize)?n.$parent.$eval(r.maxSize):e.maxSize,h=angular.isDefined(r.rotate)?n.$parent.$eval(r.rotate):e.rotate;n.boundaryLinks=angular.isDefined(r.boundaryLinks)?n.$parent.$eval(r.boundaryLinks):e.boundaryLinks,n.directionLinks=angular.isDefined(r.directionLinks)?n.$parent.$eval(r.directionLinks):e.directionLinks,l.init(u,e),r.maxSize&&n.$parent.$watch(t(r.maxSize),function(t){c=parseInt(t,10),l.render()});var d=l.render;l.render=function(){d(),n.page>0&&n.page<=n.totalPages&&(n.pages=a(n.page,n.totalPages))}}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(t){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(e,n,i,r){var s=r[0],o=r[1];o&&(e.align=angular.isDefined(i.align)?e.$parent.$eval(i.align):t.align,s.init(o,t))}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function t(t){var e=/[A-Z]/g,n="-";return t.replace(e,function(t,e){return(e?n:"")+t.toLowerCase()})}var e={placement:"top",animation:!0,popupDelay:0,useContentExp:!1},n={mouseenter:"mouseleave",click:"click",focus:"blur"},i={};this.options=function(t){angular.extend(i,t)},this.setTriggers=function(t){angular.extend(n,t)},this.$get=["$window","$compile","$timeout","$document","$position","$interpolate",function(r,s,o,a,l,u){return function(r,c,h,d){function p(t){var e=t||d.trigger||h,i=n[e]||e;return{show:e,hide:i}}d=angular.extend({},e,i,d);var f=t(r),m=u.startSymbol(),g=u.endSymbol(),v="<div "+f+'-popup title="'+m+"title"+g+'" '+(d.useContentExp?'content-exp="contentExp()" ':'content="'+m+"content"+g+'" ')+'placement="'+m+"placement"+g+'" popup-class="'+m+"popupClass"+g+'" animation="animation" is-open="isOpen"origin-scope="origScope" ></div>';return{restrict:"EA",compile:function(t,e){var n=s(v);return function(t,e,i,s){function u(){A.isOpen?f():h()}function h(){(!M||t.$eval(i[c+"Enable"]))&&(y(),A.popupDelay?T||(T=o(m,A.popupDelay,!1),T.then(function(t){t()})):m()())}function f(){t.$apply(function(){g()})}function m(){return T=null,D&&(o.cancel(D),D=null),(d.useContentExp?A.contentExp():A.content)?(v(),k.css({top:0,left:0,display:"block"}),A.$digest(),I(),A.isOpen=!0,A.$apply(),I):angular.noop}function g(){A.isOpen=!1,o.cancel(T),T=null,A.animation?D||(D=o(b,500)):b()}function v(){k&&b(),C=A.$new(),k=n(C,function(t){E?a.find("body").append(t):e.after(t)}),C.$watch(function(){o(I,0,!1)}),d.useContentExp&&C.$watch("contentExp()",function(t){!t&&A.isOpen&&g()})}function b(){D=null,k&&(k.remove(),k=null),C&&(C.$destroy(),C=null)}function y(){$(),w(),x()}function $(){A.popupClass=i[c+"Class"]}function w(){var t=i[c+"Placement"];A.placement=angular.isDefined(t)?t:d.placement}function x(){var t=i[c+"PopupDelay"],e=parseInt(t,10);A.popupDelay=isNaN(e)?d.popupDelay:e}function _(){var t=i[c+"Trigger"];O(),S=p(t),S.show===S.hide?e.bind(S.show,u):(e.bind(S.show,h),e.bind(S.hide,f))}var k,C,D,T,E=angular.isDefined(d.appendToBody)?d.appendToBody:!1,S=p(void 0),M=angular.isDefined(i[c+"Enable"]),A=t.$new(!0),I=function(){if(k){var t=l.positionElements(e,k,A.placement,E);t.top+="px",t.left+="px",k.css(t)}};A.origScope=t,A.isOpen=!1,A.contentExp=function(){return t.$eval(i[r])},d.useContentExp||i.$observe(r,function(t){A.content=t,!t&&A.isOpen&&g()}),i.$observe("disabled",function(t){t&&A.isOpen&&g()}),i.$observe(c+"Title",function(t){A.title=t});var O=function(){e.unbind(S.show,h),e.unbind(S.hide,f)};_();var P=t.$eval(i[c+"Animation"]);A.animation=angular.isDefined(P)?!!P:d.animation;var N=t.$eval(i[c+"AppendToBody"]);E=angular.isDefined(N)?N:E,E&&t.$on("$locationChangeSuccess",function(){A.isOpen&&g()}),t.$on("$destroy",function(){o.cancel(D),o.cancel(T),O(),b(),A=null})}}}}}]}).directive("tooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(t,e,n,i){return{link:function(r,s,o){var a,l,u,c=r.$eval(o.tooltipTemplateTranscludeScope),h=0,d=function(){l&&(l.remove(),l=null),a&&(a.$destroy(),a=null),u&&(t.leave(u).then(function(){l=null}),l=u,u=null)};r.$watch(e.parseAsResourceUrl(o.tooltipTemplateTransclude),function(e){var o=++h;e?(i(e,!0).then(function(i){if(o===h){var r=c.$new(),l=i,p=n(l)(r,function(e){d(),t.enter(e,s)});a=r,u=p,a.$emit("$includeContentLoaded",e)}},function(){o===h&&(d(),r.$emit("$includeContentError",e))}),r.$emit("$includeContentRequested",e)):d()}),r.$on("$destroy",d)}}}]).directive("tooltipClasses",function(){return{restrict:"A",link:function(t,e,n){t.placement&&e.addClass(t.placement),t.popupClass&&e.addClass(t.popupClass),t.animation()&&e.addClass(n.tooltipAnimationClass)}}}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(t){return t("tooltip","tooltip","mouseenter")}]).directive("tooltipTemplatePopup",function(){return{restrict:"EA",replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/tooltip/tooltip-template-popup.html"}}).directive("tooltipTemplate",["$tooltip",function(t){return t("tooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("tooltipHtmlPopup",function(){return{restrict:"EA",replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-popup.html"}}).directive("tooltipHtml",["$tooltip",function(t){return t("tooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).value("tooltipHtmlUnsafeSuppressDeprecated",!1).directive("tooltipHtmlUnsafe",["$tooltip","tooltipHtmlUnsafeSuppressDeprecated","$log",function(t,e,n){return e||n.warn("tooltip-html-unsafe is now deprecated. Use tooltip-html or tooltip-template instead."),t("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverTemplatePopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/popover/popover-template.html"}}).directive("popoverTemplate",["$tooltip",function(t){return t("popoverTemplate","popover","click",{useContentExp:!0})}]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(t){return t("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(t,e,n){var i=this,r=angular.isDefined(e.animate)?t.$parent.$eval(e.animate):n.animate;this.bars=[],t.max=angular.isDefined(t.max)?t.max:n.max,this.addBar=function(e,n){r||n.css({transition:"none"}),this.bars.push(e),e.$watch("value",function(n){e.percent=+(100*n/t.max).toFixed(2)}),e.$on("$destroy",function(){n=null,i.removeBar(e)})},this.removeBar=function(t){this.bars.splice(this.bars.indexOf(t),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",max:"=?",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(t,e,n,i){i.addBar(t,e)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(t,e,n,i){i.addBar(t,angular.element(e.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(t,e,n){var i={$setViewValue:angular.noop};this.init=function(r){i=r,i.$render=this.render,i.$formatters.push(function(t){return angular.isNumber(t)&&t<<0!==t&&(t=Math.round(t)),t}),this.stateOn=angular.isDefined(e.stateOn)?t.$parent.$eval(e.stateOn):n.stateOn,this.stateOff=angular.isDefined(e.stateOff)?t.$parent.$eval(e.stateOff):n.stateOff;var s=angular.isDefined(e.ratingStates)?t.$parent.$eval(e.ratingStates):new Array(angular.isDefined(e.max)?t.$parent.$eval(e.max):n.max);t.range=this.buildTemplateObjects(s)},this.buildTemplateObjects=function(t){for(var e=0,n=t.length;n>e;e++)t[e]=angular.extend({index:e},{stateOn:this.stateOn,stateOff:this.stateOff},t[e]);return t},t.rate=function(e){!t.readonly&&e>=0&&e<=t.range.length&&(i.$setViewValue(e),i.$render())},t.enter=function(e){t.readonly||(t.value=e),t.onHover({value:e})},t.reset=function(){t.value=i.$viewValue,t.onLeave()},t.onKeydown=function(e){/(37|38|39|40)/.test(e.which)&&(e.preventDefault(),e.stopPropagation(),t.rate(t.value+(38===e.which||39===e.which?1:-1)))},this.render=function(){t.value=i.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(t,e,n,i){var r=i[0],s=i[1];r.init(s)}}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(t){var e=this,n=e.tabs=t.tabs=[];e.select=function(t){angular.forEach(n,function(e){e.active&&e!==t&&(e.active=!1,e.onDeselect())}),t.active=!0,t.onSelect()},e.addTab=function(t){n.push(t),1===n.length&&t.active!==!1?t.active=!0:t.active?e.select(t):t.active=!1},e.removeTab=function(t){var r=n.indexOf(t);if(t.active&&n.length>1&&!i){var s=r==n.length-1?r-1:r+1;e.select(n[s])}n.splice(r,1)};var i;t.$on("$destroy",function(){i=!0})}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(t,e,n){t.vertical=angular.isDefined(n.vertical)?t.$parent.$eval(n.vertical):!1,t.justified=angular.isDefined(n.justified)?t.$parent.$eval(n.justified):!1}}}).directive("tab",["$parse","$log",function(t,e){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(n,i,r){return function(n,i,s,o){n.$watch("active",function(t){t&&o.select(n)}),n.disabled=!1,s.disable&&n.$parent.$watch(t(s.disable),function(t){n.disabled=!!t}),s.disabled&&(e.warn('Use of "disabled" attribute has been deprecated, please use "disable"'),n.$parent.$watch(t(s.disabled),function(t){n.disabled=!!t})),n.select=function(){n.disabled||(n.active=!0)},o.addTab(n),n.$on("$destroy",function(){o.removeTab(n)}),n.$transcludeFn=r}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(t,e,n,i){t.$watch("headingElement",function(t){t&&(e.html(""),e.append(t))})}}}]).directive("tabContentTransclude",function(){function t(t){return t.tagName&&(t.hasAttribute("tab-heading")||t.hasAttribute("data-tab-heading")||"tab-heading"===t.tagName.toLowerCase()||"data-tab-heading"===t.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(e,n,i){var r=e.$eval(i.tabContentTransclude);r.$transcludeFn(r.$parent,function(e){angular.forEach(e,function(e){t(e)?r.headingElement=e:n.append(e)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(t,e,n,i,r,s){function o(){var e=parseInt(t.hours,10),n=t.showMeridian?e>0&&13>e:e>=0&&24>e;return n?(t.showMeridian&&(12===e&&(e=0),t.meridian===m[1]&&(e+=12)),e):void 0}function a(){var e=parseInt(t.minutes,10);return e>=0&&60>e?e:void 0}function l(t){return angular.isDefined(t)&&t.toString().length<2?"0"+t:t.toString()}function u(t){c(),f.$setViewValue(new Date(p)),h(t)}function c(){f.$setValidity("time",!0),t.invalidHours=!1,t.invalidMinutes=!1}function h(e){var n=p.getHours(),i=p.getMinutes();t.showMeridian&&(n=0===n||12===n?12:n%12),t.hours="h"===e?n:l(n),"m"!==e&&(t.minutes=l(i)),t.meridian=p.getHours()<12?m[0]:m[1]}function d(t){var e=new Date(p.getTime()+6e4*t);p.setHours(e.getHours(),e.getMinutes()),u()}var p=new Date,f={$setViewValue:angular.noop},m=angular.isDefined(e.meridians)?t.$parent.$eval(e.meridians):s.meridians||r.DATETIME_FORMATS.AMPMS;this.init=function(n,i){f=n,f.$render=this.render,f.$formatters.unshift(function(t){return t?new Date(t):null});var r=i.eq(0),o=i.eq(1),a=angular.isDefined(e.mousewheel)?t.$parent.$eval(e.mousewheel):s.mousewheel;a&&this.setupMousewheelEvents(r,o);var l=angular.isDefined(e.arrowkeys)?t.$parent.$eval(e.arrowkeys):s.arrowkeys;l&&this.setupArrowkeyEvents(r,o),t.readonlyInput=angular.isDefined(e.readonlyInput)?t.$parent.$eval(e.readonlyInput):s.readonlyInput,this.setupInputEvents(r,o)};var g=s.hourStep;e.hourStep&&t.$parent.$watch(n(e.hourStep),function(t){g=parseInt(t,10)});var v=s.minuteStep;e.minuteStep&&t.$parent.$watch(n(e.minuteStep),function(t){v=parseInt(t,10)}),t.showMeridian=s.showMeridian,e.showMeridian&&t.$parent.$watch(n(e.showMeridian),function(e){if(t.showMeridian=!!e,f.$error.time){var n=o(),i=a();angular.isDefined(n)&&angular.isDefined(i)&&(p.setHours(n),u())}else h()}),this.setupMousewheelEvents=function(e,n){var i=function(t){t.originalEvent&&(t=t.originalEvent);var e=t.wheelDelta?t.wheelDelta:-t.deltaY;return t.detail||e>0};e.bind("mousewheel wheel",function(e){t.$apply(i(e)?t.incrementHours():t.decrementHours()),e.preventDefault()}),n.bind("mousewheel wheel",function(e){t.$apply(i(e)?t.incrementMinutes():t.decrementMinutes()),e.preventDefault()})},this.setupArrowkeyEvents=function(e,n){e.bind("keydown",function(e){38===e.which?(e.preventDefault(),t.incrementHours(),t.$apply()):40===e.which&&(e.preventDefault(),t.decrementHours(),t.$apply())}),n.bind("keydown",function(e){38===e.which?(e.preventDefault(),t.incrementMinutes(),t.$apply()):40===e.which&&(e.preventDefault(),t.decrementMinutes(),t.$apply())})},this.setupInputEvents=function(e,n){if(t.readonlyInput)return t.updateHours=angular.noop,void(t.updateMinutes=angular.noop);var i=function(e,n){f.$setViewValue(null),f.$setValidity("time",!1),angular.isDefined(e)&&(t.invalidHours=e),angular.isDefined(n)&&(t.invalidMinutes=n)};t.updateHours=function(){var t=o();angular.isDefined(t)?(p.setHours(t),u("h")):i(!0)},e.bind("blur",function(e){!t.invalidHours&&t.hours<10&&t.$apply(function(){t.hours=l(t.hours)})}),t.updateMinutes=function(){var t=a();angular.isDefined(t)?(p.setMinutes(t),u("m")):i(void 0,!0)},n.bind("blur",function(e){!t.invalidMinutes&&t.minutes<10&&t.$apply(function(){t.minutes=l(t.minutes)})})},this.render=function(){var t=f.$viewValue;isNaN(t)?(f.$setValidity("time",!1),i.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(t&&(p=t),c(),h())},t.incrementHours=function(){d(60*g)},t.decrementHours=function(){d(60*-g)},t.incrementMinutes=function(){d(v)},t.decrementMinutes=function(){d(-v)},t.toggleMeridian=function(){d(720*(p.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(t,e,n,i){var r=i[0],s=i[1];s&&r.init(s,e.find("input"))}}}),angular.module("ui.bootstrap.transition",[]).value("$transitionSuppressDeprecated",!1).factory("$transition",["$q","$timeout","$rootScope","$log","$transitionSuppressDeprecated",function(t,e,n,i,r){function s(t){for(var e in t)if(void 0!==a.style[e])return t[e]}r||i.warn("$transition is now deprecated. Use $animate from ngAnimate instead.");var o=function(i,r,s){s=s||{};var a=t.defer(),l=o[s.animation?"animationEndEventName":"transitionEndEventName"],u=function(t){n.$apply(function(){i.unbind(l,u),a.resolve(i)})};return l&&i.bind(l,u),e(function(){angular.isString(r)?i.addClass(r):angular.isFunction(r)?r(i):angular.isObject(r)&&i.css(r),l||a.resolve(i)}),a.promise.cancel=function(){l&&i.unbind(l,u),a.reject("Transition cancelled")},a.promise},a=document.createElement("trans"),l={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},u={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return o.transitionEndEventName=s(l),o.animationEndEventName=s(u),o}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(t){var e=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(n){var i=n.match(e);if(!i)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+n+'".');return{itemName:i[3],source:t(i[4]),viewMapper:t(i[2]||i[1]),modelMapper:t(i[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(t,e,n,i,r,s,o){var a=[9,13,27,38,40];return{require:"ngModel",link:function(l,u,c,h){var d,p=l.$eval(c.typeaheadMinLength)||1,f=l.$eval(c.typeaheadWaitMs)||0,m=l.$eval(c.typeaheadEditable)!==!1,g=e(c.typeaheadLoading).assign||angular.noop,v=e(c.typeaheadOnSelect),b=c.typeaheadInputFormatter?e(c.typeaheadInputFormatter):void 0,y=c.typeaheadAppendToBody?l.$eval(c.typeaheadAppendToBody):!1,$=l.$eval(c.typeaheadFocusFirst)!==!1,w=e(c.ngModel).assign,x=o.parse(c.typeahead),_=l.$new();l.$on("$destroy",function(){_.$destroy()});var k="typeahead-"+_.$id+"-"+Math.floor(1e4*Math.random());u.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":k});var C=angular.element("<div typeahead-popup></div>");C.attr({id:k,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"}),angular.isDefined(c.typeaheadTemplateUrl)&&C.attr("template-url",c.typeaheadTemplateUrl);var D=function(){_.matches=[],_.activeIdx=-1,u.attr("aria-expanded",!1)},T=function(t){return k+"-option-"+t};_.$watch("activeIdx",function(t){0>t?u.removeAttr("aria-activedescendant"):u.attr("aria-activedescendant",T(t))});var E=function(t){var e={$viewValue:t};g(l,!0),n.when(x.source(l,e)).then(function(n){var i=t===h.$viewValue;if(i&&d)if(n&&n.length>0){_.activeIdx=$?0:-1,_.matches.length=0;for(var r=0;r<n.length;r++)e[x.itemName]=n[r],_.matches.push({id:T(r),label:x.viewMapper(_,e),model:n[r]});_.query=t,_.position=y?s.offset(u):s.position(u),_.position.top=_.position.top+u.prop("offsetHeight"),u.attr("aria-expanded",!0)}else D();i&&g(l,!1)},function(){D(),g(l,!1)})};D(),_.query=void 0;var S,M=function(t){S=i(function(){E(t)},f)},A=function(){S&&i.cancel(S)};h.$parsers.unshift(function(t){return d=!0,t&&t.length>=p?f>0?(A(),M(t)):E(t):(g(l,!1),A(),D()),m?t:t?void h.$setValidity("editable",!1):(h.$setValidity("editable",!0),t)}),h.$formatters.push(function(t){var e,n,i={};return m||h.$setValidity("editable",!0),b?(i.$model=t,b(l,i)):(i[x.itemName]=t,e=x.viewMapper(l,i),i[x.itemName]=void 0,n=x.viewMapper(l,i),e!==n?e:t)}),_.select=function(t){var e,n,r={};r[x.itemName]=n=_.matches[t].model,e=x.modelMapper(l,r),w(l,e),h.$setValidity("editable",!0),h.$setValidity("parse",!0),v(l,{$item:n,$model:e,$label:x.viewMapper(l,r)}),D(),i(function(){u[0].focus()},0,!1)},u.bind("keydown",function(t){0!==_.matches.length&&-1!==a.indexOf(t.which)&&(-1!=_.activeIdx||13!==t.which&&9!==t.which)&&(t.preventDefault(),40===t.which?(_.activeIdx=(_.activeIdx+1)%_.matches.length,_.$digest()):38===t.which?(_.activeIdx=(_.activeIdx>0?_.activeIdx:_.matches.length)-1,_.$digest()):13===t.which||9===t.which?_.$apply(function(){_.select(_.activeIdx)}):27===t.which&&(t.stopPropagation(),D(),_.$digest()))}),u.bind("blur",function(t){d=!1});var I=function(t){u[0]!==t.target&&(D(),_.$digest())};r.bind("click",I),l.$on("$destroy",function(){r.unbind("click",I),y&&O.remove(),C.remove()});var O=t(C)(_);y?r.find("body").append(O):u.after(O)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(t,e,n){t.templateUrl=n.templateUrl,t.isOpen=function(){return t.matches.length>0},t.isActive=function(e){return t.active==e},t.selectActive=function(e){t.active=e},t.selectMatch=function(e){t.select({activeIdx:e})}}}}).directive("typeaheadMatch",["$templateRequest","$compile","$parse",function(t,e,n){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},
-link:function(i,r,s){var o=n(s.templateUrl)(i.$parent)||"template/typeahead/typeahead-match.html";t(o).then(function(t){e(t.trim())(i,function(t){r.replaceWith(t)})})}}}]).filter("typeaheadHighlight",function(){function t(t){return t.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(e,n){return n?(""+e).replace(new RegExp(t(n),"gi"),"<strong>$&</strong>"):e}}),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(t){t.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n  <div class="panel-heading">\n    <h4 class="panel-title">\n      <a href="javascript:void(0)" tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n    </h4>\n  </div>\n  <div class="panel-collapse collapse" collapse="!isOpen">\n	  <div class="panel-body" ng-transclude></div>\n  </div>\n</div>\n')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(t){t.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude></div>')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(t){t.put("template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissable\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close()">\n        <span aria-hidden="true">&times;</span>\n        <span class="sr-only">Close</span>\n    </button>\n    <div ng-transclude></div>\n</div>\n')}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(t){t.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n    <ol class="carousel-indicators" ng-show="slides.length > 1">\n        <li ng-repeat="slide in slides | orderBy:\'index\' track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n    </ol>\n    <div class="carousel-inner" ng-transclude></div>\n    <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"></span></a>\n    <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"></span></a>\n</div>\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(t){t.put("template/carousel/slide.html",'<div ng-class="{\n    \'active\': active\n  }" class="item text-center" ng-transclude></div>\n')}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <daypicker ng-switch-when="day" tabindex="0"></daypicker>\n  <monthpicker ng-switch-when="month" tabindex="0"></monthpicker>\n  <yearpicker ng-switch-when="year" tabindex="0"></yearpicker>\n</div>')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n    <tr>\n      <th ng-show="showWeeks" class="text-center"></th>\n      <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}</small></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}" ng-class="dt.customClass">\n        <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n	<li ng-transclude></li>\n	<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n		<span class="btn-group pull-left">\n			<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}</button>\n			<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n		</span>\n		<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}</button>\n	</li>\n</ul>\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(t){t.put("template/modal/backdrop.html",'<div class="modal-backdrop"\n     modal-animation-class="fade"\n     ng-class="{in: animate}"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(t){t.put("template/modal/window.html",'<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n    modal-animation-class="fade"\n	ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n    <div class="modal-dialog" ng-class="size ? \'modal-\' + size : \'\'"><div class="modal-content" modal-transclude></div></div>\n</div>\n')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(t){t.put("template/pagination/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{getText(\'previous\')}}</a></li>\n  <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1, $event)">{{getText(\'next\')}}</a></li>\n</ul>')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(t){t.put("template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1, $event)">{{getText(\'first\')}}</a></li>\n  <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1, $event)">{{getText(\'previous\')}}</a></li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n  <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1, $event)">{{getText(\'next\')}}</a></li>\n  <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages, $event)">{{getText(\'last\')}}</a></li>\n</ul>')}]),angular.module("template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-html-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-template-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner"\n    tooltip-template-transclude="contentExp()"\n    tooltip-template-transclude-scope="originScope()"></div>\n</div>\n')}]),angular.module("template/popover/popover-template.html",[]).run(["$templateCache",function(t){t.put("template/popover/popover-template.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content"\n        tooltip-template-transclude="contentExp()"\n        tooltip-template-transclude-scope="originScope()"></div>\n  </div>\n</div>\n')}]),angular.module("template/popover/popover-window.html",[]).run(["$templateCache",function(t){t.put("template/popover/popover-window.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen, fade: animation }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-show="title"></h3>\n      <div class="popover-content" tooltip-template-transclude></div>\n  </div>\n</div>\n')}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(t){t.put("template/popover/popover.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content" ng-bind="content"></div>\n  </div>\n</div>\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(t){t.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>\n')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(t){t.put("template/progressbar/progress.html",'<div class="progress" ng-transclude></div>')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(t){t.put("template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude></div>\n</div>\n')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(t){t.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n        <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n    </i>\n</span>')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(t){t.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n  <a href ng-click="select()" tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(t){t.put("template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         tab-content-transclude="tab">\n    </div>\n  </div>\n</div>\n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(t){t.put("template/timepicker/timepicker.html",'<table>\n	<tbody>\n		<tr class="text-center">\n			<td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n			<td>&nbsp;</td>\n			<td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n			<td ng-show="showMeridian"></td>\n		</tr>\n		<tr>\n			<td class="form-group" ng-class="{\'has-error\': invalidHours}">\n				<input style="width:50px;" type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n			</td>\n			<td>:</td>\n			<td class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n				<input style="width:50px;" type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n			</td>\n			<td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}</button></td>\n		</tr>\n		<tr class="text-center">\n			<td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n			<td>&nbsp;</td>\n			<td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n			<td ng-show="showMeridian"></td>\n		</tr>\n	</tbody>\n</table>\n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(t){t.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"></a>')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(t){t.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n        <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n    </li>\n</ul>\n')}]),!angular.$$csp()&&angular.element(document).find("head").prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>'),function(t,e,n){"use strict";e.module("ui.sortable",[]).value("uiSortableConfig",{}).directive("uiSortable",["uiSortableConfig","$timeout","$log",function(t,i,r){return{require:"?ngModel",scope:{ngModel:"=",uiSortable:"="},link:function(s,o,a,l){function u(t,e){return e&&"function"==typeof e?function(){t.apply(this,arguments),e.apply(this,arguments)}:t}function c(t){var e=t.data("ui-sortable");return e&&"object"==typeof e&&"ui-sortable"===e.widgetFullName?e:null}function h(t,e){var n=t.sortable("option","helper");return"clone"===n||"function"==typeof n&&e.item.sortable.isCustomHelperUsed()}function d(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))}function p(t,e){for(var n=null,i=0;i<t.length;i++){var r=t[i];if(r.element[0]===e[0]){n=r.scope;break}}return n}function f(t,e){e.item.sortable._destroy()}var m,g={},v={"ui-floating":n},b={receive:null,remove:null,start:null,stop:null,update:null},y={helper:null};return e.extend(g,v,t,s.uiSortable),e.element.fn&&e.element.fn.jquery?(l?(s.$watch("ngModel.length",function(){i(function(){c(o)&&o.sortable("refresh")},0,!1)}),b.start=function(t,i){if("auto"===g["ui-floating"]){var r=i.item.siblings(),s=c(e.element(t.target));s.floating=d(r)}i.item.sortable={model:l.$modelValue[i.item.index()],index:i.item.index(),source:i.item.parent(),sourceModel:l.$modelValue,cancel:function(){i.item.sortable._isCanceled=!0},isCanceled:function(){return i.item.sortable._isCanceled},isCustomHelperUsed:function(){return!!i.item.sortable._isCustomHelperUsed},_isCanceled:!1,_isCustomHelperUsed:i.item.sortable._isCustomHelperUsed,_destroy:function(){e.forEach(i.item.sortable,function(t,e){i.item.sortable[e]=n})}}},b.activate=function(t,n){m=o.contents();var i=o.sortable("option","placeholder");if(i&&i.element&&"function"==typeof i.element){var r=i.element();r=e.element(r);var a=o.find('[class="'+r.attr("class")+'"]:not([ng-repeat], [data-ng-repeat])');m=m.not(a)}var l=n.item.sortable._connectedSortables||[];l.push({element:o,scope:s}),n.item.sortable._connectedSortables=l},b.update=function(t,e){if(!e.item.sortable.received){e.item.sortable.dropindex=e.item.index();var n=e.item.parent();e.item.sortable.droptarget=n;var i=p(e.item.sortable._connectedSortables,n);e.item.sortable.droptargetModel=i.ngModel,o.sortable("cancel")}h(o,e)&&!e.item.sortable.received&&"parent"===o.sortable("option","appendTo")&&(m=m.not(m.last())),m.appendTo(o),e.item.sortable.received&&(m=null),e.item.sortable.received&&!e.item.sortable.isCanceled()&&s.$apply(function(){l.$modelValue.splice(e.item.sortable.dropindex,0,e.item.sortable.moved)})},b.stop=function(t,e){!e.item.sortable.received&&"dropindex"in e.item.sortable&&!e.item.sortable.isCanceled()?s.$apply(function(){l.$modelValue.splice(e.item.sortable.dropindex,0,l.$modelValue.splice(e.item.sortable.index,1)[0])}):"dropindex"in e.item.sortable&&!e.item.sortable.isCanceled()||h(o,e)||m.appendTo(o),m=null},b.receive=function(t,e){e.item.sortable.received=!0},b.remove=function(t,e){"dropindex"in e.item.sortable||(o.sortable("cancel"),e.item.sortable.cancel()),e.item.sortable.isCanceled()||s.$apply(function(){e.item.sortable.moved=l.$modelValue.splice(e.item.sortable.index,1)[0]})},y.helper=function(t){return t&&"function"==typeof t?function(e,n){var i=t.apply(this,arguments);return n.sortable._isCustomHelperUsed=n!==i,i}:t},s.$watch("uiSortable",function(t){var n=c(o);n&&e.forEach(t,function(t,e){return e in v?("ui-floating"!==e||t!==!1&&t!==!0||(n.floating=t),void(g[e]=t)):(b[e]?("stop"===e&&(t=u(t,function(){s.$apply()}),t=u(t,f)),t=u(b[e],t)):y[e]&&(t=y[e](t)),g[e]=t,void o.sortable("option",e,t))})},!0),e.forEach(b,function(t,e){g[e]=u(t,g[e]),"stop"===e&&(g[e]=u(g[e],f))})):r.info("ui.sortable: ngModel not provided!",o),void o.sortable(g)):void r.error("ui.sortable: jQuery should be included before AngularJS!")}}}])}(window,window.angular),function(t,e,n){"use strict";function i(t){return e.lowercase(t.nodeName||t[0]&&t[0].nodeName)}function r(t,n,i){s.directive(t,["$parse","$swipe",function(r,s){var o=75,a=.3,l=30;return function(u,c,h){function d(t){if(!p)return!1;var e=Math.abs(t.y-p.y),i=(t.x-p.x)*n;return f&&o>e&&i>0&&i>l&&a>e/i}var p,f,m=r(h[t]),g=["touch"];e.isDefined(h.ngSwipeDisableMouse)||g.push("mouse"),s.bind(c,{start:function(t,e){p=t,f=!0},cancel:function(t){f=!1},end:function(t,e){d(t)&&u.$apply(function(){c.triggerHandler(i),m(u,{$event:e})})}},g)}}])}var s=e.module("ngTouch",[]);s.factory("$swipe",[function(){function t(t){var e=t.originalEvent||t,n=e.touches&&e.touches.length?e.touches:[e],i=e.changedTouches&&e.changedTouches[0]||n[0];return{x:i.clientX,y:i.clientY}}function n(t,n){var i=[];return e.forEach(t,function(t){var e=r[t][n];e&&i.push(e)}),i.join(" ")}var i=10,r={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(e,r,s){var o,a,l,u,c=!1;s=s||["mouse","touch"],e.on(n(s,"start"),function(e){l=t(e),c=!0,o=0,a=0,u=l,r.start&&r.start(l,e)});var h=n(s,"cancel");h&&e.on(h,function(t){c=!1,r.cancel&&r.cancel(t)}),e.on(n(s,"move"),function(e){if(c&&l){var n=t(e);if(o+=Math.abs(n.x-u.x),a+=Math.abs(n.y-u.y),u=n,!(i>o&&i>a))return a>o?(c=!1,void(r.cancel&&r.cancel(e))):(e.preventDefault(),void(r.move&&r.move(n,e)))}}),e.on(n(s,"end"),function(e){c&&(c=!1,r.end&&r.end(t(e),e))})}}}]),s.config(["$provide",function(t){t.decorator("ngClickDirective",["$delegate",function(t){return t.shift(),t}])}]),s.directive("ngClick",["$parse","$timeout","$rootElement",function(t,n,r){function s(t,e,n,i){return Math.abs(t-n)<g&&Math.abs(e-i)<g}function o(t,e,n){for(var i=0;i<t.length;i+=2)if(s(t[i],t[i+1],e,n))return t.splice(i,i+2),!0;return!1}function a(t){if(!(Date.now()-c>m)){var e=t.touches&&t.touches.length?t.touches:[t],n=e[0].clientX,r=e[0].clientY;1>n&&1>r||d&&d[0]===n&&d[1]===r||(d&&(d=null),"label"===i(t.target)&&(d=[n,r]),o(h,n,r)||(t.stopPropagation(),t.preventDefault(),t.target&&t.target.blur&&t.target.blur()))}}function l(t){var e=t.touches&&t.touches.length?t.touches:[t],i=e[0].clientX,r=e[0].clientY;h.push(i,r),n(function(){for(var t=0;t<h.length;t+=2)if(h[t]==i&&h[t+1]==r)return void h.splice(t,t+2)},m,!1)}function u(t,e){h||(r[0].addEventListener("click",a,!0),r[0].addEventListener("touchstart",l,!0),h=[]),c=Date.now(),o(h,t,e)}var c,h,d,p=750,f=12,m=2500,g=25,v="ng-click-active";return function(n,i,r){function s(){d=!1,i.removeClass(v)}var o,a,l,c,h=t(r.ngClick),d=!1;i.on("touchstart",function(t){d=!0,o=t.target?t.target:t.srcElement,3==o.nodeType&&(o=o.parentNode),i.addClass(v),a=Date.now();var e=t.originalEvent||t,n=e.touches&&e.touches.length?e.touches:[e],r=n[0];l=r.clientX,c=r.clientY}),i.on("touchcancel",function(t){s()}),i.on("touchend",function(t){var n=Date.now()-a,h=t.originalEvent||t,m=h.changedTouches&&h.changedTouches.length?h.changedTouches:h.touches&&h.touches.length?h.touches:[h],g=m[0],v=g.clientX,b=g.clientY,y=Math.sqrt(Math.pow(v-l,2)+Math.pow(b-c,2));d&&p>n&&f>y&&(u(v,b),o&&o.blur(),e.isDefined(r.disabled)&&r.disabled!==!1||i.triggerHandler("click",[t])),s()}),i.onclick=function(t){},i.on("click",function(t,e){n.$apply(function(){h(n,{$event:e||t})})}),i.on("mousedown",function(t){i.addClass(v)}),i.on("mousemove mouseup",function(t){i.removeClass(v)})}}]),r("ngSwipeLeft",-1,"swipeleft"),r("ngSwipeRight",1,"swiperight")}(window,window.angular),function(t,e,n){"use strict";function i(t){function e(t,e){return t?r(t)?t.indexOf(e)>=0:t.hasOwnProperty(e):void 0}return["$animate",function(t){return{restrict:"AE",transclude:"element",terminal:!0,require:"^^ngMessages",link:function(n,i,s,o,a){var l,u=i[0],c=s.ngMessage||s.when,h=s.ngMessageExp||s.whenExp,d=function(t){l=t?r(t)?t:t.split(/[\s,]+/):null,o.reRender()};h?(d(n.$eval(h)),n.$watchCollection(h,d)):d(c);var p,f;o.register(u,f={test:function(t){return e(l,t)},attach:function(){p||a(n,function(e){t.enter(e,null,i),p=e,p.on("$destroy",function(){p&&(o.deregister(u),f.detach())})})},detach:function(){if(p){var e=p;p=null,t.leave(e)}}})}}}]}var r=e.isArray,s=e.forEach,o=e.isString,a=e.element;e.module("ngMessages",[]).directive("ngMessages",["$animate",function(t){function e(t,e){return o(e)&&0===e.length||n(t.$eval(e))}function n(t){return o(t)?t.length:!!t}var i="ng-active",r="ng-inactive";return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(o,a,l){function u(t,e){for(var n=e,i=[];n&&n!==t;){var r=n.$$ngMessageNode;if(r&&r.length)return g[r];n.childNodes.length&&-1==i.indexOf(n)?(i.push(n),n=n.childNodes[n.childNodes.length-1]):n=n.previousSibling||n.parentNode}}function c(t,e,n){var i=g[n];if(f.head){var r=u(t,e);r?(i.next=r.next,r.next=i):(i.next=f.head,f.head=i)}else f.head=i}function h(t,e,n){var i=g[n],r=u(t,e);r?r.next=i.next:f.head=i.next}var d,p,f=this,m=0,g=this.messages={};this.render=function(u){u=u||{},d=!1,p=u;for(var c=e(a,l.ngMessagesMultiple)||e(a,l.multiple),h=[],m={},g=f.head,v=!1,b=0;null!=g;){b++;var y=g.message,$=!1;v||s(u,function(t,e){if(!$&&n(t)&&y.test(e)){if(m[e])return;m[e]=!0,$=!0,y.attach()}}),$?v=!c:h.push(y),g=g.next}s(h,function(t){t.detach()}),h.length!==b?t.setClass(o,i,r):t.setClass(o,r,i)},a.$watchCollection(l.ngMessages||l["for"],f.render),this.reRender=function(){d||(d=!0,a.$evalAsync(function(){d&&p&&f.render(p)}))},this.register=function(t,e){var n=m.toString();g[n]={message:e},c(o[0],t,n),t.$$ngMessageNode=n,m++,f.reRender()},this.deregister=function(t){var e=t.$$ngMessageNode;delete t.$$ngMessageNode,h(o[0],t,e),delete g[e],f.reRender()}}]}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(t,e,n){return{restrict:"AE",require:"^^ngMessages",link:function(i,r,s){var o=s.ngMessagesInclude||s.src;t(o).then(function(t){n(t)(i,function(t){r.after(t);var n=a(e[0].createComment(" ngMessagesInclude: "+o+" "));r.after(n),r.remove()})})}}}]).directive("ngMessage",i("AE")).directive("ngMessageExp",i("A"))}(window,window.angular);
\ No newline at end of file
+if(function(t,e){"object"==typeof module&&"object"==typeof module.exports?module.exports=t.document?e(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(t)}("undefined"!=typeof window?window:this,function(t,e){function n(t){var e="length"in t&&t.length,n=Z.type(t);return"function"===n||Z.isWindow(t)?!1:1===t.nodeType&&e?!0:"array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t}function i(t,e,n){if(Z.isFunction(e))return Z.grep(t,function(t,i){return!!e.call(t,i,t)!==n});if(e.nodeType)return Z.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(at.test(e))return Z.filter(e,t,n);e=Z.filter(e,t)}return Z.grep(t,function(t){return B.call(e,t)>=0!==n})}function r(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function s(t){var e=ft[t]={};return Z.each(t.match(pt)||[],function(t,n){e[n]=!0}),e}function o(){Q.removeEventListener("DOMContentLoaded",o,!1),t.removeEventListener("load",o,!1),Z.ready()}function a(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=Z.expando+a.uid++}function l(t,e,n){var i;if(void 0===n&&1===t.nodeType)if(i="data-"+e.replace($t,"-$1").toLowerCase(),n=t.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:yt.test(n)?Z.parseJSON(n):n}catch(r){}bt.set(t,e,n)}else n=void 0;return n}function u(){return!0}function c(){return!1}function h(){try{return Q.activeElement}catch(t){}}function d(t,e){return Z.nodeName(t,"table")&&Z.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function p(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function f(t){var e=Ht.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function m(t,e){for(var n=0,i=t.length;i>n;n++)vt.set(t[n],"globalEval",!e||vt.get(e[n],"globalEval"))}function g(t,e){var n,i,r,s,o,a,l,u;if(1===e.nodeType){if(vt.hasData(t)&&(s=vt.access(t),o=vt.set(e,s),u=s.events)){delete o.handle,o.events={};for(r in u)for(n=0,i=u[r].length;i>n;n++)Z.event.add(e,r,u[r][n])}bt.hasData(t)&&(a=bt.access(t),l=Z.extend({},a),bt.set(e,l))}}function v(t,e){var n=t.getElementsByTagName?t.getElementsByTagName(e||"*"):t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&Z.nodeName(t,e)?Z.merge([t],n):n}function b(t,e){var n=e.nodeName.toLowerCase();"input"===n&&Ct.test(t.type)?e.checked=t.checked:("input"===n||"textarea"===n)&&(e.defaultValue=t.defaultValue)}function y(e,n){var i,r=Z(n.createElement(e)).appendTo(n.body),s=t.getDefaultComputedStyle&&(i=t.getDefaultComputedStyle(r[0]))?i.display:Z.css(r[0],"display");return r.detach(),s}function $(t){var e=Q,n=zt[t];return n||(n=y(t,e),"none"!==n&&n||(Rt=(Rt||Z("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Rt[0].contentDocument,e.write(),e.close(),n=y(t,e),Rt.detach()),zt[t]=n),n}function w(t,e,n){var i,r,s,o,a=t.style;return n=n||qt(t),n&&(o=n.getPropertyValue(e)||n[e]),n&&(""!==o||Z.contains(t.ownerDocument,t)||(o=Z.style(t,e)),Lt.test(o)&&Wt.test(e)&&(i=a.width,r=a.minWidth,s=a.maxWidth,a.minWidth=a.maxWidth=a.width=o,o=n.width,a.width=i,a.minWidth=r,a.maxWidth=s)),void 0!==o?o+"":o}function x(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function _(t,e){if(e in t)return e;for(var n=e[0].toUpperCase()+e.slice(1),i=e,r=Gt.length;r--;)if(e=Gt[r]+n,e in t)return e;return i}function C(t,e,n){var i=Ut.exec(e);return i?Math.max(0,i[1]-(n||0))+(i[2]||"px"):e}function k(t,e,n,i,r){for(var s=n===(i?"border":"content")?4:"width"===e?1:0,o=0;4>s;s+=2)"margin"===n&&(o+=Z.css(t,n+xt[s],!0,r)),i?("content"===n&&(o-=Z.css(t,"padding"+xt[s],!0,r)),"margin"!==n&&(o-=Z.css(t,"border"+xt[s]+"Width",!0,r))):(o+=Z.css(t,"padding"+xt[s],!0,r),"padding"!==n&&(o+=Z.css(t,"border"+xt[s]+"Width",!0,r)));return o}function D(t,e,n){var i=!0,r="width"===e?t.offsetWidth:t.offsetHeight,s=qt(t),o="border-box"===Z.css(t,"boxSizing",!1,s);if(0>=r||null==r){if(r=w(t,e,s),(0>r||null==r)&&(r=t.style[e]),Lt.test(r))return r;i=o&&(X.boxSizingReliable()||r===t.style[e]),r=parseFloat(r)||0}return r+k(t,e,n||(o?"border":"content"),i,s)+"px"}function T(t,e){for(var n,i,r,s=[],o=0,a=t.length;a>o;o++)i=t[o],i.style&&(s[o]=vt.get(i,"olddisplay"),n=i.style.display,e?(s[o]||"none"!==n||(i.style.display=""),""===i.style.display&&_t(i)&&(s[o]=vt.access(i,"olddisplay",$(i.nodeName)))):(r=_t(i),"none"===n&&r||vt.set(i,"olddisplay",r?n:Z.css(i,"display"))));for(o=0;a>o;o++)i=t[o],i.style&&(e&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=e?s[o]||"":"none"));return t}function S(t,e,n,i,r){return new S.prototype.init(t,e,n,i,r)}function E(){return setTimeout(function(){Xt=void 0}),Xt=Z.now()}function M(t,e){var n,i=0,r={height:t};for(e=e?1:0;4>i;i+=2-e)n=xt[i],r["margin"+n]=r["padding"+n]=t;return e&&(r.opacity=r.width=t),r}function A(t,e,n){for(var i,r=(ne[e]||[]).concat(ne["*"]),s=0,o=r.length;o>s;s++)if(i=r[s].call(n,e,t))return i}function I(t,e,n){var i,r,s,o,a,l,u,c,h=this,d={},p=t.style,f=t.nodeType&&_t(t),m=vt.get(t,"fxshow");n.queue||(a=Z._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,l=a.empty.fire,a.empty.fire=function(){a.unqueued||l()}),a.unqueued++,h.always(function(){h.always(function(){a.unqueued--,Z.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],u=Z.css(t,"display"),c="none"===u?vt.get(t,"olddisplay")||$(t.nodeName):u,"inline"===c&&"none"===Z.css(t,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",h.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(i in e)if(r=e[i],Jt.exec(r)){if(delete e[i],s=s||"toggle"===r,r===(f?"hide":"show")){if("show"!==r||!m||void 0===m[i])continue;f=!0}d[i]=m&&m[i]||Z.style(t,i)}else u=void 0;if(Z.isEmptyObject(d))"inline"===("none"===u?$(t.nodeName):u)&&(p.display=u);else{m?"hidden"in m&&(f=m.hidden):m=vt.access(t,"fxshow",{}),s&&(m.hidden=!f),f?Z(t).show():h.done(function(){Z(t).hide()}),h.done(function(){var e;vt.remove(t,"fxshow");for(e in d)Z.style(t,e,d[e])});for(i in d)o=A(f?m[i]:0,i,h),i in m||(m[i]=o.start,f&&(o.end=o.start,o.start="width"===i||"height"===i?1:0))}}function O(t,e){var n,i,r,s,o;for(n in t)if(i=Z.camelCase(n),r=e[i],s=t[n],Z.isArray(s)&&(r=s[1],s=t[n]=s[0]),n!==i&&(t[i]=s,delete t[n]),o=Z.cssHooks[i],o&&"expand"in o){s=o.expand(s),delete t[i];for(n in s)n in t||(t[n]=s[n],e[n]=r)}else e[i]=r}function P(t,e,n){var i,r,s=0,o=ee.length,a=Z.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var e=Xt||E(),n=Math.max(0,u.startTime+u.duration-e),i=n/u.duration||0,s=1-i,o=0,l=u.tweens.length;l>o;o++)u.tweens[o].run(s);return a.notifyWith(t,[u,s,n]),1>s&&l?n:(a.resolveWith(t,[u]),!1)},u=a.promise({elem:t,props:Z.extend({},e),opts:Z.extend(!0,{specialEasing:{}},n),originalProperties:e,originalOptions:n,startTime:Xt||E(),duration:n.duration,tweens:[],createTween:function(e,n){var i=Z.Tween(t,u.opts,e,n,u.opts.specialEasing[e]||u.opts.easing);return u.tweens.push(i),i},stop:function(e){var n=0,i=e?u.tweens.length:0;if(r)return this;for(r=!0;i>n;n++)u.tweens[n].run(1);return e?a.resolveWith(t,[u,e]):a.rejectWith(t,[u,e]),this}}),c=u.props;for(O(c,u.opts.specialEasing);o>s;s++)if(i=ee[s].call(u,t,c,u.opts))return i;return Z.map(c,A,u),Z.isFunction(u.opts.start)&&u.opts.start.call(t,u),Z.fx.timer(Z.extend(l,{elem:t,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function N(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var i,r=0,s=e.toLowerCase().match(pt)||[];if(Z.isFunction(n))for(;i=s[r++];)"+"===i[0]?(i=i.slice(1)||"*",(t[i]=t[i]||[]).unshift(n)):(t[i]=t[i]||[]).push(n)}}function H(t,e,n,i){function r(a){var l;return s[a]=!0,Z.each(t[a]||[],function(t,a){var u=a(e,n,i);return"string"!=typeof u||o||s[u]?o?!(l=u):void 0:(e.dataTypes.unshift(u),r(u),!1)}),l}var s={},o=t===ye;return r(e.dataTypes[0])||!s["*"]&&r("*")}function F(t,e){var n,i,r=Z.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((r[n]?t:i||(i={}))[n]=e[n]);return i&&Z.extend(!0,t,i),t}function j(t,e,n){for(var i,r,s,o,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(r in a)if(a[r]&&a[r].test(i)){l.unshift(r);break}if(l[0]in n)s=l[0];else{for(r in n){if(!l[0]||t.converters[r+" "+l[0]]){s=r;break}o||(o=r)}s=s||o}return s?(s!==l[0]&&l.unshift(s),n[s]):void 0}function R(t,e,n,i){var r,s,o,a,l,u={},c=t.dataTypes.slice();if(c[1])for(o in t.converters)u[o.toLowerCase()]=t.converters[o];for(s=c.shift();s;)if(t.responseFields[s]&&(n[t.responseFields[s]]=e),!l&&i&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=s,s=c.shift())if("*"===s)s=l;else if("*"!==l&&l!==s){if(o=u[l+" "+s]||u["* "+s],!o)for(r in u)if(a=r.split(" "),a[1]===s&&(o=u[l+" "+a[0]]||u["* "+a[0]])){o===!0?o=u[r]:u[r]!==!0&&(s=a[0],c.unshift(a[1]));break}if(o!==!0)if(o&&t["throws"])e=o(e);else try{e=o(e)}catch(h){return{state:"parsererror",error:o?h:"No conversion from "+l+" to "+s}}}return{state:"success",data:e}}function z(t,e,n,i){var r;if(Z.isArray(e))Z.each(e,function(e,r){n||Ce.test(t)?i(t,r):z(t+"["+("object"==typeof r?e:"")+"]",r,n,i)});else if(n||"object"!==Z.type(e))i(t,e);else for(r in e)z(t+"["+r+"]",e[r],n,i)}function W(t){return Z.isWindow(t)?t:9===t.nodeType&&t.defaultView}var L=[],q=L.slice,V=L.concat,U=L.push,B=L.indexOf,Y={},K=Y.toString,G=Y.hasOwnProperty,X={},Q=t.document,J="2.1.4",Z=function(t,e){return new Z.fn.init(t,e)},tt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,et=/^-ms-/,nt=/-([\da-z])/gi,it=function(t,e){return e.toUpperCase()};Z.fn=Z.prototype={jquery:J,constructor:Z,selector:"",length:0,toArray:function(){return q.call(this)},get:function(t){return null!=t?0>t?this[t+this.length]:this[t]:q.call(this)},pushStack:function(t){var e=Z.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t,e){return Z.each(this,t,e)},map:function(t){return this.pushStack(Z.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack(q.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(0>t?e:0);return this.pushStack(n>=0&&e>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:U,sort:L.sort,splice:L.splice},Z.extend=Z.fn.extend=function(){var t,e,n,i,r,s,o=arguments[0]||{},a=1,l=arguments.length,u=!1;for("boolean"==typeof o&&(u=o,o=arguments[a]||{},a++),"object"==typeof o||Z.isFunction(o)||(o={}),a===l&&(o=this,a--);l>a;a++)if(null!=(t=arguments[a]))for(e in t)n=o[e],i=t[e],o!==i&&(u&&i&&(Z.isPlainObject(i)||(r=Z.isArray(i)))?(r?(r=!1,s=n&&Z.isArray(n)?n:[]):s=n&&Z.isPlainObject(n)?n:{},o[e]=Z.extend(u,s,i)):void 0!==i&&(o[e]=i));return o},Z.extend({expando:"jQuery"+(J+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===Z.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){return!Z.isArray(t)&&t-parseFloat(t)+1>=0},isPlainObject:function(t){return"object"!==Z.type(t)||t.nodeType||Z.isWindow(t)?!1:t.constructor&&!G.call(t.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?Y[K.call(t)]||"object":typeof t},globalEval:function(t){var e,n=eval;t=Z.trim(t),t&&(1===t.indexOf("use strict")?(e=Q.createElement("script"),e.text=t,Q.head.appendChild(e).parentNode.removeChild(e)):n(t))},camelCase:function(t){return t.replace(et,"ms-").replace(nt,it)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e,i){var r,s=0,o=t.length,a=n(t);if(i){if(a)for(;o>s&&(r=e.apply(t[s],i),r!==!1);s++);else for(s in t)if(r=e.apply(t[s],i),r===!1)break}else if(a)for(;o>s&&(r=e.call(t[s],s,t[s]),r!==!1);s++);else for(s in t)if(r=e.call(t[s],s,t[s]),r===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(tt,"")},makeArray:function(t,e){var i=e||[];return null!=t&&(n(Object(t))?Z.merge(i,"string"==typeof t?[t]:t):U.call(i,t)),i},inArray:function(t,e,n){return null==e?-1:B.call(e,t,n)},merge:function(t,e){for(var n=+e.length,i=0,r=t.length;n>i;i++)t[r++]=e[i];return t.length=r,t},grep:function(t,e,n){for(var i,r=[],s=0,o=t.length,a=!n;o>s;s++)i=!e(t[s],s),i!==a&&r.push(t[s]);return r},map:function(t,e,i){var r,s=0,o=t.length,a=n(t),l=[];if(a)for(;o>s;s++)r=e(t[s],s,i),null!=r&&l.push(r);else for(s in t)r=e(t[s],s,i),null!=r&&l.push(r);return V.apply([],l)},guid:1,proxy:function(t,e){var n,i,r;return"string"==typeof e&&(n=t[e],e=t,t=n),Z.isFunction(t)?(i=q.call(arguments,2),r=function(){return t.apply(e||this,i.concat(q.call(arguments)))},r.guid=t.guid=t.guid||Z.guid++,r):void 0},now:Date.now,support:X}),Z.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){Y["[object "+e+"]"]=e.toLowerCase()});var rt=function(t){function e(t,e,n,i){var r,s,o,a,l,u,h,p,f,m;if((e?e.ownerDocument||e:z)!==I&&A(e),e=e||I,n=n||[],a=e.nodeType,"string"!=typeof t||!t||1!==a&&9!==a&&11!==a)return n;if(!i&&P){if(11!==a&&(r=bt.exec(t)))if(o=r[1]){if(9===a){if(s=e.getElementById(o),!s||!s.parentNode)return n;if(s.id===o)return n.push(s),n}else if(e.ownerDocument&&(s=e.ownerDocument.getElementById(o))&&j(e,s)&&s.id===o)return n.push(s),n}else{if(r[2])return J.apply(n,e.getElementsByTagName(t)),n;if((o=r[3])&&w.getElementsByClassName)return J.apply(n,e.getElementsByClassName(o)),n}if(w.qsa&&(!N||!N.test(t))){if(p=h=R,f=e,m=1!==a&&t,1===a&&"object"!==e.nodeName.toLowerCase()){for(u=k(t),(h=e.getAttribute("id"))?p=h.replace($t,"\\$&"):e.setAttribute("id",p),p="[id='"+p+"'] ",l=u.length;l--;)u[l]=p+d(u[l]);f=yt.test(t)&&c(e.parentNode)||e,m=u.join(",")}if(m)try{return J.apply(n,f.querySelectorAll(m)),n}catch(g){}finally{h||e.removeAttribute("id")}}}return T(t.replace(lt,"$1"),e,n,i)}function n(){function t(n,i){return e.push(n+" ")>x.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function i(t){return t[R]=!0,t}function r(t){var e=I.createElement("div");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function s(t,e){for(var n=t.split("|"),i=t.length;i--;)x.attrHandle[n[i]]=e}function o(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||Y)-(~t.sourceIndex||Y);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function a(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function l(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function u(t){return i(function(e){return e=+e,i(function(n,i){for(var r,s=t([],n.length,e),o=s.length;o--;)n[r=s[o]]&&(n[r]=!(i[r]=n[r]))})})}function c(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function h(){}function d(t){for(var e=0,n=t.length,i="";n>e;e++)i+=t[e].value;return i}function p(t,e,n){var i=e.dir,r=n&&"parentNode"===i,s=L++;return e.first?function(e,n,s){for(;e=e[i];)if(1===e.nodeType||r)return t(e,n,s)}:function(e,n,o){var a,l,u=[W,s];if(o){for(;e=e[i];)if((1===e.nodeType||r)&&t(e,n,o))return!0}else for(;e=e[i];)if(1===e.nodeType||r){if(l=e[R]||(e[R]={}),(a=l[i])&&a[0]===W&&a[1]===s)return u[2]=a[2];if(l[i]=u,u[2]=t(e,n,o))return!0}}}function f(t){return t.length>1?function(e,n,i){for(var r=t.length;r--;)if(!t[r](e,n,i))return!1;return!0}:t[0]}function m(t,n,i){for(var r=0,s=n.length;s>r;r++)e(t,n[r],i);return i}function g(t,e,n,i,r){for(var s,o=[],a=0,l=t.length,u=null!=e;l>a;a++)(s=t[a])&&(!n||n(s,i,r))&&(o.push(s),u&&e.push(a));return o}function v(t,e,n,r,s,o){return r&&!r[R]&&(r=v(r)),s&&!s[R]&&(s=v(s,o)),i(function(i,o,a,l){var u,c,h,d=[],p=[],f=o.length,v=i||m(e||"*",a.nodeType?[a]:a,[]),b=!t||!i&&e?v:g(v,d,t,a,l),y=n?s||(i?t:f||r)?[]:o:b;if(n&&n(b,y,a,l),r)for(u=g(y,p),r(u,[],a,l),c=u.length;c--;)(h=u[c])&&(y[p[c]]=!(b[p[c]]=h));if(i){if(s||t){if(s){for(u=[],c=y.length;c--;)(h=y[c])&&u.push(b[c]=h);s(null,y=[],u,l)}for(c=y.length;c--;)(h=y[c])&&(u=s?tt(i,h):d[c])>-1&&(i[u]=!(o[u]=h))}}else y=g(y===o?y.splice(f,y.length):y),s?s(null,o,y,l):J.apply(o,y)})}function b(t){for(var e,n,i,r=t.length,s=x.relative[t[0].type],o=s||x.relative[" "],a=s?1:0,l=p(function(t){return t===e},o,!0),u=p(function(t){return tt(e,t)>-1},o,!0),c=[function(t,n,i){var r=!s&&(i||n!==S)||((e=n).nodeType?l(t,n,i):u(t,n,i));return e=null,r}];r>a;a++)if(n=x.relative[t[a].type])c=[p(f(c),n)];else{if(n=x.filter[t[a].type].apply(null,t[a].matches),n[R]){for(i=++a;r>i&&!x.relative[t[i].type];i++);return v(a>1&&f(c),a>1&&d(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(lt,"$1"),n,i>a&&b(t.slice(a,i)),r>i&&b(t=t.slice(i)),r>i&&d(t))}c.push(n)}return f(c)}function y(t,n){var r=n.length>0,s=t.length>0,o=function(i,o,a,l,u){var c,h,d,p=0,f="0",m=i&&[],v=[],b=S,y=i||s&&x.find.TAG("*",u),$=W+=null==b?1:Math.random()||.1,w=y.length;for(u&&(S=o!==I&&o);f!==w&&null!=(c=y[f]);f++){if(s&&c){for(h=0;d=t[h++];)if(d(c,o,a)){l.push(c);break}u&&(W=$)}r&&((c=!d&&c)&&p--,i&&m.push(c))}if(p+=f,r&&f!==p){for(h=0;d=n[h++];)d(m,v,o,a);if(i){if(p>0)for(;f--;)m[f]||v[f]||(v[f]=X.call(l));v=g(v)}J.apply(l,v),u&&!i&&v.length>0&&p+n.length>1&&e.uniqueSort(l)}return u&&(W=$,S=b),m};return r?i(o):o}var $,w,x,_,C,k,D,T,S,E,M,A,I,O,P,N,H,F,j,R="sizzle"+1*new Date,z=t.document,W=0,L=0,q=n(),V=n(),U=n(),B=function(t,e){return t===e&&(M=!0),0},Y=1<<31,K={}.hasOwnProperty,G=[],X=G.pop,Q=G.push,J=G.push,Z=G.slice,tt=function(t,e){for(var n=0,i=t.length;i>n;n++)if(t[n]===e)return n;return-1},et="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",rt=it.replace("w","w#"),st="\\["+nt+"*("+it+")(?:"+nt+"*([*^$|!~]?=)"+nt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+rt+"))|)"+nt+"*\\]",ot=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+st+")*)|.*)\\)|)",at=new RegExp(nt+"+","g"),lt=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ut=new RegExp("^"+nt+"*,"+nt+"*"),ct=new RegExp("^"+nt+"*([>+~]|"+nt+")"+nt+"*"),ht=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),dt=new RegExp(ot),pt=new RegExp("^"+rt+"$"),ft={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it.replace("w","w*")+")"),ATTR:new RegExp("^"+st),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},mt=/^(?:input|select|textarea|button)$/i,gt=/^h\d$/i,vt=/^[^{]+\{\s*\[native \w/,bt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,$t=/'|\\/g,wt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),xt=function(t,e,n){var i="0x"+e-65536;return i!==i||n?e:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},_t=function(){A()};try{J.apply(G=Z.call(z.childNodes),z.childNodes),G[z.childNodes.length].nodeType}catch(Ct){J={apply:G.length?function(t,e){Q.apply(t,Z.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}w=e.support={},C=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return e?"HTML"!==e.nodeName:!1},A=e.setDocument=function(t){var e,n,i=t?t.ownerDocument||t:z;return i!==I&&9===i.nodeType&&i.documentElement?(I=i,O=i.documentElement,n=i.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",_t,!1):n.attachEvent&&n.attachEvent("onunload",_t)),P=!C(i),w.attributes=r(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=r(function(t){return t.appendChild(i.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=vt.test(i.getElementsByClassName),w.getById=r(function(t){return O.appendChild(t).id=R,!i.getElementsByName||!i.getElementsByName(R).length}),w.getById?(x.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&P){var n=e.getElementById(t);return n&&n.parentNode?[n]:[]}},x.filter.ID=function(t){var e=t.replace(wt,xt);return function(t){return t.getAttribute("id")===e}}):(delete x.find.ID,x.filter.ID=function(t){var e=t.replace(wt,xt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),x.find.TAG=w.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):w.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],r=0,s=e.getElementsByTagName(t);if("*"===t){for(;n=s[r++];)1===n.nodeType&&i.push(n);return i}return s},x.find.CLASS=w.getElementsByClassName&&function(t,e){return P?e.getElementsByClassName(t):void 0},H=[],N=[],(w.qsa=vt.test(i.querySelectorAll))&&(r(function(t){O.appendChild(t).innerHTML="<a id='"+R+"'></a><select id='"+R+"-\f]' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||N.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+R+"-]").length||N.push("~="),t.querySelectorAll(":checked").length||N.push(":checked"),t.querySelectorAll("a#"+R+"+*").length||N.push(".#.+[+~]")}),r(function(t){var e=i.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&N.push("name"+nt+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||N.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),N.push(",.*:")})),(w.matchesSelector=vt.test(F=O.matches||O.webkitMatchesSelector||O.mozMatchesSelector||O.oMatchesSelector||O.msMatchesSelector))&&r(function(t){w.disconnectedMatch=F.call(t,"div"),F.call(t,"[s!='']:x"),H.push("!=",ot)}),N=N.length&&new RegExp(N.join("|")),H=H.length&&new RegExp(H.join("|")),e=vt.test(O.compareDocumentPosition),j=e||vt.test(O.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},B=e?function(t,e){if(t===e)return M=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!w.sortDetached&&e.compareDocumentPosition(t)===n?t===i||t.ownerDocument===z&&j(z,t)?-1:e===i||e.ownerDocument===z&&j(z,e)?1:E?tt(E,t)-tt(E,e):0:4&n?-1:1)}:function(t,e){if(t===e)return M=!0,0;var n,r=0,s=t.parentNode,a=e.parentNode,l=[t],u=[e];if(!s||!a)return t===i?-1:e===i?1:s?-1:a?1:E?tt(E,t)-tt(E,e):0;if(s===a)return o(t,e);for(n=t;n=n.parentNode;)l.unshift(n);for(n=e;n=n.parentNode;)u.unshift(n);for(;l[r]===u[r];)r++;return r?o(l[r],u[r]):l[r]===z?-1:u[r]===z?1:0},i):I},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==I&&A(t),n=n.replace(ht,"='$1']"),w.matchesSelector&&P&&(!H||!H.test(n))&&(!N||!N.test(n)))try{var i=F.call(t,n);if(i||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(r){}return e(n,I,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==I&&A(t),j(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==I&&A(t);var n=x.attrHandle[e.toLowerCase()],i=n&&K.call(x.attrHandle,e.toLowerCase())?n(t,e,!P):void 0;return void 0!==i?i:w.attributes||!P?t.getAttribute(e):(i=t.getAttributeNode(e))&&i.specified?i.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],i=0,r=0;if(M=!w.detectDuplicates,E=!w.sortStable&&t.slice(0),t.sort(B),M){for(;e=t[r++];)e===t[r]&&(i=n.push(r));for(;i--;)t.splice(n[i],1)}return E=null,t},_=e.getText=function(t){var e,n="",i=0,r=t.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=_(t)}else if(3===r||4===r)return t.nodeValue}else for(;e=t[i++];)n+=_(e);return n},x=e.selectors={cacheLength:50,createPseudo:i,match:ft,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(wt,xt),t[3]=(t[3]||t[4]||t[5]||"").replace(wt,xt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return ft.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&dt.test(n)&&(e=k(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(wt,xt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=q[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&q(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,i){return function(r){var s=e.attr(r,t);return null==s?"!="===n:n?(s+="","="===n?s===i:"!="===n?s!==i:"^="===n?i&&0===s.indexOf(i):"*="===n?i&&s.indexOf(i)>-1:"$="===n?i&&s.slice(-i.length)===i:"~="===n?(" "+s.replace(at," ")+" ").indexOf(i)>-1:"|="===n?s===i||s.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(t,e,n,i,r){var s="nth"!==t.slice(0,3),o="last"!==t.slice(-4),a="of-type"===e;return 1===i&&0===r?function(t){return!!t.parentNode}:function(e,n,l){var u,c,h,d,p,f,m=s!==o?"nextSibling":"previousSibling",g=e.parentNode,v=a&&e.nodeName.toLowerCase(),b=!l&&!a;if(g){if(s){for(;m;){for(h=e;h=h[m];)if(a?h.nodeName.toLowerCase()===v:1===h.nodeType)return!1;f=m="only"===t&&!f&&"nextSibling"}return!0}if(f=[o?g.firstChild:g.lastChild],o&&b){for(c=g[R]||(g[R]={}),u=c[t]||[],p=u[0]===W&&u[1],d=u[0]===W&&u[2],h=p&&g.childNodes[p];h=++p&&h&&h[m]||(d=p=0)||f.pop();)if(1===h.nodeType&&++d&&h===e){c[t]=[W,p,d];break}}else if(b&&(u=(e[R]||(e[R]={}))[t])&&u[0]===W)d=u[1];else for(;(h=++p&&h&&h[m]||(d=p=0)||f.pop())&&((a?h.nodeName.toLowerCase()!==v:1!==h.nodeType)||!++d||(b&&((h[R]||(h[R]={}))[t]=[W,d]),h!==e)););return d-=r,d===i||d%i===0&&d/i>=0}}},PSEUDO:function(t,n){var r,s=x.pseudos[t]||x.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return s[R]?s(n):s.length>1?(r=[t,t,"",n],x.setFilters.hasOwnProperty(t.toLowerCase())?i(function(t,e){for(var i,r=s(t,n),o=r.length;o--;)i=tt(t,r[o]),t[i]=!(e[i]=r[o])}):function(t){return s(t,0,r)}):s}},pseudos:{not:i(function(t){var e=[],n=[],r=D(t.replace(lt,"$1"));return r[R]?i(function(t,e,n,i){for(var s,o=r(t,null,i,[]),a=t.length;a--;)(s=o[a])&&(t[a]=!(e[a]=s))}):function(t,i,s){return e[0]=t,r(e,null,s,n),e[0]=null,!n.pop()}}),has:i(function(t){return function(n){return e(t,n).length>0}}),contains:i(function(t){return t=t.replace(wt,xt),function(e){return(e.textContent||e.innerText||_(e)).indexOf(t)>-1}}),lang:i(function(t){return pt.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(wt,xt).toLowerCase(),function(e){var n;do if(n=P?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===O},focus:function(t){return t===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!x.pseudos.empty(t)},header:function(t){return gt.test(t.nodeName)},input:function(t){return mt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:u(function(){return[0]}),last:u(function(t,e){return[e-1]}),eq:u(function(t,e,n){return[0>n?n+e:n]}),even:u(function(t,e){for(var n=0;e>n;n+=2)t.push(n);return t}),odd:u(function(t,e){for(var n=1;e>n;n+=2)t.push(n);return t}),lt:u(function(t,e,n){for(var i=0>n?n+e:n;--i>=0;)t.push(i);return t}),gt:u(function(t,e,n){for(var i=0>n?n+e:n;++i<e;)t.push(i);return t})}},x.pseudos.nth=x.pseudos.eq;for($ in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[$]=a($);for($ in{submit:!0,reset:!0})x.pseudos[$]=l($);return h.prototype=x.filters=x.pseudos,x.setFilters=new h,k=e.tokenize=function(t,n){var i,r,s,o,a,l,u,c=V[t+" "];if(c)return n?0:c.slice(0);for(a=t,l=[],u=x.preFilter;a;){(!i||(r=ut.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),l.push(s=[])),i=!1,(r=ct.exec(a))&&(i=r.shift(),s.push({value:i,type:r[0].replace(lt," ")}),a=a.slice(i.length));for(o in x.filter)!(r=ft[o].exec(a))||u[o]&&!(r=u[o](r))||(i=r.shift(),s.push({value:i,type:o,matches:r}),a=a.slice(i.length));if(!i)break}return n?a.length:a?e.error(t):V(t,l).slice(0)},D=e.compile=function(t,e){var n,i=[],r=[],s=U[t+" "];if(!s){for(e||(e=k(t)),n=e.length;n--;)s=b(e[n]),s[R]?i.push(s):r.push(s);s=U(t,y(r,i)),s.selector=t}return s},T=e.select=function(t,e,n,i){var r,s,o,a,l,u="function"==typeof t&&t,h=!i&&k(t=u.selector||t);if(n=n||[],1===h.length){if(s=h[0]=h[0].slice(0),s.length>2&&"ID"===(o=s[0]).type&&w.getById&&9===e.nodeType&&P&&x.relative[s[1].type]){if(e=(x.find.ID(o.matches[0].replace(wt,xt),e)||[])[0],!e)return n;u&&(e=e.parentNode),t=t.slice(s.shift().value.length)}for(r=ft.needsContext.test(t)?0:s.length;r--&&(o=s[r],!x.relative[a=o.type]);)if((l=x.find[a])&&(i=l(o.matches[0].replace(wt,xt),yt.test(s[0].type)&&c(e.parentNode)||e))){if(s.splice(r,1),t=i.length&&d(s),!t)return J.apply(n,i),n;break}}return(u||D(t,h))(i,e,!P,n,yt.test(t)&&c(e.parentNode)||e),n},w.sortStable=R.split("").sort(B).join("")===R,w.detectDuplicates=!!M,A(),w.sortDetached=r(function(t){return 1&t.compareDocumentPosition(I.createElement("div"))}),r(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||s("type|href|height|width",function(t,e,n){return n?void 0:t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&r(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||s("value",function(t,e,n){return n||"input"!==t.nodeName.toLowerCase()?void 0:t.defaultValue}),r(function(t){return null==t.getAttribute("disabled")})||s(et,function(t,e,n){var i;return n?void 0:t[e]===!0?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null}),e}(t);Z.find=rt,Z.expr=rt.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=rt.uniqueSort,Z.text=rt.getText,Z.isXMLDoc=rt.isXML,Z.contains=rt.contains;var st=Z.expr.match.needsContext,ot=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,at=/^.[^:#\[\.,]*$/;Z.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?Z.find.matchesSelector(i,t)?[i]:[]:Z.find.matches(t,Z.grep(e,function(t){return 1===t.nodeType}))},Z.fn.extend({find:function(t){var e,n=this.length,i=[],r=this;
+if("string"!=typeof t)return this.pushStack(Z(t).filter(function(){for(e=0;n>e;e++)if(Z.contains(r[e],this))return!0}));for(e=0;n>e;e++)Z.find(t,r[e],i);return i=this.pushStack(n>1?Z.unique(i):i),i.selector=this.selector?this.selector+" "+t:t,i},filter:function(t){return this.pushStack(i(this,t||[],!1))},not:function(t){return this.pushStack(i(this,t||[],!0))},is:function(t){return!!i(this,"string"==typeof t&&st.test(t)?Z(t):t||[],!1).length}});var lt,ut=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ct=Z.fn.init=function(t,e){var n,i;if(!t)return this;if("string"==typeof t){if(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:ut.exec(t),!n||!n[1]&&e)return!e||e.jquery?(e||lt).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof Z?e[0]:e,Z.merge(this,Z.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:Q,!0)),ot.test(n[1])&&Z.isPlainObject(e))for(n in e)Z.isFunction(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return i=Q.getElementById(n[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=Q,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):Z.isFunction(t)?"undefined"!=typeof lt.ready?lt.ready(t):t(Z):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),Z.makeArray(t,this))};ct.prototype=Z.fn,lt=Z(Q);var ht=/^(?:parents|prev(?:Until|All))/,dt={children:!0,contents:!0,next:!0,prev:!0};Z.extend({dir:function(t,e,n){for(var i=[],r=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&Z(t).is(n))break;i.push(t)}return i},sibling:function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n}}),Z.fn.extend({has:function(t){var e=Z(t,this),n=e.length;return this.filter(function(){for(var t=0;n>t;t++)if(Z.contains(this,e[t]))return!0})},closest:function(t,e){for(var n,i=0,r=this.length,s=[],o=st.test(t)||"string"!=typeof t?Z(t,e||this.context):0;r>i;i++)for(n=this[i];n&&n!==e;n=n.parentNode)if(n.nodeType<11&&(o?o.index(n)>-1:1===n.nodeType&&Z.find.matchesSelector(n,t))){s.push(n);break}return this.pushStack(s.length>1?Z.unique(s):s)},index:function(t){return t?"string"==typeof t?B.call(Z(t),this[0]):B.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(Z.unique(Z.merge(this.get(),Z(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),Z.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return Z.dir(t,"parentNode")},parentsUntil:function(t,e,n){return Z.dir(t,"parentNode",n)},next:function(t){return r(t,"nextSibling")},prev:function(t){return r(t,"previousSibling")},nextAll:function(t){return Z.dir(t,"nextSibling")},prevAll:function(t){return Z.dir(t,"previousSibling")},nextUntil:function(t,e,n){return Z.dir(t,"nextSibling",n)},prevUntil:function(t,e,n){return Z.dir(t,"previousSibling",n)},siblings:function(t){return Z.sibling((t.parentNode||{}).firstChild,t)},children:function(t){return Z.sibling(t.firstChild)},contents:function(t){return t.contentDocument||Z.merge([],t.childNodes)}},function(t,e){Z.fn[t]=function(n,i){var r=Z.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=Z.filter(i,r)),this.length>1&&(dt[t]||Z.unique(r),ht.test(t)&&r.reverse()),this.pushStack(r)}});var pt=/\S+/g,ft={};Z.Callbacks=function(t){t="string"==typeof t?ft[t]||s(t):Z.extend({},t);var e,n,i,r,o,a,l=[],u=!t.once&&[],c=function(s){for(e=t.memory&&s,n=!0,a=r||0,r=0,o=l.length,i=!0;l&&o>a;a++)if(l[a].apply(s[0],s[1])===!1&&t.stopOnFalse){e=!1;break}i=!1,l&&(u?u.length&&c(u.shift()):e?l=[]:h.disable())},h={add:function(){if(l){var n=l.length;!function s(e){Z.each(e,function(e,n){var i=Z.type(n);"function"===i?t.unique&&h.has(n)||l.push(n):n&&n.length&&"string"!==i&&s(n)})}(arguments),i?o=l.length:e&&(r=n,c(e))}return this},remove:function(){return l&&Z.each(arguments,function(t,e){for(var n;(n=Z.inArray(e,l,n))>-1;)l.splice(n,1),i&&(o>=n&&o--,a>=n&&a--)}),this},has:function(t){return t?Z.inArray(t,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=e=void 0,this},disabled:function(){return!l},lock:function(){return u=void 0,e||h.disable(),this},locked:function(){return!u},fireWith:function(t,e){return!l||n&&!u||(e=e||[],e=[t,e.slice?e.slice():e],i?u.push(e):c(e)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!n}};return h},Z.extend({Deferred:function(t){var e=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var t=arguments;return Z.Deferred(function(n){Z.each(e,function(e,s){var o=Z.isFunction(t[e])&&t[e];r[s[1]](function(){var t=o&&o.apply(this,arguments);t&&Z.isFunction(t.promise)?t.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s[0]+"With"](this===i?n.promise():this,o?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?Z.extend(t,i):i}},r={};return i.pipe=i.then,Z.each(e,function(t,s){var o=s[2],a=s[3];i[s[1]]=o.add,a&&o.add(function(){n=a},e[1^t][2].disable,e[2][2].lock),r[s[0]]=function(){return r[s[0]+"With"](this===r?i:this,arguments),this},r[s[0]+"With"]=o.fireWith}),i.promise(r),t&&t.call(r,r),r},when:function(t){var e,n,i,r=0,s=q.call(arguments),o=s.length,a=1!==o||t&&Z.isFunction(t.promise)?o:0,l=1===a?t:Z.Deferred(),u=function(t,n,i){return function(r){n[t]=this,i[t]=arguments.length>1?q.call(arguments):r,i===e?l.notifyWith(n,i):--a||l.resolveWith(n,i)}};if(o>1)for(e=new Array(o),n=new Array(o),i=new Array(o);o>r;r++)s[r]&&Z.isFunction(s[r].promise)?s[r].promise().done(u(r,i,s)).fail(l.reject).progress(u(r,n,e)):--a;return a||l.resolveWith(i,s),l.promise()}});var mt;Z.fn.ready=function(t){return Z.ready.promise().done(t),this},Z.extend({isReady:!1,readyWait:1,holdReady:function(t){t?Z.readyWait++:Z.ready(!0)},ready:function(t){(t===!0?--Z.readyWait:Z.isReady)||(Z.isReady=!0,t!==!0&&--Z.readyWait>0||(mt.resolveWith(Q,[Z]),Z.fn.triggerHandler&&(Z(Q).triggerHandler("ready"),Z(Q).off("ready"))))}}),Z.ready.promise=function(e){return mt||(mt=Z.Deferred(),"complete"===Q.readyState?setTimeout(Z.ready):(Q.addEventListener("DOMContentLoaded",o,!1),t.addEventListener("load",o,!1))),mt.promise(e)},Z.ready.promise();var gt=Z.access=function(t,e,n,i,r,s,o){var a=0,l=t.length,u=null==n;if("object"===Z.type(n)){r=!0;for(a in n)Z.access(t,e,a,n[a],!0,s,o)}else if(void 0!==i&&(r=!0,Z.isFunction(i)||(o=!0),u&&(o?(e.call(t,i),e=null):(u=e,e=function(t,e,n){return u.call(Z(t),n)})),e))for(;l>a;a++)e(t[a],n,o?i:i.call(t[a],a,e(t[a],n)));return r?t:u?e.call(t):l?e(t[0],n):s};Z.acceptData=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType},a.uid=1,a.accepts=Z.acceptData,a.prototype={key:function(t){if(!a.accepts(t))return 0;var e={},n=t[this.expando];if(!n){n=a.uid++;try{e[this.expando]={value:n},Object.defineProperties(t,e)}catch(i){e[this.expando]=n,Z.extend(t,e)}}return this.cache[n]||(this.cache[n]={}),n},set:function(t,e,n){var i,r=this.key(t),s=this.cache[r];if("string"==typeof e)s[e]=n;else if(Z.isEmptyObject(s))Z.extend(this.cache[r],e);else for(i in e)s[i]=e[i];return s},get:function(t,e){var n=this.cache[this.key(t)];return void 0===e?n:n[e]},access:function(t,e,n){var i;return void 0===e||e&&"string"==typeof e&&void 0===n?(i=this.get(t,e),void 0!==i?i:this.get(t,Z.camelCase(e))):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,i,r,s=this.key(t),o=this.cache[s];if(void 0===e)this.cache[s]={};else{Z.isArray(e)?i=e.concat(e.map(Z.camelCase)):(r=Z.camelCase(e),e in o?i=[e,r]:(i=r,i=i in o?[i]:i.match(pt)||[])),n=i.length;for(;n--;)delete o[i[n]]}},hasData:function(t){return!Z.isEmptyObject(this.cache[t[this.expando]]||{})},discard:function(t){t[this.expando]&&delete this.cache[t[this.expando]]}};var vt=new a,bt=new a,yt=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,$t=/([A-Z])/g;Z.extend({hasData:function(t){return bt.hasData(t)||vt.hasData(t)},data:function(t,e,n){return bt.access(t,e,n)},removeData:function(t,e){bt.remove(t,e)},_data:function(t,e,n){return vt.access(t,e,n)},_removeData:function(t,e){vt.remove(t,e)}}),Z.fn.extend({data:function(t,e){var n,i,r,s=this[0],o=s&&s.attributes;if(void 0===t){if(this.length&&(r=bt.get(s),1===s.nodeType&&!vt.get(s,"hasDataAttrs"))){for(n=o.length;n--;)o[n]&&(i=o[n].name,0===i.indexOf("data-")&&(i=Z.camelCase(i.slice(5)),l(s,i,r[i])));vt.set(s,"hasDataAttrs",!0)}return r}return"object"==typeof t?this.each(function(){bt.set(this,t)}):gt(this,function(e){var n,i=Z.camelCase(t);if(s&&void 0===e){if(n=bt.get(s,t),void 0!==n)return n;if(n=bt.get(s,i),void 0!==n)return n;if(n=l(s,i,void 0),void 0!==n)return n}else this.each(function(){var n=bt.get(this,i);bt.set(this,i,e),-1!==t.indexOf("-")&&void 0!==n&&bt.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){bt.remove(this,t)})}}),Z.extend({queue:function(t,e,n){var i;return t?(e=(e||"fx")+"queue",i=vt.get(t,e),n&&(!i||Z.isArray(n)?i=vt.access(t,e,Z.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(t,e){e=e||"fx";var n=Z.queue(t,e),i=n.length,r=n.shift(),s=Z._queueHooks(t,e),o=function(){Z.dequeue(t,e)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===e&&n.unshift("inprogress"),delete s.stop,r.call(t,o,s)),!i&&s&&s.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return vt.get(t,n)||vt.access(t,n,{empty:Z.Callbacks("once memory").add(function(){vt.remove(t,[e+"queue",n])})})}}),Z.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length<n?Z.queue(this[0],t):void 0===e?this:this.each(function(){var n=Z.queue(this,t,e);Z._queueHooks(this,t),"fx"===t&&"inprogress"!==n[0]&&Z.dequeue(this,t)})},dequeue:function(t){return this.each(function(){Z.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var n,i=1,r=Z.Deferred(),s=this,o=this.length,a=function(){--i||r.resolveWith(s,[s])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";o--;)n=vt.get(s[o],t+"queueHooks"),n&&n.empty&&(i++,n.empty.add(a));return a(),r.promise(e)}});var wt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,xt=["Top","Right","Bottom","Left"],_t=function(t,e){return t=e||t,"none"===Z.css(t,"display")||!Z.contains(t.ownerDocument,t)},Ct=/^(?:checkbox|radio)$/i;!function(){var t=Q.createDocumentFragment(),e=t.appendChild(Q.createElement("div")),n=Q.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),X.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",X.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var kt="undefined";X.focusinBubbles="onfocusin"in t;var Dt=/^key/,Tt=/^(?:mouse|pointer|contextmenu)|click/,St=/^(?:focusinfocus|focusoutblur)$/,Et=/^([^.]*)(?:\.(.+)|)$/;Z.event={global:{},add:function(t,e,n,i,r){var s,o,a,l,u,c,h,d,p,f,m,g=vt.get(t);if(g)for(n.handler&&(s=n,n=s.handler,r=s.selector),n.guid||(n.guid=Z.guid++),(l=g.events)||(l=g.events={}),(o=g.handle)||(o=g.handle=function(e){return typeof Z!==kt&&Z.event.triggered!==e.type?Z.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(pt)||[""],u=e.length;u--;)a=Et.exec(e[u])||[],p=m=a[1],f=(a[2]||"").split(".").sort(),p&&(h=Z.event.special[p]||{},p=(r?h.delegateType:h.bindType)||p,h=Z.event.special[p]||{},c=Z.extend({type:p,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&Z.expr.match.needsContext.test(r),namespace:f.join(".")},s),(d=l[p])||(d=l[p]=[],d.delegateCount=0,h.setup&&h.setup.call(t,i,f,o)!==!1||t.addEventListener&&t.addEventListener(p,o,!1)),h.add&&(h.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),r?d.splice(d.delegateCount++,0,c):d.push(c),Z.event.global[p]=!0)},remove:function(t,e,n,i,r){var s,o,a,l,u,c,h,d,p,f,m,g=vt.hasData(t)&&vt.get(t);if(g&&(l=g.events)){for(e=(e||"").match(pt)||[""],u=e.length;u--;)if(a=Et.exec(e[u])||[],p=m=a[1],f=(a[2]||"").split(".").sort(),p){for(h=Z.event.special[p]||{},p=(i?h.delegateType:h.bindType)||p,d=l[p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=s=d.length;s--;)c=d[s],!r&&m!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(d.splice(s,1),c.selector&&d.delegateCount--,h.remove&&h.remove.call(t,c));o&&!d.length&&(h.teardown&&h.teardown.call(t,f,g.handle)!==!1||Z.removeEvent(t,p,g.handle),delete l[p])}else for(p in l)Z.event.remove(t,p+e[u],n,i,!0);Z.isEmptyObject(l)&&(delete g.handle,vt.remove(t,"events"))}},trigger:function(e,n,i,r){var s,o,a,l,u,c,h,d=[i||Q],p=G.call(e,"type")?e.type:e,f=G.call(e,"namespace")?e.namespace.split("."):[];if(o=a=i=i||Q,3!==i.nodeType&&8!==i.nodeType&&!St.test(p+Z.event.triggered)&&(p.indexOf(".")>=0&&(f=p.split("."),p=f.shift(),f.sort()),u=p.indexOf(":")<0&&"on"+p,e=e[Z.expando]?e:new Z.Event(p,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=f.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=i),n=null==n?[e]:Z.makeArray(n,[e]),h=Z.event.special[p]||{},r||!h.trigger||h.trigger.apply(i,n)!==!1)){if(!r&&!h.noBubble&&!Z.isWindow(i)){for(l=h.delegateType||p,St.test(l+p)||(o=o.parentNode);o;o=o.parentNode)d.push(o),a=o;a===(i.ownerDocument||Q)&&d.push(a.defaultView||a.parentWindow||t)}for(s=0;(o=d[s++])&&!e.isPropagationStopped();)e.type=s>1?l:h.bindType||p,c=(vt.get(o,"events")||{})[e.type]&&vt.get(o,"handle"),c&&c.apply(o,n),c=u&&o[u],c&&c.apply&&Z.acceptData(o)&&(e.result=c.apply(o,n),e.result===!1&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||h._default&&h._default.apply(d.pop(),n)!==!1||!Z.acceptData(i)||u&&Z.isFunction(i[p])&&!Z.isWindow(i)&&(a=i[u],a&&(i[u]=null),Z.event.triggered=p,i[p](),Z.event.triggered=void 0,a&&(i[u]=a)),e.result}},dispatch:function(t){t=Z.event.fix(t);var e,n,i,r,s,o=[],a=q.call(arguments),l=(vt.get(this,"events")||{})[t.type]||[],u=Z.event.special[t.type]||{};if(a[0]=t,t.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,t)!==!1){for(o=Z.event.handlers.call(this,t,l),e=0;(r=o[e++])&&!t.isPropagationStopped();)for(t.currentTarget=r.elem,n=0;(s=r.handlers[n++])&&!t.isImmediatePropagationStopped();)(!t.namespace_re||t.namespace_re.test(s.namespace))&&(t.handleObj=s,t.data=s.data,i=((Z.event.special[s.origType]||{}).handle||s.handler).apply(r.elem,a),void 0!==i&&(t.result=i)===!1&&(t.preventDefault(),t.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,t),t.result}},handlers:function(t,e){var n,i,r,s,o=[],a=e.delegateCount,l=t.target;if(a&&l.nodeType&&(!t.button||"click"!==t.type))for(;l!==this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==t.type){for(i=[],n=0;a>n;n++)s=e[n],r=s.selector+" ",void 0===i[r]&&(i[r]=s.needsContext?Z(r,this).index(l)>=0:Z.find(r,this,null,[l]).length),i[r]&&i.push(s);i.length&&o.push({elem:l,handlers:i})}return a<e.length&&o.push({elem:this,handlers:e.slice(a)}),o},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var n,i,r,s=e.button;return null==t.pageX&&null!=e.clientX&&(n=t.target.ownerDocument||Q,i=n.documentElement,r=n.body,t.pageX=e.clientX+(i&&i.scrollLeft||r&&r.scrollLeft||0)-(i&&i.clientLeft||r&&r.clientLeft||0),t.pageY=e.clientY+(i&&i.scrollTop||r&&r.scrollTop||0)-(i&&i.clientTop||r&&r.clientTop||0)),t.which||void 0===s||(t.which=1&s?1:2&s?3:4&s?2:0),t}},fix:function(t){if(t[Z.expando])return t;var e,n,i,r=t.type,s=t,o=this.fixHooks[r];for(o||(this.fixHooks[r]=o=Tt.test(r)?this.mouseHooks:Dt.test(r)?this.keyHooks:{}),i=o.props?this.props.concat(o.props):this.props,t=new Z.Event(s),e=i.length;e--;)n=i[e],t[n]=s[n];return t.target||(t.target=Q),3===t.target.nodeType&&(t.target=t.target.parentNode),o.filter?o.filter(t,s):t},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==h()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===h()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&Z.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(t){return Z.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}},simulate:function(t,e,n,i){var r=Z.extend(new Z.Event,n,{type:t,isSimulated:!0,originalEvent:{}});i?Z.event.trigger(r,null,e):Z.event.dispatch.call(e,r),r.isDefaultPrevented()&&n.preventDefault()}},Z.removeEvent=function(t,e,n){t.removeEventListener&&t.removeEventListener(e,n,!1)},Z.Event=function(t,e){return this instanceof Z.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?u:c):this.type=t,e&&Z.extend(this,e),this.timeStamp=t&&t.timeStamp||Z.now(),void(this[Z.expando]=!0)):new Z.Event(t,e)},Z.Event.prototype={isDefaultPrevented:c,isPropagationStopped:c,isImmediatePropagationStopped:c,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=u,t&&t.preventDefault&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=u,t&&t.stopPropagation&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=u,t&&t.stopImmediatePropagation&&t.stopImmediatePropagation(),this.stopPropagation()}},Z.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){Z.event.special[t]={delegateType:e,bindType:e,handle:function(t){var n,i=this,r=t.relatedTarget,s=t.handleObj;return(!r||r!==i&&!Z.contains(i,r))&&(t.type=s.origType,n=s.handler.apply(this,arguments),t.type=e),n}}}),X.focusinBubbles||Z.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){Z.event.simulate(e,t.target,Z.event.fix(t),!0)};Z.event.special[e]={setup:function(){var i=this.ownerDocument||this,r=vt.access(i,e);r||i.addEventListener(t,n,!0),vt.access(i,e,(r||0)+1)},teardown:function(){var i=this.ownerDocument||this,r=vt.access(i,e)-1;r?vt.access(i,e,r):(i.removeEventListener(t,n,!0),vt.remove(i,e))}}}),Z.fn.extend({on:function(t,e,n,i,r){var s,o;if("object"==typeof t){"string"!=typeof e&&(n=n||e,e=void 0);for(o in t)this.on(o,e,n,t[o],r);return this}if(null==n&&null==i?(i=e,n=e=void 0):null==i&&("string"==typeof e?(i=n,n=void 0):(i=n,n=e,e=void 0)),i===!1)i=c;else if(!i)return this;return 1===r&&(s=i,i=function(t){return Z().off(t),s.apply(this,arguments)},i.guid=s.guid||(s.guid=Z.guid++)),this.each(function(){Z.event.add(this,t,i,n,e)})},one:function(t,e,n,i){return this.on(t,e,n,i,1)},off:function(t,e,n){var i,r;if(t&&t.preventDefault&&t.handleObj)return i=t.handleObj,Z(t.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof t){for(r in t)this.off(r,e,t[r]);return this}return(e===!1||"function"==typeof e)&&(n=e,e=void 0),n===!1&&(n=c),this.each(function(){Z.event.remove(this,t,n,e)})},trigger:function(t,e){return this.each(function(){Z.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];return n?Z.event.trigger(t,e,n,!0):void 0}});var Mt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,At=/<([\w:]+)/,It=/<|&#?\w+;/,Ot=/<(?:script|style|link)/i,Pt=/checked\s*(?:[^=]|=\s*.checked.)/i,Nt=/^$|\/(?:java|ecma)script/i,Ht=/^true\/(.*)/,Ft=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,jt={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};jt.optgroup=jt.option,jt.tbody=jt.tfoot=jt.colgroup=jt.caption=jt.thead,jt.th=jt.td,Z.extend({clone:function(t,e,n){var i,r,s,o,a=t.cloneNode(!0),l=Z.contains(t.ownerDocument,t);if(!(X.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||Z.isXMLDoc(t)))for(o=v(a),s=v(t),i=0,r=s.length;r>i;i++)b(s[i],o[i]);if(e)if(n)for(s=s||v(t),o=o||v(a),i=0,r=s.length;r>i;i++)g(s[i],o[i]);else g(t,a);return o=v(a,"script"),o.length>0&&m(o,!l&&v(t,"script")),a},buildFragment:function(t,e,n,i){for(var r,s,o,a,l,u,c=e.createDocumentFragment(),h=[],d=0,p=t.length;p>d;d++)if(r=t[d],r||0===r)if("object"===Z.type(r))Z.merge(h,r.nodeType?[r]:r);else if(It.test(r)){for(s=s||c.appendChild(e.createElement("div")),o=(At.exec(r)||["",""])[1].toLowerCase(),a=jt[o]||jt._default,s.innerHTML=a[1]+r.replace(Mt,"<$1></$2>")+a[2],u=a[0];u--;)s=s.lastChild;Z.merge(h,s.childNodes),s=c.firstChild,s.textContent=""}else h.push(e.createTextNode(r));for(c.textContent="",d=0;r=h[d++];)if((!i||-1===Z.inArray(r,i))&&(l=Z.contains(r.ownerDocument,r),s=v(c.appendChild(r),"script"),l&&m(s),n))for(u=0;r=s[u++];)Nt.test(r.type||"")&&n.push(r);return c},cleanData:function(t){for(var e,n,i,r,s=Z.event.special,o=0;void 0!==(n=t[o]);o++){if(Z.acceptData(n)&&(r=n[vt.expando],r&&(e=vt.cache[r]))){if(e.events)for(i in e.events)s[i]?Z.event.remove(n,i):Z.removeEvent(n,i,e.handle);vt.cache[r]&&delete vt.cache[r]}delete bt.cache[n[bt.expando]]}}}),Z.fn.extend({text:function(t){return gt(this,function(t){return void 0===t?Z.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=t)})},null,t,arguments.length)},append:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.appendChild(t)}})},prepend:function(){return this.domManip(arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=d(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return this.domManip(arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},remove:function(t,e){for(var n,i=t?Z.filter(t,this):this,r=0;null!=(n=i[r]);r++)e||1!==n.nodeType||Z.cleanData(v(n)),n.parentNode&&(e&&Z.contains(n.ownerDocument,n)&&m(v(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(Z.cleanData(v(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null==t?!1:t,e=null==e?t:e,this.map(function(){return Z.clone(this,t,e)})},html:function(t){return gt(this,function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Ot.test(t)&&!jt[(At.exec(t)||["",""])[1].toLowerCase()]){t=t.replace(Mt,"<$1></$2>");try{for(;i>n;n++)e=this[n]||{},1===e.nodeType&&(Z.cleanData(v(e,!1)),e.innerHTML=t);e=0}catch(r){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=arguments[0];return this.domManip(arguments,function(e){t=this.parentNode,Z.cleanData(v(this)),t&&t.replaceChild(e,this)}),t&&(t.length||t.nodeType)?this:this.remove()},detach:function(t){return this.remove(t,!0)},domManip:function(t,e){t=V.apply([],t);var n,i,r,s,o,a,l=0,u=this.length,c=this,h=u-1,d=t[0],m=Z.isFunction(d);if(m||u>1&&"string"==typeof d&&!X.checkClone&&Pt.test(d))return this.each(function(n){var i=c.eq(n);m&&(t[0]=d.call(this,n,i.html())),i.domManip(t,e)});if(u&&(n=Z.buildFragment(t,this[0].ownerDocument,!1,this),i=n.firstChild,1===n.childNodes.length&&(n=i),i)){for(r=Z.map(v(n,"script"),p),s=r.length;u>l;l++)o=n,l!==h&&(o=Z.clone(o,!0,!0),s&&Z.merge(r,v(o,"script"))),e.call(this[l],o,l);if(s)for(a=r[r.length-1].ownerDocument,Z.map(r,f),l=0;s>l;l++)o=r[l],Nt.test(o.type||"")&&!vt.access(o,"globalEval")&&Z.contains(a,o)&&(o.src?Z._evalUrl&&Z._evalUrl(o.src):Z.globalEval(o.textContent.replace(Ft,"")))}return this}}),Z.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){Z.fn[t]=function(t){for(var n,i=[],r=Z(t),s=r.length-1,o=0;s>=o;o++)n=o===s?this:this.clone(!0),Z(r[o])[e](n),U.apply(i,n.get());return this.pushStack(i)}});var Rt,zt={},Wt=/^margin/,Lt=new RegExp("^("+wt+")(?!px)[a-z%]+$","i"),qt=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):t.getComputedStyle(e,null)};!function(){function e(){o.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o.innerHTML="",r.appendChild(s);var e=t.getComputedStyle(o,null);n="1%"!==e.top,i="4px"===e.width,r.removeChild(s)}var n,i,r=Q.documentElement,s=Q.createElement("div"),o=Q.createElement("div");o.style&&(o.style.backgroundClip="content-box",o.cloneNode(!0).style.backgroundClip="",X.clearCloneStyle="content-box"===o.style.backgroundClip,s.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",s.appendChild(o),t.getComputedStyle&&Z.extend(X,{pixelPosition:function(){return e(),n},boxSizingReliable:function(){return null==i&&e(),i},reliableMarginRight:function(){var e,n=o.appendChild(Q.createElement("div"));return n.style.cssText=o.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",o.style.width="1px",r.appendChild(s),e=!parseFloat(t.getComputedStyle(n,null).marginRight),r.removeChild(s),o.removeChild(n),e}}))}(),Z.swap=function(t,e,n,i){var r,s,o={};for(s in e)o[s]=t.style[s],t.style[s]=e[s];r=n.apply(t,i||[]);for(s in e)t.style[s]=o[s];return r};var Vt=/^(none|table(?!-c[ea]).+)/,Ut=new RegExp("^("+wt+")(.*)$","i"),Bt=new RegExp("^([+-])=("+wt+")","i"),Yt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:"0",fontWeight:"400"},Gt=["Webkit","O","Moz","ms"];Z.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=w(t,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(t,e,n,i){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var r,s,o,a=Z.camelCase(e),l=t.style;return e=Z.cssProps[a]||(Z.cssProps[a]=_(l,a)),o=Z.cssHooks[e]||Z.cssHooks[a],void 0===n?o&&"get"in o&&void 0!==(r=o.get(t,!1,i))?r:l[e]:(s=typeof n,"string"===s&&(r=Bt.exec(n))&&(n=(r[1]+1)*r[2]+parseFloat(Z.css(t,e)),s="number"),null!=n&&n===n&&("number"!==s||Z.cssNumber[a]||(n+="px"),X.clearCloneStyle||""!==n||0!==e.indexOf("background")||(l[e]="inherit"),o&&"set"in o&&void 0===(n=o.set(t,n,i))||(l[e]=n)),void 0)}},css:function(t,e,n,i){var r,s,o,a=Z.camelCase(e);return e=Z.cssProps[a]||(Z.cssProps[a]=_(t.style,a)),o=Z.cssHooks[e]||Z.cssHooks[a],o&&"get"in o&&(r=o.get(t,!0,n)),void 0===r&&(r=w(t,e,i)),"normal"===r&&e in Kt&&(r=Kt[e]),""===n||n?(s=parseFloat(r),n===!0||Z.isNumeric(s)?s||0:r):r}}),Z.each(["height","width"],function(t,e){Z.cssHooks[e]={get:function(t,n,i){return n?Vt.test(Z.css(t,"display"))&&0===t.offsetWidth?Z.swap(t,Yt,function(){return D(t,e,i)}):D(t,e,i):void 0},set:function(t,n,i){var r=i&&qt(t);return C(t,n,i?k(t,e,i,"border-box"===Z.css(t,"boxSizing",!1,r),r):0)}}}),Z.cssHooks.marginRight=x(X.reliableMarginRight,function(t,e){return e?Z.swap(t,{display:"inline-block"},w,[t,"marginRight"]):void 0}),Z.each({margin:"",padding:"",border:"Width"},function(t,e){Z.cssHooks[t+e]={expand:function(n){for(var i=0,r={},s="string"==typeof n?n.split(" "):[n];4>i;i++)r[t+xt[i]+e]=s[i]||s[i-2]||s[0];return r}},Wt.test(t)||(Z.cssHooks[t+e].set=C)}),Z.fn.extend({css:function(t,e){return gt(this,function(t,e,n){var i,r,s={},o=0;if(Z.isArray(e)){for(i=qt(t),r=e.length;r>o;o++)s[e[o]]=Z.css(t,e[o],!1,i);return s}return void 0!==n?Z.style(t,e,n):Z.css(t,e)},t,e,arguments.length>1)},show:function(){return T(this,!0)},hide:function(){return T(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){_t(this)?Z(this).show():Z(this).hide()})}}),Z.Tween=S,S.prototype={constructor:S,init:function(t,e,n,i,r,s){this.elem=t,this.prop=n,this.easing=r||"swing",this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=s||(Z.cssNumber[n]?"":"px")},cur:function(){var t=S.propHooks[this.prop];return t&&t.get?t.get(this):S.propHooks._default.get(this)},run:function(t){var e,n=S.propHooks[this.prop];return this.options.duration?this.pos=e=Z.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):S.propHooks._default.set(this),this}},S.prototype.init.prototype=S.prototype,S.propHooks={_default:{get:function(t){var e;return null==t.elem[t.prop]||t.elem.style&&null!=t.elem.style[t.prop]?(e=Z.css(t.elem,t.prop,""),e&&"auto"!==e?e:0):t.elem[t.prop]},set:function(t){Z.fx.step[t.prop]?Z.fx.step[t.prop](t):t.elem.style&&(null!=t.elem.style[Z.cssProps[t.prop]]||Z.cssHooks[t.prop])?Z.style(t.elem,t.prop,t.now+t.unit):t.elem[t.prop]=t.now}}},S.propHooks.scrollTop=S.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},Z.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2}},Z.fx=S.prototype.init,Z.fx.step={};var Xt,Qt,Jt=/^(?:toggle|show|hide)$/,Zt=new RegExp("^(?:([+-])=|)("+wt+")([a-z%]*)$","i"),te=/queueHooks$/,ee=[I],ne={"*":[function(t,e){var n=this.createTween(t,e),i=n.cur(),r=Zt.exec(e),s=r&&r[3]||(Z.cssNumber[t]?"":"px"),o=(Z.cssNumber[t]||"px"!==s&&+i)&&Zt.exec(Z.css(n.elem,t)),a=1,l=20;if(o&&o[3]!==s){s=s||o[3],r=r||[],o=+i||1;do a=a||".5",o/=a,Z.style(n.elem,t,o+s);while(a!==(a=n.cur()/i)&&1!==a&&--l)}return r&&(o=n.start=+o||+i||0,n.unit=s,n.end=r[1]?o+(r[1]+1)*r[2]:+r[2]),n}]};Z.Animation=Z.extend(P,{tweener:function(t,e){Z.isFunction(t)?(e=t,t=["*"]):t=t.split(" ");for(var n,i=0,r=t.length;r>i;i++)n=t[i],ne[n]=ne[n]||[],ne[n].unshift(e)},prefilter:function(t,e){e?ee.unshift(t):ee.push(t)}}),Z.speed=function(t,e,n){var i=t&&"object"==typeof t?Z.extend({},t):{complete:n||!n&&e||Z.isFunction(t)&&t,duration:t,easing:n&&e||e&&!Z.isFunction(e)&&e};return i.duration=Z.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in Z.fx.speeds?Z.fx.speeds[i.duration]:Z.fx.speeds._default,(null==i.queue||i.queue===!0)&&(i.queue="fx"),i.old=i.complete,i.complete=function(){Z.isFunction(i.old)&&i.old.call(this),i.queue&&Z.dequeue(this,i.queue)},i},Z.fn.extend({fadeTo:function(t,e,n,i){return this.filter(_t).css("opacity",0).show().end().animate({opacity:e},t,n,i)},animate:function(t,e,n,i){var r=Z.isEmptyObject(t),s=Z.speed(e,n,i),o=function(){var e=P(this,Z.extend({},t),s);(r||vt.get(this,"finish"))&&e.stop(!0)};return o.finish=o,r||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(t,e,n){var i=function(t){var e=t.stop;delete t.stop,e(n)};return"string"!=typeof t&&(n=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,r=null!=t&&t+"queueHooks",s=Z.timers,o=vt.get(this);if(r)o[r]&&o[r].stop&&i(o[r]);else for(r in o)o[r]&&o[r].stop&&te.test(r)&&i(o[r]);for(r=s.length;r--;)s[r].elem!==this||null!=t&&s[r].queue!==t||(s[r].anim.stop(n),e=!1,s.splice(r,1));(e||!n)&&Z.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,n=vt.get(this),i=n[t+"queue"],r=n[t+"queueHooks"],s=Z.timers,o=i?i.length:0;for(n.finish=!0,Z.queue(this,t,[]),
+r&&r.stop&&r.stop.call(this,!0),e=s.length;e--;)s[e].elem===this&&s[e].queue===t&&(s[e].anim.stop(!0),s.splice(e,1));for(e=0;o>e;e++)i[e]&&i[e].finish&&i[e].finish.call(this);delete n.finish})}}),Z.each(["toggle","show","hide"],function(t,e){var n=Z.fn[e];Z.fn[e]=function(t,i,r){return null==t||"boolean"==typeof t?n.apply(this,arguments):this.animate(M(e,!0),t,i,r)}}),Z.each({slideDown:M("show"),slideUp:M("hide"),slideToggle:M("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){Z.fn[t]=function(t,n,i){return this.animate(e,t,n,i)}}),Z.timers=[],Z.fx.tick=function(){var t,e=0,n=Z.timers;for(Xt=Z.now();e<n.length;e++)t=n[e],t()||n[e]!==t||n.splice(e--,1);n.length||Z.fx.stop(),Xt=void 0},Z.fx.timer=function(t){Z.timers.push(t),t()?Z.fx.start():Z.timers.pop()},Z.fx.interval=13,Z.fx.start=function(){Qt||(Qt=setInterval(Z.fx.tick,Z.fx.interval))},Z.fx.stop=function(){clearInterval(Qt),Qt=null},Z.fx.speeds={slow:600,fast:200,_default:400},Z.fn.delay=function(t,e){return t=Z.fx?Z.fx.speeds[t]||t:t,e=e||"fx",this.queue(e,function(e,n){var i=setTimeout(e,t);n.stop=function(){clearTimeout(i)}})},function(){var t=Q.createElement("input"),e=Q.createElement("select"),n=e.appendChild(Q.createElement("option"));t.type="checkbox",X.checkOn=""!==t.value,X.optSelected=n.selected,e.disabled=!0,X.optDisabled=!n.disabled,t=Q.createElement("input"),t.value="t",t.type="radio",X.radioValue="t"===t.value}();var ie,re,se=Z.expr.attrHandle;Z.fn.extend({attr:function(t,e){return gt(this,Z.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){Z.removeAttr(this,t)})}}),Z.extend({attr:function(t,e,n){var i,r,s=t.nodeType;if(t&&3!==s&&8!==s&&2!==s)return typeof t.getAttribute===kt?Z.prop(t,e,n):(1===s&&Z.isXMLDoc(t)||(e=e.toLowerCase(),i=Z.attrHooks[e]||(Z.expr.match.bool.test(e)?re:ie)),void 0===n?i&&"get"in i&&null!==(r=i.get(t,e))?r:(r=Z.find.attr(t,e),null==r?void 0:r):null!==n?i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:(t.setAttribute(e,n+""),n):void Z.removeAttr(t,e))},removeAttr:function(t,e){var n,i,r=0,s=e&&e.match(pt);if(s&&1===t.nodeType)for(;n=s[r++];)i=Z.propFix[n]||n,Z.expr.match.bool.test(n)&&(t[i]=!1),t.removeAttribute(n)},attrHooks:{type:{set:function(t,e){if(!X.radioValue&&"radio"===e&&Z.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}}}),re={set:function(t,e,n){return e===!1?Z.removeAttr(t,n):t.setAttribute(n,n),n}},Z.each(Z.expr.match.bool.source.match(/\w+/g),function(t,e){var n=se[e]||Z.find.attr;se[e]=function(t,e,i){var r,s;return i||(s=se[e],se[e]=r,r=null!=n(t,e,i)?e.toLowerCase():null,se[e]=s),r}});var oe=/^(?:input|select|textarea|button)$/i;Z.fn.extend({prop:function(t,e){return gt(this,Z.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[Z.propFix[t]||t]})}}),Z.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(t,e,n){var i,r,s,o=t.nodeType;if(t&&3!==o&&8!==o&&2!==o)return s=1!==o||!Z.isXMLDoc(t),s&&(e=Z.propFix[e]||e,r=Z.propHooks[e]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(t,n,e))?i:t[e]=n:r&&"get"in r&&null!==(i=r.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){return t.hasAttribute("tabindex")||oe.test(t.nodeName)||t.href?t.tabIndex:-1}}}}),X.optSelected||(Z.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null}}),Z.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Z.propFix[this.toLowerCase()]=this});var ae=/[\t\r\n\f]/g;Z.fn.extend({addClass:function(t){var e,n,i,r,s,o,a="string"==typeof t&&t,l=0,u=this.length;if(Z.isFunction(t))return this.each(function(e){Z(this).addClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(pt)||[];u>l;l++)if(n=this[l],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(ae," "):" ")){for(s=0;r=e[s++];)i.indexOf(" "+r+" ")<0&&(i+=r+" ");o=Z.trim(i),n.className!==o&&(n.className=o)}return this},removeClass:function(t){var e,n,i,r,s,o,a=0===arguments.length||"string"==typeof t&&t,l=0,u=this.length;if(Z.isFunction(t))return this.each(function(e){Z(this).removeClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(pt)||[];u>l;l++)if(n=this[l],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(ae," "):"")){for(s=0;r=e[s++];)for(;i.indexOf(" "+r+" ")>=0;)i=i.replace(" "+r+" "," ");o=t?Z.trim(i):"",n.className!==o&&(n.className=o)}return this},toggleClass:function(t,e){var n=typeof t;return"boolean"==typeof e&&"string"===n?e?this.addClass(t):this.removeClass(t):Z.isFunction(t)?this.each(function(n){Z(this).toggleClass(t.call(this,n,this.className,e),e)}):this.each(function(){if("string"===n)for(var e,i=0,r=Z(this),s=t.match(pt)||[];e=s[i++];)r.hasClass(e)?r.removeClass(e):r.addClass(e);else(n===kt||"boolean"===n)&&(this.className&&vt.set(this,"__className__",this.className),this.className=this.className||t===!1?"":vt.get(this,"__className__")||"")})},hasClass:function(t){for(var e=" "+t+" ",n=0,i=this.length;i>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(ae," ").indexOf(e)>=0)return!0;return!1}});var le=/\r/g;Z.fn.extend({val:function(t){var e,n,i,r=this[0];{if(arguments.length)return i=Z.isFunction(t),this.each(function(n){var r;1===this.nodeType&&(r=i?t.call(this,n,Z(this).val()):t,null==r?r="":"number"==typeof r?r+="":Z.isArray(r)&&(r=Z.map(r,function(t){return null==t?"":t+""})),e=Z.valHooks[this.type]||Z.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))});if(r)return e=Z.valHooks[r.type]||Z.valHooks[r.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(r,"value"))?n:(n=r.value,"string"==typeof n?n.replace(le,""):null==n?"":n)}}}),Z.extend({valHooks:{option:{get:function(t){var e=Z.find.attr(t,"value");return null!=e?e:Z.trim(Z.text(t))}},select:{get:function(t){for(var e,n,i=t.options,r=t.selectedIndex,s="select-one"===t.type||0>r,o=s?null:[],a=s?r+1:i.length,l=0>r?a:s?r:0;a>l;l++)if(n=i[l],(n.selected||l===r)&&(X.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!Z.nodeName(n.parentNode,"optgroup"))){if(e=Z(n).val(),s)return e;o.push(e)}return o},set:function(t,e){for(var n,i,r=t.options,s=Z.makeArray(e),o=r.length;o--;)i=r[o],(i.selected=Z.inArray(i.value,s)>=0)&&(n=!0);return n||(t.selectedIndex=-1),s}}}}),Z.each(["radio","checkbox"],function(){Z.valHooks[this]={set:function(t,e){return Z.isArray(e)?t.checked=Z.inArray(Z(t).val(),e)>=0:void 0}},X.checkOn||(Z.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),Z.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){Z.fn[e]=function(t,n){return arguments.length>0?this.on(e,null,t,n):this.trigger(e)}}),Z.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)},bind:function(t,e,n){return this.on(t,null,e,n)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,n,i){return this.on(e,t,n,i)},undelegate:function(t,e,n){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",n)}});var ue=Z.now(),ce=/\?/;Z.parseJSON=function(t){return JSON.parse(t+"")},Z.parseXML=function(t){var e,n;if(!t||"string"!=typeof t)return null;try{n=new DOMParser,e=n.parseFromString(t,"text/xml")}catch(i){e=void 0}return(!e||e.getElementsByTagName("parsererror").length)&&Z.error("Invalid XML: "+t),e};var he=/#.*$/,de=/([?&])_=[^&]*/,pe=/^(.*?):[ \t]*([^\r\n]*)$/gm,fe=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,me=/^(?:GET|HEAD)$/,ge=/^\/\//,ve=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,be={},ye={},$e="*/".concat("*"),we=t.location.href,xe=ve.exec(we.toLowerCase())||[];Z.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:we,type:"GET",isLocal:fe.test(xe[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$e,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":Z.parseJSON,"text xml":Z.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?F(F(t,Z.ajaxSettings),e):F(Z.ajaxSettings,t)},ajaxPrefilter:N(be),ajaxTransport:N(ye),ajax:function(t,e){function n(t,e,n,o){var l,c,v,b,$,x=e;2!==y&&(y=2,a&&clearTimeout(a),i=void 0,s=o||"",w.readyState=t>0?4:0,l=t>=200&&300>t||304===t,n&&(b=j(h,w,n)),b=R(h,b,w,l),l?(h.ifModified&&($=w.getResponseHeader("Last-Modified"),$&&(Z.lastModified[r]=$),$=w.getResponseHeader("etag"),$&&(Z.etag[r]=$)),204===t||"HEAD"===h.type?x="nocontent":304===t?x="notmodified":(x=b.state,c=b.data,v=b.error,l=!v)):(v=x,(t||!x)&&(x="error",0>t&&(t=0))),w.status=t,w.statusText=(e||x)+"",l?f.resolveWith(d,[c,x,w]):f.rejectWith(d,[w,x,v]),w.statusCode(g),g=void 0,u&&p.trigger(l?"ajaxSuccess":"ajaxError",[w,h,l?c:v]),m.fireWith(d,[w,x]),u&&(p.trigger("ajaxComplete",[w,h]),--Z.active||Z.event.trigger("ajaxStop")))}"object"==typeof t&&(e=t,t=void 0),e=e||{};var i,r,s,o,a,l,u,c,h=Z.ajaxSetup({},e),d=h.context||h,p=h.context&&(d.nodeType||d.jquery)?Z(d):Z.event,f=Z.Deferred(),m=Z.Callbacks("once memory"),g=h.statusCode||{},v={},b={},y=0,$="canceled",w={readyState:0,getResponseHeader:function(t){var e;if(2===y){if(!o)for(o={};e=pe.exec(s);)o[e[1].toLowerCase()]=e[2];e=o[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===y?s:null},setRequestHeader:function(t,e){var n=t.toLowerCase();return y||(t=b[n]=b[n]||t,v[t]=e),this},overrideMimeType:function(t){return y||(h.mimeType=t),this},statusCode:function(t){var e;if(t)if(2>y)for(e in t)g[e]=[g[e],t[e]];else w.always(t[w.status]);return this},abort:function(t){var e=t||$;return i&&i.abort(e),n(0,e),this}};if(f.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,h.url=((t||h.url||we)+"").replace(he,"").replace(ge,xe[1]+"//"),h.type=e.method||e.type||h.method||h.type,h.dataTypes=Z.trim(h.dataType||"*").toLowerCase().match(pt)||[""],null==h.crossDomain&&(l=ve.exec(h.url.toLowerCase()),h.crossDomain=!(!l||l[1]===xe[1]&&l[2]===xe[2]&&(l[3]||("http:"===l[1]?"80":"443"))===(xe[3]||("http:"===xe[1]?"80":"443")))),h.data&&h.processData&&"string"!=typeof h.data&&(h.data=Z.param(h.data,h.traditional)),H(be,h,e,w),2===y)return w;u=Z.event&&h.global,u&&0===Z.active++&&Z.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!me.test(h.type),r=h.url,h.hasContent||(h.data&&(r=h.url+=(ce.test(r)?"&":"?")+h.data,delete h.data),h.cache===!1&&(h.url=de.test(r)?r.replace(de,"$1_="+ue++):r+(ce.test(r)?"&":"?")+"_="+ue++)),h.ifModified&&(Z.lastModified[r]&&w.setRequestHeader("If-Modified-Since",Z.lastModified[r]),Z.etag[r]&&w.setRequestHeader("If-None-Match",Z.etag[r])),(h.data&&h.hasContent&&h.contentType!==!1||e.contentType)&&w.setRequestHeader("Content-Type",h.contentType),w.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$e+"; q=0.01":""):h.accepts["*"]);for(c in h.headers)w.setRequestHeader(c,h.headers[c]);if(h.beforeSend&&(h.beforeSend.call(d,w,h)===!1||2===y))return w.abort();$="abort";for(c in{success:1,error:1,complete:1})w[c](h[c]);if(i=H(ye,h,e,w)){w.readyState=1,u&&p.trigger("ajaxSend",[w,h]),h.async&&h.timeout>0&&(a=setTimeout(function(){w.abort("timeout")},h.timeout));try{y=1,i.send(v,n)}catch(x){if(!(2>y))throw x;n(-1,x)}}else n(-1,"No Transport");return w},getJSON:function(t,e,n){return Z.get(t,e,n,"json")},getScript:function(t,e){return Z.get(t,void 0,e,"script")}}),Z.each(["get","post"],function(t,e){Z[e]=function(t,n,i,r){return Z.isFunction(n)&&(r=r||i,i=n,n=void 0),Z.ajax({url:t,type:e,dataType:r,data:n,success:i})}}),Z._evalUrl=function(t){return Z.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},Z.fn.extend({wrapAll:function(t){var e;return Z.isFunction(t)?this.each(function(e){Z(this).wrapAll(t.call(this,e))}):(this[0]&&(e=Z(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return Z.isFunction(t)?this.each(function(e){Z(this).wrapInner(t.call(this,e))}):this.each(function(){var e=Z(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=Z.isFunction(t);return this.each(function(n){Z(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(){return this.parent().each(function(){Z.nodeName(this,"body")||Z(this).replaceWith(this.childNodes)}).end()}}),Z.expr.filters.hidden=function(t){return t.offsetWidth<=0&&t.offsetHeight<=0},Z.expr.filters.visible=function(t){return!Z.expr.filters.hidden(t)};var _e=/%20/g,Ce=/\[\]$/,ke=/\r?\n/g,De=/^(?:submit|button|image|reset|file)$/i,Te=/^(?:input|select|textarea|keygen)/i;Z.param=function(t,e){var n,i=[],r=function(t,e){e=Z.isFunction(e)?e():null==e?"":e,i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=Z.ajaxSettings&&Z.ajaxSettings.traditional),Z.isArray(t)||t.jquery&&!Z.isPlainObject(t))Z.each(t,function(){r(this.name,this.value)});else for(n in t)z(n,t[n],e,r);return i.join("&").replace(_e,"+")},Z.fn.extend({serialize:function(){return Z.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=Z.prop(this,"elements");return t?Z.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!Z(this).is(":disabled")&&Te.test(this.nodeName)&&!De.test(t)&&(this.checked||!Ct.test(t))}).map(function(t,e){var n=Z(this).val();return null==n?null:Z.isArray(n)?Z.map(n,function(t){return{name:e.name,value:t.replace(ke,"\r\n")}}):{name:e.name,value:n.replace(ke,"\r\n")}}).get()}}),Z.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(t){}};var Se=0,Ee={},Me={0:200,1223:204},Ae=Z.ajaxSettings.xhr();t.attachEvent&&t.attachEvent("onunload",function(){for(var t in Ee)Ee[t]()}),X.cors=!!Ae&&"withCredentials"in Ae,X.ajax=Ae=!!Ae,Z.ajaxTransport(function(t){var e;return X.cors||Ae&&!t.crossDomain?{send:function(n,i){var r,s=t.xhr(),o=++Se;if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(r in t.xhrFields)s[r]=t.xhrFields[r];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(r in n)s.setRequestHeader(r,n[r]);e=function(t){return function(){e&&(delete Ee[o],e=s.onload=s.onerror=null,"abort"===t?s.abort():"error"===t?i(s.status,s.statusText):i(Me[s.status]||s.status,s.statusText,"string"==typeof s.responseText?{text:s.responseText}:void 0,s.getAllResponseHeaders()))}},s.onload=e(),s.onerror=e("error"),e=Ee[o]=e("abort");try{s.send(t.hasContent&&t.data||null)}catch(a){if(e)throw a}},abort:function(){e&&e()}}:void 0}),Z.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(t){return Z.globalEval(t),t}}}),Z.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),Z.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(i,r){e=Z("<script>").prop({async:!0,charset:t.scriptCharset,src:t.url}).on("load error",n=function(t){e.remove(),n=null,t&&r("error"===t.type?404:200,t.type)}),Q.head.appendChild(e[0])},abort:function(){n&&n()}}}});var Ie=[],Oe=/(=)\?(?=&|$)|\?\?/;Z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Ie.pop()||Z.expando+"_"+ue++;return this[t]=!0,t}}),Z.ajaxPrefilter("json jsonp",function(e,n,i){var r,s,o,a=e.jsonp!==!1&&(Oe.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Oe.test(e.data)&&"data");return a||"jsonp"===e.dataTypes[0]?(r=e.jsonpCallback=Z.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Oe,"$1"+r):e.jsonp!==!1&&(e.url+=(ce.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||Z.error(r+" was not called"),o[0]},e.dataTypes[0]="json",s=t[r],t[r]=function(){o=arguments},i.always(function(){t[r]=s,e[r]&&(e.jsonpCallback=n.jsonpCallback,Ie.push(r)),o&&Z.isFunction(s)&&s(o[0]),o=s=void 0}),"script"):void 0}),Z.parseHTML=function(t,e,n){if(!t||"string"!=typeof t)return null;"boolean"==typeof e&&(n=e,e=!1),e=e||Q;var i=ot.exec(t),r=!n&&[];return i?[e.createElement(i[1])]:(i=Z.buildFragment([t],e,r),r&&r.length&&Z(r).remove(),Z.merge([],i.childNodes))};var Pe=Z.fn.load;Z.fn.load=function(t,e,n){if("string"!=typeof t&&Pe)return Pe.apply(this,arguments);var i,r,s,o=this,a=t.indexOf(" ");return a>=0&&(i=Z.trim(t.slice(a)),t=t.slice(0,a)),Z.isFunction(e)?(n=e,e=void 0):e&&"object"==typeof e&&(r="POST"),o.length>0&&Z.ajax({url:t,type:r,dataType:"html",data:e}).done(function(t){s=arguments,o.html(i?Z("<div>").append(Z.parseHTML(t)).find(i):t)}).complete(n&&function(t,e){o.each(n,s||[t.responseText,e,t])}),this},Z.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){Z.fn[e]=function(t){return this.on(e,t)}}),Z.expr.filters.animated=function(t){return Z.grep(Z.timers,function(e){return t===e.elem}).length};var Ne=t.document.documentElement;Z.offset={setOffset:function(t,e,n){var i,r,s,o,a,l,u,c=Z.css(t,"position"),h=Z(t),d={};"static"===c&&(t.style.position="relative"),a=h.offset(),s=Z.css(t,"top"),l=Z.css(t,"left"),u=("absolute"===c||"fixed"===c)&&(s+l).indexOf("auto")>-1,u?(i=h.position(),o=i.top,r=i.left):(o=parseFloat(s)||0,r=parseFloat(l)||0),Z.isFunction(e)&&(e=e.call(t,n,a)),null!=e.top&&(d.top=e.top-a.top+o),null!=e.left&&(d.left=e.left-a.left+r),"using"in e?e.using.call(t,d):h.css(d)}},Z.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){Z.offset.setOffset(this,t,e)});var e,n,i=this[0],r={top:0,left:0},s=i&&i.ownerDocument;if(s)return e=s.documentElement,Z.contains(e,i)?(typeof i.getBoundingClientRect!==kt&&(r=i.getBoundingClientRect()),n=W(s),{top:r.top+n.pageYOffset-e.clientTop,left:r.left+n.pageXOffset-e.clientLeft}):r},position:function(){if(this[0]){var t,e,n=this[0],i={top:0,left:0};return"fixed"===Z.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),Z.nodeName(t[0],"html")||(i=t.offset()),i.top+=Z.css(t[0],"borderTopWidth",!0),i.left+=Z.css(t[0],"borderLeftWidth",!0)),{top:e.top-i.top-Z.css(n,"marginTop",!0),left:e.left-i.left-Z.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||Ne;t&&!Z.nodeName(t,"html")&&"static"===Z.css(t,"position");)t=t.offsetParent;return t||Ne})}}),Z.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var i="pageYOffset"===n;Z.fn[e]=function(r){return gt(this,function(e,r,s){var o=W(e);return void 0===s?o?o[n]:e[r]:void(o?o.scrollTo(i?t.pageXOffset:s,i?s:t.pageYOffset):e[r]=s)},e,r,arguments.length,null)}}),Z.each(["top","left"],function(t,e){Z.cssHooks[e]=x(X.pixelPosition,function(t,n){return n?(n=w(t,e),Lt.test(n)?Z(t).position()[e]+"px":n):void 0})}),Z.each({Height:"height",Width:"width"},function(t,e){Z.each({padding:"inner"+t,content:e,"":"outer"+t},function(n,i){Z.fn[i]=function(i,r){var s=arguments.length&&(n||"boolean"!=typeof i),o=n||(i===!0||r===!0?"margin":"border");return gt(this,function(e,n,i){var r;return Z.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+t],r["scroll"+t],e.body["offset"+t],r["offset"+t],r["client"+t])):void 0===i?Z.css(e,n,o):Z.style(e,n,i,o)},e,s?i:void 0,s,null)}})}),Z.fn.size=function(){return this.length},Z.fn.andSelf=Z.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return Z});var He=t.jQuery,Fe=t.$;return Z.noConflict=function(e){return t.$===Z&&(t.$=Fe),e&&t.jQuery===Z&&(t.jQuery=He),Z},typeof e===kt&&(t.jQuery=t.$=Z),Z}),function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){function e(e,i){var r,s,o,a=e.nodeName.toLowerCase();return"area"===a?(r=e.parentNode,s=r.name,e.href&&s&&"map"===r.nodeName.toLowerCase()?(o=t("img[usemap='#"+s+"']")[0],!!o&&n(o)):!1):(/^(input|select|textarea|button|object)$/.test(a)?!e.disabled:"a"===a?e.href||i:i)&&n(e)}function n(e){return t.expr.filters.visible(e)&&!t(e).parents().addBack().filter(function(){return"hidden"===t.css(this,"visibility")}).length}function i(t){for(var e,n;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(n=parseInt(t.css("zIndex"),10),!isNaN(n)&&0!==n))return n;t=t.parent()}return 0}function r(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=s(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function s(e){var n="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.delegate(n,"mouseout",function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).delegate(n,"mouseover",o)}function o(){t.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,n){t.extend(e,n);for(var i in n)null==n[i]&&(e[i]=n[i]);return e}function l(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.extend(t.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),t.fn.extend({scrollParent:function(e){var n=this.css("position"),i="absolute"===n,r=e?/(auto|scroll|hidden)/:/(auto|scroll)/,s=this.parents().filter(function(){var e=t(this);return i&&"static"===e.css("position")?!1:r.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==n&&s.length?s:t(this[0].ownerDocument||document)},uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(n){return!!t.data(n,e)}}):function(e,n,i){return!!t.data(e,i[3])},focusable:function(n){return e(n,!isNaN(t.attr(n,"tabindex")))},tabbable:function(n){var i=t.attr(n,"tabindex"),r=isNaN(i);return(r||i>=0)&&e(n,!r)}}),t("<a>").outerWidth(1).jquery||t.each(["Width","Height"],function(e,n){function i(e,n,i,s){return t.each(r,function(){n-=parseFloat(t.css(e,"padding"+this))||0,i&&(n-=parseFloat(t.css(e,"border"+this+"Width"))||0),s&&(n-=parseFloat(t.css(e,"margin"+this))||0)}),n}var r="Width"===n?["Left","Right"]:["Top","Bottom"],s=n.toLowerCase(),o={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+n]=function(e){return void 0===e?o["inner"+n].call(this):this.each(function(){t(this).css(s,i(this,e)+"px")})},t.fn["outer"+n]=function(e,r){return"number"!=typeof e?o["outer"+n].call(this,e):this.each(function(){t(this).css(s,i(this,e,!0,r)+"px")})}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(t.fn.removeData=function(e){return function(n){return arguments.length?e.call(this,t.camelCase(n)):e.call(this)}}(t.fn.removeData)),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),t.fn.extend({focus:function(e){return function(n,i){return"number"==typeof n?this.each(function(){var e=this;setTimeout(function(){t(e).focus(),i&&i.call(e)},n)}):e.apply(this,arguments)}}(t.fn.focus),disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(e){if(void 0!==e)return this.css("zIndex",e);if(this.length)for(var n,i,r=t(this[0]);r.length&&r[0]!==document;){if(n=r.css("position"),("absolute"===n||"relative"===n||"fixed"===n)&&(i=parseInt(r.css("zIndex"),10),!isNaN(i)&&0!==i))return i;r=r.parent()}return 0}}),t.ui.plugin={add:function(e,n,i){var r,s=t.ui[e].prototype;for(r in i)s.plugins[r]=s.plugins[r]||[],s.plugins[r].push([n,i[r]])},call:function(t,e,n,i){var r,s=t.plugins[e];if(s&&(i||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(r=0;r<s.length;r++)t.options[s[r][0]]&&s[r][1].apply(t.element,n)}};var u=0,c=Array.prototype.slice;t.cleanData=function(e){return function(n){var i,r,s;for(s=0;null!=(r=n[s]);s++)try{i=t._data(r,"events"),i&&i.remove&&t(r).triggerHandler("remove")}catch(o){}e(n)}}(t.cleanData),t.widget=function(e,n,i){var r,s,o,a,l={},u=e.split(".")[0];return e=e.split(".")[1],r=u+"-"+e,i||(i=n,n=t.Widget),t.expr[":"][r.toLowerCase()]=function(e){return!!t.data(e,r)},t[u]=t[u]||{},s=t[u][e],o=t[u][e]=function(t,e){return this._createWidget?void(arguments.length&&this._createWidget(t,e)):new o(t,e)},t.extend(o,s,{version:i.version,_proto:t.extend({},i),_childConstructors:[]}),a=new n,a.options=t.widget.extend({},a.options),t.each(i,function(e,i){return t.isFunction(i)?void(l[e]=function(){var t=function(){return n.prototype[e].apply(this,arguments)},r=function(t){return n.prototype[e].apply(this,t)};return function(){var e,n=this._super,s=this._superApply;return this._super=t,this._superApply=r,e=i.apply(this,arguments),this._super=n,this._superApply=s,e}}()):void(l[e]=i)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:s?a.widgetEventPrefix||e:e},l,{constructor:o,namespace:u,widgetName:e,widgetFullName:r}),s?(t.each(s._childConstructors,function(e,n){var i=n.prototype;t.widget(i.namespace+"."+i.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var n,i,r=c.call(arguments,1),s=0,o=r.length;o>s;s++)for(n in r[s])i=r[s][n],r[s].hasOwnProperty(n)&&void 0!==i&&(t.isPlainObject(i)?e[n]=t.isPlainObject(e[n])?t.widget.extend({},e[n],i):t.widget.extend({},i):e[n]=i);return e},t.widget.bridge=function(e,n){var i=n.prototype.widgetFullName||e;t.fn[e]=function(r){var s="string"==typeof r,o=c.call(arguments,1),a=this;return s?this.each(function(){var n,s=t.data(this,i);return"instance"===r?(a=s,!1):s?t.isFunction(s[r])&&"_"!==r.charAt(0)?(n=s[r].apply(s,o),n!==s&&void 0!==n?(a=n&&n.jquery?a.pushStack(n.get()):n,!1):void 0):t.error("no such method '"+r+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+r+"'")}):(o.length&&(r=t.widget.extend.apply(null,[r].concat(o))),this.each(function(){var e=t.data(this,i);e?(e.option(r||{}),e._init&&e._init()):t.data(this,i,new n(r,this))})),a}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(e,n){n=t(n||this.defaultElement||this)[0],this.element=t(n),this.uuid=u++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),n!==this&&(t.data(n,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===n&&this.destroy()}}),this.document=t(n.style?n.ownerDocument:n.document||n),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:t.noop,_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:t.noop,widget:function(){return this.element},option:function(e,n){var i,r,s,o=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(o={},i=e.split("."),e=i.shift(),i.length){for(r=o[e]=t.widget.extend({},this.options[e]),s=0;s<i.length-1;s++)r[i[s]]=r[i[s]]||{},r=r[i[s]];if(e=i.pop(),1===arguments.length)return void 0===r[e]?null:r[e];r[e]=n}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];o[e]=n}return this._setOptions(o),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!e),e&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(e,n,i){var r,s=this;"boolean"!=typeof e&&(i=n,n=e,e=!1),i?(n=r=t(n),this.bindings=this.bindings.add(n)):(i=n,n=this.element,r=this.widget()),t.each(i,function(i,o){function a(){return e||s.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof o?s[o]:o).apply(s,arguments):void 0;
+}"string"!=typeof o&&(a.guid=o.guid=o.guid||a.guid||t.guid++);var l=i.match(/^([\w:-]*)\s*(.*)$/),u=l[1]+s.eventNamespace,c=l[2];c?r.delegate(c,u,a):n.bind(u,a)})},_off:function(e,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(n).undelegate(n),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function n(){return("string"==typeof t?i[t]:t).apply(i,arguments)}var i=this;return setTimeout(n,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){t(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){t(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){t(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){t(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,n,i){var r,s,o=this.options[e];if(i=i||{},n=t.Event(n),n.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),n.target=this.element[0],s=n.originalEvent)for(r in s)r in n||(n[r]=s[r]);return this.element.trigger(n,i),!(t.isFunction(o)&&o.apply(this.element[0],[n].concat(i))===!1||n.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,n){t.Widget.prototype["_"+e]=function(i,r,s){"string"==typeof r&&(r={effect:r});var o,a=r?r===!0||"number"==typeof r?n:r.effect||n:e;r=r||{},"number"==typeof r&&(r={duration:r}),o=!t.isEmptyObject(r),r.complete=s,r.delay&&i.delay(r.delay),o&&t.effects&&t.effects.effect[a]?i[e](r):a!==e&&i[a]?i[a](r.duration,r.easing,s):i.queue(function(n){t(this)[e](),s&&s.call(i[0]),n()})}});var h=(t.widget,!1);t(document).mouseup(function(){h=!1});t.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.bind("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).bind("click."+this.widgetName,function(n){return!0===t.data(n.target,e.widgetName+".preventClickEvent")?(t.removeData(n.target,e.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!h){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var n=this,i=1===e.which,r="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return i&&!r&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){n.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return n._mouseMove(t)},this._mouseUpDelegate=function(t){return n._mouseUp(t)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),h=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||document.documentMode<9)&&!e.button)return this._mouseUp(e);if(!e.which)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),h=!1,!1},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}});!function(){function e(t,e,n){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?n/100:1)]}function n(e,n){return parseInt(t.css(e,n),10)||0}function i(e){var n=e[0];return 9===n.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(n)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:n.preventDefault?{width:0,height:0,offset:{top:n.pageY,left:n.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var r,s,o=Math.max,a=Math.abs,l=Math.round,u=/left|center|right/,c=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==r)return r;var e,n,i=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=i.children()[0];return t("body").append(i),e=s.offsetWidth,i.css("overflow","scroll"),n=s.offsetWidth,e===n&&(n=i[0].clientWidth),i.remove(),r=e-n},getScrollInfo:function(e){var n=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),i=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),r="scroll"===n||"auto"===n&&e.width<e.element[0].scrollWidth,s="scroll"===i||"auto"===i&&e.height<e.element[0].scrollHeight;return{width:s?t.position.scrollbarWidth():0,height:r?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var n=t(e||window),i=t.isWindow(n[0]),r=!!n[0]&&9===n[0].nodeType;return{element:n,isWindow:i,isDocument:r,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:i||r?n.width():n.outerWidth(),height:i||r?n.height():n.outerHeight()}}},t.fn.position=function(r){if(!r||!r.of)return f.apply(this,arguments);r=t.extend({},r);var p,m,g,v,b,y,$=t(r.of),w=t.position.getWithinInfo(r.within),x=t.position.getScrollInfo(w),_=(r.collision||"flip").split(" "),C={};return y=i($),$[0].preventDefault&&(r.at="left top"),m=y.width,g=y.height,v=y.offset,b=t.extend({},v),t.each(["my","at"],function(){var t,e,n=(r[this]||"").split(" ");1===n.length&&(n=u.test(n[0])?n.concat(["center"]):c.test(n[0])?["center"].concat(n):["center","center"]),n[0]=u.test(n[0])?n[0]:"center",n[1]=c.test(n[1])?n[1]:"center",t=h.exec(n[0]),e=h.exec(n[1]),C[this]=[t?t[0]:0,e?e[0]:0],r[this]=[d.exec(n[0])[0],d.exec(n[1])[0]]}),1===_.length&&(_[1]=_[0]),"right"===r.at[0]?b.left+=m:"center"===r.at[0]&&(b.left+=m/2),"bottom"===r.at[1]?b.top+=g:"center"===r.at[1]&&(b.top+=g/2),p=e(C.at,m,g),b.left+=p[0],b.top+=p[1],this.each(function(){var i,u,c=t(this),h=c.outerWidth(),d=c.outerHeight(),f=n(this,"marginLeft"),y=n(this,"marginTop"),k=h+f+n(this,"marginRight")+x.width,D=d+y+n(this,"marginBottom")+x.height,T=t.extend({},b),S=e(C.my,c.outerWidth(),c.outerHeight());"right"===r.my[0]?T.left-=h:"center"===r.my[0]&&(T.left-=h/2),"bottom"===r.my[1]?T.top-=d:"center"===r.my[1]&&(T.top-=d/2),T.left+=S[0],T.top+=S[1],s||(T.left=l(T.left),T.top=l(T.top)),i={marginLeft:f,marginTop:y},t.each(["left","top"],function(e,n){t.ui.position[_[e]]&&t.ui.position[_[e]][n](T,{targetWidth:m,targetHeight:g,elemWidth:h,elemHeight:d,collisionPosition:i,collisionWidth:k,collisionHeight:D,offset:[p[0]+S[0],p[1]+S[1]],my:r.my,at:r.at,within:w,elem:c})}),r.using&&(u=function(t){var e=v.left-T.left,n=e+m-h,i=v.top-T.top,s=i+g-d,l={target:{element:$,left:v.left,top:v.top,width:m,height:g},element:{element:c,left:T.left,top:T.top,width:h,height:d},horizontal:0>n?"left":e>0?"right":"center",vertical:0>s?"top":i>0?"bottom":"middle"};h>m&&a(e+n)<m&&(l.horizontal="center"),d>g&&a(i+s)<g&&(l.vertical="middle"),o(a(e),a(n))>o(a(i),a(s))?l.important="horizontal":l.important="vertical",r.using.call(this,t,l)}),c.offset(t.extend(T,{using:u}))})},t.ui.position={fit:{left:function(t,e){var n,i=e.within,r=i.isWindow?i.scrollLeft:i.offset.left,s=i.width,a=t.left-e.collisionPosition.marginLeft,l=r-a,u=a+e.collisionWidth-s-r;e.collisionWidth>s?l>0&&0>=u?(n=t.left+l+e.collisionWidth-s-r,t.left+=l-n):u>0&&0>=l?t.left=r:l>u?t.left=r+s-e.collisionWidth:t.left=r:l>0?t.left+=l:u>0?t.left-=u:t.left=o(t.left-a,t.left)},top:function(t,e){var n,i=e.within,r=i.isWindow?i.scrollTop:i.offset.top,s=e.within.height,a=t.top-e.collisionPosition.marginTop,l=r-a,u=a+e.collisionHeight-s-r;e.collisionHeight>s?l>0&&0>=u?(n=t.top+l+e.collisionHeight-s-r,t.top+=l-n):u>0&&0>=l?t.top=r:l>u?t.top=r+s-e.collisionHeight:t.top=r:l>0?t.top+=l:u>0?t.top-=u:t.top=o(t.top-a,t.top)}},flip:{left:function(t,e){var n,i,r=e.within,s=r.offset.left+r.scrollLeft,o=r.width,l=r.isWindow?r.scrollLeft:r.offset.left,u=t.left-e.collisionPosition.marginLeft,c=u-l,h=u+e.collisionWidth-o-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(n=t.left+d+p+f+e.collisionWidth-o-s,(0>n||n<a(c))&&(t.left+=d+p+f)):h>0&&(i=t.left-e.collisionPosition.marginLeft+d+p+f-l,(i>0||a(i)<h)&&(t.left+=d+p+f))},top:function(t,e){var n,i,r=e.within,s=r.offset.top+r.scrollTop,o=r.height,l=r.isWindow?r.scrollTop:r.offset.top,u=t.top-e.collisionPosition.marginTop,c=u-l,h=u+e.collisionHeight-o-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(i=t.top+p+f+m+e.collisionHeight-o-s,(0>i||i<a(c))&&(t.top+=p+f+m)):h>0&&(n=t.top-e.collisionPosition.marginTop+p+f+m-l,(n>0||a(n)<h)&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,n,i,r,o,a=document.getElementsByTagName("body")[0],l=document.createElement("div");e=document.createElement(a?"div":"body"),i={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},a&&t.extend(i,{position:"absolute",left:"-1000px",top:"-1000px"});for(o in i)e.style[o]=i[o];e.appendChild(l),n=a||document.documentElement,n.insertBefore(e,n.firstChild),l.style.cssText="position: absolute; left: 10.7432222px;",r=t(l).offset().left,s=r>10&&11>r,e.innerHTML="",n.removeChild(e)}()}();t.ui.position,t.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),e.active<0&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e=this.options.icons;e&&(t("<span>").addClass("ui-accordion-header-icon ui-icon "+e.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(e.header).addClass(e.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?void this._activate(e):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void("disabled"===t&&(this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!e))))},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var n=t.ui.keyCode,i=this.headers.length,r=this.headers.index(e.target),s=!1;switch(e.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(r+1)%i];break;case n.LEFT:case n.UP:s=this.headers[(r-1+i)%i];break;case n.SPACE:case n.ENTER:this._eventHandler(e);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[i-1]}s&&(t(e.target).attr("tabIndex",-1),t(s).attr("tabIndex",0),s.focus(),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().focus()},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,n=this.options,i=n.heightStyle,r=this.element.parent();this.active=this._findActive(n.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var e=t(this),n=e.uniqueId().attr("id"),i=e.next(),r=i.uniqueId().attr("id");e.attr("aria-controls",r),i.attr("aria-labelledby",n)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(n.event),"fill"===i?(e=r.height(),this.element.siblings(":visible").each(function(){var n=t(this),i=n.css("position");"absolute"!==i&&"fixed"!==i&&(e-=n.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===i&&(e=0,this.headers.next().each(function(){e=Math.max(e,t(this).css("height","").height())}).height(e))},_activate:function(e){var n=this._findActive(e)[0];n!==this.active[0]&&(n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var n={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){n[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,n),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var n=this.options,i=this.active,r=t(e.currentTarget),s=r[0]===i[0],o=s&&n.collapsible,a=o?t():r.next(),l=i.next(),u={oldHeader:i,oldPanel:l,newHeader:o?t():r,newPanel:a};e.preventDefault(),s&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=o?!1:this.headers.index(r),this.active=s?t():r,this._toggle(u),i.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(r.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),r.next().addClass("ui-accordion-content-active")))},_toggle:function(e){var n=e.newPanel,i=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=i,this.options.animate?this._animate(n,i,e):(i.hide(),n.show(),this._toggleComplete(e)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),n.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):n.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),n.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,n){var i,r,s,o=this,a=0,l=t.css("box-sizing"),u=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},h=u&&c.down||c,d=function(){o._toggleComplete(n)};return"number"==typeof h&&(s=h),"string"==typeof h&&(r=h),r=r||h.easing||c.easing,s=s||h.duration||c.duration,e.length?t.length?(i=t.show().outerHeight(),e.animate(this.hideProps,{duration:s,easing:r,step:function(t,e){e.now=Math.round(t)}}),void t.hide().animate(this.showProps,{duration:s,easing:r,complete:d,step:function(t,n){n.now=Math.round(t),"height"!==n.prop?"content-box"===l&&(a+=n.now):"content"!==o.options.heightStyle&&(n.now=Math.round(i-e.outerHeight()-a),a=0)}})):e.animate(this.hideProps,s,r,d):t.animate(this.showProps,s,r,d)},_toggleComplete:function(t){var e=t.oldPanel;e.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var n=t(e.target);!this.mouseHandled&&n.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),n.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&t(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var n=t(e.currentTarget);n.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(e,n)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var n=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,n)},blur:function(e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(e){var n,i,r,s,o=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:o=!1,i=this.previousFilter||"",r=String.fromCharCode(e.keyCode),s=!1,clearTimeout(this.filterTimer),r===i?s=!0:r=i+r,n=this._filterMenuItems(r),n=s&&-1!==n.index(this.active.next())?this.active.nextAll(".ui-menu-item"):n,n.length||(r=String.fromCharCode(e.keyCode),n=this._filterMenuItems(r)),n.length?(this.focus(e,n),this.previousFilter=r,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&e.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(t):this.select(t))},refresh:function(){var e,n,i=this,r=this.options.icons.submenu,s=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),n=e.parent(),i=t("<span>").addClass("ui-menu-icon ui-icon "+r).data("ui-menu-submenu-carat",!0);n.attr("aria-haspopup","true").prepend(i),e.attr("aria-labelledby",n.attr("id"))}),e=s.add(this.element),n=e.find(this.options.items),n.not(".ui-menu-item").each(function(){var e=t(this);i._isDivider(e)&&e.addClass("ui-widget-content ui-menu-divider")}),n.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),n.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this._super(t,e)},focus:function(t,e){var n,i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=e.children(".ui-menu"),n.length&&t&&/^mouse/.test(t.type)&&this._startOpening(n),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var n,i,r,s,o,a;this._hasScroll()&&(n=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,r=e.offset().top-this.activeMenu.offset().top-n-i,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),a=e.outerHeight(),0>r?this.activeMenu.scrollTop(s+r):r+a>o&&this.activeMenu.scrollTop(s+r-o+a))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var n=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(e,n){clearTimeout(this.timer),this.timer=this._delay(function(){var i=n?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));i.length||(i=this.element),this._close(i),this.blur(e),this.activeMenu=i},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,n){var i;this.active&&(i="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),i&&i.length&&this.active||(i=this.activeMenu.find(this.options.items)[e]()),this.focus(n,i)},nextPage:function(e){var n,i,r;return this.active?void(this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,r=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=t(this),n.offset().top-i-r<0}),this.focus(e,n)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]()))):void this.next(e)},previousPage:function(e){var n,i,r;return this.active?void(this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,r=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=t(this),n.offset().top-i+r>0}),this.focus(e,n)):this.focus(e,this.activeMenu.find(this.options.items).first()))):void this.next(e)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var n={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,n)},_filterMenuItems:function(e){var n=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),i=new RegExp("^"+n,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return i.test(t.trim(t(this).text()))})}});t.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,n,i,r=this.element[0].nodeName.toLowerCase(),s="textarea"===r,o="input"===r;this.isMultiLine=s?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[s||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(r){if(this.element.prop("readOnly"))return e=!0,i=!0,void(n=!0);e=!1,i=!1,n=!1;var s=t.ui.keyCode;switch(r.keyCode){case s.PAGE_UP:e=!0,this._move("previousPage",r);break;case s.PAGE_DOWN:e=!0,this._move("nextPage",r);break;case s.UP:e=!0,this._keyEvent("previous",r);break;case s.DOWN:e=!0,this._keyEvent("next",r);break;case s.ENTER:this.menu.active&&(e=!0,r.preventDefault(),this.menu.select(r));break;case s.TAB:this.menu.active&&this.menu.select(r);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(r),r.preventDefault());break;default:n=!0,this._searchTimeout(r)}},keypress:function(i){if(e)return e=!1,void((!this.isMultiLine||this.menu.element.is(":visible"))&&i.preventDefault());if(!n){var r=t.ui.keyCode;switch(i.keyCode){case r.PAGE_UP:this._move("previousPage",i);break;case r.PAGE_DOWN:this._move("nextPage",i);break;case r.UP:this._keyEvent("previous",i);break;case r.DOWN:this._keyEvent("next",i)}}},input:function(t){return i?(i=!1,void t.preventDefault()):void this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),void this._change(t))}}),this._initSource(),this.menu=t("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var n=this.menu.element[0];t(e.target).closest(".ui-menu-item").length||this._delay(function(){var e=this;this.document.one("mousedown",function(i){i.target===e.element[0]||i.target===n||t.contains(n,i.target)||e.close()})})},menufocus:function(e,n){var i,r;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),void this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)})):(r=n.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:r})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(r.value),i=n.item.attr("aria-label")||r.value,void(i&&t.trim(i).length&&(this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))))},menuselect:function(t,e){var n=e.item.data("ui-autocomplete-item"),i=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=i,this._delay(function(){this.previous=i,this.selectedItem=n})),!1!==this._trigger("select",t,{item:n})&&this._value(n.value),this.term=this._value(),this.close(t),this.selectedItem=n}}),this.liveRegion=t("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove();
+},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,n,i=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(n,i){i(t.ui.autocomplete.filter(e,n.term))}):"string"==typeof this.options.source?(n=this.options.source,this.source=function(e,r){i.xhr&&i.xhr.abort(),i.xhr=t.ajax({url:n,data:e,dataType:"json",success:function(t){r(t)},error:function(){r([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),n=this.menu.element.is(":visible"),i=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!n&&!i)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var n=this.menu.element.empty();this._renderMenu(n,e),this.isNewMenu=!0,this.menu.refresh(),n.show(),this._resizeMenu(),n.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,n){var i=this;t.each(n,function(t,n){i._renderItemData(e,n)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,n){return t("<li>").text(n.label).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e):void this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,n){var i=new RegExp(t.ui.autocomplete.escapeRegex(n),"i");return t.grep(e,function(t){return i.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var n;this._superApply(arguments),this.options.disabled||this.cancelSearch||(n=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(n).appendTo(this.liveRegion))}});var d,p=(t.ui.autocomplete,"ui-button ui-widget ui-state-default ui-corner-all"),f="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",m=function(){var e=t(this);setTimeout(function(){e.find(":ui-button").button("refresh")},1)},g=function(e){var n=e.name,i=e.form,r=t([]);return n&&(n=n.replace(/'/g,"\\'"),r=i?t(i).find("[name='"+n+"'][type=radio]"):t("[name='"+n+"'][type=radio]",e.ownerDocument).filter(function(){return!this.form})),r};t.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,m),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var e=this,n=this.options,i="checkbox"===this.type||"radio"===this.type,r=i?"":"ui-state-active";null===n.label&&(n.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(p).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){n.disabled||this===d&&t(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){n.disabled||t(this).removeClass(r)}).bind("click"+this.eventNamespace,function(t){n.disabled&&(t.preventDefault(),t.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),i&&this.element.bind("change"+this.eventNamespace,function(){e.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return n.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(n.disabled)return!1;t(this).addClass("ui-state-active"),e.buttonElement.attr("aria-pressed","true");var i=e.element[0];g(i).not(i).map(function(){return t(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return n.disabled?!1:(t(this).addClass("ui-state-active"),d=this,void e.document.one("mouseup",function(){d=null}))}).bind("mouseup"+this.eventNamespace,function(){return n.disabled?!1:void t(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(e){return n.disabled?!1:void((e.keyCode===t.ui.keyCode.SPACE||e.keyCode===t.ui.keyCode.ENTER)&&t(this).addClass("ui-state-active"))}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){t(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===t.ui.keyCode.SPACE&&t(this).click()})),this._setOption("disabled",n.disabled),this._resetButton()},_determineButtonType:function(){var t,e,n;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button","checkbox"===this.type||"radio"===this.type?(t=this.element.parents().last(),e="label[for='"+this.element.attr("id")+"']",this.buttonElement=t.find(e),this.buttonElement.length||(t=t.length?t.siblings():this.element.siblings(),this.buttonElement=t.filter(e),this.buttonElement.length||(this.buttonElement=t.find(e))),this.element.addClass("ui-helper-hidden-accessible"),n=this.element.is(":checked"),n&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",n)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(p+" ui-state-active "+f).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(t,e){return this._super(t,e),"disabled"===t?(this.widget().toggleClass("ui-state-disabled",!!e),this.element.prop("disabled",!!e),void(e&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")))):void this._resetButton()},refresh:function(){var e=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");e!==this.options.disabled&&this._setOption("disabled",e),"radio"===this.type?g(this.element[0]).each(function(){t(this).is(":checked")?t(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):t(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return void(this.options.label&&this.element.val(this.options.label));var e=this.buttonElement.removeClass(f),n=t("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(e.empty()).text(),i=this.options.icons,r=i.primary&&i.secondary,s=[];i.primary||i.secondary?(this.options.text&&s.push("ui-button-text-icon"+(r?"s":i.primary?"-primary":"-secondary")),i.primary&&e.prepend("<span class='ui-button-icon-primary ui-icon "+i.primary+"'></span>"),i.secondary&&e.append("<span class='ui-button-icon-secondary ui-icon "+i.secondary+"'></span>"),this.options.text||(s.push(r?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||e.attr("title",t.trim(n)))):s.push("ui-button-text-only"),e.addClass(s.join(" "))}}),t.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(t,e){"disabled"===t&&this.buttons.button("option",t,e),this._super(t,e)},refresh:function(){var e="rtl"===this.element.css("direction"),n=this.element.find(this.options.items),i=n.filter(":ui-button");n.not(":ui-button").button(),i.button("refresh"),this.buttons=n.map(function(){return t(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(e?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(e?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return t(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}});t.ui.button;t.extend(t.ui,{datepicker:{version:"1.11.4"}});var v;t.extend(r.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,n){var i,r,s;i=e.nodeName.toLowerCase(),r="div"===i||"span"===i,e.id||(this.uuid+=1,e.id="dp"+this.uuid),s=this._newInst(t(e),r),s.settings=t.extend({},n||{}),"input"===i?this._connectDatepicker(e,s):r&&this._inlineDatepicker(e,s)},_newInst:function(e,n){var i=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:i,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:n,dpDiv:n?s(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,n){var i=t(e);n.append=t([]),n.trigger=t([]),i.hasClass(this.markerClassName)||(this._attachments(i,n),i.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(n),t.data(e,"datepicker",n),n.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,n){var i,r,s,o=this._get(n,"appendText"),a=this._get(n,"isRTL");n.append&&n.append.remove(),o&&(n.append=t("<span class='"+this._appendClass+"'>"+o+"</span>"),e[a?"before":"after"](n.append)),e.unbind("focus",this._showDatepicker),n.trigger&&n.trigger.remove(),i=this._get(n,"showOn"),("focus"===i||"both"===i)&&e.focus(this._showDatepicker),("button"===i||"both"===i)&&(r=this._get(n,"buttonText"),s=this._get(n,"buttonImage"),n.trigger=t(this._get(n,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:s,alt:r,title:r}):t("<button type='button'></button>").addClass(this._triggerClass).html(s?t("<img/>").attr({src:s,alt:r,title:r}):r)),e[a?"before":"after"](n.trigger),n.trigger.click(function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,n,i,r,s=new Date(2009,11,20),o=this._get(t,"dateFormat");o.match(/[DM]/)&&(e=function(t){for(n=0,i=0,r=0;r<t.length;r++)t[r].length>n&&(n=t[r].length,i=r);return i},s.setMonth(e(this._get(t,o.match(/MM/)?"monthNames":"monthNamesShort"))),s.setDate(e(this._get(t,o.match(/DD/)?"dayNames":"dayNamesShort"))+20-s.getDay())),t.input.attr("size",this._formatDate(t,s).length)}},_inlineDatepicker:function(e,n){var i=t(e);i.hasClass(this.markerClassName)||(i.addClass(this.markerClassName).append(n.dpDiv),t.data(e,"datepicker",n),this._setDate(n,this._getDefaultDate(n),!0),this._updateDatepicker(n),this._updateAlternate(n),n.settings.disabled&&this._disableDatepicker(e),n.dpDiv.css("display","block"))},_dialogDatepicker:function(e,n,i,r,s){var o,l,u,c,h,d=this._dialogInst;return d||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,r||{}),n=n&&n.constructor===Date?this._formatDate(d,n):n,this._dialogInput.val(n),this._pos=s?s.length?s:[s.pageX,s.pageY]:null,this._pos||(l=document.documentElement.clientWidth,u=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,h=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+c,u/2-150+h]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var n,i=t(e),r=t.data(e,"datepicker");i.hasClass(this.markerClassName)&&(n=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===n?(r.append.remove(),r.trigger.remove(),i.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===n||"span"===n)&&i.removeClass(this.markerClassName).empty(),v===r&&(v=null))},_enableDatepicker:function(e){var n,i,r=t(e),s=t.data(e,"datepicker");r.hasClass(this.markerClassName)&&(n=e.nodeName.toLowerCase(),"input"===n?(e.disabled=!1,s.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===n||"span"===n)&&(i=r.children("."+this._inlineClass),i.children().removeClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var n,i,r=t(e),s=t.data(e,"datepicker");r.hasClass(this.markerClassName)&&(n=e.nodeName.toLowerCase(),"input"===n?(e.disabled=!0,s.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===n||"span"===n)&&(i=r.children("."+this._inlineClass),i.children().addClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;e<this._disabledInputs.length;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(n){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,n,i){var r,s,o,l,u=this._getInst(e);return 2===arguments.length&&"string"==typeof n?"defaults"===n?t.extend({},t.datepicker._defaults):u?"all"===n?t.extend({},u.settings):this._get(u,n):null:(r=n||{},"string"==typeof n&&(r={},r[n]=i),void(u&&(this._curInst===u&&this._hideDatepicker(),s=this._getDateDatepicker(e,!0),o=this._getMinMaxDate(u,"min"),l=this._getMinMaxDate(u,"max"),a(u.settings,r),null!==o&&void 0!==r.dateFormat&&void 0===r.minDate&&(u.settings.minDate=this._formatDate(u,o)),null!==l&&void 0!==r.dateFormat&&void 0===r.maxDate&&(u.settings.maxDate=this._formatDate(u,l)),"disabled"in r&&(r.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),u),this._autoSize(u),this._setDate(u,s),this._updateAlternate(u),this._updateDatepicker(u))))},_changeDatepicker:function(t,e,n){this._optionDatepicker(t,e,n)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var n=this._getInst(t);n&&(this._setDate(n,e),this._updateDatepicker(n),this._updateAlternate(n))},_getDateDatepicker:function(t,e){var n=this._getInst(t);return n&&!n.inline&&this._setDateFromField(n,e),n?this._getDate(n):null},_doKeyDown:function(e){var n,i,r,s=t.datepicker._getInst(e.target),o=!0,a=s.dpDiv.is(".ui-datepicker-rtl");if(s._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),o=!1;break;case 13:return r=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",s.dpDiv),r[0]&&t.datepicker._selectDay(e.target,s.selectedMonth,s.selectedYear,r[0]),n=t.datepicker._get(s,"onSelect"),n?(i=t.datepicker._formatDate(s),n.apply(s.input?s.input[0]:null,[i,s])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(s,"stepBigMonths"):-t.datepicker._get(s,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(s,"stepBigMonths"):+t.datepicker._get(s,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),o=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),o=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?1:-1,"D"),o=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(s,"stepBigMonths"):-t.datepicker._get(s,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),o=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,a?-1:1,"D"),o=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(s,"stepBigMonths"):+t.datepicker._get(s,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),o=e.ctrlKey||e.metaKey;break;default:o=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):o=!1;o&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var n,i,r=t.datepicker._getInst(e.target);return t.datepicker._get(r,"constrainInput")?(n=t.datepicker._possibleChars(t.datepicker._get(r,"dateFormat")),i=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">i||!n||n.indexOf(i)>-1):void 0},_doKeyUp:function(e){var n,i=t.datepicker._getInst(e.target);if(i.input.val()!==i.lastVal)try{n=t.datepicker.parseDate(t.datepicker._get(i,"dateFormat"),i.input?i.input.val():null,t.datepicker._getFormatConfig(i)),n&&(t.datepicker._setDateFromField(i),t.datepicker._updateAlternate(i),t.datepicker._updateDatepicker(i))}catch(r){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var n,r,s,o,l,u,c;n=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==n&&(t.datepicker._curInst.dpDiv.stop(!0,!0),n&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),r=t.datepicker._get(n,"beforeShow"),s=r?r.apply(e,[e,n]):{},s!==!1&&(a(n.settings,s),n.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(n),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),o=!1,t(e).parents().each(function(){return o|="fixed"===t(this).css("position"),!o}),l={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,n.dpDiv.empty(),n.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(n),l=t.datepicker._checkOffset(n,l,o),n.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":o?"fixed":"absolute",display:"none",left:l.left+"px",top:l.top+"px"}),n.inline||(u=t.datepicker._get(n,"showAnim"),c=t.datepicker._get(n,"duration"),n.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[u]?n.dpDiv.show(u,t.datepicker._get(n,"showOptions"),c):n.dpDiv[u||"show"](u?c:null),t.datepicker._shouldFocusInput(n)&&n.input.focus(),t.datepicker._curInst=n))}},_updateDatepicker:function(e){this.maxRows=4,v=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var n,i=this._getNumberOfMonths(e),r=i[1],s=17,a=e.dpDiv.find("."+this._dayOverClass+" a");a.length>0&&o.apply(a.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),r>1&&e.dpDiv.addClass("ui-datepicker-multi-"+r).css("width",s*r+"em"),e.dpDiv[(1!==i[0]||1!==i[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.focus(),e.yearshtml&&(n=e.yearshtml,setTimeout(function(){n===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),n=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,n,i){var r=e.dpDiv.outerWidth(),s=e.dpDiv.outerHeight(),o=e.input?e.input.outerWidth():0,a=e.input?e.input.outerHeight():0,l=document.documentElement.clientWidth+(i?0:t(document).scrollLeft()),u=document.documentElement.clientHeight+(i?0:t(document).scrollTop());return n.left-=this._get(e,"isRTL")?r-o:0,n.left-=i&&n.left===e.input.offset().left?t(document).scrollLeft():0,n.top-=i&&n.top===e.input.offset().top+a?t(document).scrollTop():0,n.left-=Math.min(n.left,n.left+r>l&&l>r?Math.abs(n.left+r-l):0),n.top-=Math.min(n.top,n.top+s>u&&u>s?Math.abs(s+a):0),n},_findPos:function(e){for(var n,i=this._getInst(e),r=this._get(i,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[r?"previousSibling":"nextSibling"];return n=t(e).offset(),[n.left,n.top]},_hideDatepicker:function(e){var n,i,r,s,o=this._curInst;!o||e&&o!==t.data(e,"datepicker")||this._datepickerShowing&&(n=this._get(o,"showAnim"),i=this._get(o,"duration"),r=function(){t.datepicker._tidyDialog(o)},t.effects&&(t.effects.effect[n]||t.effects[n])?o.dpDiv.hide(n,t.datepicker._get(o,"showOptions"),i,r):o.dpDiv["slideDown"===n?"slideUp":"fadeIn"===n?"fadeOut":"hide"](n?i:null,r),n||r(),this._datepickerShowing=!1,s=this._get(o,"onClose"),s&&s.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var n=t(e.target),i=t.datepicker._getInst(n[0]);(n[0].id!==t.datepicker._mainDivId&&0===n.parents("#"+t.datepicker._mainDivId).length&&!n.hasClass(t.datepicker.markerClassName)&&!n.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||n.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==i)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,n,i){var r=t(e),s=this._getInst(r[0]);this._isDisabledDatepicker(r[0])||(this._adjustInstDate(s,n+("M"===i?this._get(s,"showCurrentAtPos"):0),i),this._updateDatepicker(s))},_gotoToday:function(e){var n,i=t(e),r=this._getInst(i[0]);this._get(r,"gotoCurrent")&&r.currentDay?(r.selectedDay=r.currentDay,r.drawMonth=r.selectedMonth=r.currentMonth,r.drawYear=r.selectedYear=r.currentYear):(n=new Date,r.selectedDay=n.getDate(),r.drawMonth=r.selectedMonth=n.getMonth(),r.drawYear=r.selectedYear=n.getFullYear()),this._notifyChange(r),this._adjustDate(i)},_selectMonthYear:function(e,n,i){var r=t(e),s=this._getInst(r[0]);s["selected"+("M"===i?"Month":"Year")]=s["draw"+("M"===i?"Month":"Year")]=parseInt(n.options[n.selectedIndex].value,10),this._notifyChange(s),this._adjustDate(r)},_selectDay:function(e,n,i,r){var s,o=t(e);t(r).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||(s=this._getInst(o[0]),s.selectedDay=s.currentDay=t("a",r).html(),s.selectedMonth=s.currentMonth=n,s.selectedYear=s.currentYear=i,this._selectDate(e,this._formatDate(s,s.currentDay,s.currentMonth,s.currentYear)))},_clearDate:function(e){var n=t(e);this._selectDate(n,"")},_selectDate:function(e,n){var i,r=t(e),s=this._getInst(r[0]);n=null!=n?n:this._formatDate(s),s.input&&s.input.val(n),this._updateAlternate(s),i=this._get(s,"onSelect"),i?i.apply(s.input?s.input[0]:null,[n,s]):s.input&&s.input.trigger("change"),s.inline?this._updateDatepicker(s):(this._hideDatepicker(),this._lastInput=s.input[0],"object"!=typeof s.input[0]&&s.input.focus(),this._lastInput=null)},_updateAlternate:function(e){var n,i,r,s=this._get(e,"altField");s&&(n=this._get(e,"altFormat")||this._get(e,"dateFormat"),i=this._getDate(e),r=this.formatDate(n,i,this._getFormatConfig(e)),t(s).each(function(){t(this).val(r)}))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,n=new Date(t.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),e=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((e-n)/864e5)/7)+1},parseDate:function(e,n,i){if(null==e||null==n)throw"Invalid arguments";if(n="object"==typeof n?n.toString():n+"",""===n)return null;var r,s,o,a,l=0,u=(i?i.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof u?u:(new Date).getFullYear()%100+parseInt(u,10),h=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,d=(i?i.dayNames:null)||this._defaults.dayNames,p=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,f=(i?i.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,b=-1,y=!1,$=function(t){var n=r+1<e.length&&e.charAt(r+1)===t;return n&&r++,n},w=function(t){var e=$(t),i="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,r="y"===t?i:1,s=new RegExp("^\\d{"+r+","+i+"}"),o=n.substring(l).match(s);if(!o)throw"Missing number at position "+l;return l+=o[0].length,parseInt(o[0],10)},x=function(e,i,r){var s=-1,o=t.map($(e)?r:i,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(o,function(t,e){var i=e[1];return n.substr(l,i.length).toLowerCase()===i.toLowerCase()?(s=e[0],l+=i.length,!1):void 0}),-1!==s)return s+1;throw"Unknown name at position "+l},_=function(){if(n.charAt(l)!==e.charAt(r))throw"Unexpected literal at position "+l;l++};for(r=0;r<e.length;r++)if(y)"'"!==e.charAt(r)||$("'")?_():y=!1;else switch(e.charAt(r)){case"d":v=w("d");break;case"D":x("D",h,d);break;case"o":b=w("o");break;case"m":g=w("m");break;case"M":g=x("M",p,f);break;case"y":m=w("y");break;case"@":a=new Date(w("@")),m=a.getFullYear(),g=a.getMonth()+1,v=a.getDate();break;case"!":a=new Date((w("!")-this._ticksTo1970)/1e4),m=a.getFullYear(),g=a.getMonth()+1,v=a.getDate();break;case"'":$("'")?_():y=!0;break;default:_()}if(l<n.length&&(o=n.substr(l),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=m?0:-100)),b>-1)for(g=1,v=b;;){if(s=this._getDaysInMonth(m,g-1),s>=v)break;g++,v-=s}if(a=this._daylightSavingAdjust(new Date(m,g-1,v)),a.getFullYear()!==m||a.getMonth()+1!==g||a.getDate()!==v)throw"Invalid date";return a},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(t,e,n){if(!e)return"";var i,r=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,s=(n?n.dayNames:null)||this._defaults.dayNames,o=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,a=(n?n.monthNames:null)||this._defaults.monthNames,l=function(e){var n=i+1<t.length&&t.charAt(i+1)===e;return n&&i++,n},u=function(t,e,n){var i=""+e;if(l(t))for(;i.length<n;)i="0"+i;return i},c=function(t,e,n,i){return l(t)?i[e]:n[e]},h="",d=!1;if(e)for(i=0;i<t.length;i++)if(d)"'"!==t.charAt(i)||l("'")?h+=t.charAt(i):d=!1;else switch(t.charAt(i)){case"d":h+=u("d",e.getDate(),2);break;case"D":h+=c("D",e.getDay(),r,s);break;case"o":h+=u("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":h+=u("m",e.getMonth()+1,2);break;case"M":h+=c("M",e.getMonth(),o,a);break;case"y":h+=l("y")?e.getFullYear():(e.getYear()%100<10?"0":"")+e.getYear()%100;break;case"@":h+=e.getTime();break;case"!":h+=1e4*e.getTime()+this._ticksTo1970;break;case"'":l("'")?h+="'":d=!0;break;default:h+=t.charAt(i)}return h},_possibleChars:function(t){var e,n="",i=!1,r=function(n){var i=e+1<t.length&&t.charAt(e+1)===n;return i&&e++,i};for(e=0;e<t.length;e++)if(i)"'"!==t.charAt(e)||r("'")?n+=t.charAt(e):i=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":n+="0123456789";break;case"D":case"M":return null;case"'":r("'")?n+="'":i=!0;break;default:n+=t.charAt(e)}return n},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var n=this._get(t,"dateFormat"),i=t.lastVal=t.input?t.input.val():null,r=this._getDefaultDate(t),s=r,o=this._getFormatConfig(t);try{s=this.parseDate(n,i,o)||r}catch(a){i=e?"":i}t.selectedDay=s.getDate(),t.drawMonth=t.selectedMonth=s.getMonth(),t.drawYear=t.selectedYear=s.getFullYear(),t.currentDay=i?s.getDate():0,t.currentMonth=i?s.getMonth():0,t.currentYear=i?s.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,n,i){var r=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},s=function(n){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),n,t.datepicker._getFormatConfig(e));
+}catch(i){}for(var r=(n.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,s=r.getFullYear(),o=r.getMonth(),a=r.getDate(),l=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,u=l.exec(n);u;){switch(u[2]||"d"){case"d":case"D":a+=parseInt(u[1],10);break;case"w":case"W":a+=7*parseInt(u[1],10);break;case"m":case"M":o+=parseInt(u[1],10),a=Math.min(a,t.datepicker._getDaysInMonth(s,o));break;case"y":case"Y":s+=parseInt(u[1],10),a=Math.min(a,t.datepicker._getDaysInMonth(s,o))}u=l.exec(n)}return new Date(s,o,a)},o=null==n||""===n?i:"string"==typeof n?s(n):"number"==typeof n?isNaN(n)?i:r(n):new Date(n.getTime());return o=o&&"Invalid Date"===o.toString()?i:o,o&&(o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)),this._daylightSavingAdjust(o)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,n){var i=!e,r=t.selectedMonth,s=t.selectedYear,o=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=o.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=o.getMonth(),t.drawYear=t.selectedYear=t.currentYear=o.getFullYear(),r===t.selectedMonth&&s===t.selectedYear||n||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(i?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var n=this._get(e,"stepMonths"),i="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(i,-n,"M")},next:function(){t.datepicker._adjustDate(i,+n,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(i)},selectDay:function(){return t.datepicker._selectDay(i,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(i,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(i,this,"Y"),!1}};t(this).bind(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,n,i,r,s,o,a,l,u,c,h,d,p,f,m,g,v,b,y,$,w,x,_,C,k,D,T,S,E,M,A,I,O,P,N,H,F,j,R,z=new Date,W=this._daylightSavingAdjust(new Date(z.getFullYear(),z.getMonth(),z.getDate())),L=this._get(t,"isRTL"),q=this._get(t,"showButtonPanel"),V=this._get(t,"hideIfNoPrevNext"),U=this._get(t,"navigationAsDateFormat"),B=this._getNumberOfMonths(t),Y=this._get(t,"showCurrentAtPos"),K=this._get(t,"stepMonths"),G=1!==B[0]||1!==B[1],X=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-Y,tt=t.drawYear;if(0>Z&&(Z+=12,tt--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-B[0]*B[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(tt,Z,1))>e;)Z--,0>Z&&(Z=11,tt--);for(t.drawMonth=Z,t.drawYear=tt,n=this._get(t,"prevText"),n=U?this.formatDate(n,this._daylightSavingAdjust(new Date(tt,Z-K,1)),this._getFormatConfig(t)):n,i=this._canAdjustMonth(t,-1,tt,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"e":"w")+"'>"+n+"</span></a>":V?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"e":"w")+"'>"+n+"</span></a>",r=this._get(t,"nextText"),r=U?this.formatDate(r,this._daylightSavingAdjust(new Date(tt,Z+K,1)),this._getFormatConfig(t)):r,s=this._canAdjustMonth(t,1,tt,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+r+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"w":"e")+"'>"+r+"</span></a>":V?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+r+"'><span class='ui-icon ui-icon-circle-triangle-"+(L?"w":"e")+"'>"+r+"</span></a>",o=this._get(t,"currentText"),a=this._get(t,"gotoCurrent")&&t.currentDay?X:W,o=U?this.formatDate(o,a,this._getFormatConfig(t)):o,l=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",u=q?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(L?l:"")+(this._isInRange(t,a)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+o+"</button>":"")+(L?"":l)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,h=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),m=this._get(t,"monthNamesShort"),g=this._get(t,"beforeShowDay"),v=this._get(t,"showOtherMonths"),b=this._get(t,"selectOtherMonths"),y=this._getDefaultDate(t),$="",x=0;x<B[0];x++){for(_="",this.maxRows=4,C=0;C<B[1];C++){if(k=this._daylightSavingAdjust(new Date(tt,Z,t.selectedDay)),D=" ui-corner-all",T="",G){if(T+="<div class='ui-datepicker-group",B[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",D=" ui-corner-"+(L?"right":"left");break;case B[1]-1:T+=" ui-datepicker-group-last",D=" ui-corner-"+(L?"left":"right");break;default:T+=" ui-datepicker-group-middle",D=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+D+"'>"+(/all|left/.test(D)&&0===x?L?s:i:"")+(/all|right/.test(D)&&0===x?L?i:s:"")+this._generateMonthYearHeader(t,Z,tt,Q,J,x>0||C>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead><tr>",S=h?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)E=(w+c)%7,S+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+"><span title='"+d[E]+"'>"+p[E]+"</span></th>";for(T+=S+"</tr></thead><tbody>",M=this._getDaysInMonth(tt,Z),tt===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,M)),A=(this._getFirstDayOfMonth(tt,Z)-c+7)%7,I=Math.ceil((A+M)/7),O=G&&this.maxRows>I?this.maxRows:I,this.maxRows=O,P=this._daylightSavingAdjust(new Date(tt,Z,1-A)),N=0;O>N;N++){for(T+="<tr>",H=h?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(P)+"</td>":"",w=0;7>w;w++)F=g?g.apply(t.input?t.input[0]:null,[P]):[!0,""],j=P.getMonth()!==Z,R=j&&!b||!F[0]||Q&&Q>P||J&&P>J,H+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(j?" ui-datepicker-other-month":"")+(P.getTime()===k.getTime()&&Z===t.selectedMonth&&t._keyEvent||y.getTime()===P.getTime()&&y.getTime()===k.getTime()?" "+this._dayOverClass:"")+(R?" "+this._unselectableClass+" ui-state-disabled":"")+(j&&!v?"":" "+F[1]+(P.getTime()===X.getTime()?" "+this._currentClass:"")+(P.getTime()===W.getTime()?" ui-datepicker-today":""))+"'"+(j&&!v||!F[2]?"":" title='"+F[2].replace(/'/g,"&#39;")+"'")+(R?"":" data-handler='selectDay' data-event='click' data-month='"+P.getMonth()+"' data-year='"+P.getFullYear()+"'")+">"+(j&&!v?"&#xa0;":R?"<span class='ui-state-default'>"+P.getDate()+"</span>":"<a class='ui-state-default"+(P.getTime()===W.getTime()?" ui-state-highlight":"")+(P.getTime()===X.getTime()?" ui-state-active":"")+(j?" ui-priority-secondary":"")+"' href='#'>"+P.getDate()+"</a>")+"</td>",P.setDate(P.getDate()+1),P=this._daylightSavingAdjust(P);T+=H+"</tr>"}Z++,Z>11&&(Z=0,tt++),T+="</tbody></table>"+(G?"</div>"+(B[0]>0&&C===B[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),_+=T}$+=_}return $+=u,t._keyEvent=!1,$},_generateMonthYearHeader:function(t,e,n,i,r,s,o,a){var l,u,c,h,d,p,f,m,g=this._get(t,"changeMonth"),v=this._get(t,"changeYear"),b=this._get(t,"showMonthAfterYear"),y="<div class='ui-datepicker-title'>",$="";if(s||!g)$+="<span class='ui-datepicker-month'>"+o[e]+"</span>";else{for(l=i&&i.getFullYear()===n,u=r&&r.getFullYear()===n,$+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!l||c>=i.getMonth())&&(!u||c<=r.getMonth())&&($+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+a[c]+"</option>");$+="</select>"}if(b||(y+=$+(!s&&g&&v?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",s||!v)y+="<span class='ui-datepicker-year'>"+n+"</span>";else{for(h=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?n+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(h[0]),m=Math.max(f,p(h[1]||"")),f=i?Math.max(f,i.getFullYear()):f,m=r?Math.min(m,r.getFullYear()):m,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===n?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",y+=t.yearshtml,t.yearshtml=null}return y+=this._get(t,"yearSuffix"),b&&(y+=(!s&&g&&v?"":"&#xa0;")+$),y+="</div>"},_adjustInstDate:function(t,e,n){var i=t.drawYear+("Y"===n?e:0),r=t.drawMonth+("M"===n?e:0),s=Math.min(t.selectedDay,this._getDaysInMonth(i,r))+("D"===n?e:0),o=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(i,r,s)));t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),("M"===n||"Y"===n)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var n=this._getMinMaxDate(t,"min"),i=this._getMinMaxDate(t,"max"),r=n&&n>e?n:e;return i&&r>i?i:r},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,n,i){var r=this._getNumberOfMonths(t),s=this._daylightSavingAdjust(new Date(n,i+(0>e?e:r[0]*r[1]),1));return 0>e&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(t,s)},_isInRange:function(t,e){var n,i,r=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),o=null,a=null,l=this._get(t,"yearRange");return l&&(n=l.split(":"),i=(new Date).getFullYear(),o=parseInt(n[0],10),a=parseInt(n[1],10),n[0].match(/[+\-].*/)&&(o+=i),n[1].match(/[+\-].*/)&&(a+=i)),(!r||e.getTime()>=r.getTime())&&(!s||e.getTime()<=s.getTime())&&(!o||e.getFullYear()>=o)&&(!a||e.getFullYear()<=a)},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,n,i){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var r=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(i,n,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),r,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).mousedown(t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var n=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(n)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(n)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(n))},t.datepicker=new r,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.11.4";t.datepicker;t.widget("ui.draggable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(e){var n=this.options;return this._blurActiveElement(e),this.helper||n.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blockFrames(n.iframeFix===!0?"iframe":n.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var n=this.document[0];if(this.handleElement.is(e.target))try{n.activeElement&&"body"!==n.activeElement.nodeName.toLowerCase()&&t(n.activeElement).blur()}catch(i){}},_mouseStart:function(e){var n=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._normalizeRightBottom(),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,n){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!n){var i=this._uiHash();if(this._trigger("drag",e,i)===!1)return this._mouseUp({}),!1;this.position=i.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var n=this,i=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(i=t.ui.ddmanager.drop(this,e)),this.dropped&&(i=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!i||"valid"===this.options.revert&&i||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,i)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){n._trigger("stop",e)!==!1&&n._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.focus(),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(e){var n=this.options,i=t.isFunction(n.helper),r=i?t(n.helper.apply(this.element[0],[e])):"clone"===n.helper?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo("parent"===n.appendTo?this.element[0].parentNode:n.appendTo),i&&r[0]===this.element[0]&&this._setPositionRelative(),r[0]===this.element[0]||/(fixed|absolute)/.test(r.css("position"))||r.css("position","absolute"),r},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),n=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==n&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,n,i,r=this.options,s=this.document[0];return this.relativeContainer=null,r.containment?"window"===r.containment?void(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===r.containment?void(this.containment=[0,0,t(s).width()-this.helperProportions.width-this.margins.left,(t(s).height()||s.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):r.containment.constructor===Array?void(this.containment=r.containment):("parent"===r.containment&&(r.containment=this.helper[0].parentNode),n=t(r.containment),i=n[0],void(i&&(e=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(e?Math.max(i.scrollWidth,i.offsetWidth):i.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(i.scrollHeight,i.offsetHeight):i.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n))):void(this.containment=null)},_convertPositionTo:function(t,e){e||(e=this.position);var n="absolute"===t?1:-1,i=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*n+this.offset.parent.top*n-("fixed"===this.cssPosition?-this.offset.scroll.top:i?0:this.offset.scroll.top)*n,left:e.left+this.offset.relative.left*n+this.offset.parent.left*n-("fixed"===this.cssPosition?-this.offset.scroll.left:i?0:this.offset.scroll.left)*n}},_generatePosition:function(t,e){var n,i,r,s,o=this.options,a=this._isRootNode(this.scrollParent[0]),l=t.pageX,u=t.pageY;return a&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(i=this.relativeContainer.offset(),n=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]):n=this.containment,t.pageX-this.offset.click.left<n[0]&&(l=n[0]+this.offset.click.left),t.pageY-this.offset.click.top<n[1]&&(u=n[1]+this.offset.click.top),t.pageX-this.offset.click.left>n[2]&&(l=n[2]+this.offset.click.left),t.pageY-this.offset.click.top>n[3]&&(u=n[3]+this.offset.click.top)),o.grid&&(r=o.grid[1]?this.originalPageY+Math.round((u-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,u=n?r-this.offset.click.top>=n[1]||r-this.offset.click.top>n[3]?r:r-this.offset.click.top>=n[1]?r-o.grid[1]:r+o.grid[1]:r,s=o.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,l=n?s-this.offset.click.left>=n[0]||s-this.offset.click.left>n[2]?s:s-this.offset.click.left>=n[0]?s-o.grid[0]:s+o.grid[0]:s),"y"===o.axis&&(l=this.originalPageX),"x"===o.axis&&(u=this.originalPageY)),{top:u-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:a?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:a?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(e,n,i){return i=i||this._uiHash(),t.ui.plugin.call(this,e,[n,i,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,n,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,n,i){var r=t.extend({},n,{item:i.element});i.sortables=[],t(i.options.connectToSortable).each(function(){var n=t(this).sortable("instance");n&&!n.options.disabled&&(i.sortables.push(n),n.refreshPositions(),n._trigger("activate",e,r))})},stop:function(e,n,i){var r=t.extend({},n,{item:i.element});i.cancelHelperRemoval=!1,t.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,r))})},drag:function(e,n,i){t.each(i.sortables,function(){var r=!1,s=this;s.positionAbs=i.positionAbs,s.helperProportions=i.helperProportions,s.offset.click=i.offset.click,s._intersectsWith(s.containerCache)&&(r=!0,t.each(i.sortables,function(){return this.positionAbs=i.positionAbs,this.helperProportions=i.helperProportions,this.offset.click=i.offset.click,this!==s&&this._intersectsWith(this.containerCache)&&t.contains(s.element[0],this.element[0])&&(r=!1),r})),r?(s.isOver||(s.isOver=1,i._parent=n.helper.parent(),s.currentItem=n.helper.appendTo(s.element).data("ui-sortable-item",!0),s.options._helper=s.options.helper,s.options.helper=function(){return n.helper[0]},e.target=s.currentItem[0],s._mouseCapture(e,!0),s._mouseStart(e,!0,!0),s.offset.click.top=i.offset.click.top,s.offset.click.left=i.offset.click.left,s.offset.parent.left-=i.offset.parent.left-s.offset.parent.left,s.offset.parent.top-=i.offset.parent.top-s.offset.parent.top,i._trigger("toSortable",e),i.dropped=s.element,t.each(i.sortables,function(){this.refreshPositions()}),i.currentItem=i.element,s.fromOutside=i),s.currentItem&&(s._mouseDrag(e),n.position=s.position)):s.isOver&&(s.isOver=0,s.cancelHelperRemoval=!0,s.options._revert=s.options.revert,s.options.revert=!1,s._trigger("out",e,s._uiHash(s)),s._mouseStop(e,!0),s.options.revert=s.options._revert,s.options.helper=s.options._helper,s.placeholder&&s.placeholder.remove(),n.helper.appendTo(i._parent),i._refreshOffsets(e),n.position=i._generatePosition(e,!0),i._trigger("fromSortable",e),i.dropped=!1,t.each(i.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,n,i){var r=t("body"),s=i.options;r.css("cursor")&&(s._cursor=r.css("cursor")),r.css("cursor",s.cursor)},stop:function(e,n,i){var r=i.options;r._cursor&&t("body").css("cursor",r._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,n,i){var r=t(n.helper),s=i.options;r.css("opacity")&&(s._opacity=r.css("opacity")),r.css("opacity",s.opacity)},stop:function(e,n,i){var r=i.options;r._opacity&&t(n.helper).css("opacity",r._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(e,n,i){var r=i.options,s=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(r.axis&&"x"===r.axis||(i.overflowOffset.top+o.offsetHeight-e.pageY<r.scrollSensitivity?o.scrollTop=s=o.scrollTop+r.scrollSpeed:e.pageY-i.overflowOffset.top<r.scrollSensitivity&&(o.scrollTop=s=o.scrollTop-r.scrollSpeed)),r.axis&&"y"===r.axis||(i.overflowOffset.left+o.offsetWidth-e.pageX<r.scrollSensitivity?o.scrollLeft=s=o.scrollLeft+r.scrollSpeed:e.pageX-i.overflowOffset.left<r.scrollSensitivity&&(o.scrollLeft=s=o.scrollLeft-r.scrollSpeed))):(r.axis&&"x"===r.axis||(e.pageY-t(a).scrollTop()<r.scrollSensitivity?s=t(a).scrollTop(t(a).scrollTop()-r.scrollSpeed):t(window).height()-(e.pageY-t(a).scrollTop())<r.scrollSensitivity&&(s=t(a).scrollTop(t(a).scrollTop()+r.scrollSpeed))),r.axis&&"y"===r.axis||(e.pageX-t(a).scrollLeft()<r.scrollSensitivity?s=t(a).scrollLeft(t(a).scrollLeft()-r.scrollSpeed):t(window).width()-(e.pageX-t(a).scrollLeft())<r.scrollSensitivity&&(s=t(a).scrollLeft(t(a).scrollLeft()+r.scrollSpeed)))),s!==!1&&t.ui.ddmanager&&!r.dropBehaviour&&t.ui.ddmanager.prepareOffsets(i,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,n,i){var r=i.options;i.snapElements=[],t(r.snap.constructor!==String?r.snap.items||":data(ui-draggable)":r.snap).each(function(){var e=t(this),n=e.offset();this!==i.element[0]&&i.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:n.top,left:n.left})})},drag:function(e,n,i){var r,s,o,a,l,u,c,h,d,p,f=i.options,m=f.snapTolerance,g=n.offset.left,v=g+i.helperProportions.width,b=n.offset.top,y=b+i.helperProportions.height;for(d=i.snapElements.length-1;d>=0;d--)l=i.snapElements[d].left-i.margins.left,u=l+i.snapElements[d].width,c=i.snapElements[d].top-i.margins.top,h=c+i.snapElements[d].height,l-m>v||g>u+m||c-m>y||b>h+m||!t.contains(i.snapElements[d].item.ownerDocument,i.snapElements[d].item)?(i.snapElements[d].snapping&&i.options.snap.release&&i.options.snap.release.call(i.element,e,t.extend(i._uiHash(),{snapItem:i.snapElements[d].item})),i.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(r=Math.abs(c-y)<=m,s=Math.abs(h-b)<=m,o=Math.abs(l-v)<=m,a=Math.abs(u-g)<=m,r&&(n.position.top=i._convertPositionTo("relative",{top:c-i.helperProportions.height,left:0}).top),s&&(n.position.top=i._convertPositionTo("relative",{top:h,left:0}).top),o&&(n.position.left=i._convertPositionTo("relative",{top:0,left:l-i.helperProportions.width}).left),a&&(n.position.left=i._convertPositionTo("relative",{top:0,left:u}).left)),p=r||s||o||a,"outer"!==f.snapMode&&(r=Math.abs(c-b)<=m,s=Math.abs(h-y)<=m,o=Math.abs(l-g)<=m,a=Math.abs(u-v)<=m,r&&(n.position.top=i._convertPositionTo("relative",{top:c,left:0}).top),s&&(n.position.top=i._convertPositionTo("relative",{top:h-i.helperProportions.height,left:0}).top),o&&(n.position.left=i._convertPositionTo("relative",{top:0,left:l}).left),a&&(n.position.left=i._convertPositionTo("relative",{top:0,left:u-i.helperProportions.width}).left)),!i.snapElements[d].snapping&&(r||s||o||a||p)&&i.options.snap.snap&&i.options.snap.snap.call(i.element,e,t.extend(i._uiHash(),{snapItem:i.snapElements[d].item})),i.snapElements[d].snapping=r||s||o||a||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,n,i){var r,s=i.options,o=t.makeArray(t(s.stack)).sort(function(e,n){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(n).css("zIndex"),10)||0)});o.length&&(r=parseInt(t(o[0]).css("zIndex"),10)||0,t(o).each(function(e){t(this).css("zIndex",r+e)}),this.css("zIndex",r+o.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,n,i){var r=t(n.helper),s=i.options;r.css("zIndex")&&(s._zIndex=r.css("zIndex")),r.css("zIndex",s.zIndex)},stop:function(e,n,i){var r=i.options;r._zIndex&&t(n.helper).css("zIndex",r._zIndex)}});t.ui.draggable;t.widget("ui.resizable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseInt(t,10)||0},_isNumber:function(t){return!isNaN(parseInt(t,10))},_hasScroll:function(e,n){if("hidden"===t(e).css("overflow"))return!1;var i=n&&"left"===n?"scrollLeft":"scrollTop",r=!1;return e[i]>0?!0:(e[i]=1,r=e[i]>0,e[i]=0,r)},_create:function(){var e,n,i,r,s,o=this,a=this.options;if(this.element.addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),
+marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),e=this.handles.split(","),this.handles={},n=0;n<e.length;n++)i=t.trim(e[n]),s="ui-resizable-"+i,r=t("<div class='ui-resizable-handle "+s+"'></div>"),r.css({zIndex:a.zIndex}),"se"===i&&r.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[i]=".ui-resizable-"+i,this.element.append(r);this._renderAxis=function(e){var n,i,r,s;e=e||this.element;for(n in this.handles)this.handles[n].constructor===String?this.handles[n]=this.element.children(this.handles[n]).first().show():(this.handles[n].jquery||this.handles[n].nodeType)&&(this.handles[n]=t(this.handles[n]),this._on(this.handles[n],{mousedown:o._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=t(this.handles[n],this.element),s=/sw|ne|nw|se|n|s/.test(n)?i.outerHeight():i.outerWidth(),r=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),e.css(r,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(r=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=r&&r[1]?r[1]:"se")}),a.autoHide&&(this._handles.hide(),t(this.element).addClass("ui-resizable-autohide").mouseenter(function(){a.disabled||(t(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){a.disabled||o.resizing||(t(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,n=function(e){t(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(n(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_mouseCapture:function(e){var n,i,r=!1;for(n in this.handles)i=t(this.handles[n])[0],(i===e.target||t.contains(i,e.target))&&(r=!0);return!this.options.disabled&&r},_mouseStart:function(e){var n,i,r,s=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(n+=t(s.containment).scrollLeft()||0,i+=t(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:n,top:i},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,r=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===r?this.axis+"-resize":r),o.addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var n,i,r=this.originalMousePosition,s=this.axis,o=e.pageX-r.left||0,a=e.pageY-r.top||0,l=this._change[s];return this._updatePrevProperties(),l?(n=l.apply(this,[e,o,a]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(n=this._updateRatio(n,e)),n=this._respectSize(n,e),this._updateCache(n),this._propagate("resize",e),i=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(i)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var n,i,r,s,o,a,l,u=this.options,c=this;return this._helper&&(n=this._proportionallyResizeElements,i=n.length&&/textarea/i.test(n[0].nodeName),r=i&&this._hasScroll(n[0],"left")?0:c.sizeDiff.height,s=i?0:c.sizeDiff.width,o={width:c.helper.width()-s,height:c.helper.height()-r},a=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null,l=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null,u.animate||this.element.css(t.extend(o,{top:l,left:a})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!u.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,n,i,r,s,o=this.options;s={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:1/0,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:1/0},(this._aspectRatio||t)&&(e=s.minHeight*this.aspectRatio,i=s.minWidth/this.aspectRatio,n=s.maxHeight*this.aspectRatio,r=s.maxWidth/this.aspectRatio,e>s.minWidth&&(s.minWidth=e),i>s.minHeight&&(s.minHeight=i),n<s.maxWidth&&(s.maxWidth=n),r<s.maxHeight&&(s.maxHeight=r)),this._vBoundaries=s},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,n=this.size,i=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===i&&(t.left=e.left+(n.width-t.width),t.top=null),"nw"===i&&(t.top=e.top+(n.height-t.height),t.left=e.left+(n.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,n=this.axis,i=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,r=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,s=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,o=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,u=/sw|nw|w/.test(n),c=/nw|ne|n/.test(n);return s&&(t.width=e.minWidth),o&&(t.height=e.minHeight),i&&(t.width=e.maxWidth),r&&(t.height=e.maxHeight),s&&u&&(t.left=a-e.minWidth),i&&u&&(t.left=a-e.maxWidth),o&&c&&(t.top=l-e.minHeight),r&&c&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,n=[],i=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],r=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)n[e]=parseInt(i[e],10)||0,n[e]+=parseInt(r[e],10)||0;return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,n=this.helper||this.element;e<this._proportionallyResizeElements.length;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,n=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var n=this.originalSize,i=this.originalPosition;return{left:i.left+e,width:n.width-e}},n:function(t,e,n){var i=this.originalSize,r=this.originalPosition;return{top:r.top+n,height:i.height-n}},s:function(t,e,n){return{height:this.originalSize.height+n}},se:function(e,n,i){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,n,i]))},sw:function(e,n,i){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,n,i]))},ne:function(e,n,i){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,n,i]))},nw:function(e,n,i){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,n,i]))}},_propagate:function(e,n){t.ui.plugin.call(this,e,[n,this.ui()]),"resize"!==e&&this._trigger(e,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var n=t(this).resizable("instance"),i=n.options,r=n._proportionallyResizeElements,s=r.length&&/textarea/i.test(r[0].nodeName),o=s&&n._hasScroll(r[0],"left")?0:n.sizeDiff.height,a=s?0:n.sizeDiff.width,l={width:n.size.width-a,height:n.size.height-o},u=parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left)||null,c=parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top)||null;n.element.animate(t.extend(l,c&&u?{top:c,left:u}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var i={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};r&&r.length&&t(r[0]).css({width:i.width,height:i.height}),n._updateCache(i),n._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,n,i,r,s,o,a,l=t(this).resizable("instance"),u=l.options,c=l.element,h=u.containment,d=h instanceof t?h.get(0):/parent/.test(h)?c.parent().get(0):h;d&&(l.containerElement=t(d),/document/.test(h)||h===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),n=[],t(["Top","Right","Left","Bottom"]).each(function(t,i){n[t]=l._num(e.css("padding"+i))}),l.containerOffset=e.offset(),l.containerPosition=e.position(),l.containerSize={height:e.innerHeight()-n[3],width:e.innerWidth()-n[1]},i=l.containerOffset,r=l.containerSize.height,s=l.containerSize.width,o=l._hasScroll(d,"left")?d.scrollWidth:s,a=l._hasScroll(d)?d.scrollHeight:r,l.parentData={element:d,left:i.left,top:i.top,width:o,height:a}))},resize:function(e){var n,i,r,s,o=t(this).resizable("instance"),a=o.options,l=o.containerOffset,u=o.position,c=o._aspectRatio||e.shiftKey,h={top:0,left:0},d=o.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(h=l),u.left<(o._helper?l.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-l.left:o.position.left-h.left),c&&(o.size.height=o.size.width/o.aspectRatio,p=!1),o.position.left=a.helper?l.left:0),u.top<(o._helper?l.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-l.top:o.position.top),c&&(o.size.width=o.size.height*o.aspectRatio,p=!1),o.position.top=o._helper?l.top:0),r=o.containerElement.get(0)===o.element.parent().get(0),s=/relative|absolute/.test(o.containerElement.css("position")),r&&s?(o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.offset.top=o.element.offset().top),n=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-h.left:o.offset.left-l.left)),i=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-h.top:o.offset.top-l.top)),n+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-n,c&&(o.size.height=o.size.width/o.aspectRatio,p=!1)),i+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-i,c&&(o.size.width=o.size.height*o.aspectRatio,p=!1)),p||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),n=e.options,i=e.containerOffset,r=e.containerPosition,s=e.containerElement,o=t(e.helper),a=o.offset(),l=o.outerWidth()-e.sizeDiff.width,u=o.outerHeight()-e.sizeDiff.height;e._helper&&!n.animate&&/relative/.test(s.css("position"))&&t(this).css({left:a.left-r.left-i.left,width:l,height:u}),e._helper&&!n.animate&&/static/.test(s.css("position"))&&t(this).css({left:a.left-r.left-i.left,width:l,height:u})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),n=e.options;t(n.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseInt(e.width(),10),height:parseInt(e.height(),10),left:parseInt(e.css("left"),10),top:parseInt(e.css("top"),10)})})},resize:function(e,n){var i=t(this).resizable("instance"),r=i.options,s=i.originalSize,o=i.originalPosition,a={height:i.size.height-s.height||0,width:i.size.width-s.width||0,top:i.position.top-o.top||0,left:i.position.left-o.left||0};t(r.alsoResize).each(function(){var e=t(this),i=t(this).data("ui-resizable-alsoresize"),r={},s=e.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(s,function(t,e){var n=(i[e]||0)+(a[e]||0);n&&n>=0&&(r[e]=n||null)}),e.css(r)})},stop:function(){t(this).removeData("resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),n=e.options,i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof n.ghost?n.ghost:""),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,n=t(this).resizable("instance"),i=n.options,r=n.size,s=n.originalSize,o=n.originalPosition,a=n.axis,l="number"==typeof i.grid?[i.grid,i.grid]:i.grid,u=l[0]||1,c=l[1]||1,h=Math.round((r.width-s.width)/u)*u,d=Math.round((r.height-s.height)/c)*c,p=s.width+h,f=s.height+d,m=i.maxWidth&&i.maxWidth<p,g=i.maxHeight&&i.maxHeight<f,v=i.minWidth&&i.minWidth>p,b=i.minHeight&&i.minHeight>f;i.grid=l,v&&(p+=u),b&&(f+=c),m&&(p-=u),g&&(f-=c),/^(se|s|e)$/.test(a)?(n.size.width=p,n.size.height=f):/^(ne)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.top=o.top-d):/^(sw)$/.test(a)?(n.size.width=p,n.size.height=f,n.position.left=o.left-h):((0>=f-c||0>=p-u)&&(e=n._getPaddingPlusBorderDimensions(this)),f-c>0?(n.size.height=f,n.position.top=o.top-d):(f=c-e.height,n.size.height=f,n.position.top=o.top+s.height-f),p-u>0?(n.size.width=p,n.position.left=o.left-h):(p=u-e.width,n.size.width=p,n.position.left=o.left+s.width-p))}});t.ui.resizable,t.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var n=t(this).css(e).offset().top;0>n&&t(this).css("top",e.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:t.noop,enable:t.noop,close:function(e){var n,i=this;if(this._isOpen&&this._trigger("beforeClose",e)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{n=this.document[0].activeElement,n&&"body"!==n.nodeName.toLowerCase()&&t(n).blur()}catch(r){}this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,n){var i=!1,r=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),s=Math.max.apply(null,r);return s>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",s+1),i=!0),i&&!n&&this._trigger("focus",e),i},open:function(){var e=this;return this._isOpen?void(this._moveToTop()&&this._focusTabbable()):(this._isOpen=!0,this.opener=t(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),void this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).focus()},_keepFocus:function(e){function n(){var e=this.document[0].activeElement,n=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);n||this._focusTabbable()}e.preventDefault(),n.call(this),this._delay(n)},_createWrapper:function(){this.uiDialog=t("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),void this.close(e);if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var n=this.uiDialog.find(":tabbable"),i=n.filter(":first"),r=n.filter(":last");e.target!==r[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==i[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){r.focus()}),e.preventDefault()):(this._delay(function(){i.focus()}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(e),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title||t.html("&#160;"),t.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var e=this,n=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(n)||t.isArray(n)&&!n.length?void this.uiDialog.removeClass("ui-dialog-buttons"):(t.each(n,function(n,i){var r,s;i=t.isFunction(i)?{click:i,text:n}:i,i=t.extend({type:"button"},i),r=i.click,i.click=function(){r.apply(e.element[0],arguments)},s={icons:i.icons,text:i.showText},delete i.icons,delete i.showText,t("<button></button>",i).button(s).appendTo(e.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),void this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var n=this,i=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(i,r){t(this).addClass("ui-dialog-dragging"),n._blockFrames(),n._trigger("dragStart",i,e(r))},drag:function(t,i){n._trigger("drag",t,e(i))},stop:function(r,s){var o=s.offset.left-n.document.scrollLeft(),a=s.offset.top-n.document.scrollTop();i.position={my:"left top",at:"left"+(o>=0?"+":"")+o+" top"+(a>=0?"+":"")+a,of:n.window},t(this).removeClass("ui-dialog-dragging"),n._unblockFrames(),n._trigger("dragStop",r,e(s))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var n=this,i=this.options,r=i.resizable,s=this.uiDialog.css("position"),o="string"==typeof r?r:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(i,r){t(this).addClass("ui-dialog-resizing"),n._blockFrames(),n._trigger("resizeStart",i,e(r))},resize:function(t,i){n._trigger("resize",t,e(i))},stop:function(r,s){var o=n.uiDialog.offset(),a=o.left-n.document.scrollLeft(),l=o.top-n.document.scrollTop();i.height=n.uiDialog.height(),i.width=n.uiDialog.width(),i.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" top"+(l>=0?"+":"")+l,of:n.window},t(this).removeClass("ui-dialog-resizing"),n._unblockFrames(),n._trigger("resizeStop",r,e(s))}}).css("position",s)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),n=t.inArray(this,e);-1!==n&&e.splice(n,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var n=this,i=!1,r={};t.each(e,function(t,e){n._setOption(t,e),t in n.sizeRelatedOptions&&(i=!0),t in n.resizableRelatedOptions&&(r[t]=e)}),i&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",r)},_setOption:function(t,e){var n,i,r=this.uiDialog;"dialogClass"===t&&r.removeClass(this.options.dialogClass).addClass(e),"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:""+e}),"draggable"===t&&(n=r.is(":data(ui-draggable)"),n&&!e&&r.draggable("destroy"),!n&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&(i=r.is(":data(ui-resizable)"),i&&!e&&r.resizable("destroy"),i&&"string"==typeof e&&r.resizable("option","handles",e),i||e===!1||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,n,i=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),e=Math.max(0,i.minHeight-t),n="number"==typeof i.maxHeight?Math.max(0,i.maxHeight-t):"none","auto"===i.height?this.element.css({minHeight:e,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,i.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}});t.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,n=this.options,i=n.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(i)?i:function(t){return t.is(i)},this.proportions=function(){return arguments.length?void(e=arguments[0]):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(n.scope),n.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;e<t.length;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(e,n){if("accept"===e)this.accept=t.isFunction(n)?n:function(t){return t.is(n)};else if("scope"===e){var i=t.ui.ddmanager.droppables[this.options.scope];this._splice(i),this._addToManager(n)}this._super(e,n)},_activate:function(e){var n=t.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),n&&this._trigger("activate",e,this.ui(n))},_deactivate:function(e){var n=t.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),n&&this._trigger("deactivate",e,this.ui(n))},_over:function(e){var n=t.ui.ddmanager.current;n&&(n.currentItem||n.element)[0]!==this.element[0]&&this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",e,this.ui(n)))},_out:function(e){var n=t.ui.ddmanager.current;n&&(n.currentItem||n.element)[0]!==this.element[0]&&this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",e,this.ui(n)))},_drop:function(e,n){var i=n||t.ui.ddmanager.current,r=!1;return i&&(i.currentItem||i.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var n=t(this).droppable("instance");return n.options.greedy&&!n.options.disabled&&n.options.scope===i.options.scope&&n.accept.call(n.element[0],i.currentItem||i.element)&&t.ui.intersect(i,t.extend(n,{offset:n.element.offset()}),n.options.tolerance,e)?(r=!0,!1):void 0}),r?!1:this.accept.call(this.element[0],i.currentItem||i.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",e,this.ui(i)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}}}),t.ui.intersect=function(){function t(t,e,n){return t>=e&&e+n>t}return function(e,n,i,r){if(!n.offset)return!1;var s=(e.positionAbs||e.position.absolute).left+e.margins.left,o=(e.positionAbs||e.position.absolute).top+e.margins.top,a=s+e.helperProportions.width,l=o+e.helperProportions.height,u=n.offset.left,c=n.offset.top,h=u+n.proportions().width,d=c+n.proportions().height;switch(i){case"fit":return s>=u&&h>=a&&o>=c&&d>=l;case"intersect":return u<s+e.helperProportions.width/2&&a-e.helperProportions.width/2<h&&c<o+e.helperProportions.height/2&&l-e.helperProportions.height/2<d;case"pointer":return t(r.pageY,c,n.proportions().height)&&t(r.pageX,u,n.proportions().width);case"touch":
+return(o>=c&&d>=o||l>=c&&d>=l||c>o&&l>d)&&(s>=u&&h>=s||a>=u&&h>=a||u>s&&a>h);default:return!1}}}(),t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,n){var i,r,s=t.ui.ddmanager.droppables[e.options.scope]||[],o=n?n.type:null,a=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(i=0;i<s.length;i++)if(!(s[i].options.disabled||e&&!s[i].accept.call(s[i].element[0],e.currentItem||e.element))){for(r=0;r<a.length;r++)if(a[r]===s[i].element[0]){s[i].proportions().height=0;continue t}s[i].visible="none"!==s[i].element.css("display"),s[i].visible&&("mousedown"===o&&s[i]._activate.call(s[i],n),s[i].offset=s[i].element.offset(),s[i].proportions({width:s[i].element[0].offsetWidth,height:s[i].element[0].offsetHeight}))}},drop:function(e,n){var i=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&t.ui.intersect(e,this,this.options.tolerance,n)&&(i=this._drop.call(this,n)||i),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,n)))}),i},dragStart:function(e,n){e.element.parentsUntil("body").bind("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,n)})},drag:function(e,n){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,n),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var i,r,s,o=t.ui.intersect(e,this,this.options.tolerance,n),a=!o&&this.isover?"isout":o&&!this.isover?"isover":null;a&&(this.options.greedy&&(r=this.options.scope,s=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===r}),s.length&&(i=t(s[0]).droppable("instance"),i.greedyChild="isover"===a)),i&&"isover"===a&&(i.isover=!1,i.isout=!0,i._out.call(i,n)),this[a]=!0,this["isout"===a?"isover":"isout"]=!1,this["isover"===a?"_over":"_out"].call(this,n),i&&"isout"===a&&(i.isout=!1,i.isover=!0,i._over.call(i,n)))}})},dragStop:function(e,n){e.element.parentsUntil("body").unbind("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,n)}};var b=(t.ui.droppable,"ui-effects-"),y=t;t.effects={effect:{}},function(t,e){function n(t,e,n){var i=h[e.type]||{};return null==t?n||!e.def?null:e.def:(t=i.floor?~~t:parseFloat(t),isNaN(t)?e.def:i.mod?(t+i.mod)%i.mod:0>t?0:i.max<t?i.max:t)}function i(e){var n=u(),i=n._rgba=[];return e=e.toLowerCase(),f(l,function(t,r){var s,o=r.re.exec(e),a=o&&r.parse(o),l=r.space||"rgba";return a?(s=n[l](a),n[c[l].cache]=s[c[l].cache],i=n._rgba=s._rgba,!1):void 0}),i.length?("0,0,0,0"===i.join()&&t.extend(i,s.transparent),n):s[e]}function r(t,e,n){return n=(n+1)%1,1>6*n?t+(e-t)*n*6:1>2*n?e:2>3*n?t+(e-t)*(2/3-n)*6:t}var s,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",a=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],u=t.Color=function(e,n,i,r){return new t.Color.fn.parse(e,n,i,r)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},h={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=u.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),u.fn=t.extend(u.prototype,{parse:function(r,o,a,l){if(r===e)return this._rgba=[null,null,null,null],this;(r.jquery||r.nodeType)&&(r=t(r).css(o),o=e);var h=this,d=t.type(r),p=this._rgba=[];return o!==e&&(r=[r,o,a,l],d="array"),"string"===d?this.parse(i(r)||s._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=n(r[e.idx],e)}),this):"object"===d?(r instanceof u?f(c,function(t,e){r[e.cache]&&(h[e.cache]=r[e.cache].slice())}):f(c,function(e,i){var s=i.cache;f(i.props,function(t,e){if(!h[s]&&i.to){if("alpha"===t||null==r[t])return;h[s]=i.to(h._rgba)}h[s][e.idx]=n(r[t],e,!0)}),h[s]&&t.inArray(null,h[s].slice(0,3))<0&&(h[s][3]=1,i.from&&(h._rgba=i.from(h[s])))}),this):void 0},is:function(t){var e=u(t),n=!0,i=this;return f(c,function(t,r){var s,o=e[r.cache];return o&&(s=i[r.cache]||r.to&&r.to(i._rgba)||[],f(r.props,function(t,e){return null!=o[e.idx]?n=o[e.idx]===s[e.idx]:void 0})),n}),n},_space:function(){var t=[],e=this;return f(c,function(n,i){e[i.cache]&&t.push(n)}),t.pop()},transition:function(t,e){var i=u(t),r=i._space(),s=c[r],o=0===this.alpha()?u("transparent"):this,a=o[s.cache]||s.to(o._rgba),l=a.slice();return i=i[s.cache],f(s.props,function(t,r){var s=r.idx,o=a[s],u=i[s],c=h[r.type]||{};null!==u&&(null===o?l[s]=u:(c.mod&&(u-o>c.mod/2?o+=c.mod:o-u>c.mod/2&&(o-=c.mod)),l[s]=n((u-o)*e+o,r)))}),this[r](l)},blend:function(e){if(1===this._rgba[3])return this;var n=this._rgba.slice(),i=n.pop(),r=u(e)._rgba;return u(t.map(n,function(t,e){return(1-i)*r[e]+i*t}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===n[3]&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===n[3]&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),i=n.pop();return e&&n.push(~~(255*i)),"#"+t.map(n,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),u.fn.parse.prototype=u.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,n,i=t[0]/255,r=t[1]/255,s=t[2]/255,o=t[3],a=Math.max(i,r,s),l=Math.min(i,r,s),u=a-l,c=a+l,h=.5*c;return e=l===a?0:i===a?60*(r-s)/u+360:r===a?60*(s-i)/u+120:60*(i-r)/u+240,n=0===u?0:.5>=h?u/c:u/(2-c),[Math.round(e)%360,n,h,null==o?1:o]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,n=t[1],i=t[2],s=t[3],o=.5>=i?i*(1+n):i+n-i*n,a=2*i-o;return[Math.round(255*r(a,o,e+1/3)),Math.round(255*r(a,o,e)),Math.round(255*r(a,o,e-1/3)),s]},f(c,function(i,r){var s=r.props,o=r.cache,l=r.to,c=r.from;u.fn[i]=function(i){if(l&&!this[o]&&(this[o]=l(this._rgba)),i===e)return this[o].slice();var r,a=t.type(i),h="array"===a||"object"===a?i:arguments,d=this[o].slice();return f(s,function(t,e){var i=h["object"===a?t:e.idx];null==i&&(i=d[e.idx]),d[e.idx]=n(i,e)}),c?(r=u(c(d)),r[o]=d,r):u(d)},f(s,function(e,n){u.fn[e]||(u.fn[e]=function(r){var s,o=t.type(r),l="alpha"===e?this._hsla?"hsla":"rgba":i,u=this[l](),c=u[n.idx];return"undefined"===o?c:("function"===o&&(r=r.call(this,c),o=t.type(r)),null==r&&n.empty?this:("string"===o&&(s=a.exec(r),s&&(r=c+parseFloat(s[2])*("+"===s[1]?1:-1))),u[n.idx]=r,this[l](u)))})})}),u.hook=function(e){var n=e.split(" ");f(n,function(e,n){t.cssHooks[n]={set:function(e,r){var s,o,a="";if("transparent"!==r&&("string"!==t.type(r)||(s=i(r)))){if(r=u(s||r),!d.rgba&&1!==r._rgba[3]){for(o="backgroundColor"===n?e.parentNode:e;(""===a||"transparent"===a)&&o&&o.style;)try{a=t.css(o,"backgroundColor"),o=o.parentNode}catch(l){}r=r.blend(a&&"transparent"!==a?a:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=u(e.elem,n),e.end=u(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}})},u.hook(o),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(n,i){e["border"+i+"Color"]=t}),e}},s=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(y),function(){function e(e){var n,i,r=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,s={};if(r&&r.length&&r[0]&&r[r[0]])for(i=r.length;i--;)n=r[i],"string"==typeof r[n]&&(s[t.camelCase(n)]=r[n]);else for(n in r)"string"==typeof r[n]&&(s[n]=r[n]);return s}function n(e,n){var i,s,o={};for(i in n)s=n[i],e[i]!==s&&(r[i]||(t.fx.step[i]||!isNaN(parseFloat(s)))&&(o[i]=s));return o}var i=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,n){t.fx.step[n]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(y.style(t.elem,n,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(r,s,o,a){var l=t.speed(s,o,a);return this.queue(function(){var s,o=t(this),a=o.attr("class")||"",u=l.children?o.find("*").addBack():o;u=u.map(function(){var n=t(this);return{el:n,start:e(this)}}),s=function(){t.each(i,function(t,e){r[e]&&o[e+"Class"](r[e])})},s(),u=u.map(function(){return this.end=e(this.el[0]),this.diff=n(this.start,this.end),this}),o.attr("class",a),u=u.map(function(){var e=this,n=t.Deferred(),i=t.extend({},l,{queue:!1,complete:function(){n.resolve(e)}});return this.el.animate(this.diff,i),n.promise()}),t.when.apply(t,u.get()).done(function(){s(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(o[0])})})},t.fn.extend({addClass:function(e){return function(n,i,r,s){return i?t.effects.animateClass.call(this,{add:n},i,r,s):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(n,i,r,s){return arguments.length>1?t.effects.animateClass.call(this,{remove:n},i,r,s):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(n,i,r,s,o){return"boolean"==typeof i||void 0===i?r?t.effects.animateClass.call(this,i?{add:n}:{remove:n},r,s,o):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:n},i,r,s)}}(t.fn.toggleClass),switchClass:function(e,n,i,r,s){return t.effects.animateClass.call(this,{add:n,remove:e},i,r,s)}})}(),function(){function e(e,n,i,r){return t.isPlainObject(e)&&(n=e,e=e.effect),e={effect:e},null==n&&(n={}),t.isFunction(n)&&(r=n,i=null,n={}),("number"==typeof n||t.fx.speeds[n])&&(r=i,i=n,n={}),t.isFunction(i)&&(r=i,i=null),n&&t.extend(e,n),i=i||n.duration,e.duration=t.fx.off?0:"number"==typeof i?i:i in t.fx.speeds?t.fx.speeds[i]:t.fx.speeds._default,e.complete=r||n.complete,e}function n(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}t.extend(t.effects,{version:"1.11.4",save:function(t,e){for(var n=0;n<e.length;n++)null!==e[n]&&t.data(b+e[n],t[0].style[e[n]])},restore:function(t,e){var n,i;for(i=0;i<e.length;i++)null!==e[i]&&(n=t.data(b+e[i]),void 0===n&&(n=""),t.css(e[i],n))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var n,i;switch(t[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=t[0]/e.height}switch(t[1]){case"left":i=0;break;case"center":i=.5;break;case"right":i=1;break;default:i=t[1]/e.width}return{x:i,y:n}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var n={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},i=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),r={width:e.width(),height:e.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return e.wrap(i),(e[0]===s||t.contains(e[0],s))&&t(s).focus(),i=e.parent(),"static"===e.css("position")?(i.css({position:"relative"}),e.css({position:"relative"})):(t.extend(n,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,i){n[i]=e.css(i),isNaN(parseInt(n[i],10))&&(n[i]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(r),i.css(n).show()},removeWrapper:function(e){var n=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===n||t.contains(e[0],n))&&t(n).focus()),e},setTransition:function(e,n,i,r){return r=r||{},t.each(n,function(t,n){var s=e.cssUnit(n);s[0]>0&&(r[n]=s[0]*i+s[1])}),r}}),t.fn.extend({effect:function(){function n(e){function n(){t.isFunction(s)&&s.call(r[0]),t.isFunction(e)&&e()}var r=t(this),s=i.complete,a=i.mode;(r.is(":hidden")?"hide"===a:"show"===a)?(r[a](),n()):o.call(r[0],i,n)}var i=e.apply(this,arguments),r=i.mode,s=i.queue,o=t.effects.effect[i.effect];return t.fx.off||!o?r?this[r](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):s===!1?this.each(n):this.queue(s||"fx",n)},show:function(t){return function(i){if(n(i))return t.apply(this,arguments);var r=e.apply(this,arguments);return r.mode="show",this.effect.call(this,r)}}(t.fn.show),hide:function(t){return function(i){if(n(i))return t.apply(this,arguments);var r=e.apply(this,arguments);return r.mode="hide",this.effect.call(this,r)}}(t.fn.hide),toggle:function(t){return function(i){if(n(i)||"boolean"==typeof i)return t.apply(this,arguments);var r=e.apply(this,arguments);return r.mode="toggle",this.effect.call(this,r)}}(t.fn.toggle),cssUnit:function(e){var n=this.css(e),i=[];return t.each(["em","px","%","pt"],function(t,e){n.indexOf(e)>0&&(i=[parseFloat(n),e])}),i}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,n){e[n]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,n=4;t<((e=Math.pow(2,--n))-1)/11;);return 1/Math.pow(4,3-n)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,n){t.easing["easeIn"+e]=n,t.easing["easeOut"+e]=function(t){return 1-n(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?n(2*t)/2:1-n(-2*t+2)/2}})}();t.effects,t.effects.effect.blind=function(e,n){var i,r,s,o=t(this),a=/up|down|vertical/,l=/up|left|vertical|horizontal/,u=["position","top","bottom","left","right","height","width"],c=t.effects.setMode(o,e.mode||"hide"),h=e.direction||"up",d=a.test(h),p=d?"height":"width",f=d?"top":"left",m=l.test(h),g={},v="show"===c;o.parent().is(".ui-effects-wrapper")?t.effects.save(o.parent(),u):t.effects.save(o,u),o.show(),i=t.effects.createWrapper(o).css({overflow:"hidden"}),r=i[p](),s=parseFloat(i.css(f))||0,g[p]=v?r:0,m||(o.css(d?"bottom":"right",0).css(d?"top":"left","auto").css({position:"absolute"}),g[f]=v?s:r+s),v&&(i.css(p,0),m||i.css(f,s+r)),i.animate(g,{duration:e.duration,easing:e.easing,queue:!1,complete:function(){"hide"===c&&o.hide(),t.effects.restore(o,u),t.effects.removeWrapper(o),n()}})},t.effects.effect.bounce=function(e,n){var i,r,s,o=t(this),a=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"effect"),u="hide"===l,c="show"===l,h=e.direction||"up",d=e.distance,p=e.times||5,f=2*p+(c||u?1:0),m=e.duration/f,g=e.easing,v="up"===h||"down"===h?"top":"left",b="up"===h||"left"===h,y=o.queue(),$=y.length;for((c||u)&&a.push("opacity"),t.effects.save(o,a),o.show(),t.effects.createWrapper(o),d||(d=o["top"===v?"outerHeight":"outerWidth"]()/3),c&&(s={opacity:1},s[v]=0,o.css("opacity",0).css(v,b?2*-d:2*d).animate(s,m,g)),u&&(d/=Math.pow(2,p-1)),s={},s[v]=0,i=0;p>i;i++)r={},r[v]=(b?"-=":"+=")+d,o.animate(r,m,g).animate(s,m,g),d=u?2*d:d/2;u&&(r={opacity:0},r[v]=(b?"-=":"+=")+d,o.animate(r,m,g)),o.queue(function(){u&&o.hide(),t.effects.restore(o,a),t.effects.removeWrapper(o),n()}),$>1&&y.splice.apply(y,[1,0].concat(y.splice($,f+1))),o.dequeue()},t.effects.effect.clip=function(e,n){var i,r,s,o=t(this),a=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"hide"),u="show"===l,c=e.direction||"vertical",h="vertical"===c,d=h?"height":"width",p=h?"top":"left",f={};t.effects.save(o,a),o.show(),i=t.effects.createWrapper(o).css({overflow:"hidden"}),r="IMG"===o[0].tagName?i:o,s=r[d](),u&&(r.css(d,0),r.css(p,s/2)),f[d]=u?s:0,f[p]=u?0:s/2,r.animate(f,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){u||o.hide(),t.effects.restore(o,a),t.effects.removeWrapper(o),n()}})},t.effects.effect.drop=function(e,n){var i,r=t(this),s=["position","top","bottom","left","right","opacity","height","width"],o=t.effects.setMode(r,e.mode||"hide"),a="show"===o,l=e.direction||"left",u="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l?"pos":"neg",h={opacity:a?1:0};t.effects.save(r,s),r.show(),t.effects.createWrapper(r),i=e.distance||r["top"===u?"outerHeight":"outerWidth"](!0)/2,a&&r.css("opacity",0).css(u,"pos"===c?-i:i),h[u]=(a?"pos"===c?"+=":"-=":"pos"===c?"-=":"+=")+i,r.animate(h,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&r.hide(),t.effects.restore(r,s),t.effects.removeWrapper(r),n()}})},t.effects.effect.explode=function(e,n){function i(){y.push(this),y.length===h*d&&r()}function r(){p.css({visibility:"visible"}),t(y).remove(),m||p.hide(),n()}var s,o,a,l,u,c,h=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=h,p=t(this),f=t.effects.setMode(p,e.mode||"hide"),m="show"===f,g=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/d),b=Math.ceil(p.outerHeight()/h),y=[];for(s=0;h>s;s++)for(l=g.top+s*b,c=s-(h-1)/2,o=0;d>o;o++)a=g.left+o*v,u=o-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-o*v,top:-s*b}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:b,left:a+(m?u*v:0),top:l+(m?c*b:0),opacity:m?0:1}).animate({left:a+(m?0:u*v),top:l+(m?0:c*b),opacity:m?1:0},e.duration||500,e.easing,i)},t.effects.effect.fade=function(e,n){var i=t(this),r=t.effects.setMode(i,e.mode||"toggle");i.animate({opacity:r},{queue:!1,duration:e.duration,easing:e.easing,complete:n})},t.effects.effect.fold=function(e,n){var i,r,s=t(this),o=["position","top","bottom","left","right","height","width"],a=t.effects.setMode(s,e.mode||"hide"),l="show"===a,u="hide"===a,c=e.size||15,h=/([0-9]+)%/.exec(c),d=!!e.horizFirst,p=l!==d,f=p?["width","height"]:["height","width"],m=e.duration/2,g={},v={};t.effects.save(s,o),s.show(),i=t.effects.createWrapper(s).css({overflow:"hidden"}),r=p?[i.width(),i.height()]:[i.height(),i.width()],h&&(c=parseInt(h[1],10)/100*r[u?0:1]),l&&i.css(d?{height:0,width:c}:{height:c,width:0}),g[f[0]]=l?r[0]:c,v[f[1]]=l?r[1]:0,i.animate(g,m,e.easing).animate(v,m,e.easing,function(){u&&s.hide(),t.effects.restore(s,o),t.effects.removeWrapper(s),n()})},t.effects.effect.highlight=function(e,n){var i=t(this),r=["backgroundImage","backgroundColor","opacity"],s=t.effects.setMode(i,e.mode||"show"),o={backgroundColor:i.css("backgroundColor")};"hide"===s&&(o.opacity=0),t.effects.save(i,r),i.show().css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(o,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===s&&i.hide(),t.effects.restore(i,r),n()}})},t.effects.effect.size=function(e,n){var i,r,s,o=t(this),a=["position","top","bottom","left","right","width","height","overflow","opacity"],l=["position","top","bottom","left","right","overflow","opacity"],u=["width","height","overflow"],c=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],d=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=t.effects.setMode(o,e.mode||"effect"),f=e.restore||"effect"!==p,m=e.scale||"both",g=e.origin||["middle","center"],v=o.css("position"),b=f?a:l,y={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),i={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===e.mode&&"show"===p?(o.from=e.to||y,o.to=e.from||i):(o.from=e.from||("show"===p?y:i),o.to=e.to||("hide"===p?y:i)),s={from:{y:o.from.height/i.height,x:o.from.width/i.width},to:{y:o.to.height/i.height,x:o.to.width/i.width}},("box"===m||"both"===m)&&(s.from.y!==s.to.y&&(b=b.concat(h),o.from=t.effects.setTransition(o,h,s.from.y,o.from),o.to=t.effects.setTransition(o,h,s.to.y,o.to)),s.from.x!==s.to.x&&(b=b.concat(d),o.from=t.effects.setTransition(o,d,s.from.x,o.from),o.to=t.effects.setTransition(o,d,s.to.x,o.to))),("content"===m||"both"===m)&&s.from.y!==s.to.y&&(b=b.concat(c).concat(u),o.from=t.effects.setTransition(o,c,s.from.y,o.from),o.to=t.effects.setTransition(o,c,s.to.y,o.to)),t.effects.save(o,b),o.show(),t.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),g&&(r=t.effects.getBaseline(g,i),o.from.top=(i.outerHeight-o.outerHeight())*r.y,o.from.left=(i.outerWidth-o.outerWidth())*r.x,o.to.top=(i.outerHeight-o.to.outerHeight)*r.y,o.to.left=(i.outerWidth-o.to.outerWidth)*r.x),o.css(o.from),("content"===m||"both"===m)&&(h=h.concat(["marginTop","marginBottom"]).concat(c),d=d.concat(["marginLeft","marginRight"]),u=a.concat(h).concat(d),o.find("*[width]").each(function(){var n=t(this),i={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};f&&t.effects.save(n,u),n.from={height:i.height*s.from.y,width:i.width*s.from.x,outerHeight:i.outerHeight*s.from.y,outerWidth:i.outerWidth*s.from.x},n.to={height:i.height*s.to.y,width:i.width*s.to.x,outerHeight:i.height*s.to.y,outerWidth:i.width*s.to.x},s.from.y!==s.to.y&&(n.from=t.effects.setTransition(n,h,s.from.y,n.from),n.to=t.effects.setTransition(n,h,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=t.effects.setTransition(n,d,s.from.x,n.from),n.to=t.effects.setTransition(n,d,s.to.x,n.to)),n.css(n.from),n.animate(n.to,e.duration,e.easing,function(){f&&t.effects.restore(n,u)})})),o.animate(o.to,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),t.effects.restore(o,b),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):t.each(["top","left"],function(t,e){o.css(e,function(e,n){var i=parseInt(n,10),r=t?o.to.left:o.to.top;return"auto"===n?r+"px":i+r+"px"})})),t.effects.removeWrapper(o),n()}})},t.effects.effect.scale=function(e,n){var i=t(this),r=t.extend(!0,{},e),s=t.effects.setMode(i,e.mode||"effect"),o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"hide"===s?0:100),a=e.direction||"both",l=e.origin,u={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()},c={y:"horizontal"!==a?o/100:1,x:"vertical"!==a?o/100:1};r.effect="size",r.queue=!1,r.complete=n,"effect"!==s&&(r.origin=l||["middle","center"],r.restore=!0),r.from=e.from||("show"===s?{height:0,width:0,outerHeight:0,outerWidth:0}:u),r.to={height:u.height*c.y,width:u.width*c.x,outerHeight:u.outerHeight*c.y,outerWidth:u.outerWidth*c.x},r.fade&&("show"===s&&(r.from.opacity=0,r.to.opacity=1),"hide"===s&&(r.from.opacity=1,r.to.opacity=0)),i.effect(r)},t.effects.effect.puff=function(e,n){var i=t(this),r=t.effects.setMode(i,e.mode||"hide"),s="hide"===r,o=parseInt(e.percent,10)||150,a=o/100,l={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};t.extend(e,{effect:"scale",queue:!1,fade:!0,mode:r,complete:n,percent:s?o:100,from:s?l:{height:l.height*a,width:l.width*a,outerHeight:l.outerHeight*a,outerWidth:l.outerWidth*a}}),i.effect(e)},t.effects.effect.pulsate=function(e,n){var i,r=t(this),s=t.effects.setMode(r,e.mode||"show"),o="show"===s,a="hide"===s,l=o||"hide"===s,u=2*(e.times||5)+(l?1:0),c=e.duration/u,h=0,d=r.queue(),p=d.length;for((o||!r.is(":visible"))&&(r.css("opacity",0).show(),h=1),i=1;u>i;i++)r.animate({opacity:h},c,e.easing),h=1-h;r.animate({opacity:h},c,e.easing),r.queue(function(){a&&r.hide(),n()}),p>1&&d.splice.apply(d,[1,0].concat(d.splice(p,u+1))),r.dequeue()},t.effects.effect.shake=function(e,n){var i,r=t(this),s=["position","top","bottom","left","right","height","width"],o=t.effects.setMode(r,e.mode||"effect"),a=e.direction||"left",l=e.distance||20,u=e.times||3,c=2*u+1,h=Math.round(e.duration/c),d="up"===a||"down"===a?"top":"left",p="up"===a||"left"===a,f={},m={},g={},v=r.queue(),b=v.length;for(t.effects.save(r,s),r.show(),t.effects.createWrapper(r),f[d]=(p?"-=":"+=")+l,m[d]=(p?"+=":"-=")+2*l,g[d]=(p?"-=":"+=")+2*l,r.animate(f,h,e.easing),i=1;u>i;i++)r.animate(m,h,e.easing).animate(g,h,e.easing);r.animate(m,h,e.easing).animate(f,h/2,e.easing).queue(function(){"hide"===o&&r.hide(),t.effects.restore(r,s),t.effects.removeWrapper(r),n()}),b>1&&v.splice.apply(v,[1,0].concat(v.splice(b,c+1))),r.dequeue()},t.effects.effect.slide=function(e,n){var i,r=t(this),s=["position","top","bottom","left","right","width","height"],o=t.effects.setMode(r,e.mode||"show"),a="show"===o,l=e.direction||"left",u="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l,h={};t.effects.save(r,s),r.show(),i=e.distance||r["top"===u?"outerHeight":"outerWidth"](!0),t.effects.createWrapper(r).css({overflow:"hidden"}),a&&r.css(u,c?isNaN(i)?"-"+i:-i:i),h[u]=(a?c?"+=":"-=":c?"-=":"+=")+i,r.animate(h,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&r.hide(),t.effects.restore(r,s),t.effects.removeWrapper(r),n()}})},t.effects.effect.transfer=function(e,n){var i=t(this),r=t(e.to),s="fixed"===r.css("position"),o=t("body"),a=s?o.scrollTop():0,l=s?o.scrollLeft():0,u=r.offset(),c={top:u.top-a,left:u.left-l,height:r.innerHeight(),width:r.innerWidth()},h=i.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(e.className).css({top:h.top-a,left:h.left-l,height:i.innerHeight(),width:i.innerWidth(),position:s?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),n()})},t.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=t("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),void this._refreshValue())},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this._super(t,e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,n=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(n.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e,n=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e=t(n.options.filter,n.element[0]),e.addClass("ui-selectee"),e.each(function(){var e=t(this),n=e.offset();t.data(this,"selectable-item",{element:this,$element:e,left:n.left,top:n.top,right:n.left+e.outerWidth(),bottom:n.top+e.outerHeight(),startselected:!1,selected:e.hasClass("ui-selected"),selecting:e.hasClass("ui-selecting"),unselecting:e.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=e.addClass("ui-selectee"),this._mouseInit(),this.helper=t("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(e){var n=this,i=this.options;this.opos=[e.pageX,e.pageY],this.options.disabled||(this.selectees=t(i.filter,this.element[0]),this._trigger("start",e),t(i.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),i.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var i=t.data(this,"selectable-item");i.startselected=!0,e.metaKey||e.ctrlKey||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,n._trigger("unselecting",e,{unselecting:i.element}))}),t(e.target).parents().addBack().each(function(){var i,r=t.data(this,"selectable-item");return r?(i=!e.metaKey&&!e.ctrlKey||!r.$element.hasClass("ui-selected"),r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",e,{selecting:r.element}):n._trigger("unselecting",e,{unselecting:r.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var n,i=this,r=this.options,s=this.opos[0],o=this.opos[1],a=e.pageX,l=e.pageY;return s>a&&(n=a,a=s,s=n),o>l&&(n=l,l=o,o=n),this.helper.css({left:s,top:o,width:a-s,height:l-o}),this.selectees.each(function(){var n=t.data(this,"selectable-item"),u=!1;n&&n.element!==i.element[0]&&("touch"===r.tolerance?u=!(n.left>a||n.right<s||n.top>l||n.bottom<o):"fit"===r.tolerance&&(u=n.left>s&&n.right<a&&n.top>o&&n.bottom<l),u?(n.selected&&(n.$element.removeClass("ui-selected"),n.selected=!1),n.unselecting&&(n.$element.removeClass("ui-unselecting"),n.unselecting=!1),n.selecting||(n.$element.addClass("ui-selecting"),n.selecting=!0,i._trigger("selecting",e,{selecting:n.element}))):(n.selecting&&((e.metaKey||e.ctrlKey)&&n.startselected?(n.$element.removeClass("ui-selecting"),n.selecting=!1,n.$element.addClass("ui-selected"),n.selected=!0):(n.$element.removeClass("ui-selecting"),n.selecting=!1,n.startselected&&(n.$element.addClass("ui-unselecting"),n.unselecting=!0),i._trigger("unselecting",e,{unselecting:n.element}))),n.selected&&(e.metaKey||e.ctrlKey||n.startselected||(n.$element.removeClass("ui-selected"),
+n.selected=!1,n.$element.addClass("ui-unselecting"),n.unselecting=!0,i._trigger("unselecting",e,{unselecting:n.element})))))}),!1}},_mouseStop:function(e){var n=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var i=t.data(this,"selectable-item");i.$element.removeClass("ui-unselecting"),i.unselecting=!1,i.startselected=!1,n._trigger("unselected",e,{unselected:i.element})}),t(".ui-selecting",this.element[0]).each(function(){var i=t.data(this,"selectable-item");i.$element.removeClass("ui-selecting").addClass("ui-selected"),i.selecting=!1,i.selected=!0,i.startselected=!0,n._trigger("selected",e,{selected:i.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var e=this;this.label=t("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),t("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=t("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){e.menuItems||e._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(t,n){t.preventDefault(),e._setSelection(),e._select(n.item.data("ui-selectmenu-item"),t)},focus:function(t,n){var i=n.item.data("ui-selectmenu-item");null!=e.focusIndex&&i.index!==e.focusIndex&&(e._trigger("focus",t,{item:i}),e.isOpen||e._select(i,t)),e.focusIndex=i.index,e.button.attr("aria-activedescendant",e.menuItems.eq(i.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var t,e=this.element.find("option");e.length&&(this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(e,n){var i=this,r="";t.each(n,function(n,s){s.optgroup!==r&&(t("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(s.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:s.optgroup}).appendTo(e),r=s.optgroup),i._renderItemData(e,s)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,n){var i=t("<li>");return n.disabled&&i.addClass("ui-state-disabled"),this._setText(i,n.label),i.appendTo(e)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var n,i,r=".ui-menu-item";this.isOpen?n=this.menuItems.eq(this.focusIndex):(n=this.menuItems.eq(this.element[0].selectedIndex),r+=":not(.ui-state-disabled)"),i="first"===t||"last"===t?n["first"===t?"prevAll":"nextAll"](r).eq(-1):n[t+"All"](r).eq(0),i.length&&this.menuInstance.focus(e,i)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var n=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),n=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),n=!1}n&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex);e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var n=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this._setText(this.buttonText,t.label),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==n&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){"icons"===t&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(e.button),this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"disabled"===t&&(this.menuInstance.option("disabled",e),this.button.toggleClass("ui-state-disabled",e).attr("aria-disabled",e),this.element.prop("disabled",e),e?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===t&&this._resizeButton()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;t||(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(e){var n=[];e.each(function(e,i){var r=t(i),s=r.parent("optgroup");n.push({element:r,index:e,value:r.val(),label:r.text(),optgroup:s.attr("label")||"",disabled:s.prop("disabled")||r.prop("disabled")})}),this.items=n},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),t.widget("ui.slider",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,n,i=this.options,r=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),s="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",o=[];for(n=i.values&&i.values.length||1,r.length>n&&(r.slice(n).remove(),r=r.slice(0,n)),e=r.length;n>e;e++)o.push(s);this.handles=r.add(t(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options,n="";e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=t("<div></div>").appendTo(this.element),n="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(n+("min"===e.range||"max"===e.range?" ui-slider-range-"+e.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(e){var n,i,r,s,o,a,l,u,c=this,h=this.options;return h.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),n={x:e.pageX,y:e.pageY},i=this._normValueFromMouse(n),r=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var n=Math.abs(i-c.values(e));(r>n||r===n&&(e===c._lastChangedValue||c.values(e)===h.min))&&(r=n,s=t(this),o=e)}),a=this._start(e,o),a===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),l=s.offset(),u=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=u?{left:0,top:0}:{left:e.pageX-l.left-s.width()/2,top:e.pageY-l.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,o,i),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},n=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,n),!1},_mouseStop:function(t){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,n,i,r,s;return"horizontal"===this.orientation?(e=this.elementSize.width,n=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,n=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),i=n/e,i>1&&(i=1),0>i&&(i=0),"vertical"===this.orientation&&(i=1-i),r=this._valueMax()-this._valueMin(),s=this._valueMin()+i*r,this._trimAlignValue(s)},_start:function(t,e){var n={handle:this.handles[e],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(e),n.values=this.values()),this._trigger("start",t,n)},_slide:function(t,e,n){var i,r,s;this.options.values&&this.options.values.length?(i=this.values(e?0:1),2===this.options.values.length&&this.options.range===!0&&(0===e&&n>i||1===e&&i>n)&&(n=i),n!==this.values(e)&&(r=this.values(),r[e]=n,s=this._trigger("slide",t,{handle:this.handles[e],value:n,values:r}),i=this.values(e?0:1),s!==!1&&this.values(e,n))):n!==this.value()&&(s=this._trigger("slide",t,{handle:this.handles[e],value:n}),s!==!1&&this.value(n))},_stop:function(t,e){var n={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(e),n.values=this.values()),this._trigger("stop",t,n)},_change:function(t,e){if(!this._keySliding&&!this._mouseSliding){var n={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(e),n.values=this.values()),this._lastChangedValue=e,this._trigger("change",t,n)}},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),void this._change(null,0)):this._value()},values:function(e,n){var i,r,s;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(n),this._refreshValue(),void this._change(null,e);if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(e):this.value();for(i=this.options.values,r=arguments[0],s=0;s<i.length;s+=1)i[s]=this._trimAlignValue(r[s]),this._change(null,s);this._refreshValue()},_setOption:function(e,n){var i,r=0;switch("range"===e&&this.options.range===!0&&("min"===n?(this.options.value=this._values(0),this.options.values=null):"max"===n&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(r=this.options.values.length),"disabled"===e&&this.element.toggleClass("ui-state-disabled",!!n),this._super(e,n),e){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===n?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),i=0;r>i;i+=1)this._change(null,i);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,n,i;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this.options.values&&this.options.values.length){for(n=this.options.values.slice(),i=0;i<n.length;i+=1)n[i]=this._trimAlignValue(n[i]);return n}return[]},_trimAlignValue:function(t){if(t<=this._valueMin())return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,n=(t-this._valueMin())%e,i=t-n;return 2*Math.abs(n)>=e&&(i+=n>0?e:-e),parseFloat(i.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),n=this.options.step,i=Math.floor(+(t-e).toFixed(this._precision())/n)*n;t=i+e,this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=t.toString(),n=e.indexOf(".");return-1===n?0:e.length-n-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var e,n,i,r,s,o=this.options.range,a=this.options,l=this,u=this._animateOff?!1:a.animate,c={};this.options.values&&this.options.values.length?this.handles.each(function(i){n=(l.values(i)-l._valueMin())/(l._valueMax()-l._valueMin())*100,c["horizontal"===l.orientation?"left":"bottom"]=n+"%",t(this).stop(1,1)[u?"animate":"css"](c,a.animate),l.options.range===!0&&("horizontal"===l.orientation?(0===i&&l.range.stop(1,1)[u?"animate":"css"]({left:n+"%"},a.animate),1===i&&l.range[u?"animate":"css"]({width:n-e+"%"},{queue:!1,duration:a.animate})):(0===i&&l.range.stop(1,1)[u?"animate":"css"]({bottom:n+"%"},a.animate),1===i&&l.range[u?"animate":"css"]({height:n-e+"%"},{queue:!1,duration:a.animate}))),e=n}):(i=this.value(),r=this._valueMin(),s=this._valueMax(),n=s!==r?(i-r)/(s-r)*100:0,c["horizontal"===this.orientation?"left":"bottom"]=n+"%",this.handle.stop(1,1)[u?"animate":"css"](c,a.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({width:n+"%"},a.animate),"max"===o&&"horizontal"===this.orientation&&this.range[u?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:a.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[u?"animate":"css"]({height:n+"%"},a.animate),"max"===o&&"vertical"===this.orientation&&this.range[u?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:a.animate}))},_handleEvents:{keydown:function(e){var n,i,r,s,o=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,t(e.target).addClass("ui-state-active"),n=this._start(e,o),n===!1))return}switch(s=this.options.step,i=r=this.options.values&&this.options.values.length?this.values(o):this.value(),e.keyCode){case t.ui.keyCode.HOME:r=this._valueMin();break;case t.ui.keyCode.END:r=this._valueMax();break;case t.ui.keyCode.PAGE_UP:r=this._trimAlignValue(i+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:r=this._trimAlignValue(i-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(i===this._valueMax())return;r=this._trimAlignValue(i+s);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(i===this._valueMin())return;r=this._trimAlignValue(i-s)}this._slide(e,o,r)},keyup:function(e){var n=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,n),this._change(e,n),t(e.target).removeClass("ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,n){return t>=e&&e+n>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),t.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,n){var i=null,r=!1,s=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,s.widgetName+"-item")===s?(i=t(this),!1):void 0}),t.data(e.target,s.widgetName+"-item")===s&&(i=t(e.target)),i&&(!this.options.handle||n||(t(this.options.handle,i).find("*").addBack().each(function(){this===e.target&&(r=!0)}),r))?(this.currentItem=i,this._removeCurrentsFromItems(),!0):!1)},_mouseStart:function(e,n,i){var r,s,o=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(s=this.document.find("body"),this.storedCursor=s.css("cursor"),s.css("cursor",o.cursor),this.storedStylesheet=t("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(s)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(r=this.containers.length-1;r>=0;r--)this.containers[r]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var n,i,r,s,o=this.options,a=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop+o.scrollSpeed:e.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft+o.scrollSpeed:e.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(e.pageY-this.document.scrollTop()<o.scrollSensitivity?a=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<o.scrollSensitivity&&(a=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)),e.pageX-this.document.scrollLeft()<o.scrollSensitivity?a=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<o.scrollSensitivity&&(a=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed))),a!==!1&&t.ui.ddmanager&&!o.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),n=this.items.length-1;n>=0;n--)if(i=this.items[n],r=i.item[0],s=this._intersectsWithPointer(i),s&&i.instance===this.currentContainer&&r!==this.currentItem[0]&&this.placeholder[1===s?"next":"prev"]()[0]!==r&&!t.contains(this.placeholder[0],r)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],r):!0)){if(this.direction=1===s?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(i))break;this._rearrange(e,i),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,n){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var i=this,r=this.placeholder.offset(),s=this.options.axis,o={};s&&"x"!==s||(o.left=r.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),s&&"y"!==s||(o.top=r.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){i._clear(e)})}else this._clear(e,n);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var n=this._getItemsAsjQuery(e&&e.connected),i=[];return e=e||{},t(n).each(function(){var n=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);n&&i.push((e.key||n[1]+"[]")+"="+(e.key&&e.expression?n[1]:n[2]))}),!i.length&&e.key&&i.push(e.key+"="),i.join("&")},toArray:function(e){var n=this._getItemsAsjQuery(e&&e.connected),i=[];return e=e||{},n.each(function(){i.push(t(e.item||this).attr(e.attribute||"id")||"")}),i},_intersectsWith:function(t){var e=this.positionAbs.left,n=e+this.helperProportions.width,i=this.positionAbs.top,r=i+this.helperProportions.height,s=t.left,o=s+t.width,a=t.top,l=a+t.height,u=this.offset.click.top,c=this.offset.click.left,h="x"===this.options.axis||i+u>a&&l>i+u,d="y"===this.options.axis||e+c>s&&o>e+c,p=h&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:s<e+this.helperProportions.width/2&&n-this.helperProportions.width/2<o&&a<i+this.helperProportions.height/2&&r-this.helperProportions.height/2<l},_intersectsWithPointer:function(t){var e="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),i=e&&n,r=this._getDragVerticalDirection(),s=this._getDragHorizontalDirection();return i?this.floating?s&&"right"===s||"down"===r?2:1:r&&("down"===r?2:1):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),n=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),i=this._getDragVerticalDirection(),r=this._getDragHorizontalDirection();return this.floating&&r?"right"===r&&n||"left"===r&&!n:i&&("down"===i&&e||"up"===i&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function n(){a.push(this)}var i,r,s,o,a=[],l=[],u=this._connectWith();if(u&&e)for(i=u.length-1;i>=0;i--)for(s=t(u[i],this.document[0]),r=s.length-1;r>=0;r--)o=t.data(s[r],this.widgetFullName),o&&o!==this&&!o.options.disabled&&l.push([t.isFunction(o.options.items)?o.options.items.call(o.element):t(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(l.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=l.length-1;i>=0;i--)l[i][0].each(n);return t(a)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var n=0;n<e.length;n++)if(e[n]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var n,i,r,s,o,a,l,u,c=this.items,h=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(n=d.length-1;n>=0;n--)for(r=t(d[n],this.document[0]),i=r.length-1;i>=0;i--)s=t.data(r[i],this.widgetFullName),s&&s!==this&&!s.options.disabled&&(h.push([t.isFunction(s.options.items)?s.options.items.call(s.element[0],e,{item:this.currentItem}):t(s.options.items,s.element),s]),this.containers.push(s));for(n=h.length-1;n>=0;n--)for(o=h[n][1],a=h[n][0],i=0,u=a.length;u>i;i++)l=t(a[i]),l.data(this.widgetName+"-item",o),c.push({item:l,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var n,i,r,s;for(n=this.items.length-1;n>=0;n--)i=this.items[n],i.instance!==this.currentContainer&&this.currentContainer&&i.item[0]!==this.currentItem[0]||(r=this.options.toleranceElement?t(this.options.toleranceElement,i.item):i.item,e||(i.width=r.outerWidth(),i.height=r.outerHeight()),s=r.offset(),i.left=s.left,i.top=s.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(n=this.containers.length-1;n>=0;n--)s=this.containers[n].element.offset(),
+this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var n,i=e.options;i.placeholder&&i.placeholder.constructor!==String||(n=i.placeholder,i.placeholder={element:function(){var i=e.currentItem[0].nodeName.toLowerCase(),r=t("<"+i+">",e.document[0]).addClass(n||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===i?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(r)):"tr"===i?e._createTrPlaceholder(e.currentItem,r):"img"===i&&r.attr("src",e.currentItem.attr("src")),n||r.css("visibility","hidden"),r},update:function(t,r){(!n||i.forcePlaceholderSize)&&(r.height()||r.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),r.width()||r.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(i.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),i.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,n){var i=this;e.children().each(function(){t("<td>&#160;</td>",i.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(n)})},_contactContainers:function(e){var n,i,r,s,o,a,l,u,c,h,d=null,p=null;for(n=this.containers.length-1;n>=0;n--)if(!t.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(d&&t.contains(this.containers[n].element[0],d.element[0]))continue;d=this.containers[n],p=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",e,this._uiHash(this)),this.containers[n].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(r=1e4,s=null,c=d.floating||this._isFloating(this.currentItem),o=c?"left":"top",a=c?"width":"height",h=c?"clientX":"clientY",i=this.items.length-1;i>=0;i--)t.contains(this.containers[p].element[0],this.items[i].item[0])&&this.items[i].item[0]!==this.currentItem[0]&&(l=this.items[i].item.offset()[o],u=!1,e[h]-l>this.items[i][a]/2&&(u=!0),Math.abs(e[h]-l)<r&&(r=Math.abs(e[h]-l),s=this.items[i],this.direction=u?"up":"down"));if(!s&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return void(this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1));s?this._rearrange(e,s,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var n=this.options,i=t.isFunction(n.helper)?t(n.helper.apply(this.element[0],[e,this.currentItem])):"clone"===n.helper?this.currentItem.clone():this.currentItem;return i.parents("body").length||t("parent"!==n.appendTo?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(i[0]),i[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!i[0].style.width||n.forceHelperSize)&&i.width(this.currentItem.width()),(!i[0].style.height||n.forceHelperSize)&&i.height(this.currentItem.height()),i},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,n,i,r=this.options;"parent"===r.containment&&(r.containment=this.helper[0].parentNode),("document"===r.containment||"window"===r.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===r.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===r.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(r.containment)||(e=t(r.containment)[0],n=t(r.containment).offset(),i="hidden"!==t(e).css("overflow"),this.containment=[n.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,n.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,n.left+(i?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,n.top+(i?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,n){n||(n=this.position);var i="absolute"===e?1:-1,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,s=/(html|body)/i.test(r[0].tagName);return{top:n.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():s?0:r.scrollTop())*i,left:n.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():s?0:r.scrollLeft())*i}},_generatePosition:function(e){var n,i,r=this.options,s=e.pageX,o=e.pageY,a="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(a[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(s=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(s=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),r.grid&&(n=this.originalPageY+Math.round((o-this.originalPageY)/r.grid[1])*r.grid[1],o=this.containment?n-this.offset.click.top>=this.containment[1]&&n-this.offset.click.top<=this.containment[3]?n:n-this.offset.click.top>=this.containment[1]?n-r.grid[1]:n+r.grid[1]:n,i=this.originalPageX+Math.round((s-this.originalPageX)/r.grid[0])*r.grid[0],s=this.containment?i-this.offset.click.left>=this.containment[0]&&i-this.offset.click.left<=this.containment[2]?i:i-this.offset.click.left>=this.containment[0]?i-r.grid[0]:i+r.grid[0]:i)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:a.scrollTop()),left:s-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:a.scrollLeft())}},_rearrange:function(t,e,n,i){n?n[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var r=this.counter;this._delay(function(){r===this.counter&&this.refreshPositions(!i)})},_clear:function(t,e){function n(t,e,n){return function(i){n._trigger(t,i,e._uiHash(e))}}this.reverting=!1;var i,r=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)("auto"===this._storedCSS[i]||"static"===this._storedCSS[i])&&(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&r.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||r.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(r.push(function(t){this._trigger("remove",t,this._uiHash())}),r.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),r.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)e||r.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i<r.length;i++)r[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var n=e||this;return{helper:n.helper,placeholder:n.placeholder||t([]),position:n.position,originalPosition:n.originalPosition,offset:n.positionAbs,item:n.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e={},n=this.element;return t.each(["min","max","step"],function(t,i){var r=n.attr(i);void 0!==r&&r.length&&(e[i]=r)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(this._stop(),this._refresh(),void(this.previous!==this.element.val()&&this._trigger("change",t)))},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function n(){var t=this.element[0]===this.document[0].activeElement;t||(this.element.focus(),this.previous=i,this._delay(function(){this.previous=i}))}var i;i=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),e.preventDefault(),n.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,n.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:void this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var t=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=t.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*t.height())&&t.height()>0&&t.height(t.height()),this.options.disabled&&this.disable()},_keydown:function(e){var n=this.options,i=t.ui.keyCode;switch(e.keyCode){case i.UP:return this._repeat(null,1,e),!0;case i.DOWN:return this._repeat(null,-1,e),!0;case i.PAGE_UP:return this._repeat(null,n.page,e),!0;case i.PAGE_DOWN:return this._repeat(null,-n.page,e),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon "+this.options.icons.down+"'>&#9660;</span></a>"},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,n){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,n)},t),this._spin(e*this.options.step,n)},_spin:function(t,e){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:n})===!1||(this._value(n),this.counter++)},_increment:function(e){var n=this.options.incremental;return n?t.isFunction(n)?n(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=t.toString(),n=e.indexOf(".");return-1===n?0:e.length-n-1},_adjustValue:function(t){var e,n,i=this.options;return e=null!==i.min?i.min:0,n=t-e,n=Math.round(n/i.step)*i.step,t=e+n,t=parseFloat(t.toFixed(this._precision())),null!==i.max&&t>i.max?i.max:null!==i.min&&t<i.min?i.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){if("culture"===t||"numberFormat"===t){var n=this._parse(this.element.val());return this.options[t]=e,void this.element.val(this._format(n))}("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(e.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(e.down)),this._super(t,e),"disabled"===t&&(this.widget().toggleClass("ui-state-disabled",!!e),this.element.prop("disabled",!!e),this.buttons.button(e?"disable":"enable"))},_setOptions:l(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var n;""!==t&&(n=this._parse(t),null!==n&&(e||(n=this._adjustValue(n)),t=this._format(n))),this.element.val(t),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:l(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:l(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:l(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:l(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?void l(this._value).call(this,t):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var n,i;e=e.cloneNode(!1),n=e.href.replace(t,""),i=location.href.replace(t,"");try{n=decodeURIComponent(n)}catch(r){}try{i=decodeURIComponent(i)}catch(r){}return e.hash.length>1&&n===i}}(),_create:function(){var e=this,n=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible),this._processTabs(),n.active=this._initialActive(),t.isArray(n.disabled)&&(n.disabled=t.unique(n.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(n.active):this.active=t(),this._refresh(),this.active.length&&this.load(n.active)},_initialActive:function(){var e=this.options.active,n=this.options.collapsible,i=location.hash.substring(1);return null===e&&(i&&this.tabs.each(function(n,r){return t(r).attr("aria-controls")===i?(e=n,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=n?!1:0)),!n&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var n=t(this.document[0].activeElement).closest("li"),i=this.tabs.index(n),r=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:i++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:r=!1,i--;break;case t.ui.keyCode.END:i=this.anchors.length-1;break;case t.ui.keyCode.HOME:i=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),void this._activate(i);case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),void this._activate(i===this.options.active?!1:i);default:return}e.preventDefault(),clearTimeout(this.activating),i=this._focusNextTab(i,r),e.ctrlKey||e.metaKey||(n.attr("aria-selected","false"),this.tabs.eq(i).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",i)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.focus())},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,n){function i(){return e>r&&(e=0),0>e&&(e=r),e}for(var r=this.tabs.length-1;-1!==t.inArray(i(),this.options.disabled);)e=n?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).focus(),t},_setOption:function(t,e){return"active"===t?void this._activate(e):"disabled"===t?void this._setupDisabled(e):(this._super(t,e),"collapsible"===t&&(this.element.toggleClass("ui-tabs-collapsible",e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),void("heightStyle"===t&&this._setupHeightStyle(e)))},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,n=this.tablist.children(":has(a[href])");e.disabled=t.map(n.filter(".ui-state-disabled"),function(t){return n.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,n=this.tabs,i=this.anchors,r=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=t(),this.anchors.each(function(n,i){var r,s,o,a=t(i).uniqueId().attr("id"),l=t(i).closest("li"),u=l.attr("aria-controls");e._isLocal(i)?(r=i.hash,o=r.substring(1),s=e.element.find(e._sanitizeSelector(r))):(o=l.attr("aria-controls")||t({}).uniqueId()[0].id,r="#"+o,s=e.element.find(r),s.length||(s=e._createPanel(o),s.insertAfter(e.panels[n-1]||e.tablist)),s.attr("aria-live","polite")),s.length&&(e.panels=e.panels.add(s)),u&&l.data("ui-tabs-aria-controls",u),l.attr({"aria-controls":o,"aria-labelledby":a}),s.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),n&&(this._off(n.not(this.tabs)),this._off(i.not(this.anchors)),this._off(r.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(e){t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1);for(var n,i=0;n=this.tabs[i];i++)e===!0||-1!==t.inArray(i,e)?t(n).addClass("ui-state-disabled").attr("aria-disabled","true"):t(n).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=e},_setupEvents:function(e){var n={};e&&t.each(e.split(" "),function(t,e){n[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var n,i=this.element.parent();"fill"===e?(n=i.height(),n-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),i=e.css("position");"absolute"!==i&&"fixed"!==i&&(n-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){n-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,n-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(n=0,this.panels.each(function(){n=Math.max(n,t(this).height("").height())}).height(n))},_eventHandler:function(e){var n=this.options,i=this.active,r=t(e.currentTarget),s=r.closest("li"),o=s[0]===i[0],a=o&&n.collapsible,l=a?t():this._getPanelForTab(s),u=i.length?this._getPanelForTab(i):t(),c={oldTab:i,oldPanel:u,newTab:a?t():s,newPanel:l};e.preventDefault(),s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",e,c)===!1||(n.active=a?!1:this.tabs.index(s),this.active=o?t():s,this.xhr&&this.xhr.abort(),u.length||l.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),l.length&&this.load(this.tabs.index(s),e),this._toggle(e,c))},_toggle:function(e,n){function i(){s.running=!1,s._trigger("activate",e,n)}function r(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&s.options.show?s._show(o,s.options.show,i):(o.show(),i())}var s=this,o=n.newPanel,a=n.oldPanel;this.running=!0,a.length&&this.options.hide?this._hide(a,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),a.hide(),r()),a.attr("aria-hidden","true"),n.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&a.length?n.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),n.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var n,i=this._findActive(e);i[0]!==this.active[0]&&(i.length||(i=this.active),n=i.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+t+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var e=t(this),n=e.data("ui-tabs-aria-controls");n?e.attr("aria-controls",n).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var n=this.options.disabled;n!==!1&&(void 0===e?n=!1:(e=this._getIndex(e),n=t.isArray(n)?t.map(n,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,n){return n!==e?n:null})),this._setupDisabled(n))},disable:function(e){var n=this.options.disabled;if(n!==!0){if(void 0===e)n=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,n))return;n=t.isArray(n)?t.merge([e],n).sort():[e]}this._setupDisabled(n)}},load:function(e,n){e=this._getIndex(e);var i=this,r=this.tabs.eq(e),s=r.find(".ui-tabs-anchor"),o=this._getPanelForTab(r),a={tab:r,panel:o},l=function(t,e){"abort"===e&&i.panels.stop(!1,!0),r.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),t===i.xhr&&delete i.xhr};this._isLocal(s[0])||(this.xhr=t.ajax(this._ajaxSettings(s,n,a)),this.xhr&&"canceled"!==this.xhr.statusText&&(r.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.done(function(t,e,r){setTimeout(function(){o.html(t),i._trigger("load",n,a),l(r,e)},1)}).fail(function(t,e){setTimeout(function(){l(t,e)},1)})))},_ajaxSettings:function(e,n,i){var r=this;return{url:e.attr("href"),beforeSend:function(e,s){return r._trigger("beforeLoad",n,t.extend({jqXHR:e,ajaxSettings:s},i))}}},_getPanelForTab:function(e){var n=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),t.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(e,n){var i=(e.attr("aria-describedby")||"").split(/\s+/);i.push(n),e.data("ui-tooltip-id",n).attr("aria-describedby",t.trim(i.join(" ")))},_removeDescribedBy:function(e){var n=e.data("ui-tooltip-id"),i=(e.attr("aria-describedby")||"").split(/\s+/),r=t.inArray(n,i);-1!==r&&i.splice(r,1),e.removeData("ui-tooltip-id"),i=t.trim(i.join(" ")),i?e.attr("aria-describedby",i):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(e,n){var i=this;return"disabled"===e?(this[n?"_disable":"_enable"](),void(this.options[e]=n)):(this._super(e,n),void("content"===e&&t.each(this.tooltips,function(t,e){i._updateContent(e.element)})))},_disable:function(){var e=this;t.each(this.tooltips,function(n,i){var r=t.Event("blur");r.target=r.currentTarget=i.element[0],e.close(r,!0)}),this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.is("[title]")&&e.data("ui-tooltip-title",e.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))})},open:function(e){var n=this,i=t(e?e.target:this.element).closest(this.options.items);
+i.length&&!i.data("ui-tooltip-id")&&(i.attr("title")&&i.data("ui-tooltip-title",i.attr("title")),i.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&i.parents().each(function(){var e,i=t(this);i.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,n.close(e,!0)),i.attr("title")&&(i.uniqueId(),n.parents[this.id]={element:this,title:i.attr("title")},i.attr("title",""))}),this._registerCloseHandlers(e,i),this._updateContent(i,e))},_updateContent:function(t,e){var n,i=this.options.content,r=this,s=e?e.type:null;return"string"==typeof i?this._open(e,t,i):(n=i.call(t[0],function(n){r._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=s),this._open(e,t,n))})}),void(n&&this._open(e,t,n)))},_open:function(e,n,i){function r(t){u.of=t,o.is(":hidden")||o.position(u)}var s,o,a,l,u=t.extend({},this.options.position);if(i){if(s=this._find(n))return void s.tooltip.find(".ui-tooltip-content").html(i);n.is("[title]")&&(e&&"mouseover"===e.type?n.attr("title",""):n.removeAttr("title")),s=this._tooltip(n),o=s.tooltip,this._addDescribedBy(n,o.attr("id")),o.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),i.clone?(l=i.clone(),l.removeAttr("id").find("[id]").removeAttr("id")):l=i,t("<div>").html(l).appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:r}),r(e)):o.position(t.extend({of:n},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(a=this.delayedShow=setInterval(function(){o.is(":visible")&&(r(u.of),clearInterval(a))},t.fx.interval)),this._trigger("open",e,{tooltip:o})}},_registerCloseHandlers:function(e,n){var i={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var i=t.Event(e);i.currentTarget=n[0],this.close(i,!0)}}};n[0]!==this.element[0]&&(i.remove=function(){this._removeTooltip(this._find(n).tooltip)}),e&&"mouseover"!==e.type||(i.mouseleave="close"),e&&"focusin"!==e.type||(i.focusout="close"),this._on(!0,n,i)},close:function(e){var n,i=this,r=t(e?e.currentTarget:this.element),s=this._find(r);return s?(n=s.tooltip,void(s.closing||(clearInterval(this.delayedShow),r.data("ui-tooltip-title")&&!r.attr("title")&&r.attr("title",r.data("ui-tooltip-title")),this._removeDescribedBy(r),s.hiding=!0,n.stop(!0),this._hide(n,this.options.hide,function(){i._removeTooltip(t(this))}),r.removeData("ui-tooltip-open"),this._off(r,"mouseleave focusout keyup"),r[0]!==this.element[0]&&this._off(r,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,n){t(n.element).attr("title",n.title),delete i.parents[e]}),s.closing=!0,this._trigger("close",e,{tooltip:n}),s.hiding||(s.closing=!1)))):void r.removeData("ui-tooltip-open")},_tooltip:function(e){var n=t("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),i=n.uniqueId().attr("id");return t("<div>").addClass("ui-tooltip-content").appendTo(n),n.appendTo(this.document[0].body),this.tooltips[i]={element:e,tooltip:n}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var e=this;t.each(this.tooltips,function(n,i){var r=t.Event("blur"),s=i.element;r.target=r.currentTarget=s[0],e.close(r,!0),t("#"+n).remove(),s.data("ui-tooltip-title")&&(s.attr("title")||s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}t.fn.emulateTransitionEnd=function(e){var n=!1,i=this;t(this).one("bsTransitionEnd",function(){n=!0});var r=function(){n||t(i).trigger(t.support.transition.end)};return setTimeout(r,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),r=n.data("bs.alert");r||n.data("bs.alert",r=new i(this)),"string"==typeof e&&r[e].call(n)})}var n='[data-dismiss="alert"]',i=function(e){t(e).on("click",n,this.close)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.prototype.close=function(e){function n(){o.detach().trigger("closed.bs.alert").remove()}var r=t(this),s=r.attr("data-target");s||(s=r.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var o=t(s);e&&e.preventDefault(),o.length||(o=r.closest(".alert")),o.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(o.removeClass("in"),t.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",n).emulateTransitionEnd(i.TRANSITION_DURATION):n())};var r=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=i,t.fn.alert.noConflict=function(){return t.fn.alert=r,this},t(document).on("click.bs.alert.data-api",n,i.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.button"),s="object"==typeof e&&e;r||i.data("bs.button",r=new n(this,s)),"toggle"==e?r.toggle():e&&r.setState(e)})}var n=function(e,i){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,i),this.isLoading=!1};n.VERSION="3.3.5",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(e){var n="disabled",i=this.$element,r=i.is("input")?"val":"html",s=i.data();e+="Text",null==s.resetText&&i.data("resetText",i[r]()),setTimeout(t.proxy(function(){i[r](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,i.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,i.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),t&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var i=t.fn.button;t.fn.button=e,t.fn.button.Constructor=n,t.fn.button.noConflict=function(){return t.fn.button=i,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var i=t(n.target);i.hasClass("btn")||(i=i.closest(".btn")),e.call(i,"toggle"),t(n.target).is('input[type="radio"]')||t(n.target).is('input[type="checkbox"]')||n.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.carousel"),s=t.extend({},n.DEFAULTS,i.data(),"object"==typeof e&&e),o="string"==typeof e?e:s.slide;r||i.data("bs.carousel",r=new n(this,s)),"number"==typeof e?r.to(e):o?r[o]():s.interval&&r.pause().cycle()})}var n=function(e,n){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};n.VERSION="3.3.5",n.TRANSITION_DURATION=600,n.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},n.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},n.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},n.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},n.prototype.getItemForDirection=function(t,e){var n=this.getItemIndex(e),i="prev"==t&&0===n||"next"==t&&n==this.$items.length-1;if(i&&!this.options.wrap)return e;var r="prev"==t?-1:1,s=(n+r)%this.$items.length;return this.$items.eq(s)},n.prototype.to=function(t){var e=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",this.$items.eq(t))},n.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},n.prototype.next=function(){return this.sliding?void 0:this.slide("next")},n.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},n.prototype.slide=function(e,i){var r=this.$element.find(".item.active"),s=i||this.getItemForDirection(e,r),o=this.interval,a="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var u=s[0],c=t.Event("slide.bs.carousel",{relatedTarget:u,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,o&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var h=t(this.$indicators.children()[this.getItemIndex(s)]);h&&h.addClass("active")}var d=t.Event("slid.bs.carousel",{relatedTarget:u,direction:a});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,r.addClass(a),s.addClass(a),r.one("bsTransitionEnd",function(){s.removeClass([e,a].join(" ")).addClass("active"),r.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(d)},0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(r.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(d)),o&&this.cycle(),this}};var i=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=n,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this};var r=function(n){var i,r=t(this),s=t(r.attr("data-target")||(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var o=t.extend({},s.data(),r.data()),a=r.attr("data-slide-to");a&&(o.interval=!1),e.call(s,o),a&&s.data("bs.carousel").to(a),n.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",r).on("click.bs.carousel.data-api","[data-slide-to]",r),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var n=t(this);e.call(n,n.data())})})}(jQuery),+function(t){"use strict";function e(e){var n,i=e.attr("data-target")||(n=e.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return t(i)}function n(e){return this.each(function(){var n=t(this),r=n.data("bs.collapse"),s=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);!r&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),r||n.data("bs.collapse",r=new i(this,s)),"string"==typeof e&&r[e]()})}var i=function(e,n){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,n),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};i.VERSION="3.3.5",i.TRANSITION_DURATION=350,i.DEFAULTS={toggle:!0},i.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},i.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,r=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(r&&r.length&&(e=r.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){r&&r.length&&(n.call(r,"hide"),e||r.data("bs.collapse",null));var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var l=t.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(i.TRANSITION_DURATION)[o](this.$element[0][l])}}}},i.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[n](0).one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(i.TRANSITION_DURATION):r.call(this)}}},i.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},i.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(n,i){var r=t(i);this.addAriaAndCollapsedClass(e(r),r)},this)).end()},i.prototype.addAriaAndCollapsedClass=function(t,e){var n=t.hasClass("in");t.attr("aria-expanded",n),e.toggleClass("collapsed",!n).attr("aria-expanded",n)};var r=t.fn.collapse;t.fn.collapse=n,t.fn.collapse.Constructor=i,t.fn.collapse.noConflict=function(){return t.fn.collapse=r,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(i){var r=t(this);r.attr("data-target")||i.preventDefault();var s=e(r),o=s.data("bs.collapse"),a=o?"toggle":r.data();n.call(s,a)})}(jQuery),+function(t){"use strict";function e(e){var n=e.attr("data-target");n||(n=e.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var i=n&&t(n);return i&&i.length?i:e.parent()}function n(n){n&&3===n.which||(t(r).remove(),t(s).each(function(){var i=t(this),r=e(i),s={relatedTarget:this};r.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&t.contains(r[0],n.target)||(r.trigger(n=t.Event("hide.bs.dropdown",s)),n.isDefaultPrevented()||(i.attr("aria-expanded","false"),r.removeClass("open").trigger("hidden.bs.dropdown",s))))}))}function i(e){return this.each(function(){var n=t(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new o(this)),"string"==typeof e&&i[e].call(n)})}var r=".dropdown-backdrop",s='[data-toggle="dropdown"]',o=function(e){t(e).on("click.bs.dropdown",this.toggle)};o.VERSION="3.3.5",o.prototype.toggle=function(i){var r=t(this);if(!r.is(".disabled, :disabled")){var s=e(r),o=s.hasClass("open");if(n(),!o){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",n);var a={relatedTarget:this};if(s.trigger(i=t.Event("show.bs.dropdown",a)),i.isDefaultPrevented())return;r.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger("shown.bs.dropdown",a)}return!1}},o.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var i=t(this);if(n.preventDefault(),n.stopPropagation(),!i.is(".disabled, :disabled")){var r=e(i),o=r.hasClass("open");if(!o&&27!=n.which||o&&27==n.which)return 27==n.which&&r.find(s).trigger("focus"),i.trigger("click");var a=" li:not(.disabled):visible a",l=r.find(".dropdown-menu"+a);if(l.length){var u=l.index(n.target);38==n.which&&u>0&&u--,40==n.which&&u<l.length-1&&u++,~u||(u=0),l.eq(u).trigger("focus")}}}};var a=t.fn.dropdown;t.fn.dropdown=i,t.fn.dropdown.Constructor=o,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=a,this},t(document).on("click.bs.dropdown.data-api",n).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,o.prototype.toggle).on("keydown.bs.dropdown.data-api",s,o.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",o.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,i){return this.each(function(){var r=t(this),s=r.data("bs.modal"),o=t.extend({},n.DEFAULTS,r.data(),"object"==typeof e&&e);s||r.data("bs.modal",s=new n(this,o)),"string"==typeof e?s[e](i):o.show&&s.show(i)})}var n=function(e,n){this.options=n,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};n.VERSION="3.3.5",n.TRANSITION_DURATION=300,n.BACKDROP_TRANSITION_DURATION=150,n.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},n.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},n.prototype.show=function(e){var i=this,r=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(r),this.isShown||r.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){i.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var r=t.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),r&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});r?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(n.TRANSITION_DURATION):i.$element.trigger("focus").trigger(s)}))},n.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(n.TRANSITION_DURATION):this.hideModal())},n.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},n.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},n.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},n.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},n.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},n.prototype.backdrop=function(e){var i=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&r;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+r).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var o=function(){i.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",o).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):o()}else e&&e()},n.prototype.handleUpdate=function(){this.adjustDialog()},n.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},n.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},n.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},n.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},n.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},n.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var i=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=n,t.fn.modal.noConflict=function(){return t.fn.modal=i,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(n){var i=t(this),r=i.attr("href"),s=t(i.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),o=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(r)&&r},s.data(),i.data());i.is("a")&&n.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){i.is(":visible")&&i.trigger("focus")})}),e.call(s,o,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.tooltip"),s="object"==typeof e&&e;(r||!/destroy|hide/.test(e))&&(r||i.data("bs.tooltip",r=new n(this,s)),"string"==typeof e&&r[e]())})}var n=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};n.VERSION="3.3.5",n.TRANSITION_DURATION=150,n.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},n.prototype.init=function(e,n,i){if(this.enabled=!0,this.type=e,this.$element=t(n),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var r=this.options.trigger.split(" "),s=r.length;s--;){var o=r[s];if("click"==o)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=o){var a="hover"==o?"mouseenter":"focusin",l="hover"==o?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},n.prototype.getDelegateOptions=function(){var e={},n=this.getDefaults();return this._options&&t.each(this._options,function(t,i){n[t]!=i&&(e[t]=i)}),e},n.prototype.enter=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusin"==e.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState?void(n.hoverState="in"):(clearTimeout(n.timeout),n.hoverState="in",n.options.delay&&n.options.delay.show?void(n.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)):n.show())},n.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},n.prototype.leave=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusout"==e.type?"focus":"hover"]=!1),n.isInStateTrue()?void 0:(clearTimeout(n.timeout),n.hoverState="out",n.options.delay&&n.options.delay.hide?void(n.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)):n.hide())},n.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var i=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!i)return;var r=this,s=this.tip(),o=this.getUID(this.type);this.setContent(),s.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&s.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,u=l.test(a);u&&(a=a.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),h=s[0].offsetWidth,d=s[0].offsetHeight;if(u){var p=a,f=this.getPosition(this.$viewport);a="bottom"==a&&c.bottom+d>f.bottom?"top":"top"==a&&c.top-d<f.top?"bottom":"right"==a&&c.right+h>f.width?"left":"left"==a&&c.left-h<f.left?"right":a,s.removeClass(p).addClass(a)}var m=this.getCalculatedOffset(a,c,h,d);this.applyPlacement(m,a);var g=function(){var t=r.hoverState;r.$element.trigger("shown.bs."+r.type),r.hoverState=null,"out"==t&&r.leave(r)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",g).emulateTransitionEnd(n.TRANSITION_DURATION):g()}},n.prototype.applyPlacement=function(e,n){var i=this.tip(),r=i[0].offsetWidth,s=i[0].offsetHeight,o=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(o)&&(o=0),isNaN(a)&&(a=0),e.top+=o,e.left+=a,t.offset.setOffset(i[0],t.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),i.addClass("in");var l=i[0].offsetWidth,u=i[0].offsetHeight;"top"==n&&u!=s&&(e.top=e.top+s-u);var c=this.getViewportAdjustedDelta(n,e,l,u);c.left?e.left+=c.left:e.top+=c.top;var h=/top|bottom/.test(n),d=h?2*c.left-r+l:2*c.top-s+u,p=h?"offsetWidth":"offsetHeight";i.offset(e),this.replaceArrow(d,i[0][p],h)},n.prototype.replaceArrow=function(t,e,n){this.arrow().css(n?"left":"top",50*(1-t/e)+"%").css(n?"top":"left","")},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},n.prototype.hide=function(e){function i(){"in"!=r.hoverState&&s.detach(),r.$element.removeAttr("aria-describedby").trigger("hidden.bs."+r.type),e&&e()}var r=this,s=t(this.$tip),o=t.Event("hide.bs."+this.type);return this.$element.trigger(o),o.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),this.hoverState=null,this)},n.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},n.prototype.hasContent=function(){return this.getTitle()},n.prototype.getPosition=function(e){e=e||this.$element;var n=e[0],i="BODY"==n.tagName,r=n.getBoundingClientRect();null==r.width&&(r=t.extend({},r,{width:r.right-r.left,height:r.bottom-r.top}));var s=i?{top:0,left:0}:e.offset(),o={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},a=i?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},r,o,a,s)},n.prototype.getCalculatedOffset=function(t,e,n,i){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-n/2}:"top"==t?{top:e.top-i,left:e.left+e.width/2-n/2}:"left"==t?{top:e.top+e.height/2-i/2,left:e.left-n}:{top:e.top+e.height/2-i/2,left:e.left+e.width}},n.prototype.getViewportAdjustedDelta=function(t,e,n,i){var r={top:0,left:0};if(!this.$viewport)return r;var s=this.options.viewport&&this.options.viewport.padding||0,o=this.getPosition(this.$viewport);if(/right|left/.test(t)){var a=e.top-s-o.scroll,l=e.top+s-o.scroll+i;a<o.top?r.top=o.top-a:l>o.top+o.height&&(r.top=o.top+o.height-l)}else{var u=e.left-s,c=e.left+s+n;u<o.left?r.left=o.left-u:c>o.right&&(r.left=o.left+o.width-c)}return r},n.prototype.getTitle=function(){var t,e=this.$element,n=this.options;return t=e.attr("data-original-title")||("function"==typeof n.title?n.title.call(e[0]):n.title)},n.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},n.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},n.prototype.enable=function(){this.enabled=!0},n.prototype.disable=function(){this.enabled=!1},n.prototype.toggleEnabled=function(){this.enabled=!this.enabled},n.prototype.toggle=function(e){var n=this;e&&(n=t(e.currentTarget).data("bs."+this.type),n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n))),e?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},n.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var i=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=n,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=i,this}}(jQuery),+function(t){"use strict";
+function e(e){return this.each(function(){var i=t(this),r=i.data("bs.popover"),s="object"==typeof e&&e;(r||!/destroy|hide/.test(e))&&(r||i.data("bs.popover",r=new n(this,s)),"string"==typeof e&&r[e]())})}var n=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");n.VERSION="3.3.5",n.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),n.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),n.prototype.constructor=n,n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),n=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof n?"html":"append":"text"](n),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},n.prototype.hasContent=function(){return this.getTitle()||this.getContent()},n.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var i=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=n,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(jQuery),+function(t){"use strict";function e(n,i){this.$body=t(document.body),this.$scrollElement=t(t(n).is(document.body)?window:n),this.options=t.extend({},e.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each(function(){var i=t(this),r=i.data("bs.scrollspy"),s="object"==typeof n&&n;r||i.data("bs.scrollspy",r=new e(this,s)),"string"==typeof n&&r[n]()})}e.VERSION="3.3.5",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,n="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(n="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),r=e.data("target")||e.attr("href"),s=/^#./.test(r)&&t(r);return s&&s.length&&s.is(":visible")&&[[s[n]().top+i,r]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),i=this.options.offset+n-this.$scrollElement.height(),r=this.offsets,s=this.targets,o=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),e>=i)return o!=(t=s[s.length-1])&&this.activate(t);if(o&&e<r[0])return this.activeTarget=null,this.clear();for(t=r.length;t--;)o!=s[t]&&e>=r[t]&&(void 0===r[t+1]||e<r[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var n=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',i=t(n).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var i=t.fn.scrollspy;t.fn.scrollspy=n,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);n.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.tab");r||i.data("bs.tab",r=new n(this)),"string"==typeof e&&r[e]()})}var n=function(e){this.element=t(e)};n.VERSION="3.3.5",n.TRANSITION_DURATION=150,n.prototype.show=function(){var e=this.element,n=e.closest("ul:not(.dropdown-menu)"),i=e.data("target");if(i||(i=e.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var r=n.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),o=t.Event("show.bs.tab",{relatedTarget:r[0]});if(r.trigger(s),e.trigger(o),!o.isDefaultPrevented()&&!s.isDefaultPrevented()){var a=t(i);this.activate(e.closest("li"),n),this.activate(a,a.parent(),function(){r.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:r[0]})})}}},n.prototype.activate=function(e,i,r){function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),r&&r()}var o=i.find("> .active"),a=r&&t.support.transition&&(o.length&&o.hasClass("fade")||!!i.find("> .fade").length);o.length&&a?o.one("bsTransitionEnd",s).emulateTransitionEnd(n.TRANSITION_DURATION):s(),o.removeClass("in")};var i=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=n,t.fn.tab.noConflict=function(){return t.fn.tab=i,this};var r=function(n){n.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',r).on("click.bs.tab.data-api",'[data-toggle="pill"]',r)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),r=i.data("bs.affix"),s="object"==typeof e&&e;r||i.data("bs.affix",r=new n(this,s)),"string"==typeof e&&r[e]()})}var n=function(e,i){this.options=t.extend({},n.DEFAULTS,i),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.5",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(t,e,n,i){var r=this.$target.scrollTop(),s=this.$element.offset(),o=this.$target.height();if(null!=n&&"top"==this.affixed)return n>r?"top":!1;if("bottom"==this.affixed)return null!=n?r+this.unpin<=s.top?!1:"bottom":t-i>=r+o?!1:"bottom";var a=null==this.affixed,l=a?r:s.top,u=a?o:e;return null!=n&&n>=r?"top":null!=i&&l+u>=t-i?"bottom":!1},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},n.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),i=this.options.offset,r=i.top,s=i.bottom,o=Math.max(t(document).height(),t(document.body).height());"object"!=typeof i&&(s=r=i),"function"==typeof r&&(r=i.top(this.$element)),"function"==typeof s&&(s=i.bottom(this.$element));var a=this.getState(o,e,r,s);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var l="affix"+(a?"-"+a:""),u=t.Event(l+".bs.affix");if(this.$element.trigger(u),u.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:o-e-s})}};var i=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=n,t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var n=t(this),i=n.data();i.offset=i.offset||{},null!=i.offsetBottom&&(i.offset.bottom=i.offsetBottom),null!=i.offsetTop&&(i.offset.top=i.offsetTop),e.call(n,i)})})}(jQuery),function(t,e,n){"use strict";function i(t,e){return e=e||Error,function(){var n,i,r=2,s=arguments,o=s[0],a="["+(t?t+":":"")+o+"] ",l=s[1];for(a+=l.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1),n=e+r;return n<s.length?yt(s[n]):t}),a+="\nhttp://errors.angularjs.org/1.4.7/"+(t?t+"/":"")+o,i=r,n="?";i<s.length;i++,n="&")a+=n+"p"+(i-r)+"="+encodeURIComponent(yt(s[i]));return new e(a)}}function r(t){if(null==t||S(t))return!1;var e="length"in Object(t)&&t.length;return t.nodeType===Yi&&e?!0:_(t)||ji(t)||0===e||"number"==typeof e&&e>0&&e-1 in t}function s(t,e,n){var i,o;if(t)if(D(t))for(i in t)"prototype"==i||"length"==i||"name"==i||t.hasOwnProperty&&!t.hasOwnProperty(i)||e.call(n,t[i],i,t);else if(ji(t)||r(t)){var a="object"!=typeof t;for(i=0,o=t.length;o>i;i++)(a||i in t)&&e.call(n,t[i],i,t)}else if(t.forEach&&t.forEach!==s)t.forEach(e,n,t);else if(x(t))for(i in t)e.call(n,t[i],i,t);else if("function"==typeof t.hasOwnProperty)for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t);else for(i in t)wi.call(t,i)&&e.call(n,t[i],i,t);return t}function o(t,e,n){for(var i=Object.keys(t).sort(),r=0;r<i.length;r++)e.call(n,t[i[r]],i[r]);return i}function a(t){return function(e,n){t(n,e)}}function l(){return++Hi}function u(t,e){e?t.$$hashKey=e:delete t.$$hashKey}function c(t,e,n){for(var i=t.$$hashKey,r=0,s=e.length;s>r;++r){var o=e[r];if(w(o)||D(o))for(var a=Object.keys(o),l=0,h=a.length;h>l;l++){var d=a[l],p=o[d];n&&w(p)?k(p)?t[d]=new Date(p.valueOf()):T(p)?t[d]=new RegExp(p):(w(t[d])||(t[d]=ji(p)?[]:{}),c(t[d],[p],!0)):t[d]=p}}return u(t,i),t}function h(t){return c(t,Ei.call(arguments,1),!1)}function d(t){return c(t,Ei.call(arguments,1),!0)}function p(t){return parseInt(t,10)}function f(t,e){return h(Object.create(t),e)}function m(){}function g(t){return t}function v(t){return function(){return t}}function b(t){return D(t.toString)&&t.toString!==Object.prototype.toString}function y(t){return"undefined"==typeof t}function $(t){return"undefined"!=typeof t}function w(t){return null!==t&&"object"==typeof t}function x(t){return null!==t&&"object"==typeof t&&!Oi(t)}function _(t){return"string"==typeof t}function C(t){return"number"==typeof t}function k(t){return"[object Date]"===Ii.call(t)}function D(t){return"function"==typeof t}function T(t){return"[object RegExp]"===Ii.call(t)}function S(t){return t&&t.window===t}function E(t){return t&&t.$evalAsync&&t.$watch}function M(t){return"[object File]"===Ii.call(t)}function A(t){return"[object FormData]"===Ii.call(t)}function I(t){return"[object Blob]"===Ii.call(t)}function O(t){return"boolean"==typeof t}function P(t){return t&&D(t.then)}function N(t){return Ri.test(Ii.call(t))}function H(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function F(t){var e,n={},i=t.split(",");for(e=0;e<i.length;e++)n[i[e]]=!0;return n}function j(t){return $i(t.nodeName||t[0]&&t[0].nodeName)}function R(t,e){var n=t.indexOf(e);return n>=0&&t.splice(n,1),n}function z(t,e,n,i){if(S(t)||E(t))throw Pi("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(N(e))throw Pi("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e){if(t===e)throw Pi("cpi","Can't copy! Source and destination are identical.");n=n||[],i=i||[],w(t)&&(n.push(t),i.push(e));var r;if(ji(t)){e.length=0;for(var o=0;o<t.length;o++)e.push(z(t[o],null,n,i))}else{var a=e.$$hashKey;if(ji(e)?e.length=0:s(e,function(t,n){delete e[n]}),x(t))for(r in t)e[r]=z(t[r],null,n,i);else if(t&&"function"==typeof t.hasOwnProperty)for(r in t)t.hasOwnProperty(r)&&(e[r]=z(t[r],null,n,i));else for(r in t)wi.call(t,r)&&(e[r]=z(t[r],null,n,i));u(e,a)}}else if(e=t,w(t)){var l;if(n&&-1!==(l=n.indexOf(t)))return i[l];if(ji(t))return z(t,[],n,i);if(N(t))e=new t.constructor(t);else if(k(t))e=new Date(t.getTime());else if(T(t))e=new RegExp(t.source,t.toString().match(/[^\/]*$/)[0]),e.lastIndex=t.lastIndex;else{if(!D(t.cloneNode)){var c=Object.create(Oi(t));return z(t,c,n,i)}e=t.cloneNode(!0)}i&&(n.push(t),i.push(e))}return e}function W(t,e){if(ji(t)){e=e||[];for(var n=0,i=t.length;i>n;n++)e[n]=t[n]}else if(w(t)){e=e||{};for(var r in t)("$"!==r.charAt(0)||"$"!==r.charAt(1))&&(e[r]=t[r])}return e||t}function L(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var n,i,r,s=typeof t,o=typeof e;if(s==o&&"object"==s){if(!ji(t)){if(k(t))return k(e)?L(t.getTime(),e.getTime()):!1;if(T(t))return T(e)?t.toString()==e.toString():!1;if(E(t)||E(e)||S(t)||S(e)||ji(e)||k(e)||T(e))return!1;r=gt();for(i in t)if("$"!==i.charAt(0)&&!D(t[i])){if(!L(t[i],e[i]))return!1;r[i]=!0}for(i in e)if(!(i in r)&&"$"!==i.charAt(0)&&$(e[i])&&!D(e[i]))return!1;return!0}if(!ji(e))return!1;if((n=t.length)==e.length){for(i=0;n>i;i++)if(!L(t[i],e[i]))return!1;return!0}}return!1}function q(t,e,n){return t.concat(Ei.call(e,n))}function V(t,e){return Ei.call(t,e||0)}function U(t,e){var n=arguments.length>2?V(arguments,2):[];return!D(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,q(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function B(t,i){var r=i;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?r=n:S(i)?r="$WINDOW":i&&e===i?r="$DOCUMENT":E(i)&&(r="$SCOPE"),r}function Y(t,e){return"undefined"==typeof t?n:(C(e)||(e=e?2:null),JSON.stringify(t,B,e))}function K(t){return _(t)?JSON.parse(t):t}function G(t,e){var n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function X(t,e){return t=new Date(t.getTime()),t.setMinutes(t.getMinutes()+e),t}function Q(t,e,n){n=n?-1:1;var i=G(e,t.getTimezoneOffset());return X(t,n*(i-t.getTimezoneOffset()))}function J(t){t=Di(t).clone();try{t.empty()}catch(e){}var n=Di("<div>").append(t).html();try{return t[0].nodeType===Gi?$i(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+$i(e)})}catch(e){return $i(n)}}function Z(t){try{return decodeURIComponent(t)}catch(e){}}function tt(t){var e={};return s((t||"").split("&"),function(t){var n,i,r;t&&(i=t=t.replace(/\+/g,"%20"),n=t.indexOf("="),-1!==n&&(i=t.substring(0,n),r=t.substring(n+1)),i=Z(i),$(i)&&(r=$(r)?Z(r):!0,wi.call(e,i)?ji(e[i])?e[i].push(r):e[i]=[e[i],r]:e[i]=r))}),e}function et(t){var e=[];return s(t,function(t,n){ji(t)?s(t,function(t){e.push(it(n,!0)+(t===!0?"":"="+it(t,!0)))}):e.push(it(n,!0)+(t===!0?"":"="+it(t,!0)))}),e.length?e.join("&"):""}function nt(t){return it(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function it(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function rt(t,e){var n,i,r=Vi.length;for(i=0;r>i;++i)if(n=Vi[i]+e,_(n=t.getAttribute(n)))return n;return null}function st(t,e){var n,i,r={};s(Vi,function(e){var r=e+"app";!n&&t.hasAttribute&&t.hasAttribute(r)&&(n=t,i=t.getAttribute(r))}),s(Vi,function(e){var r,s=e+"app";!n&&(r=t.querySelector("["+s.replace(":","\\:")+"]"))&&(n=r,i=r.getAttribute(s))}),n&&(r.strictDi=null!==rt(n,"strict-di"),e(n,i?[i]:[],r))}function ot(n,i,r){w(r)||(r={});var o={strictDi:!1};r=h(o,r);var a=function(){if(n=Di(n),n.injector()){var t=n[0]===e?"document":J(n);throw Pi("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(/</,"&lt;").replace(/>/,"&gt;"))}i=i||[],i.unshift(["$provide",function(t){t.value("$rootElement",n)}]),r.debugInfoEnabled&&i.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),i.unshift("ng");var s=Jt(i,r.strictDi);return s.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,i){t.$apply(function(){e.data("$injector",i),n(e)(t)})}]),s},l=/^NG_ENABLE_DEBUG_INFO!/,u=/^NG_DEFER_BOOTSTRAP!/;return t&&l.test(t.name)&&(r.debugInfoEnabled=!0,t.name=t.name.replace(l,"")),t&&!u.test(t.name)?a():(t.name=t.name.replace(u,""),Ni.resumeBootstrap=function(t){return s(t,function(t){i.push(t)}),a()},void(D(Ni.resumeDeferredBootstrap)&&Ni.resumeDeferredBootstrap()))}function at(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function lt(t){var e=Ni.element(t).injector();if(!e)throw Pi("test","no injector found for element argument to getTestability");return e.get("$$testability")}function ut(t,e){return e=e||"_",t.replace(Ui,function(t,n){return(n?e:"")+t.toLowerCase()})}function ct(){var e;if(!Bi){var i=qi();Ti=y(i)?t.jQuery:i?t[i]:n,Ti&&Ti.fn.on?(Di=Ti,h(Ti.fn,{scope:pr.scope,isolateScope:pr.isolateScope,controller:pr.controller,injector:pr.injector,inheritedData:pr.inheritedData}),e=Ti.cleanData,Ti.cleanData=function(t){var n;if(Fi)Fi=!1;else for(var i,r=0;null!=(i=t[r]);r++)n=Ti._data(i,"events"),n&&n.$destroy&&Ti(i).triggerHandler("$destroy");e(t)}):Di=St,Ni.element=Di,Bi=!0}}function ht(t,e,n){if(!t)throw Pi("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function dt(t,e,n){return n&&ji(t)&&(t=t[t.length-1]),ht(D(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function pt(t,e){if("hasOwnProperty"===t)throw Pi("badname","hasOwnProperty is not a valid {0} name",e)}function ft(t,e,n){if(!e)return t;for(var i,r=e.split("."),s=t,o=r.length,a=0;o>a;a++)i=r[a],t&&(t=(s=t)[i]);return!n&&D(t)?U(s,t):t}function mt(t){for(var e,n=t[0],i=t[t.length-1],r=1;n!==i&&(n=n.nextSibling);r++)(e||t[r]!==n)&&(e||(e=Di(Ei.call(t,0,r))),e.push(n));return e||t}function gt(){return Object.create(null)}function vt(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=i("$injector"),r=i("ng"),s=e(t,"angular",Object);return s.$$minErr=s.$$minErr||i,e(s,"module",function(){var t={};return function(i,s,o){var a=function(t,e){if("hasOwnProperty"===t)throw r("badname","hasOwnProperty is not a valid {0} name",e)};return a(i,"module"),s&&t.hasOwnProperty(i)&&(t[i]=null),e(t,i,function(){function t(t,e,n,i){return i||(i=r),function(){return i[n||"push"]([t,e,arguments]),c}}function e(t,e){return function(n,s){return s&&D(s)&&(s.$$moduleName=i),r.push([t,e,arguments]),c}}if(!s)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",i);var r=[],a=[],l=[],u=t("$injector","invoke","push",a),c={_invokeQueue:r,_configBlocks:a,_runBlocks:l,requires:s,name:i,provider:e("$provide","provider"),factory:e("$provide","factory"),service:e("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),decorator:e("$provide","decorator"),animation:e("$animateProvider","register"),filter:e("$filterProvider","register"),controller:e("$controllerProvider","register"),directive:e("$compileProvider","directive"),config:u,run:function(t){return l.push(t),this}};return o&&u(o),c})}})}function bt(t){var e=[];return JSON.stringify(t,function(t,n){if(n=B(t,n),w(n)){if(e.indexOf(n)>=0)return"...";e.push(n)}return n})}function yt(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):y(t)?"undefined":"string"!=typeof t?bt(t):t}function $t(e){h(e,{bootstrap:ot,copy:z,extend:h,merge:d,equals:L,element:Di,forEach:s,injector:Jt,noop:m,bind:U,toJson:Y,fromJson:K,identity:g,isUndefined:y,isDefined:$,isString:_,isFunction:D,isObject:w,isNumber:C,isElement:H,isArray:ji,version:Zi,isDate:k,lowercase:$i,uppercase:xi,callbacks:{counter:0},getTestability:lt,$$minErr:i,$$csp:Li,reloadWithDebugInfo:at}),(Si=vt(t))("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:vn}),t.provider("$compile",le).directive({a:ps,input:Ms,textarea:Ms,form:bs,script:_o,select:Do,style:So,option:To,ngBind:Os,ngBindHtml:Ns,ngBindTemplate:Ps,ngClass:Fs,ngClassEven:Rs,ngClassOdd:js,ngCloak:zs,ngController:Ws,ngForm:ys,ngHide:vo,ngIf:Vs,ngInclude:Us,ngInit:Ys,ngNonBindable:ao,ngPluralize:ho,ngRepeat:po,ngShow:go,ngStyle:bo,ngSwitch:yo,ngSwitchWhen:$o,ngSwitchDefault:wo,ngOptions:co,ngTransclude:xo,ngModel:ro,ngList:Ks,ngChange:Hs,pattern:Mo,ngPattern:Mo,required:Eo,ngRequired:Eo,minlength:Io,ngMinlength:Io,maxlength:Ao,ngMaxlength:Ao,ngValue:Is,ngModelOptions:oo}).directive({ngInclude:Bs}).directive(fs).directive(Ls),t.provider({$anchorScroll:Zt,$animate:Sr,$animateCss:Er,$$animateQueue:Tr,$$AnimateRunner:Dr,$browser:se,$cacheFactory:oe,$controller:pe,$document:fe,$exceptionHandler:me,$filter:An,$$forceReflow:Pr,$interpolate:Ee,$interval:Me,$http:ke,$httpParamSerializer:ve,$httpParamSerializerJQLike:be,$httpBackend:Te,$xhrFactory:De,$location:Ve,$log:Ue,$parse:hn,$rootScope:gn,$q:dn,$$q:pn,$sce:wn,$sceDelegate:$n,$sniffer:xn,$templateCache:ae,$templateRequest:_n,$$testability:Cn,$timeout:kn,$window:Sn,$$rAF:mn,$$jqLite:Yt,$$HashMap:vr,$$cookieReader:Mn})}])}function wt(){return++er}function xt(t){return t.replace(rr,function(t,e,n,i){return i?n.toUpperCase():n}).replace(sr,"Moz$1")}function _t(t){return!ur.test(t)}function Ct(t){var e=t.nodeType;return e===Yi||!e||e===Qi}function kt(t){for(var e in tr[t.ng339])return!0;return!1}function Dt(t,e){var n,i,r,o,a=e.createDocumentFragment(),l=[];if(_t(t))l.push(e.createTextNode(t));else{for(n=n||a.appendChild(e.createElement("div")),i=(cr.exec(t)||["",""])[1].toLowerCase(),r=dr[i]||dr._default,n.innerHTML=r[1]+t.replace(hr,"<$1></$2>")+r[2],o=r[0];o--;)n=n.lastChild;l=q(l,n.childNodes),n=a.firstChild,n.textContent=""}return a.textContent="",a.innerHTML="",s(l,function(t){a.appendChild(t)}),a}function Tt(t,n){n=n||e;var i;return(i=lr.exec(t))?[n.createElement(i[1])]:(i=Dt(t,n))?i.childNodes:[]}function St(t){if(t instanceof St)return t;var e;if(_(t)&&(t=zi(t),e=!0),!(this instanceof St)){if(e&&"<"!=t.charAt(0))throw ar("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new St(t)}e?jt(this,Tt(t)):jt(this,t)}function Et(t){return t.cloneNode(!0)}function Mt(t,e){if(e||It(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),i=0,r=n.length;r>i;i++)It(n[i])}function At(t,e,n,i){if($(i))throw ar("offargs","jqLite#off() does not support the `selector` argument");var r=Ot(t),o=r&&r.events,a=r&&r.handle;if(a)if(e)s(e.split(" "),function(e){if($(n)){var i=o[e];if(R(i||[],n),i&&i.length>0)return}ir(t,e,a),delete o[e]});else for(e in o)"$destroy"!==e&&ir(t,e,a),delete o[e]}function It(t,e){var i=t.ng339,r=i&&tr[i];if(r){if(e)return void delete r.data[e];r.handle&&(r.events.$destroy&&r.handle({},"$destroy"),At(t)),delete tr[i],t.ng339=n}}function Ot(t,e){var i=t.ng339,r=i&&tr[i];return e&&!r&&(t.ng339=i=wt(),r=tr[i]={events:{},data:{},handle:n}),r}function Pt(t,e,n){if(Ct(t)){var i=$(n),r=!i&&e&&!w(e),s=!e,o=Ot(t,!r),a=o&&o.data;if(i)a[e]=n;else{if(s)return a;if(r)return a&&a[e];h(a,e)}}}function Nt(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function Ht(t,e){e&&t.setAttribute&&s(e.split(" "),function(e){t.setAttribute("class",zi((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+zi(e)+" "," ")))})}function Ft(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");s(e.split(" "),function(t){t=zi(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",zi(n))}}function jt(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var i=0;n>i;i++)t[t.length++]=e[i]}else t[t.length++]=e}}function Rt(t,e){return zt(t,"$"+(e||"ngController")+"Controller")}function zt(t,e,n){t.nodeType==Qi&&(t=t.documentElement);for(var i=ji(e)?e:[e];t;){for(var r=0,s=i.length;s>r;r++)if($(n=Di.data(t,i[r])))return n;t=t.parentNode||t.nodeType===Ji&&t.host}}function Wt(t){for(Mt(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function Lt(t,e){e||Mt(t);var n=t.parentNode;n&&n.removeChild(t)}function qt(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):Di(n).on("load",e)}function Vt(t,e){var n=fr[e.toLowerCase()];return n&&mr[j(t)]&&n}function Ut(t){return gr[t]}function Bt(t,e){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var r=e[i||n.type],s=r?r.length:0;if(s){if(y(n.immediatePropagationStopped)){var o=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),o&&o.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},s>1&&(r=W(r));for(var a=0;s>a;a++)n.isImmediatePropagationStopped()||r[a].call(t,n)}};return n.elem=t,n}function Yt(){this.$get=function(){return h(St,{hasClass:function(t,e){return t.attr&&(t=t[0]),Nt(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),Ft(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),Ht(t,e)}})}}function Kt(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var i=typeof t;return n="function"==i||"object"==i&&null!==t?t.$$hashKey=i+":"+(e||l)():i+":"+t}function Gt(t,e){if(e){var n=0;this.nextUid=function(){return++n}}s(t,this.put,this)}function Xt(t){var e=t.toString().replace(wr,""),n=e.match(br);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Qt(t,e,n){var i,r,o,a;if("function"==typeof t){if(!(i=t.$inject)){if(i=[],t.length){if(e)throw _(n)&&n||(n=t.name||Xt(t)),xr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);r=t.toString().replace(wr,""),o=r.match(br),s(o[1].split(yr),function(t){t.replace($r,function(t,e,n){i.push(n)})})}t.$inject=i}}else ji(t)?(a=t.length-1,dt(t[a],"fn"),i=t.slice(0,a)):dt(t,"fn",!0);return i}function Jt(t,e){function i(t){return function(e,n){return w(e)?void s(e,a(t)):t(e,n)}}function r(t,e){if(pt(t,"service"),(D(e)||ji(e))&&(e=C.instantiate(e)),!e.$get)throw xr("pget","Provider '{0}' must define $get factory method.",t);return x[t+g]=e}function o(t,e){return function(){var n=T.invoke(e,this);if(y(n))throw xr("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function l(t,e,n){return r(t,{$get:n!==!1?o(t,e):e})}function u(t,e){return l(t,["$injector",function(t){return t.instantiate(e)}])}function c(t,e){return l(t,v(e),!1)}function h(t,e){pt(t,"constant"),x[t]=e,k[t]=e}function d(t,e){var n=C.get(t+g),i=n.$get;n.$get=function(){var t=T.invoke(i,n);return T.invoke(e,null,{$delegate:t})}}function p(t){ht(y(t)||ji(t),"modulesToLoad","not an array");var e,n=[];return s(t,function(t){function i(t){var e,n;for(e=0,n=t.length;n>e;e++){var i=t[e],r=C.get(i[0]);r[i[1]].apply(r,i[2])}}if(!$.get(t)){$.put(t,!0);try{_(t)?(e=Si(t),n=n.concat(p(e.requires)).concat(e._runBlocks),i(e._invokeQueue),i(e._configBlocks)):D(t)?n.push(C.invoke(t)):ji(t)?n.push(C.invoke(t)):dt(t,"module")}catch(r){throw ji(t)&&(t=t[t.length-1]),r.message&&r.stack&&-1==r.stack.indexOf(r.message)&&(r=r.message+"\n"+r.stack),xr("modulerr","Failed to instantiate module {0} due to:\n{1}",t,r.stack||r.message||r)}}}),n}function f(t,n){function i(e,i){if(t.hasOwnProperty(e)){if(t[e]===m)throw xr("cdep","Circular dependency found: {0}",e+" <- "+b.join(" <- "));return t[e]}try{return b.unshift(e),t[e]=m,t[e]=n(e,i)}catch(r){throw t[e]===m&&delete t[e],r}finally{b.shift()}}function r(t,n,r,s){"string"==typeof r&&(s=r,r=null);var o,a,l,u=[],c=Jt.$$annotate(t,e,s);for(a=0,o=c.length;o>a;a++){if(l=c[a],"string"!=typeof l)throw xr("itkn","Incorrect injection token! Expected service name as string, got {0}",l);u.push(r&&r.hasOwnProperty(l)?r[l]:i(l,s))}return ji(t)&&(t=t[o]),t.apply(n,u)}function s(t,e,n){var i=Object.create((ji(t)?t[t.length-1]:t).prototype||null),s=r(t,i,e,n);return w(s)||D(s)?s:i}return{invoke:r,instantiate:s,get:i,annotate:Jt.$$annotate,has:function(e){return x.hasOwnProperty(e+g)||t.hasOwnProperty(e)}}}e=e===!0;var m={},g="Provider",b=[],$=new Gt([],!0),x={$provide:{provider:i(r),factory:i(l),service:i(u),value:i(c),constant:i(h),decorator:d}},C=x.$injector=f(x,function(t,e){throw Ni.isString(e)&&b.push(e),xr("unpr","Unknown provider: {0}",b.join(" <- "))}),k={},T=k.$injector=f(k,function(t,e){var i=C.get(t+g,e);return T.invoke(i.$get,i,n,t)});return s(p(t),function(t){t&&T.invoke(t)}),T}function Zt(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,i){function r(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===j(t)?(e=t,!0):void 0}),e}function s(){var t=a.yOffset;if(D(t))t=t();else if(H(t)){var n=t[0],i=e.getComputedStyle(n);t="fixed"!==i.position?0:n.getBoundingClientRect().bottom}else C(t)||(t=0);return t}function o(t){if(t){t.scrollIntoView();var n=s();if(n){var i=t.getBoundingClientRect().top;e.scrollBy(0,i-n)}}else e.scrollTo(0,0)}function a(t){t=_(t)?t:n.hash();var e;t?(e=l.getElementById(t))?o(e):(e=r(l.getElementsByName(t)))?o(e):"top"===t&&o(null):o(null)}var l=e.document;return t&&i.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&qt(function(){i.$evalAsync(a)})}),a}]}function te(t,e){return t||e?t?e?(ji(t)&&(t=t.join(" ")),ji(e)&&(e=e.join(" ")),t+" "+e):t:e:""}function ee(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.nodeType===Cr)return n}}function ne(t){_(t)&&(t=t.split(" "));var e=gt();return s(t,function(t){t.length&&(e[t]=!0)}),e}function ie(t){return w(t)?t:{}}function re(t,e,n,i){function r(t){try{t.apply(null,V(arguments,1))}finally{if(b--,0===b)for(;$.length;)try{$.pop()()}catch(e){n.error(e)}}}function o(t){var e=t.indexOf("#");return-1===e?"":t.substr(e)}function a(){k=null,u(),c()}function l(){try{return p.state}catch(t){}}function u(){w=l(),w=y(w)?null:w,L(w,S)&&(w=S),S=w}function c(){(_!==h.url()||x!==w)&&(_=h.url(),x=w,s(D,function(t){t(h.url(),w)}))}var h=this,d=(e[0],t.location),p=t.history,f=t.setTimeout,g=t.clearTimeout,v={};h.isMock=!1;var b=0,$=[];h.$$completeOutstandingRequest=r,h.$$incOutstandingRequestCount=function(){b++},h.notifyWhenNoOutstandingRequests=function(t){0===b?t():$.push(t)};var w,x,_=d.href,C=e.find("base"),k=null;u(),x=w,h.url=function(e,n,r){if(y(r)&&(r=null),d!==t.location&&(d=t.location),p!==t.history&&(p=t.history),e){var s=x===r;if(_===e&&(!i.history||s))return h;var a=_&&Ne(_)===Ne(e);return _=e,x=r,!i.history||a&&s?((!a||k)&&(k=e),n?d.replace(e):a?d.hash=o(e):d.href=e,d.href!==e&&(k=e)):(p[n?"replaceState":"pushState"](r,"",e),u(),x=w),h}return k||d.href.replace(/%27/g,"'")},h.state=function(){return w};var D=[],T=!1,S=null;h.onUrlChange=function(e){return T||(i.history&&Di(t).on("popstate",a),Di(t).on("hashchange",a),T=!0),D.push(e),e},h.$$applicationDestroyed=function(){Di(t).off("hashchange popstate",a)},h.$$checkUrlChange=c,h.baseHref=function(){var t=C.attr("href");return t?t.replace(/^(https?\:)?\/\/[^\/]*/,""):""},h.defer=function(t,e){var n;return b++,n=f(function(){delete v[n],r(t)},e||0),v[n]=!0,n},h.defer.cancel=function(t){return v[t]?(delete v[t],g(t),r(m),!0):!1}}function se(){this.$get=["$window","$log","$sniffer","$document",function(t,e,n,i){return new re(t,i,e,n)}]}function oe(){this.$get=function(){function t(t,n){function r(t){t!=d&&(p?p==t&&(p=t.n):p=t,s(t.n,t.p),s(t,d),d=t,d.n=null)}function s(t,e){t!=e&&(t&&(t.p=e),e&&(e.n=t))}if(t in e)throw i("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var o=0,a=h({},n,{id:t}),l={},u=n&&n.capacity||Number.MAX_VALUE,c={},d=null,p=null;return e[t]={put:function(t,e){if(!y(e)){if(u<Number.MAX_VALUE){var n=c[t]||(c[t]={key:t});r(n)}return t in l||o++,l[t]=e,o>u&&this.remove(p.key),e}},get:function(t){if(u<Number.MAX_VALUE){var e=c[t];if(!e)return;r(e)}return l[t]},remove:function(t){if(u<Number.MAX_VALUE){var e=c[t];if(!e)return;e==d&&(d=e.p),e==p&&(p=e.n),s(e.n,e.p),delete c[t]}delete l[t],o--},removeAll:function(){l={},o=0,c={},d=p=null},destroy:function(){l=null,a=null,c=null,delete e[t]},info:function(){return h({},a,{size:o})}}}var e={};return t.info=function(){var t={};return s(e,function(e,n){t[n]=e.info()}),t},t.get=function(t){return e[t]},t}}function ae(){this.$get=["$cacheFactory",function(t){
+return t("templates")}]}function le(t,i){function r(t,e,n){var i=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,r={};return s(t,function(t,s){var o=t.match(i);if(!o)throw Mr("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",e,s,t,n?"controller bindings definition":"isolate scope definition");r[s]={mode:o[1][0],collection:"*"===o[2],optional:"?"===o[3],attrName:o[4]||s}}),r}function o(t,e){var n={isolateScope:null,bindToController:null};if(w(t.scope)&&(t.bindToController===!0?(n.bindToController=r(t.scope,e,!0),n.isolateScope={}):n.isolateScope=r(t.scope,e,!1)),w(t.bindToController)&&(n.bindToController=r(t.bindToController,e,!0)),w(n.bindToController)){var i=t.controller,s=t.controllerAs;if(!i)throw Mr("noctrl","Cannot bind to controller without directive '{0}'s controller.",e);if(!de(i,s))throw Mr("noident","Cannot bind to controller without identifier for directive '{0}'.",e)}return n}function l(t){var e=t.charAt(0);if(!e||e!==$i(e))throw Mr("baddir","Directive name '{0}' is invalid. The first character must be a lowercase letter",t);if(t!==t.trim())throw Mr("baddir","Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",t)}var u={},c="Directive",d=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,p=/(([\w\-]+)(?:\:([^;]+))?;?)/,b=F("ngSrc,ngSrcset,src,srcset"),x=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,C=/^(on[a-z]+|formaction)$/;this.directive=function T(e,n){return pt(e,"directive"),_(e)?(l(e),ht(n,"directiveFactory"),u.hasOwnProperty(e)||(u[e]=[],t.factory(e+c,["$injector","$exceptionHandler",function(t,n){var i=[];return s(u[e],function(r,s){try{var a=t.invoke(r);D(a)?a={compile:v(a)}:!a.compile&&a.link&&(a.compile=v(a.link)),a.priority=a.priority||0,a.index=s,a.name=a.name||e,a.require=a.require||a.controller&&a.name,a.restrict=a.restrict||"EA";var l=a.$$bindings=o(a,a.name);w(l.isolateScope)&&(a.$$isolateBindings=l.isolateScope),a.$$moduleName=r.$$moduleName,i.push(a)}catch(u){n(u)}}),i}])),u[e].push(n)):s(e,a(T)),this},this.aHrefSanitizationWhitelist=function(t){return $(t)?(i.aHrefSanitizationWhitelist(t),this):i.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(i.imgSrcSanitizationWhitelist(t),this):i.imgSrcSanitizationWhitelist()};var k=!0;this.debugInfoEnabled=function(t){return $(t)?(k=t,this):k},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(t,i,r,o,a,l,v,$,T,S,M){function A(t,e){try{t.addClass(e)}catch(n){}}function I(t,e,n,i,r){t instanceof Di||(t=Di(t)),s(t,function(e,n){e.nodeType==Gi&&e.nodeValue.match(/\S+/)&&(t[n]=Di(e).wrap("<span></span>").parent()[0])});var o=P(t,e,t,n,i,r);I.$$addScopeClass(t);var a=null;return function(e,n,i){ht(e,"scope"),i=i||{};var r=i.parentBoundTranscludeFn,s=i.transcludeControllers,l=i.futureParentElement;r&&r.$$boundTransclude&&(r=r.$$boundTransclude),a||(a=O(l));var u;if(u="html"!==a?Di(Z(a,Di("<div>").append(t).html())):n?pr.clone.call(t):t,s)for(var c in s)u.data("$"+c+"Controller",s[c].instance);return I.$$addScopeInfo(u,e),n&&n(u,e),o&&o(e,u,u,r),u}}function O(t){var e=t&&t[0];return e&&"foreignobject"!==j(e)&&e.toString().match(/SVG/)?"svg":"html"}function P(t,e,i,r,s,o){function a(t,i,r,s){var o,a,l,u,c,h,d,p,g;if(f){var v=i.length;for(g=new Array(v),c=0;c<m.length;c+=3)d=m[c],g[d]=i[d]}else g=i;for(c=0,h=m.length;h>c;)if(l=g[m[c++]],o=m[c++],a=m[c++],o){if(o.scope){u=t.$new(),I.$$addScopeInfo(Di(l),u);var b=o.$$destroyBindings;b&&(o.$$destroyBindings=null,u.$on("$destroyed",b))}else u=t;p=o.transcludeOnThisElement?N(t,o.transclude,s):!o.templateOnThisElement&&s?s:!s&&e?N(t,e):null,o(a,u,l,r,p,o)}else a&&a(t,l.childNodes,n,s)}for(var l,u,c,h,d,p,f,m=[],g=0;g<t.length;g++)l=new ot,u=H(t[g],[],l,0===g?r:n,s),c=u.length?W(u,t[g],l,e,i,null,[],[],o):null,c&&c.scope&&I.$$addScopeClass(l.$$element),d=c&&c.terminal||!(h=t[g].childNodes)||!h.length?null:P(h,c?(c.transcludeOnThisElement||!c.templateOnThisElement)&&c.transclude:e),(c||d)&&(m.push(g,c,d),p=!0,f=f||c),o=null;return p?a:null}function N(t,e,n){var i=function(i,r,s,o,a){return i||(i=t.$new(!1,a),i.$$transcluded=!0),e(i,r,{parentBoundTranscludeFn:n,transcludeControllers:s,futureParentElement:o})};return i}function H(t,e,n,i,r){var s,o,a=t.nodeType,l=n.$attr;switch(a){case Yi:U(e,ue(j(t)),"E",i,r);for(var u,c,h,f,m,g,v=t.attributes,b=0,y=v&&v.length;y>b;b++){var $=!1,x=!1;u=v[b],c=u.name,m=zi(u.value),f=ue(c),(g=dt.test(f))&&(c=c.replace(Ar,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var C=f.replace(/(Start|End)$/,"");B(C)&&f===C+"Start"&&($=c,x=c.substr(0,c.length-5)+"end",c=c.substr(0,c.length-6)),h=ue(c.toLowerCase()),l[h]=c,(g||!n.hasOwnProperty(h))&&(n[h]=m,Vt(t,h)&&(n[h]=!0)),et(t,e,m,h,g),U(e,h,"A",i,r,$,x)}if(o=t.className,w(o)&&(o=o.animVal),_(o)&&""!==o)for(;s=p.exec(o);)h=ue(s[2]),U(e,h,"C",i,r)&&(n[h]=zi(s[3])),o=o.substr(s.index+s[0].length);break;case Gi:if(11===ki)for(;t.parentNode&&t.nextSibling&&t.nextSibling.nodeType===Gi;)t.nodeValue=t.nodeValue+t.nextSibling.nodeValue,t.parentNode.removeChild(t.nextSibling);Q(e,t.nodeValue);break;case Xi:try{s=d.exec(t.nodeValue),s&&(h=ue(s[1]),U(e,h,"M",i,r)&&(n[h]=zi(s[2])))}catch(k){}}return e.sort(G),e}function F(t,e,n){var i=[],r=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Mr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==Yi&&(t.hasAttribute(e)&&r++,t.hasAttribute(n)&&r--),i.push(t),t=t.nextSibling}while(r>0)}else i.push(t);return Di(i)}function z(t,e,n){return function(i,r,s,o,a){return r=F(r[0],e,n),t(i,r,s,o,a)}}function W(t,i,s,o,a,u,c,h,d){function p(t,e,n,i){t&&(n&&(t=z(t,n,i)),t.require=v.require,t.directiveName=b,(M===v||v.$$isolateScope)&&(t=it(t,{isolateScope:!0})),c.push(t)),e&&(n&&(e=z(e,n,i)),e.require=v.require,e.directiveName=b,(M===v||v.$$isolateScope)&&(e=it(e,{isolateScope:!0})),h.push(e))}function f(t,e,n,i){var r;if(_(e)){var s=e.match(x),o=e.substring(s[0].length),a=s[1]||s[3],l="?"===s[2];if("^^"===a?n=n.parent():(r=i&&i[o],r=r&&r.instance),!r){var u="$"+o+"Controller";r=a?n.inheritedData(u):n.data(u)}if(!r&&!l)throw Mr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",o,t)}else if(ji(e)){r=[];for(var c=0,h=e.length;h>c;c++)r[c]=f(t,e[c],n,i)}return r||null}function m(t,e,n,i,r,s){var o=gt();for(var a in i){var u=i[a],c={$scope:u===M||u.$$isolateScope?r:s,$element:t,$attrs:e,$transclude:n},h=u.controller;"@"==h&&(h=e[u.name]);var d=l(h,c,!0,u.controllerAs);o[u.name]=d,j||t.data("$"+u.name+"Controller",d.instance)}return o}function g(t,e,r,o,a,l){function u(t,e,i){var r;return E(t)||(i=e,e=t,t=n),j&&(r=y),i||(i=j?w.parent():w),a(t,e,r,i,O)}var d,p,g,v,b,y,$,w,x;if(i===r?(x=s,w=s.$$element):(w=Di(r),x=new ot(w,s)),M&&(b=e.$new(!0)),a&&($=u,$.$$boundTransclude=a),S&&(y=m(w,x,$,S,b,e)),M&&(I.$$addScopeInfo(w,b,!0,!(A&&(A===M||A===M.$$originalDirective))),I.$$addScopeClass(w,!0),b.$$isolateBindings=M.$$isolateBindings,st(e,x,b,b.$$isolateBindings,M,b)),y){var _,C,k=M||T;k&&y[k.name]&&(_=k.$$bindings.bindToController,v=y[k.name],v&&v.identifier&&_&&(C=v,l.$$destroyBindings=st(e,x,v.instance,_,k)));for(d in y){v=y[d];var D=v();D!==v.instance&&(v.instance=D,w.data("$"+d+"Controller",D),v===C&&(l.$$destroyBindings(),l.$$destroyBindings=st(e,x,D,_,k)))}}for(d=0,p=c.length;p>d;d++)g=c[d],rt(g,g.isolateScope?b:e,w,x,g.require&&f(g.directiveName,g.require,w,y),$);var O=e;for(M&&(M.template||null===M.templateUrl)&&(O=b),t&&t(O,r.childNodes,n,a),d=h.length-1;d>=0;d--)g=h[d],rt(g,g.isolateScope?b:e,w,x,g.require&&f(g.directiveName,g.require,w,y),$)}d=d||{};for(var v,b,y,$,C,k=-Number.MAX_VALUE,T=d.newScopeDirective,S=d.controllerDirectives,M=d.newIsolateScopeDirective,A=d.templateDirective,O=d.nonTlbTranscludeDirective,P=!1,N=!1,j=d.hasElementTranscludeDirective,R=s.$$element=Di(i),W=u,L=o,U=0,B=t.length;B>U;U++){v=t[U];var G=v.$$start,Q=v.$$end;if(G&&(R=F(i,G,Q)),y=n,k>v.priority)break;if((C=v.scope)&&(v.templateUrl||(w(C)?(X("new/isolated scope",M||T,v,R),M=v):X("new/isolated scope",M,v,R)),T=T||v),b=v.name,!v.templateUrl&&v.controller&&(C=v.controller,S=S||gt(),X("'"+b+"' controller",S[b],v,R),S[b]=v),(C=v.transclude)&&(P=!0,v.$$tlb||(X("transclusion",O,v,R),O=v),"element"==C?(j=!0,k=v.priority,y=R,R=s.$$element=Di(e.createComment(" "+b+": "+s[b]+" ")),i=R[0],nt(a,V(y),i),L=I(y,o,k,W&&W.name,{nonTlbTranscludeDirective:O})):(y=Di(Et(i)).contents(),R.empty(),L=I(y,o))),v.template)if(N=!0,X("template",A,v,R),A=v,C=D(v.template)?v.template(R,s):v.template,C=ct(C),v.replace){if(W=v,y=_t(C)?[]:he(Z(v.templateNamespace,zi(C))),i=y[0],1!=y.length||i.nodeType!==Yi)throw Mr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",b,"");nt(a,R,i);var tt={$attr:{}},et=H(i,[],tt),at=t.splice(U+1,t.length-(U+1));M&&q(et),t=t.concat(et).concat(at),Y(s,tt),B=t.length}else R.html(C);if(v.templateUrl)N=!0,X("template",A,v,R),A=v,v.replace&&(W=v),g=K(t.splice(U,t.length-U),R,s,a,P&&L,c,h,{controllerDirectives:S,newScopeDirective:T!==v&&T,newIsolateScopeDirective:M,templateDirective:A,nonTlbTranscludeDirective:O}),B=t.length;else if(v.compile)try{$=v.compile(R,s,L),D($)?p(null,$,G,Q):$&&p($.pre,$.post,G,Q)}catch(lt){r(lt,J(R))}v.terminal&&(g.terminal=!0,k=Math.max(k,v.priority))}return g.scope=T&&T.scope===!0,g.transcludeOnThisElement=P,g.templateOnThisElement=N,g.transclude=L,d.hasElementTranscludeDirective=j,g}function q(t){for(var e=0,n=t.length;n>e;e++)t[e]=f(t[e],{$$isolateScope:!0})}function U(e,n,i,s,o,a,l){if(n===o)return null;var h=null;if(u.hasOwnProperty(n))for(var d,p=t.get(n+c),m=0,g=p.length;g>m;m++)try{d=p[m],(y(s)||s>d.priority)&&-1!=d.restrict.indexOf(i)&&(a&&(d=f(d,{$$start:a,$$end:l})),e.push(d),h=d)}catch(v){r(v)}return h}function B(e){if(u.hasOwnProperty(e))for(var n,i=t.get(e+c),r=0,s=i.length;s>r;r++)if(n=i[r],n.multiElement)return!0;return!1}function Y(t,e){var n=e.$attr,i=t.$attr,r=t.$$element;s(t,function(i,r){"$"!=r.charAt(0)&&(e[r]&&e[r]!==i&&(i+=("style"===r?";":" ")+e[r]),t.$set(r,i,!0,n[r]))}),s(e,function(e,s){"class"==s?(A(r,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==s?(r.attr("style",r.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==s.charAt(0)||t.hasOwnProperty(s)||(t[s]=e,i[s]=n[s])})}function K(t,e,n,i,r,a,l,u){var c,h,d=[],p=e[0],m=t.shift(),g=f(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),v=D(m.templateUrl)?m.templateUrl(e,n):m.templateUrl,b=m.templateNamespace;return e.empty(),o(v).then(function(o){var f,y,$,x;if(o=ct(o),m.replace){if($=_t(o)?[]:he(Z(b,zi(o))),f=$[0],1!=$.length||f.nodeType!==Yi)throw Mr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,v);y={$attr:{}},nt(i,e,f);var _=H(f,[],y);w(m.scope)&&q(_),t=_.concat(t),Y(n,y)}else f=p,e.html(o);for(t.unshift(g),c=W(t,f,n,r,e,m,a,l,u),s(i,function(t,n){t==f&&(i[n]=e[0])}),h=P(e[0].childNodes,r);d.length;){var C=d.shift(),k=d.shift(),D=d.shift(),T=d.shift(),S=e[0];if(!C.$$destroyed){if(k!==p){var E=k.className;u.hasElementTranscludeDirective&&m.replace||(S=Et(f)),nt(D,Di(k),S),A(Di(S),E)}x=c.transcludeOnThisElement?N(C,c.transclude,T):T,c(h,C,S,i,x,c)}}d=null}),function(t,e,n,i,r){var s=r;e.$$destroyed||(d?d.push(e,n,i,s):(c.transcludeOnThisElement&&(s=N(e,c.transclude,r)),c(h,e,n,i,s,c)))}}function G(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name<e.name?-1:1:t.index-e.index}function X(t,e,n,i){function r(t){return t?" (module: "+t+")":""}if(e)throw Mr("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",e.name,r(e.$$moduleName),n.name,r(n.$$moduleName),t,J(i))}function Q(t,e){var n=i(e,!0);n&&t.push({priority:0,compile:function(t){var e=t.parent(),i=!!e.length;return i&&I.$$addBindingClass(e),function(t,e){var r=e.parent();i||I.$$addBindingClass(r),I.$$addBindingInfo(r,n.expressions),t.$watch(n,function(t){e[0].nodeValue=t})}}})}function Z(t,n){switch(t=$i(t||"html")){case"svg":case"math":var i=e.createElement("div");return i.innerHTML="<"+t+">"+n+"</"+t+">",i.childNodes[0].childNodes;default:return n}}function tt(t,e){if("srcdoc"==e)return T.HTML;var n=j(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?T.RESOURCE_URL:void 0}function et(t,e,n,r,s){var o=tt(t,r);s=b[r]||s;var a=i(n,!0,o,s);if(a){if("multiple"===r&&"select"===j(t))throw Mr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",J(t));e.push({priority:100,compile:function(){return{pre:function(t,e,l){var u=l.$$observers||(l.$$observers=gt());if(C.test(r))throw Mr("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var c=l[r];c!==n&&(a=c&&i(c,!0,o,s),n=c),a&&(l[r]=a(t),(u[r]||(u[r]=[])).$$inter=!0,(l.$$observers&&l.$$observers[r].$$scope||t).$watch(a,function(t,e){"class"===r&&t!=e?l.$updateClass(t,e):l.$set(r,t)}))}}}})}}function nt(t,n,i){var r,s,o=n[0],a=n.length,l=o.parentNode;if(t)for(r=0,s=t.length;s>r;r++)if(t[r]==o){t[r++]=i;for(var u=r,c=u+a-1,h=t.length;h>u;u++,c++)h>c?t[u]=t[c]:delete t[u];t.length-=a-1,t.context===o&&(t.context=i);break}l&&l.replaceChild(i,o);var d=e.createDocumentFragment();d.appendChild(o),Di.hasData(o)&&(Di(i).data(Di(o).data()),Ti?(Fi=!0,Ti.cleanData([o])):delete Di.cache[o[Di.expando]]);for(var p=1,f=n.length;f>p;p++){var m=n[p];Di(m).remove(),d.appendChild(m),delete n[p]}n[0]=i,n.length=1}function it(t,e){return h(function(){return t.apply(null,arguments)},t,e)}function rt(t,e,n,i,s,o){try{t(e,n,i,s,o)}catch(a){r(a,J(n))}}function st(t,e,n,r,o,l){var u;s(r,function(r,s){var l,c,h,d,p=r.attrName,f=r.optional,g=r.mode;switch(g){case"@":f||wi.call(e,p)||(n[s]=e[p]=void 0),e.$observe(p,function(t){_(t)&&(n[s]=t)}),e.$$observers[p].$$scope=t,_(e[p])&&(n[s]=i(e[p])(t));break;case"=":if(!wi.call(e,p)){if(f)break;e[p]=void 0}if(f&&!e[p])break;c=a(e[p]),d=c.literal?L:function(t,e){return t===e||t!==t&&e!==e},h=c.assign||function(){throw l=n[s]=c(t),Mr("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",e[p],o.name)},l=n[s]=c(t);var v=function(e){return d(e,n[s])||(d(e,l)?h(t,e=n[s]):n[s]=e),l=e};v.$stateful=!0;var b;b=r.collection?t.$watchCollection(e[p],v):t.$watch(a(e[p],v),null,c.literal),u=u||[],u.push(b);break;case"&":if(c=e.hasOwnProperty(p)?a(e[p]):m,c===m&&f)break;n[s]=function(e){return c(t,e)}}});var c=u?function(){for(var t=0,e=u.length;e>t;++t)u[t]()}:m;return l&&c!==m?(l.$on("$destroy",c),m):c}var ot=function(t,e){if(e){var n,i,r,s=Object.keys(e);for(n=0,i=s.length;i>n;n++)r=s[n],this[r]=e[r]}else this.$attr={};this.$$element=t};ot.prototype={$normalize:ue,$addClass:function(t){t&&t.length>0&&S.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&S.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=ce(t,e);n&&n.length&&S.addClass(this.$$element,n);var i=ce(e,t);i&&i.length&&S.removeClass(this.$$element,i)},$set:function(t,e,n,i){var o,a=this.$$element[0],l=Vt(a,t),u=Ut(t),c=t;if(l?(this.$$element.prop(t,e),i=l):u&&(this[u]=e,c=u),this[t]=e,i?this.$attr[t]=i:(i=this.$attr[t],i||(this.$attr[t]=i=ut(t,"-"))),o=j(this.$$element),"a"===o&&"href"===t||"img"===o&&"src"===t)this[t]=e=M(e,"src"===t);else if("img"===o&&"srcset"===t){for(var h="",d=zi(e),p=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,f=/\s/.test(d)?p:/(,)/,m=d.split(f),g=Math.floor(m.length/2),v=0;g>v;v++){var b=2*v;h+=M(zi(m[b]),!0),h+=" "+zi(m[b+1])}var $=zi(m[2*v]).split(/\s/);h+=M(zi($[0]),!0),2===$.length&&(h+=" "+zi($[1])),this[t]=e=h}n!==!1&&(null===e||y(e)?this.$$element.removeAttr(i):this.$$element.attr(i,e));var w=this.$$observers;w&&s(w[c],function(t){try{t(e)}catch(n){r(n)}})},$observe:function(t,e){var n=this,i=n.$$observers||(n.$$observers=gt()),r=i[t]||(i[t]=[]);return r.push(e),v.$evalAsync(function(){r.$$inter||!n.hasOwnProperty(t)||y(n[t])||e(n[t])}),function(){R(r,e)}}};var at=i.startSymbol(),lt=i.endSymbol(),ct="{{"==at||"}}"==lt?g:function(t){return t.replace(/\{\{/g,at).replace(/}}/g,lt)},dt=/^ngAttr[A-Z]/;return I.$$addBindingInfo=k?function(t,e){var n=t.data("$binding")||[];ji(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:m,I.$$addBindingClass=k?function(t){A(t,"ng-binding")}:m,I.$$addScopeInfo=k?function(t,e,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(r,e)}:m,I.$$addScopeClass=k?function(t,e){A(t,e?"ng-isolate-scope":"ng-scope")}:m,I}]}function ue(t){return xt(t.replace(Ar,""))}function ce(t,e){var n="",i=t.split(/\s+/),r=e.split(/\s+/);t:for(var s=0;s<i.length;s++){for(var o=i[s],a=0;a<r.length;a++)if(o==r[a])continue t;n+=(n.length>0?" ":"")+o}return n}function he(t){t=Di(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===Xi&&Mi.call(t,e,1)}return t}function de(t,e){if(e&&_(e))return e;if(_(t)){var n=Or.exec(t);if(n)return n[3]}}function pe(){var t={},e=!1;this.register=function(e,n){pt(e,"controller"),w(e)?h(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(r,s){function o(t,e,n,r){if(!t||!w(t.$scope))throw i("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,e);t.$scope[e]=n}return function(i,a,l,u){var c,d,p,f;if(l=l===!0,u&&_(u)&&(f=u),_(i)){if(d=i.match(Or),!d)throw Ir("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",i);p=d[1],f=f||d[3],i=t.hasOwnProperty(p)?t[p]:ft(a.$scope,p,!0)||(e?ft(s,p,!0):n),dt(i,p,!0)}if(l){var m=(ji(i)?i[i.length-1]:i).prototype;c=Object.create(m||null),f&&o(a,f,c,p||i.name);var g;return g=h(function(){var t=r.invoke(i,c,a,p);return t!==c&&(w(t)||D(t))&&(c=t,f&&o(a,f,c,p||i.name)),c},{instance:c,identifier:f})}return c=r.instantiate(i,a,p),f&&o(a,f,c,p||i.name),c}}]}function fe(){this.$get=["$window",function(t){return Di(t.document)}]}function me(){this.$get=["$log",function(t){return function(e,n){t.error.apply(t,arguments)}}]}function ge(t){return w(t)?k(t)?t.toISOString():Y(t):t}function ve(){this.$get=function(){return function(t){if(!t)return"";var e=[];return o(t,function(t,n){null===t||y(t)||(ji(t)?s(t,function(t,i){e.push(it(n)+"="+it(ge(t)))}):e.push(it(n)+"="+it(ge(t))))}),e.join("&")}}}function be(){this.$get=function(){return function(t){function e(t,i,r){null===t||y(t)||(ji(t)?s(t,function(t,n){e(t,i+"["+(w(t)?n:"")+"]")}):w(t)&&!k(t)?o(t,function(t,n){e(t,i+(r?"":"[")+n+(r?"":"]"))}):n.push(it(i)+"="+it(ge(t))))}if(!t)return"";var n=[];return e(t,"",!0),n.join("&")}}}function ye(t,e){if(_(t)){var n=t.replace(Rr,"").trim();if(n){var i=e("Content-Type");(i&&0===i.indexOf(Nr)||$e(n))&&(t=K(n))}}return t}function $e(t){var e=t.match(Fr);return e&&jr[e[0]].test(t)}function we(t){function e(t,e){t&&(i[t]=i[t]?i[t]+", "+e:e)}var n,i=gt();return _(t)?s(t.split("\n"),function(t){n=t.indexOf(":"),e($i(zi(t.substr(0,n))),zi(t.substr(n+1)))}):w(t)&&s(t,function(t,n){e($i(n),zi(t))}),i}function xe(t){var e;return function(n){if(e||(e=we(t)),n){var i=e[$i(n)];return void 0===i&&(i=null),i}return e}}function _e(t,e,n,i){return D(i)?i(t,e,n):(s(i,function(i){t=i(t,e,n)}),t)}function Ce(t){return t>=200&&300>t}function ke(){var t=this.defaults={transformResponse:[ye],transformRequest:[function(t){return!w(t)||M(t)||I(t)||A(t)?t:Y(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:W(Hr),put:W(Hr),patch:W(Hr)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},e=!1;this.useApplyAsync=function(t){return $(t)?(e=!!t,this):e};var r=!0;this.useLegacyPromiseExtensions=function(t){return $(t)?(r=!!t,this):r};var o=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(a,l,u,c,d,p){function f(e){function o(t){var e=h({},t);return t.data?e.data=_e(t.data,t.headers,t.status,u.transformResponse):e.data=t.data,Ce(t.status)?e:d.reject(e)}function a(t,e){var n,i={};return s(t,function(t,r){D(t)?(n=t(e),null!=n&&(i[r]=n)):i[r]=t}),i}function l(e){var n,i,r,s=t.headers,o=h({},e.headers);s=h({},s.common,s[$i(e.method)]);t:for(n in s){i=$i(n);for(r in o)if($i(r)===i)continue t;o[n]=s[n]}return a(o,W(e))}if(!Ni.isObject(e))throw i("$http")("badreq","Http request configuration must be an object.  Received: {0}",e);var u=h({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse,paramSerializer:t.paramSerializer},e);u.headers=l(e),u.method=xi(u.method),u.paramSerializer=_(u.paramSerializer)?p.get(u.paramSerializer):u.paramSerializer;var c=function(e){var i=e.headers,r=_e(e.data,xe(i),n,e.transformRequest);return y(r)&&s(i,function(t,e){"content-type"===$i(e)&&delete i[e]}),y(e.withCredentials)&&!y(t.withCredentials)&&(e.withCredentials=t.withCredentials),v(e,r).then(o,o)},f=[c,n],m=d.when(u);for(s(C,function(t){(t.request||t.requestError)&&f.unshift(t.request,t.requestError),(t.response||t.responseError)&&f.push(t.response,t.responseError)});f.length;){var g=f.shift(),b=f.shift();m=m.then(g,b)}return r?(m.success=function(t){return dt(t,"fn"),m.then(function(e){t(e.data,e.status,e.headers,u)}),m},m.error=function(t){return dt(t,"fn"),m.then(null,function(e){t(e.data,e.status,e.headers,u)}),m}):(m.success=Wr("success"),m.error=Wr("error")),m}function m(t){s(arguments,function(t){f[t]=function(e,n){return f(h({},n||{},{method:t,url:e}))}})}function g(t){s(arguments,function(t){f[t]=function(e,n,i){return f(h({},i||{},{method:t,url:e,data:n}))}})}function v(i,r){function s(t,n,i,r){function s(){o(n,t,i,r)}p&&(Ce(t)?p.put(C,[t,n,we(i),r]):p.remove(C)),e?c.$applyAsync(s):(s(),c.$$phase||c.$apply())}function o(t,e,n,r){e=e>=-1?e:0,(Ce(e)?g.resolve:g.reject)({data:t,status:e,headers:xe(n),config:i,statusText:r})}function u(t){o(t.data,t.status,W(t.headers()),t.statusText)}function h(){var t=f.pendingRequests.indexOf(i);-1!==t&&f.pendingRequests.splice(t,1)}var p,m,g=d.defer(),v=g.promise,_=i.headers,C=b(i.url,i.paramSerializer(i.params));if(f.pendingRequests.push(i),v.then(h,h),!i.cache&&!t.cache||i.cache===!1||"GET"!==i.method&&"JSONP"!==i.method||(p=w(i.cache)?i.cache:w(t.cache)?t.cache:x),p&&(m=p.get(C),$(m)?P(m)?m.then(u,u):ji(m)?o(m[1],m[0],W(m[2]),m[3]):o(m,200,{},"OK"):p.put(C,v)),y(m)){var k=Tn(i.url)?l()[i.xsrfCookieName||t.xsrfCookieName]:n;k&&(_[i.xsrfHeaderName||t.xsrfHeaderName]=k),a(i.method,C,r,s,_,i.timeout,i.withCredentials,i.responseType)}return v}function b(t,e){return e.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+e),t}var x=u("$http");t.paramSerializer=_(t.paramSerializer)?p.get(t.paramSerializer):t.paramSerializer;var C=[];return s(o,function(t){C.unshift(_(t)?p.get(t):p.invoke(t))}),f.pendingRequests=[],m("get","delete","head","jsonp"),g("post","put","patch"),f.defaults=t,f}]}function De(){this.$get=function(){return function(){return new t.XMLHttpRequest}}}function Te(){this.$get=["$browser","$window","$document","$xhrFactory",function(t,e,n,i){return Se(t,i,t.defer,e.angular.callbacks,n[0])}]}function Se(t,e,n,i,r){function o(t,e,n){var s=r.createElement("script"),o=null;return s.type="text/javascript",s.src=t,s.async=!0,o=function(t){ir(s,"load",o),ir(s,"error",o),r.body.removeChild(s),s=null;var a=-1,l="unknown";t&&("load"!==t.type||i[e].called||(t={type:"error"}),l=t.type,a="error"===t.type?404:200),n&&n(a,l)},nr(s,"load",o),nr(s,"error",o),r.body.appendChild(s),o}return function(r,a,l,u,c,h,d,p){function f(){b&&b(),w&&w.abort()}function g(e,i,r,s,o){$(C)&&n.cancel(C),b=w=null,e(i,r,s,o),t.$$completeOutstandingRequest(m)}if(t.$$incOutstandingRequestCount(),a=a||t.url(),"jsonp"==$i(r)){var v="_"+(i.counter++).toString(36);i[v]=function(t){i[v].data=t,i[v].called=!0};var b=o(a.replace("JSON_CALLBACK","angular.callbacks."+v),v,function(t,e){g(u,t,i[v].data,"",e),i[v]=m})}else{var w=e(r,a);w.open(r,a,!0),s(c,function(t,e){$(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==Dn(a).protocol?404:0),g(u,n,e,w.getAllResponseHeaders(),t)};var x=function(){g(u,-1,null,null,"")};if(w.onerror=x,w.onabort=x,d&&(w.withCredentials=!0),p)try{w.responseType=p}catch(_){if("json"!==p)throw _}w.send(y(l)?null:l)}if(h>0)var C=n(f,h);else P(h)&&h.then(f)}}function Ee(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,r){function s(t){return"\\\\\\"+t}function o(n){return n.replace(d,t).replace(p,e)}function a(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=Y(t)}return t}function l(s,l,d,p){function f(t){try{return t=S(t),p&&!$(t)?t:a(t)}catch(e){i(Lr.interr(s,e))}}p=!!p;for(var m,g,v,b=0,w=[],x=[],_=s.length,C=[],k=[];_>b;){if(-1==(m=s.indexOf(t,b))||-1==(g=s.indexOf(e,m+u))){b!==_&&C.push(o(s.substring(b)));break}b!==m&&C.push(o(s.substring(b,m))),v=s.substring(m+u,g),w.push(v),x.push(n(v,f)),b=g+c,k.push(C.length),C.push("")}if(d&&C.length>1&&Lr.throwNoconcat(s),!l||w.length){var T=function(t){for(var e=0,n=w.length;n>e;e++){if(p&&y(t[e]))return;C[k[e]]=t[e]}return C.join("")},S=function(t){return d?r.getTrusted(d,t):r.valueOf(t)};return h(function(t){var e=0,n=w.length,r=new Array(n);try{for(;n>e;e++)r[e]=x[e](t);return T(r)}catch(o){i(Lr.interr(s,o))}},{exp:s,expressions:w,$$watchDelegate:function(t,e){var n;return t.$watchGroup(x,function(i,r){var s=T(i);D(e)&&e.call(this,s,i!==r?n:s,t),n=s})}})}}var u=t.length,c=e.length,d=new RegExp(t.replace(/./g,s),"g"),p=new RegExp(e.replace(/./g,s),"g");return l.startSymbol=function(){return t},l.endSymbol=function(){return e},l}]}function Me(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,i){function r(r,o,a,l){var u=arguments.length>4,c=u?V(arguments,4):[],h=e.setInterval,d=e.clearInterval,p=0,f=$(l)&&!l,m=(f?i:n).defer(),g=m.promise;return a=$(a)?a:0,g.then(null,null,u?function(){r.apply(null,c)}:r),g.$$intervalId=h(function(){m.notify(p++),a>0&&p>=a&&(m.resolve(p),d(g.$$intervalId),delete s[g.$$intervalId]),f||t.$apply()},o),s[g.$$intervalId]=m,g}var s={};return r.cancel=function(t){return t&&t.$$intervalId in s?(s[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete s[t.$$intervalId],!0):!1},r}]}function Ae(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=nt(e[n]);return e.join("/")}function Ie(t,e){var n=Dn(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=p(n.port)||Vr[n.protocol]||null}function Oe(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var i=Dn(t);e.$$path=decodeURIComponent(n&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),e.$$search=tt(i.search),e.$$hash=decodeURIComponent(i.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function Pe(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function Ne(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function He(t){return t.replace(/(#.+)|#$/,"$1")}function Fe(t){return t.substr(0,Ne(t).lastIndexOf("/")+1)}function je(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function Re(t,e,n){this.$$html5=!0,n=n||"",Ie(t,this),this.$$parse=function(t){var n=Pe(e,t);if(!_(n))throw Ur("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,e);Oe(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=et(this.$$search),n=this.$$hash?"#"+nt(this.$$hash):"";this.$$url=Ae(this.$$path)+(t?"?"+t:"")+n,this.$$absUrl=e+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,r){if(r&&"#"===r[0])return this.hash(r.slice(1)),!0;var s,o,a;return $(s=Pe(t,i))?(o=s,a=$(s=Pe(n,s))?e+(Pe("/",s)||s):t+o):$(s=Pe(e,i))?a=e+s:e==i+"/"&&(a=e),a&&this.$$parse(a),!!a}}function ze(t,e,n){Ie(t,this),this.$$parse=function(i){function r(t,e,n){var i,r=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),r.exec(e)?t:(i=r.exec(t),i?i[1]:t)}var s,o=Pe(t,i)||Pe(e,i);y(o)||"#"!==o.charAt(0)?this.$$html5?s=o:(s="",y(o)&&(t=i,this.replace())):(s=Pe(n,o),y(s)&&(s=o)),Oe(s,this),this.$$path=r(this.$$path,s,t),this.$$compose()},this.$$compose=function(){var e=et(this.$$search),i=this.$$hash?"#"+nt(this.$$hash):"";this.$$url=Ae(this.$$path)+(e?"?"+e:"")+i,this.$$absUrl=t+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(e,n){return Ne(t)==Ne(e)?(this.$$parse(e),!0):!1}}function We(t,e,n){this.$$html5=!0,ze.apply(this,arguments),this.$$parseLinkUrl=function(i,r){if(r&&"#"===r[0])return this.hash(r.slice(1)),!0;var s,o;return t==Ne(i)?s=i:(o=Pe(e,i))?s=t+n+o:e===i+"/"&&(s=e),s&&this.$$parse(s),!!s},this.$$compose=function(){var e=et(this.$$search),i=this.$$hash?"#"+nt(this.$$hash):"";this.$$url=Ae(this.$$path)+(e?"?"+e:"")+i,this.$$absUrl=t+n+this.$$url}}function Le(t){return function(){return this[t]}}function qe(t,e){return function(n){return y(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function Ve(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return $(e)?(t=e,this):t},this.html5Mode=function(t){return O(t)?(e.enabled=t,this):w(t)?(O(t.enabled)&&(e.enabled=t.enabled),O(t.requireBase)&&(e.requireBase=t.requireBase),O(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,i,r,s,o){function a(t,e,n){var r=u.url(),s=u.$$state;try{i.url(t,e,n),u.$$state=i.state()}catch(o){throw u.url(r),u.$$state=s,o}}function l(t,e){n.$broadcast("$locationChangeSuccess",u.absUrl(),t,u.$$state,e)}var u,c,h,d=i.baseHref(),p=i.url();if(e.enabled){if(!d&&e.requireBase)throw Ur("nobase","$location in HTML5 mode requires a <base> tag to be present!");h=je(p)+(d||"/"),c=r.history?Re:We}else h=Ne(p),c=ze;var f=Fe(h);u=new c(h,f,"#"+t),u.$$parseLinkUrl(p,p),u.$$state=i.state();var m=/^\s*(javascript|mailto):/i;s.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var r=Di(t.target);"a"!==j(r[0]);)if(r[0]===s[0]||!(r=r.parent())[0])return;var a=r.prop("href"),l=r.attr("href")||r.attr("xlink:href");w(a)&&"[object SVGAnimatedString]"===a.toString()&&(a=Dn(a.animVal).href),m.test(a)||!a||r.attr("target")||t.isDefaultPrevented()||u.$$parseLinkUrl(a,l)&&(t.preventDefault(),u.absUrl()!=i.url()&&(n.$apply(),o.angular["ff-684208-preventDefault"]=!0))}}),He(u.absUrl())!=He(p)&&i.url(u.absUrl(),!0);var g=!0;return i.onUrlChange(function(t,e){return y(Pe(f,t))?void(o.location.href=t):(n.$evalAsync(function(){var i,r=u.absUrl(),s=u.$$state;u.$$parse(t),u.$$state=e,i=n.$broadcast("$locationChangeStart",t,r,e,s).defaultPrevented,u.absUrl()===t&&(i?(u.$$parse(r),u.$$state=s,a(r,!1,s)):(g=!1,l(r,s)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var t=He(i.url()),e=He(u.absUrl()),s=i.state(),o=u.$$replace,c=t!==e||u.$$html5&&r.history&&s!==u.$$state;(g||c)&&(g=!1,n.$evalAsync(function(){var e=u.absUrl(),i=n.$broadcast("$locationChangeStart",e,t,u.$$state,s).defaultPrevented;u.absUrl()===e&&(i?(u.$$parse(t),u.$$state=s):(c&&a(e,o,s===u.$$state?null:u.$$state),l(t,s)))})),u.$$replace=!1}),u}]}function Ue(){var t=!0,e=this;this.debugEnabled=function(e){return $(e)?(t=e,this):t},this.$get=["$window",function(n){function i(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function r(t){var e=n.console||{},r=e[t]||e.log||m,o=!1;try{o=!!r.apply}catch(a){}return o?function(){var t=[];return s(arguments,function(e){t.push(i(e))}),r.apply(e,t)}:function(t,e){r(t,null==e?"":e)}}return{log:r("log"),info:r("info"),warn:r("warn"),error:r("error"),debug:function(){var n=r("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function Be(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw Yr("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Ye(t,e){if(t+="",!_(t))throw Yr("iseccst","Cannot convert object to primitive value! Expression: {0}",e);
+return t}function Ke(t,e){if(t){if(t.constructor===t)throw Yr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw Yr("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw Yr("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw Yr("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function Ge(t,e){if(t){if(t.constructor===t)throw Yr("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===Kr||t===Gr||t===Xr)throw Yr("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Xe(t,e){if(t&&(t===0..constructor||t===(!1).constructor||t==="".constructor||t==={}.constructor||t===[].constructor||t===Function.constructor))throw Yr("isecaf","Assigning to a constructor is disallowed! Expression: {0}",e)}function Qe(t,e){return"undefined"!=typeof t?t:e}function Je(t,e){return"undefined"==typeof t?e:"undefined"==typeof e?t:t+e}function Ze(t,e){var n=t(e);return!n.$stateful}function tn(t,e){var n,i;switch(t.type){case ts.Program:n=!0,s(t.body,function(t){tn(t.expression,e),n=n&&t.expression.constant}),t.constant=n;break;case ts.Literal:t.constant=!0,t.toWatch=[];break;case ts.UnaryExpression:tn(t.argument,e),t.constant=t.argument.constant,t.toWatch=t.argument.toWatch;break;case ts.BinaryExpression:tn(t.left,e),tn(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=t.left.toWatch.concat(t.right.toWatch);break;case ts.LogicalExpression:tn(t.left,e),tn(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=t.constant?[]:[t];break;case ts.ConditionalExpression:tn(t.test,e),tn(t.alternate,e),tn(t.consequent,e),t.constant=t.test.constant&&t.alternate.constant&&t.consequent.constant,t.toWatch=t.constant?[]:[t];break;case ts.Identifier:t.constant=!1,t.toWatch=[t];break;case ts.MemberExpression:tn(t.object,e),t.computed&&tn(t.property,e),t.constant=t.object.constant&&(!t.computed||t.property.constant),t.toWatch=[t];break;case ts.CallExpression:n=t.filter?Ze(e,t.callee.name):!1,i=[],s(t.arguments,function(t){tn(t,e),n=n&&t.constant,t.constant||i.push.apply(i,t.toWatch)}),t.constant=n,t.toWatch=t.filter&&Ze(e,t.callee.name)?i:[t];break;case ts.AssignmentExpression:tn(t.left,e),tn(t.right,e),t.constant=t.left.constant&&t.right.constant,t.toWatch=[t];break;case ts.ArrayExpression:n=!0,i=[],s(t.elements,function(t){tn(t,e),n=n&&t.constant,t.constant||i.push.apply(i,t.toWatch)}),t.constant=n,t.toWatch=i;break;case ts.ObjectExpression:n=!0,i=[],s(t.properties,function(t){tn(t.value,e),n=n&&t.value.constant,t.value.constant||i.push.apply(i,t.value.toWatch)}),t.constant=n,t.toWatch=i;break;case ts.ThisExpression:t.constant=!1,t.toWatch=[]}}function en(t){if(1==t.length){var e=t[0].expression,i=e.toWatch;return 1!==i.length?i:i[0]!==e?i:n}}function nn(t){return t.type===ts.Identifier||t.type===ts.MemberExpression}function rn(t){return 1===t.body.length&&nn(t.body[0].expression)?{type:ts.AssignmentExpression,left:t.body[0].expression,right:{type:ts.NGValueParameter},operator:"="}:void 0}function sn(t){return 0===t.body.length||1===t.body.length&&(t.body[0].expression.type===ts.Literal||t.body[0].expression.type===ts.ArrayExpression||t.body[0].expression.type===ts.ObjectExpression)}function on(t){return t.constant}function an(t,e){this.astBuilder=t,this.$filter=e}function ln(t,e){this.astBuilder=t,this.$filter=e}function un(t){return"constructor"==t}function cn(t){return D(t.valueOf)?t.valueOf():ns.call(t)}function hn(){var t=gt(),e=gt();this.$get=["$filter",function(i){function r(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=cn(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function o(t,e,i,s,o){var a,l=s.inputs;if(1===l.length){var u=r;return l=l[0],t.$watch(function(t){var e=l(t);return r(e,u)||(a=s(t,n,n,[e]),u=e&&cn(e)),a},e,i,o)}for(var c=[],h=[],d=0,p=l.length;p>d;d++)c[d]=r,h[d]=null;return t.$watch(function(t){for(var e=!1,i=0,o=l.length;o>i;i++){var u=l[i](t);(e||(e=!r(u,c[i])))&&(h[i]=u,c[i]=u&&cn(u))}return e&&(a=s(t,n,n,h)),a},e,i,o)}function a(t,e,n,i){var r,s;return r=t.$watch(function(t){return i(t)},function(t,n,i){s=t,D(e)&&e.apply(this,arguments),$(t)&&i.$$postDigest(function(){$(s)&&r()})},n)}function l(t,e,n,i){function r(t){var e=!0;return s(t,function(t){$(t)||(e=!1)}),e}var o,a;return o=t.$watch(function(t){return i(t)},function(t,n,i){a=t,D(e)&&e.call(this,t,n,i),r(t)&&i.$$postDigest(function(){r(a)&&o()})},n)}function u(t,e,n,i){var r;return r=t.$watch(function(t){return i(t)},function(t,n,i){D(e)&&e.apply(this,arguments),r()},n)}function c(t,e){if(!e)return t;var n=t.$$watchDelegate,i=n!==l&&n!==a,r=i?function(n,i,r,s){var o=t(n,i,r,s);return e(o,n,i)}:function(n,i,r,s){var o=t(n,i,r,s),a=e(o,n,i);return $(o)?a:o};return t.$$watchDelegate&&t.$$watchDelegate!==o?r.$$watchDelegate=t.$$watchDelegate:e.$stateful||(r.$$watchDelegate=o,r.inputs=t.inputs?t.inputs:[t]),r}var h=Li().noUnsafeEval,d={csp:h,expensiveChecks:!1},p={csp:h,expensiveChecks:!0};return function(n,r,s){var h,f,g;switch(typeof n){case"string":n=n.trim(),g=n;var v=s?e:t;if(h=v[g],!h){":"===n.charAt(0)&&":"===n.charAt(1)&&(f=!0,n=n.substring(2));var b=s?p:d,y=new Zr(b),$=new es(y,i,b);h=$.parse(n),h.constant?h.$$watchDelegate=u:f?h.$$watchDelegate=h.literal?l:a:h.inputs&&(h.$$watchDelegate=o),v[g]=h}return c(h,r);case"function":return c(n,r);default:return m}}}]}function dn(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return fn(function(e){t.$evalAsync(e)},e)}]}function pn(){this.$get=["$browser","$exceptionHandler",function(t,e){return fn(function(e){t.defer(e)},e)}]}function fn(t,e){function r(t,e,n){function i(e){return function(n){r||(r=!0,e.call(t,n))}}var r=!1;return[i(e),i(n)]}function o(){this.$$state={status:0}}function a(t,e){return function(n){e.call(t,n)}}function l(t){var i,r,s;s=t.pending,t.processScheduled=!1,t.pending=n;for(var o=0,a=s.length;a>o;++o){r=s[o][0],i=s[o][t.status];try{D(i)?r.resolve(i(t.value)):1===t.status?r.resolve(t.value):r.reject(t.value)}catch(l){r.reject(l),e(l)}}}function u(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){l(e)}))}function c(){this.promise=new o,this.resolve=a(this,this.resolve),this.reject=a(this,this.reject),this.notify=a(this,this.notify)}function d(t){var e=new c,n=0,i=ji(t)?[]:{};return s(t,function(t,r){n++,b(t).then(function(t){i.hasOwnProperty(r)||(i[r]=t,--n||e.resolve(i))},function(t){i.hasOwnProperty(r)||e.reject(t)})}),0===n&&e.resolve(i),e.promise}var p=i("$q",TypeError),f=function(){return new c};h(o.prototype,{then:function(t,e,n){if(y(t)&&y(e)&&y(n))return this;var i=new c;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,t,e,n]),this.$$state.status>0&&u(this.$$state),i.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return v(e,!0,t)},function(e){return v(e,!1,t)},e)}}),h(c.prototype,{resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(p("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,i;i=r(this,this.$$resolve,this.$$reject);try{(w(t)||D(t))&&(n=t&&t.then),D(n)?(this.promise.$$state.status=-1,n.call(t,i[0],i[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,u(this.promise.$$state))}catch(s){i[1](s),e(s)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,u(this.promise.$$state)},notify:function(n){var i=this.promise.$$state.pending;this.promise.$$state.status<=0&&i&&i.length&&t(function(){for(var t,r,s=0,o=i.length;o>s;s++){r=i[s][0],t=i[s][3];try{r.notify(D(t)?t(n):n)}catch(a){e(a)}}})}});var m=function(t){var e=new c;return e.reject(t),e.promise},g=function(t,e){var n=new c;return e?n.resolve(t):n.reject(t),n.promise},v=function(t,e,n){var i=null;try{D(n)&&(i=n())}catch(r){return g(r,!1)}return P(i)?i.then(function(){return g(t,e)},function(t){return g(t,!1)}):g(t,e)},b=function(t,e,n,i){var r=new c;return r.resolve(t),r.promise.then(e,n,i)},$=b,x=function _(t){function e(t){i.resolve(t)}function n(t){i.reject(t)}if(!D(t))throw p("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof _))return new _(t);var i=new c;return t(e,n),i.promise};return x.defer=f,x.reject=m,x.when=b,x.resolve=$,x.all=d,x}function mn(){this.$get=["$window","$timeout",function(t,e){var n=t.requestAnimationFrame||t.webkitRequestAnimationFrame,i=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,r=!!n,s=r?function(t){var e=n(t);return function(){i(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};return s.supported=r,s}]}function gn(){function t(t){function e(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=l(),this.$$ChildScope=null}return e.prototype=t,e}var e=10,n=i("$rootScope"),o=null,a=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(i,u,c,h){function d(t){t.currentScope.$$destroyed=!0}function p(){this.$id=l(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function f(t){if(C.$$phase)throw n("inprog","{0} already in progress",C.$$phase);C.$$phase=t}function g(){C.$$phase=null}function v(t,e){do t.$$watchersCount+=e;while(t=t.$parent)}function b(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function $(){}function x(){for(;S.length;)try{S.shift()()}catch(t){u(t)}a=null}function _(){null===a&&(a=h.defer(function(){C.$apply(x)}))}p.prototype={constructor:p,$new:function(e,n){var i;return n=n||this,e?(i=new p,i.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=t(this)),i=new this.$$ChildScope),i.$parent=n,i.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=i,n.$$childTail=i):n.$$childHead=n.$$childTail=i,(e||n!=this)&&i.$on("$destroy",d),i},$watch:function(t,e,n,i){var r=c(t);if(r.$$watchDelegate)return r.$$watchDelegate(this,e,n,r,t);var s=this,a=s.$$watchers,l={fn:e,last:$,get:r,exp:i||t,eq:!!n};return o=null,D(e)||(l.fn=m),a||(a=s.$$watchers=[]),a.unshift(l),v(this,1),function(){R(a,l)>=0&&v(s,-1),o=null}},$watchGroup:function(t,e){function n(){l=!1,u?(u=!1,e(r,r,a)):e(r,i,a)}var i=new Array(t.length),r=new Array(t.length),o=[],a=this,l=!1,u=!0;if(!t.length){var c=!0;return a.$evalAsync(function(){c&&e(r,r,a)}),function(){c=!1}}return 1===t.length?this.$watch(t[0],function(t,n,s){r[0]=t,i[0]=n,e(r,t===n?r:i,s)}):(s(t,function(t,e){var s=a.$watch(t,function(t,s){r[e]=t,i[e]=s,l||(l=!0,a.$evalAsync(n))});o.push(s)}),function(){for(;o.length;)o.shift()()})},$watchCollection:function(t,e){function n(t){s=t;var e,n,i,a,l;if(!y(s)){if(w(s))if(r(s)){o!==p&&(o=p,g=o.length=0,h++),e=s.length,g!==e&&(h++,o.length=g=e);for(var u=0;e>u;u++)l=o[u],a=s[u],i=l!==l&&a!==a,i||l===a||(h++,o[u]=a)}else{o!==f&&(o=f={},g=0,h++),e=0;for(n in s)wi.call(s,n)&&(e++,a=s[n],l=o[n],n in o?(i=l!==l&&a!==a,i||l===a||(h++,o[n]=a)):(g++,o[n]=a,h++));if(g>e){h++;for(n in o)wi.call(s,n)||(g--,delete o[n])}}else o!==s&&(o=s,h++);return h}}function i(){if(m?(m=!1,e(s,s,l)):e(s,a,l),u)if(w(s))if(r(s)){a=new Array(s.length);for(var t=0;t<s.length;t++)a[t]=s[t]}else{a={};for(var n in s)wi.call(s,n)&&(a[n]=s[n])}else a=s}n.$stateful=!0;var s,o,a,l=this,u=e.length>1,h=0,d=c(t,n),p=[],f={},m=!0,g=0;return this.$watch(d,i)},$digest:function(){var t,i,r,s,l,c,d,p,m,v,b=e,y=this,w=[];f("$digest"),h.$$checkUrlChange(),this===C&&null!==a&&(h.defer.cancel(a),x()),o=null;do{for(c=!1,p=y;k.length;){try{v=k.shift(),v.scope.$eval(v.expression,v.locals)}catch(_){u(_)}o=null}t:do{if(s=p.$$watchers)for(l=s.length;l--;)try{if(t=s[l])if((i=t.get(p))===(r=t.last)||(t.eq?L(i,r):"number"==typeof i&&"number"==typeof r&&isNaN(i)&&isNaN(r))){if(t===o){c=!1;break t}}else c=!0,o=t,t.last=t.eq?z(i,null):i,t.fn(i,r===$?i:r,p),5>b&&(m=4-b,w[m]||(w[m]=[]),w[m].push({msg:D(t.exp)?"fn: "+(t.exp.name||t.exp.toString()):t.exp,newVal:i,oldVal:r}))}catch(_){u(_)}if(!(d=p.$$watchersCount&&p.$$childHead||p!==y&&p.$$nextSibling))for(;p!==y&&!(d=p.$$nextSibling);)p=p.$parent}while(p=d);if((c||k.length)&&!b--)throw g(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,w)}while(c||k.length);for(g();T.length;)try{T.shift()()}catch(_){u(_)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===C&&h.$$applicationDestroyed(),v(this,-this.$$watchersCount);for(var e in this.$$listenerCount)b(this,this.$$listenerCount[e],e);t&&t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t&&t.$$childTail==this&&(t.$$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=m,this.$on=this.$watch=this.$watchGroup=function(){return m},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(t,e){return c(t)(this,e)},$evalAsync:function(t,e){C.$$phase||k.length||h.defer(function(){k.length&&C.$digest()}),k.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){T.push(t)},$apply:function(t){try{f("$apply");try{return this.$eval(t)}finally{g()}}catch(e){u(e)}finally{try{C.$digest()}catch(e){throw u(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&S.push(e),_()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var i=this;do i.$$listenerCount[t]||(i.$$listenerCount[t]=0),i.$$listenerCount[t]++;while(i=i.$parent);var r=this;return function(){var i=n.indexOf(e);-1!==i&&(n[i]=null,b(r,1,t))}},$emit:function(t,e){var n,i,r,s=[],o=this,a=!1,l={name:t,targetScope:o,stopPropagation:function(){a=!0},preventDefault:function(){l.defaultPrevented=!0},defaultPrevented:!1},c=q([l],arguments,1);do{for(n=o.$$listeners[t]||s,l.currentScope=o,i=0,r=n.length;r>i;i++)if(n[i])try{n[i].apply(null,c)}catch(h){u(h)}else n.splice(i,1),i--,r--;if(a)return l.currentScope=null,l;o=o.$parent}while(o);return l.currentScope=null,l},$broadcast:function(t,e){var n=this,i=n,r=n,s={name:t,targetScope:n,preventDefault:function(){s.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[t])return s;for(var o,a,l,c=q([s],arguments,1);i=r;){for(s.currentScope=i,o=i.$$listeners[t]||[],a=0,l=o.length;l>a;a++)if(o[a])try{o[a].apply(null,c)}catch(h){u(h)}else o.splice(a,1),a--,l--;if(!(r=i.$$listenerCount[t]&&i.$$childHead||i!==n&&i.$$nextSibling))for(;i!==n&&!(r=i.$$nextSibling);)i=i.$parent}return s.currentScope=null,s}};var C=new p,k=C.$$asyncQueue=[],T=C.$$postDigestQueue=[],S=C.$$applyAsyncQueue=[];return C}]}function vn(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return $(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(e=t,this):e},this.$get=function(){return function(n,i){var r,s=i?e:t;return r=Dn(n).href,""===r||r.match(s)?n:"unsafe:"+r}}}function bn(t){if("self"===t)return t;if(_(t)){if(t.indexOf("***")>-1)throw is("iwcard","Illegal sequence *** in string matcher.  String: {0}",t);return t=Wi(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(T(t))return new RegExp("^"+t.source+"$");throw is("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function yn(t){var e=[];return $(t)&&s(t,function(t){e.push(bn(t))}),e}function $n(){this.SCE_CONTEXTS=rs;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=yn(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=yn(t)),e},this.$get=["$injector",function(n){function i(t,e){return"self"===t?Tn(e):!!t.exec(e.href)}function r(n){var r,s,o=Dn(n.toString()),a=!1;for(r=0,s=t.length;s>r;r++)if(i(t[r],o)){a=!0;break}if(a)for(r=0,s=e.length;s>r;r++)if(i(e[r],o)){a=!1;break}return a}function s(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function o(t,e){var n=h.hasOwnProperty(t)?h[t]:null;if(!n)throw is("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||y(e)||""===e)return e;if("string"!=typeof e)throw is("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new n(e)}function a(t){return t instanceof c?t.$$unwrapTrustedValue():t}function l(t,e){if(null===e||y(e)||""===e)return e;var n=h.hasOwnProperty(t)?h[t]:null;if(n&&e instanceof n)return e.$$unwrapTrustedValue();if(t===rs.RESOURCE_URL){if(r(e))return e;throw is("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",e.toString())}if(t===rs.HTML)return u(e);throw is("unsafe","Attempting to use an unsafe value in a safe context.")}var u=function(t){throw is("unsafe","Attempting to use an unsafe value in a safe context.")};n.has("$sanitize")&&(u=n.get("$sanitize"));var c=s(),h={};return h[rs.HTML]=s(c),h[rs.CSS]=s(c),h[rs.URL]=s(c),h[rs.JS]=s(c),h[rs.RESOURCE_URL]=s(h[rs.URL]),{trustAs:o,getTrusted:l,valueOf:a}}]}function wn(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>ki)throw is("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var i=W(rs);i.isEnabled=function(){return t},i.trustAs=n.trustAs,i.getTrusted=n.getTrusted,i.valueOf=n.valueOf,t||(i.trustAs=i.getTrusted=function(t,e){return e},i.valueOf=g),i.parseAs=function(t,n){var r=e(n);return r.literal&&r.constant?r:e(n,function(e){return i.getTrusted(t,e)})};var r=i.parseAs,o=i.getTrusted,a=i.trustAs;return s(rs,function(t,e){var n=$i(e);i[xt("parse_as_"+n)]=function(e){return r(t,e)},i[xt("get_trusted_"+n)]=function(e){return o(t,e)},i[xt("trust_as_"+n)]=function(e){return a(t,e)}}),i}]}function xn(){this.$get=["$window","$document",function(t,e){var n,i,r={},s=p((/android (\d+)/.exec($i((t.navigator||{}).userAgent))||[])[1]),o=/Boxee/i.test((t.navigator||{}).userAgent),a=e[0]||{},l=/^(Moz|webkit|ms)(?=[A-Z])/,u=a.body&&a.body.style,c=!1,h=!1;if(u){for(var d in u)if(i=l.exec(d)){n=i[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in u&&"webkit"),c=!!("transition"in u||n+"Transition"in u),h=!!("animation"in u||n+"Animation"in u),!s||c&&h||(c=_(u.webkitTransition),h=_(u.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>s||o),hasEvent:function(t){if("input"===t&&11>=ki)return!1;if(y(r[t])){var e=a.createElement("div");r[t]="on"+t in e}return r[t]},csp:Li(),vendorPrefix:n,transitions:c,animations:h,android:s}}]}function _n(){this.$get=["$templateCache","$http","$q","$sce",function(t,e,n,i){function r(s,o){function a(t){if(!o)throw Mr("tpload","Failed to load template: {0} (HTTP status: {1} {2})",s,t.status,t.statusText);return n.reject(t)}r.totalPendingRequests++,_(s)&&t.get(s)||(s=i.getTrustedResourceUrl(s));var l=e.defaults&&e.defaults.transformResponse;ji(l)?l=l.filter(function(t){return t!==ye}):l===ye&&(l=null);var u={cache:t,transformResponse:l};return e.get(s,u)["finally"](function(){r.totalPendingRequests--}).then(function(e){return t.put(s,e.data),e.data},a)}return r.totalPendingRequests=0,r}]}function Cn(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var i={};return i.findBindings=function(t,e,n){var i=t.getElementsByClassName("ng-binding"),r=[];return s(i,function(t){var i=Ni.element(t).data("$binding");i&&s(i,function(i){if(n){var s=new RegExp("(^|\\s)"+Wi(e)+"(\\s|\\||$)");s.test(i)&&r.push(t)}else-1!=i.indexOf(e)&&r.push(t)})}),r},i.findModels=function(t,e,n){for(var i=["ng-","data-ng-","ng\\:"],r=0;r<i.length;++r){var s=n?"=":"*=",o="["+i[r]+"model"+s+'"'+e+'"]',a=t.querySelectorAll(o);if(a.length)return a}},i.getLocation=function(){return n.url()},i.setLocation=function(e){e!==n.url()&&(n.url(e),t.$digest())},i.whenStable=function(t){e.notifyWhenNoOutstandingRequests(t)},i}]}function kn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(t,e,n,i,r){function s(s,a,l){D(s)||(l=a,a=s,s=m);var u,c=V(arguments,3),h=$(l)&&!l,d=(h?i:n).defer(),p=d.promise;return u=e.defer(function(){try{d.resolve(s.apply(null,c))}catch(e){d.reject(e),r(e)}finally{delete o[p.$$timeoutId]}h||t.$apply()},a),p.$$timeoutId=u,o[u]=d,p}var o={};return s.cancel=function(t){return t&&t.$$timeoutId in o?(o[t.$$timeoutId].reject("canceled"),delete o[t.$$timeoutId],e.defer.cancel(t.$$timeoutId)):!1},s}]}function Dn(t){var e=t;return ki&&(ss.setAttribute("href",e),e=ss.href),ss.setAttribute("href",e),{href:ss.href,protocol:ss.protocol?ss.protocol.replace(/:$/,""):"",host:ss.host,search:ss.search?ss.search.replace(/^\?/,""):"",hash:ss.hash?ss.hash.replace(/^#/,""):"",hostname:ss.hostname,port:ss.port,pathname:"/"===ss.pathname.charAt(0)?ss.pathname:"/"+ss.pathname}}function Tn(t){var e=_(t)?Dn(t):t;return e.protocol===os.protocol&&e.host===os.host}function Sn(){this.$get=v(t)}function En(t){function e(t){try{return decodeURIComponent(t)}catch(e){return t}}var n=t[0]||{},i={},r="";return function(){var t,s,o,a,l,u=n.cookie||"";if(u!==r)for(r=u,t=r.split("; "),i={},o=0;o<t.length;o++)s=t[o],a=s.indexOf("="),a>0&&(l=e(s.substring(0,a)),y(i[l])&&(i[l]=e(s.substring(a+1))));return i}}function Mn(){this.$get=En}function An(t){function e(i,r){if(w(i)){var o={};return s(i,function(t,n){o[n]=e(n,t)}),o}return t.factory(i+n,r)}var n="Filter";this.register=e,this.$get=["$injector",function(t){return function(e){return t.get(e+n)}}],e("currency",Hn),e("date",Gn),e("filter",In),e("json",Xn),e("limitTo",Qn),e("lowercase",hs),e("number",Fn),e("orderBy",Jn),e("uppercase",ds)}function In(){return function(t,e,n){if(!r(t)){if(null==t)return t;throw i("filter")("notarray","Expected array but received: {0}",t)}var s,o,a=Nn(e);switch(a){case"function":s=e;break;case"boolean":case"null":case"number":case"string":o=!0;case"object":s=On(e,n,o);break;default:return t}return Array.prototype.filter.call(t,s)}}function On(t,e,n){var i,r=w(t)&&"$"in t;return e===!0?e=L:D(e)||(e=function(t,e){return y(t)?!1:null===t||null===e?t===e:w(e)||w(t)&&!b(t)?!1:(t=$i(""+t),e=$i(""+e),-1!==t.indexOf(e))}),i=function(i){return r&&!w(i)?Pn(i,t.$,e,!1):Pn(i,t,e,n)}}function Pn(t,e,n,i,r){var s=Nn(t),o=Nn(e);if("string"===o&&"!"===e.charAt(0))return!Pn(t,e.substring(1),n,i);if(ji(t))return t.some(function(t){return Pn(t,e,n,i)});switch(s){case"object":var a;if(i){for(a in t)if("$"!==a.charAt(0)&&Pn(t[a],e,n,!0))return!0;return r?!1:Pn(t,e,n,!1)}if("object"===o){for(a in e){var l=e[a];if(!D(l)&&!y(l)){var u="$"===a,c=u?t:t[a];if(!Pn(c,l,n,u,u))return!1}}return!0}return n(t,e);case"function":return!1;default:return n(t,e)}}function Nn(t){return null===t?"null":typeof t}function Hn(t){var e=t.NUMBER_FORMATS;return function(t,n,i){return y(n)&&(n=e.CURRENCY_SYM),y(i)&&(i=e.PATTERNS[1].maxFrac),null==t?t:jn(t,e.PATTERNS[1],e.GROUP_SEP,e.DECIMAL_SEP,i).replace(/\u00A4/g,n)}}function Fn(t){var e=t.NUMBER_FORMATS;return function(t,n){return null==t?t:jn(t,e.PATTERNS[0],e.GROUP_SEP,e.DECIMAL_SEP,n)}}function jn(t,e,n,i,r){if(w(t))return"";var s=0>t;t=Math.abs(t);var o=t===1/0;if(!o&&!isFinite(t))return"";var a=t+"",l="",u=!1,c=[];if(o&&(l="∞"),!o&&-1!==a.indexOf("e")){var h=a.match(/([\d\.]+)e(-?)(\d+)/);h&&"-"==h[2]&&h[3]>r+1?t=0:(l=a,u=!0)}if(o||u)r>0&&1>t&&(l=t.toFixed(r),t=parseFloat(l),l=l.replace(as,i));else{var d=(a.split(as)[1]||"").length;y(r)&&(r=Math.min(Math.max(e.minFrac,d),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+r)).toString()+"e"+-r);var p=(""+t).split(as),f=p[0];p=p[1]||"";var m,g=0,v=e.lgSize,b=e.gSize;if(f.length>=v+b)for(g=f.length-v,m=0;g>m;m++)(g-m)%b===0&&0!==m&&(l+=n),l+=f.charAt(m);for(m=g;m<f.length;m++)(f.length-m)%v===0&&0!==m&&(l+=n),l+=f.charAt(m);for(;p.length<r;)p+="0";r&&"0"!==r&&(l+=i+p.substr(0,r))}return 0===t&&(s=!1),c.push(s?e.negPre:e.posPre,l,s?e.negSuf:e.posSuf),c.join("")}function Rn(t,e,n){var i="";for(0>t&&(i="-",t=-t),t=""+t;t.length<e;)t="0"+t;return n&&(t=t.substr(t.length-e)),i+t}function zn(t,e,n,i){return n=n||0,function(r){var s=r["get"+t]();return(n>0||s>-n)&&(s+=n),0===s&&-12==n&&(s=12),Rn(s,e,i)}}function Wn(t,e){return function(n,i){var r=n["get"+t](),s=xi(e?"SHORT"+t:t);return i[s][r]}}function Ln(t,e,n){var i=-1*n,r=i>=0?"+":"";return r+=Rn(Math[i>0?"floor":"ceil"](i/60),2)+Rn(Math.abs(i%60),2)}function qn(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function Vn(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function Un(t){return function(e){var n=qn(e.getFullYear()),i=Vn(e),r=+i-+n,s=1+Math.round(r/6048e5);return Rn(s,t)}}function Bn(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function Yn(t,e){return t.getFullYear()<=0?e.ERAS[0]:e.ERAS[1]}function Kn(t,e){return t.getFullYear()<=0?e.ERANAMES[0]:e.ERANAMES[1]}function Gn(t){function e(t){var e;if(e=t.match(n)){var i=new Date(0),r=0,s=0,o=e[8]?i.setUTCFullYear:i.setFullYear,a=e[8]?i.setUTCHours:i.setHours;e[9]&&(r=p(e[9]+e[10]),s=p(e[9]+e[11])),o.call(i,p(e[1]),p(e[2])-1,p(e[3]));var l=p(e[4]||0)-r,u=p(e[5]||0)-s,c=p(e[6]||0),h=Math.round(1e3*parseFloat("0."+(e[7]||0)));return a.call(i,l,u,c,h),i}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,i,r){var o,a,l="",u=[];if(i=i||"mediumDate",i=t.DATETIME_FORMATS[i]||i,_(n)&&(n=cs.test(n)?p(n):e(n)),C(n)&&(n=new Date(n)),!k(n)||!isFinite(n.getTime()))return n;for(;i;)a=us.exec(i),a?(u=q(u,a,1),i=u.pop()):(u.push(i),i=null);var c=n.getTimezoneOffset();return r&&(c=G(r,n.getTimezoneOffset()),n=Q(n,r,!0)),s(u,function(e){o=ls[e],l+=o?o(n,t.DATETIME_FORMATS,c):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}}function Xn(){return function(t,e){return y(e)&&(e=2),Y(t,e)}}function Qn(){return function(t,e,n){return e=Math.abs(Number(e))===1/0?Number(e):p(e),isNaN(e)?t:(C(t)&&(t=t.toString()),ji(t)||_(t)?(n=!n||isNaN(n)?0:p(n),n=0>n&&n>=-t.length?t.length+n:n,e>=0?t.slice(n,n+e):0===n?t.slice(e,t.length):t.slice(Math.max(0,n+e),n)):t)}}function Jn(t){function e(e,n){return n=n?-1:1,e.map(function(e){var i=1,r=g;if(D(e))r=e;else if(_(e)&&(("+"==e.charAt(0)||"-"==e.charAt(0))&&(i="-"==e.charAt(0)?-1:1,e=e.substring(1)),""!==e&&(r=t(e),r.constant))){var s=r();r=function(t){return t[s]}}return{get:r,descending:i*n}})}function n(t){switch(typeof t){case"number":case"boolean":case"string":return!0;default:return!1}}function i(t,e){return"function"==typeof t.valueOf&&(t=t.valueOf(),n(t))?t:b(t)&&(t=t.toString(),n(t))?t:e}function s(t,e){var n=typeof t;return null===t?(n="string",t="null"):"string"===n?t=t.toLowerCase():"object"===n&&(t=i(t,e)),{value:t,type:n}}function o(t,e){var n=0;return t.type===e.type?t.value!==e.value&&(n=t.value<e.value?-1:1):n=t.type<e.type?-1:1,n}return function(t,n,i){function a(t,e){return{value:t,predicateValues:u.map(function(n){return s(n.get(t),e)})}}function l(t,e){for(var n=0,i=0,r=u.length;r>i&&!(n=o(t.predicateValues[i],e.predicateValues[i])*u[i].descending);++i);return n}if(!r(t))return t;ji(n)||(n=[n]),0===n.length&&(n=["+"]);var u=e(n,i);u.push({get:function(){return{}},descending:i?-1:1});var c=Array.prototype.map.call(t,a);return c.sort(l),t=c.map(function(t){return t.value})}}function Zn(t){return D(t)&&(t={link:t}),t.restrict=t.restrict||"AC",v(t)}function ti(t,e){t.$name=e}function ei(t,e,i,r,o){var a=this,l=[];a.$error={},a.$$success={},a.$pending=n,a.$name=o(e.name||e.ngForm||"")(i),a.$dirty=!1,a.$pristine=!0,a.$valid=!0,a.$invalid=!1,a.$submitted=!1,a.$$parentForm=ms,a.$rollbackViewValue=function(){s(l,function(t){t.$rollbackViewValue()})},a.$commitViewValue=function(){s(l,function(t){t.$commitViewValue()})},a.$addControl=function(t){pt(t.$name,"input"),l.push(t),t.$name&&(a[t.$name]=t),t.$$parentForm=a},a.$$renameControl=function(t,e){var n=t.$name;a[n]===t&&delete a[n],a[e]=t,t.$name=e},a.$removeControl=function(t){t.$name&&a[t.$name]===t&&delete a[t.$name],s(a.$pending,function(e,n){a.$setValidity(n,null,t)}),s(a.$error,function(e,n){a.$setValidity(n,null,t)}),s(a.$$success,function(e,n){a.$setValidity(n,null,t)}),R(l,t),t.$$parentForm=ms},gi({ctrl:this,$element:t,set:function(t,e,n){var i=t[e];if(i){var r=i.indexOf(n);-1===r&&i.push(n)}else t[e]=[n]},unset:function(t,e,n){var i=t[e];i&&(R(i,n),0===i.length&&delete t[e])},$animate:r}),a.$setDirty=function(){r.removeClass(t,Qs),r.addClass(t,Js),a.$dirty=!0,a.$pristine=!1,a.$$parentForm.$setDirty()},a.$setPristine=function(){r.setClass(t,Qs,Js+" "+gs),a.$dirty=!1,a.$pristine=!0,a.$submitted=!1,s(l,function(t){t.$setPristine()})},a.$setUntouched=function(){s(l,function(t){t.$setUntouched()})},a.$setSubmitted=function(){r.addClass(t,gs),a.$submitted=!0,a.$$parentForm.$setSubmitted()}}function ni(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function ii(t,e,n,i,r,s){ri(t,e,n,i,r,s),ni(i)}function ri(t,e,n,i,r,s){var o=$i(e[0].type);if(!r.android){var a=!1;e.on("compositionstart",function(t){a=!0}),e.on("compositionend",function(){a=!1,l()})}var l=function(t){if(u&&(s.defer.cancel(u),u=null),!a){var r=e.val(),l=t&&t.type;"password"===o||n.ngTrim&&"false"===n.ngTrim||(r=zi(r)),(i.$viewValue!==r||""===r&&i.$$hasNativeValidators)&&i.$setViewValue(r,l)}};if(r.hasEvent("input"))e.on("input",l);else{var u,c=function(t,e,n){u||(u=s.defer(function(){u=null,e&&e.value===n||l(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||c(t,this,this.value)}),r.hasEvent("paste")&&e.on("paste cut",c)}e.on("change",l),i.$render=function(){var t=i.$isEmpty(i.$viewValue)?"":i.$viewValue;e.val()!==t&&e.val(t)}}function si(t,e){if(k(t))return t;if(_(t)){Ds.lastIndex=0;var n=Ds.exec(t);if(n){var i=+n[1],r=+n[2],s=0,o=0,a=0,l=0,u=qn(i),c=7*(r-1);return e&&(s=e.getHours(),o=e.getMinutes(),a=e.getSeconds(),l=e.getMilliseconds()),new Date(i,0,u.getDate()+c,s,o,a,l)}}return NaN}function oi(t,e){return function(n,i){var r,o;if(k(n))return n;if(_(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),$s.test(n))return new Date(n);if(t.lastIndex=0,r=t.exec(n))return r.shift(),o=i?{yyyy:i.getFullYear(),MM:i.getMonth()+1,dd:i.getDate(),HH:i.getHours(),mm:i.getMinutes(),ss:i.getSeconds(),sss:i.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},s(r,function(t,n){n<e.length&&(o[e[n]]=+t)}),new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0)}return NaN}}function ai(t,e,i,r){return function(s,o,a,l,u,c,h){function d(t){return t&&!(t.getTime&&t.getTime()!==t.getTime())}function p(t){return $(t)&&!k(t)?i(t)||n:t}li(s,o,a,l),ri(s,o,a,l,u,c);var f,m=l&&l.$options&&l.$options.timezone;if(l.$$parserName=t,l.$parsers.push(function(t){if(l.$isEmpty(t))return null;if(e.test(t)){var r=i(t,f);return m&&(r=Q(r,m)),r}return n}),l.$formatters.push(function(t){if(t&&!k(t))throw no("datefmt","Expected `{0}` to be a date",t);return d(t)?(f=t,f&&m&&(f=Q(f,m,!0)),
+h("date")(t,r,m)):(f=null,"")}),$(a.min)||a.ngMin){var g;l.$validators.min=function(t){return!d(t)||y(g)||i(t)>=g},a.$observe("min",function(t){g=p(t),l.$validate()})}if($(a.max)||a.ngMax){var v;l.$validators.max=function(t){return!d(t)||y(v)||i(t)<=v},a.$observe("max",function(t){v=p(t),l.$validate()})}}}function li(t,e,i,r){var s=e[0],o=r.$$hasNativeValidators=w(s.validity);o&&r.$parsers.push(function(t){var i=e.prop(yi)||{};return i.badInput&&!i.typeMismatch?n:t})}function ui(t,e,i,r,s,o){if(li(t,e,i,r),ri(t,e,i,r,s,o),r.$$parserName="number",r.$parsers.push(function(t){return r.$isEmpty(t)?null:_s.test(t)?parseFloat(t):n}),r.$formatters.push(function(t){if(!r.$isEmpty(t)){if(!C(t))throw no("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),$(i.min)||i.ngMin){var a;r.$validators.min=function(t){return r.$isEmpty(t)||y(a)||t>=a},i.$observe("min",function(t){$(t)&&!C(t)&&(t=parseFloat(t,10)),a=C(t)&&!isNaN(t)?t:n,r.$validate()})}if($(i.max)||i.ngMax){var l;r.$validators.max=function(t){return r.$isEmpty(t)||y(l)||l>=t},i.$observe("max",function(t){$(t)&&!C(t)&&(t=parseFloat(t,10)),l=C(t)&&!isNaN(t)?t:n,r.$validate()})}}function ci(t,e,n,i,r,s){ri(t,e,n,i,r,s),ni(i),i.$$parserName="url",i.$validators.url=function(t,e){var n=t||e;return i.$isEmpty(n)||ws.test(n)}}function hi(t,e,n,i,r,s){ri(t,e,n,i,r,s),ni(i),i.$$parserName="email",i.$validators.email=function(t,e){var n=t||e;return i.$isEmpty(n)||xs.test(n)}}function di(t,e,n,i){y(n.name)&&e.attr("name",l());var r=function(t){e[0].checked&&i.$setViewValue(n.value,t&&t.type)};e.on("click",r),i.$render=function(){var t=n.value;e[0].checked=t==i.$viewValue},n.$observe("value",i.$render)}function pi(t,e,n,i,r){var s;if($(i)){if(s=t(i),!s.constant)throw no("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,i);return s(e)}return r}function fi(t,e,n,i,r,s,o,a){var l=pi(a,t,"ngTrueValue",n.ngTrueValue,!0),u=pi(a,t,"ngFalseValue",n.ngFalseValue,!1),c=function(t){i.$setViewValue(e[0].checked,t&&t.type)};e.on("click",c),i.$render=function(){e[0].checked=i.$viewValue},i.$isEmpty=function(t){return t===!1},i.$formatters.push(function(t){return L(t,l)}),i.$parsers.push(function(t){return t?l:u})}function mi(t,e){return t="ngClass"+t,["$animate",function(n){function i(t,e){var n=[];t:for(var i=0;i<t.length;i++){for(var r=t[i],s=0;s<e.length;s++)if(r==e[s])continue t;n.push(r)}return n}function r(t){var e=[];return ji(t)?(s(t,function(t){e=e.concat(r(t))}),e):_(t)?t.split(" "):w(t)?(s(t,function(t,n){t&&(e=e.concat(n.split(" ")))}),e):t}return{restrict:"AC",link:function(o,a,l){function u(t){var e=h(t,1);l.$addClass(e)}function c(t){var e=h(t,-1);l.$removeClass(e)}function h(t,e){var n=a.data("$classCounts")||gt(),i=[];return s(t,function(t){(e>0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&i.push(t))}),a.data("$classCounts",n),i.join(" ")}function d(t,e){var r=i(e,t),s=i(t,e);r=h(r,1),s=h(s,-1),r&&r.length&&n.addClass(a,r),s&&s.length&&n.removeClass(a,s)}function p(t){if(e===!0||o.$index%2===e){var n=r(t||[]);if(f){if(!L(t,f)){var i=r(f);d(i,n)}}else u(n)}f=W(t)}var f;o.$watch(l[t],p,!0),l.$observe("class",function(e){p(o.$eval(l[t]))}),"ngClass"!==t&&o.$watch("$index",function(n,i){var s=1&n;if(s!==(1&i)){var a=r(o.$eval(l[t]));s===e?u(a):c(a)}})}}}]}function gi(t){function e(t,e,l){y(e)?i("$pending",t,l):r("$pending",t,l),O(e)?e?(h(a.$error,t,l),c(a.$$success,t,l)):(c(a.$error,t,l),h(a.$$success,t,l)):(h(a.$error,t,l),h(a.$$success,t,l)),a.$pending?(s(eo,!0),a.$valid=a.$invalid=n,o("",null)):(s(eo,!1),a.$valid=vi(a.$error),a.$invalid=!a.$valid,o("",a.$valid));var u;u=a.$pending&&a.$pending[t]?n:a.$error[t]?!1:a.$$success[t]?!0:null,o(t,u),a.$$parentForm.$setValidity(t,u,a)}function i(t,e,n){a[t]||(a[t]={}),c(a[t],e,n)}function r(t,e,i){a[t]&&h(a[t],e,i),vi(a[t])&&(a[t]=n)}function s(t,e){e&&!u[t]?(d.addClass(l,t),u[t]=!0):!e&&u[t]&&(d.removeClass(l,t),u[t]=!1)}function o(t,e){t=t?"-"+ut(t,"-"):"",s(Gs+t,e===!0),s(Xs+t,e===!1)}var a=t.ctrl,l=t.$element,u={},c=t.set,h=t.unset,d=t.$animate;u[Xs]=!(u[Gs]=l.hasClass(Gs)),a.$setValidity=e}function vi(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}var bi=/^\/(.+)\/([a-z]*)$/,yi="validity",$i=function(t){return _(t)?t.toLowerCase():t},wi=Object.prototype.hasOwnProperty,xi=function(t){return _(t)?t.toUpperCase():t},_i=function(t){return _(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},Ci=function(t){return _(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&($i=_i,xi=Ci);var ki,Di,Ti,Si,Ei=[].slice,Mi=[].splice,Ai=[].push,Ii=Object.prototype.toString,Oi=Object.getPrototypeOf,Pi=i("ng"),Ni=t.angular||(t.angular={}),Hi=0;ki=e.documentMode,m.$inject=[],g.$inject=[];var Fi,ji=Array.isArray,Ri=/^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/,zi=function(t){return _(t)?t.trim():t},Wi=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Li=function(){function t(){try{return new Function(""),!1}catch(t){return!0}}if(!$(Li.rules)){var n=e.querySelector("[ng-csp]")||e.querySelector("[data-ng-csp]");if(n){var i=n.getAttribute("ng-csp")||n.getAttribute("data-ng-csp");Li.rules={noUnsafeEval:!i||-1!==i.indexOf("no-unsafe-eval"),noInlineStyle:!i||-1!==i.indexOf("no-inline-style")}}else Li.rules={noUnsafeEval:t(),noInlineStyle:!1}}return Li.rules},qi=function(){if($(qi.name_))return qi.name_;var t,n,i,r,s=Vi.length;for(n=0;s>n;++n)if(i=Vi[n],t=e.querySelector("["+i.replace(":","\\:")+"jq]")){r=t.getAttribute(i+"jq");break}return qi.name_=r},Vi=["ng-","data-ng-","ng:","x-ng-"],Ui=/[A-Z]/g,Bi=!1,Yi=1,Ki=2,Gi=3,Xi=8,Qi=9,Ji=11,Zi={full:"1.4.7",major:1,minor:4,dot:7,codeName:"dark-luminescence"};St.expando="ng339";var tr=St.cache={},er=1,nr=function(t,e,n){t.addEventListener(e,n,!1)},ir=function(t,e,n){t.removeEventListener(e,n,!1)};St._data=function(t){return this.cache[t[this.expando]]||{}};var rr=/([\:\-\_]+(.))/g,sr=/^moz([A-Z])/,or={mouseleave:"mouseout",mouseenter:"mouseover"},ar=i("jqLite"),lr=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,ur=/<|&#?\w+;/,cr=/<([\w:-]+)/,hr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,dr={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};dr.optgroup=dr.option,dr.tbody=dr.tfoot=dr.colgroup=dr.caption=dr.thead,dr.th=dr.td;var pr=St.prototype={ready:function(n){function i(){r||(r=!0,n())}var r=!1;"complete"===e.readyState?setTimeout(i):(this.on("DOMContentLoaded",i),St(t).on("load",i))},toString:function(){var t=[];return s(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return Di(t>=0?this[t]:this[this.length+t])},length:0,push:Ai,sort:[].sort,splice:[].splice},fr={};s("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){fr[$i(t)]=t});var mr={};s("input,select,option,textarea,button,form,details".split(","),function(t){mr[t]=!0});var gr={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};s({data:Pt,removeData:It,hasData:kt},function(t,e){St[e]=t}),s({data:Pt,inheritedData:zt,scope:function(t){return Di.data(t,"$scope")||zt(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return Di.data(t,"$isolateScope")||Di.data(t,"$isolateScopeNoTemplate")},controller:Rt,injector:function(t){return zt(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:Nt,css:function(t,e,n){return e=xt(e),$(n)?void(t.style[e]=n):t.style[e]},attr:function(t,e,i){var r=t.nodeType;if(r!==Gi&&r!==Ki&&r!==Xi){var s=$i(e);if(fr[s]){if(!$(i))return t[e]||(t.attributes.getNamedItem(e)||m).specified?s:n;i?(t[e]=!0,t.setAttribute(e,s)):(t[e]=!1,t.removeAttribute(s))}else if($(i))t.setAttribute(e,i);else if(t.getAttribute){var o=t.getAttribute(e,2);return null===o?n:o}}},prop:function(t,e,n){return $(n)?void(t[e]=n):t[e]},text:function(){function t(t,e){if(y(e)){var n=t.nodeType;return n===Yi||n===Gi?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if(y(e)){if(t.multiple&&"select"===j(t)){var n=[];return s(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return y(e)?t.innerHTML:(Mt(t,!0),void(t.innerHTML=e))},empty:Wt},function(t,e){St.prototype[e]=function(e,n){var i,r,s=this.length;if(t!==Wt&&y(2==t.length&&t!==Nt&&t!==Rt?e:n)){if(w(e)){for(i=0;s>i;i++)if(t===Pt)t(this[i],e);else for(r in e)t(this[i],r,e[r]);return this}for(var o=t.$dv,a=y(o)?Math.min(s,1):s,l=0;a>l;l++){var u=t(this[l],e,n);o=o?o+u:u}return o}for(i=0;s>i;i++)t(this[i],e,n);return this}}),s({removeData:It,on:function Oo(t,e,n,i){if($(i))throw ar("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(Ct(t)){var r=Ot(t,!0),s=r.events,o=r.handle;o||(o=r.handle=Bt(t,s));for(var a=e.indexOf(" ")>=0?e.split(" "):[e],l=a.length;l--;){e=a[l];var u=s[e];u||(s[e]=[],"mouseenter"===e||"mouseleave"===e?Oo(t,or[e],function(t){var n=this,i=t.relatedTarget;(!i||i!==n&&!n.contains(i))&&o(t,e)}):"$destroy"!==e&&nr(t,e,o),u=s[e]),u.push(n)}}},off:At,one:function(t,e,n){t=Di(t),t.on(e,function i(){t.off(e,n),t.off(e,i)}),t.on(e,n)},replaceWith:function(t,e){var n,i=t.parentNode;Mt(t),s(new St(e),function(e){n?i.insertBefore(e,n.nextSibling):i.replaceChild(e,t),n=e})},children:function(t){var e=[];return s(t.childNodes,function(t){t.nodeType===Yi&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===Yi||n===Ji){e=new St(e);for(var i=0,r=e.length;r>i;i++){var s=e[i];t.appendChild(s)}}},prepend:function(t,e){if(t.nodeType===Yi){var n=t.firstChild;s(new St(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=Di(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:Lt,detach:function(t){Lt(t,!0)},after:function(t,e){var n=t,i=t.parentNode;e=new St(e);for(var r=0,s=e.length;s>r;r++){var o=e[r];i.insertBefore(o,n.nextSibling),n=o}},addClass:Ft,removeClass:Ht,toggleClass:function(t,e,n){e&&s(e.split(" "),function(e){var i=n;y(i)&&(i=!Nt(t,e)),(i?Ft:Ht)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==Ji?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:Et,triggerHandler:function(t,e,n){var i,r,o,a=e.type||e,l=Ot(t),u=l&&l.events,c=u&&u[a];c&&(i={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:m,type:a,target:t},e.type&&(i=h(i,e)),r=W(c),o=n?[i].concat(n):[i],s(r,function(e){i.isImmediatePropagationStopped()||e.apply(t,o)}))}},function(t,e){St.prototype[e]=function(e,n,i){for(var r,s=0,o=this.length;o>s;s++)y(r)?(r=t(this[s],e,n,i),$(r)&&(r=Di(r))):jt(r,t(this[s],e,n,i));return $(r)?r:this},St.prototype.bind=St.prototype.on,St.prototype.unbind=St.prototype.off}),Gt.prototype={put:function(t,e){this[Kt(t,this.nextUid)]=e},get:function(t){return this[Kt(t,this.nextUid)]},remove:function(t){var e=this[t=Kt(t,this.nextUid)];return delete this[t],e}};var vr=[function(){this.$get=[function(){return Gt}]}],br=/^[^\(]*\(\s*([^\)]*)\)/m,yr=/,/,$r=/^\s*(_?)(\S+?)\1\s*$/,wr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,xr=i("$injector");Jt.$$annotate=Qt;var _r=i("$animate"),Cr=1,kr="ng-animate",Dr=function(){this.$get=["$q","$$rAF",function(t,e){function n(){}return n.all=m,n.chain=m,n.prototype={end:m,cancel:m,resume:m,pause:m,complete:m,then:function(n,i){return t(function(t){e(function(){t()})}).then(n,i)}},n}]},Tr=function(){var t=new Gt,e=[];this.$get=["$$AnimateRunner","$rootScope",function(n,i){function r(t,e,n){var i=!1;return e&&(e=_(e)?e.split(" "):ji(e)?e:[],s(e,function(e){e&&(i=!0,t[e]=n)})),i}function o(){s(e,function(e){var n=t.get(e);if(n){var i=ne(e.attr("class")),r="",o="";s(n,function(t,e){var n=!!i[e];t!==n&&(t?r+=(r.length?" ":"")+e:o+=(o.length?" ":"")+e)}),s(e,function(t){r&&Ft(t,r),o&&Ht(t,o)}),t.remove(e)}}),e.length=0}function a(n,s,a){var l=t.get(n)||{},u=r(l,s,!0),c=r(l,a,!1);(u||c)&&(t.put(n,l),e.push(n),1===e.length&&i.$$postDigest(o))}return{enabled:m,on:m,off:m,pin:m,push:function(t,e,i,r){return r&&r(),i=i||{},i.from&&t.css(i.from),i.to&&t.css(i.to),(i.addClass||i.removeClass)&&a(t,i.addClass,i.removeClass),new n}}}]},Sr=["$provide",function(t){var e=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,i){if(n&&"."!==n.charAt(0))throw _r("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var r=n+"-animation";e.$$registeredAnimations[n.substr(1)]=r,t.factory(r,i)},this.classNameFilter=function(t){if(1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null,this.$$classNameFilter)){var e=new RegExp("(\\s+|\\/)"+kr+"(\\s+|\\/)");if(e.test(this.$$classNameFilter.toString()))throw _r("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',kr)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(t){function e(t,e,n){if(n){var i=ee(n);!i||i.parentNode||i.previousElementSibling||(n=null)}n?n.after(t):e.prepend(t)}return{on:t.on,off:t.off,pin:t.pin,enabled:t.enabled,cancel:function(t){t.end&&t.end()},enter:function(n,i,r,s){return i=i&&Di(i),r=r&&Di(r),i=i||r.parent(),e(n,i,r),t.push(n,"enter",ie(s))},move:function(n,i,r,s){return i=i&&Di(i),r=r&&Di(r),i=i||r.parent(),e(n,i,r),t.push(n,"move",ie(s))},leave:function(e,n){return t.push(e,"leave",ie(n),function(){e.remove()})},addClass:function(e,n,i){return i=ie(i),i.addClass=te(i.addclass,n),t.push(e,"addClass",i)},removeClass:function(e,n,i){return i=ie(i),i.removeClass=te(i.removeClass,n),t.push(e,"removeClass",i)},setClass:function(e,n,i,r){return r=ie(r),r.addClass=te(r.addClass,n),r.removeClass=te(r.removeClass,i),t.push(e,"setClass",r)},animate:function(e,n,i,r,s){return s=ie(s),s.from=s.from?h(s.from,n):n,s.to=s.to?h(s.to,i):i,r=r||"ng-inline-animate",s.tempClasses=te(s.tempClasses,r),t.push(e,"animate",s)}}}]}],Er=function(){this.$get=["$$rAF","$q",function(t,e){var n=function(){};return n.prototype={done:function(t){this.defer&&this.defer[t===!0?"reject":"resolve"]()},end:function(){this.done()},cancel:function(){this.done(!0)},getPromise:function(){return this.defer||(this.defer=e.defer()),this.defer.promise},then:function(t,e){return this.getPromise().then(t,e)},"catch":function(t){return this.getPromise()["catch"](t)},"finally":function(t){return this.getPromise()["finally"](t)}},function(e,i){function r(){return t(function(){s(),o||a.done(),o=!0}),a}function s(){i.addClass&&(e.addClass(i.addClass),i.addClass=null),i.removeClass&&(e.removeClass(i.removeClass),i.removeClass=null),i.to&&(e.css(i.to),i.to=null)}i.cleanupStyles&&(i.from=i.to=null),i.from&&(e.css(i.from),i.from=null);var o,a=new n;return{start:r,end:r}}}]},Mr=i("$compile");le.$inject=["$provide","$$sanitizeUriProvider"];var Ar=/^((?:x|data)[\:\-_])/i,Ir=i("$controller"),Or=/^(\S+)(\s+as\s+(\w+))?$/,Pr=function(){this.$get=["$document",function(t){return function(e){return e?!e.nodeType&&e instanceof Di&&(e=e[0]):e=t[0].body,e.offsetWidth+1}}]},Nr="application/json",Hr={"Content-Type":Nr+";charset=utf-8"},Fr=/^\[|^\{(?!\{)/,jr={"[":/]$/,"{":/}$/},Rr=/^\)\]\}',?\n/,zr=i("$http"),Wr=function(t){return function(){throw zr("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",t)}},Lr=Ni.$interpolateMinErr=i("$interpolate");Lr.throwNoconcat=function(t){throw Lr("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",t)},Lr.interr=function(t,e){return Lr("interr","Can't interpolate: {0}\n{1}",t,e.toString())};var qr=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Vr={http:80,https:443,ftp:21},Ur=i("$location"),Br={$$html5:!1,$$replace:!1,absUrl:Le("$$absUrl"),url:function(t){if(y(t))return this.$$url;var e=qr.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:Le("$$protocol"),host:Le("$$host"),port:Le("$$port"),path:qe("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(_(t)||C(t))t=t.toString(),this.$$search=tt(t);else{if(!w(t))throw Ur("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=z(t,{}),s(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:y(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:qe("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};s([We,ze,Re],function(t){t.prototype=Object.create(Br),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==Re||!this.$$html5)throw Ur("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=y(e)?null:e,this}});var Yr=i("$parse"),Kr=Function.prototype.call,Gr=Function.prototype.apply,Xr=Function.prototype.bind,Qr=gt();s("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(t){Qr[t]=!0});var Jr={n:"\n",f:"\f",r:"\r",t:"	",v:"\x0B","'":"'",'"':'"'},Zr=function(t){this.options=t};Zr.prototype={constructor:Zr,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index<this.text.length;){var e=this.text.charAt(this.index);if('"'===e||"'"===e)this.readString(e);else if(this.isNumber(e)||"."===e&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(e))this.readIdent();else if(this.is(e,"(){}[].,;:?"))this.tokens.push({index:this.index,text:e}),this.index++;else if(this.isWhitespace(e))this.index++;else{var n=e+this.peek(),i=n+this.peek(2),r=Qr[e],s=Qr[n],o=Qr[i];if(r||s||o){var a=o?i:s?n:e;this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(t,e){return-1!==e.indexOf(t)},peek:function(t){var e=t||1;return this.index+e<this.text.length?this.text.charAt(this.index+e):!1},isNumber:function(t){return t>="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||"	"===t||"\n"===t||"\x0B"===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var i=$(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw Yr("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,i,this.text)},readNumber:function(){for(var t="",e=this.index;this.index<this.text.length;){var n=$i(this.text.charAt(this.index));if("."==n||this.isNumber(n))t+=n;else{var i=this.peek();if("e"==n&&this.isExpOperator(i))t+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"==t.charAt(t.length-1))t+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!=t.charAt(t.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:e,text:t,constant:!0,value:Number(t)})},readIdent:function(){for(var t=this.index;this.index<this.text.length;){var e=this.text.charAt(this.index);if(!this.isIdent(e)&&!this.isNumber(e))break;this.index++}this.tokens.push({index:t,text:this.text.slice(t,this.index),identifier:!0})},readString:function(t){var e=this.index;this.index++;for(var n="",i=t,r=!1;this.index<this.text.length;){var s=this.text.charAt(this.index);if(i+=s,r){if("u"===s){var o=this.text.substring(this.index+1,this.index+5);o.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+o+"]"),this.index+=4,n+=String.fromCharCode(parseInt(o,16))}else{var a=Jr[s];n+=a||s}r=!1}else if("\\"===s)r=!0;else{if(s===t)return this.index++,void this.tokens.push({index:e,text:i,constant:!0,value:n});n+=s}this.index++}this.throwError("Unterminated quote",e)}};var ts=function(t,e){this.lexer=t,this.options=e};ts.Program="Program",ts.ExpressionStatement="ExpressionStatement",ts.AssignmentExpression="AssignmentExpression",ts.ConditionalExpression="ConditionalExpression",ts.LogicalExpression="LogicalExpression",ts.BinaryExpression="BinaryExpression",ts.UnaryExpression="UnaryExpression",ts.CallExpression="CallExpression",ts.MemberExpression="MemberExpression",ts.Identifier="Identifier",ts.Literal="Literal",ts.ArrayExpression="ArrayExpression",ts.Property="Property",ts.ObjectExpression="ObjectExpression",ts.ThisExpression="ThisExpression",ts.NGValueParameter="NGValueParameter",ts.prototype={ast:function(t){this.text=t,this.tokens=this.lexer.lex(t);var e=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),e},program:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.expressionStatement()),!this.expect(";"))return{type:ts.Program,body:t}},expressionStatement:function(){return{type:ts.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var t=this.ternary();return this.expect("=")&&(t={type:ts.AssignmentExpression,left:t,right:this.assignment(),operator:"="}),t},ternary:function(){var t,e,n=this.logicalOR();return this.expect("?")&&(t=this.expression(),this.consume(":"))?(e=this.expression(),{type:ts.ConditionalExpression,test:n,alternate:t,consequent:e}):n},logicalOR:function(){for(var t=this.logicalAND();this.expect("||");)t={type:ts.LogicalExpression,operator:"||",left:t,right:this.logicalAND()};return t},logicalAND:function(){for(var t=this.equality();this.expect("&&");)t={type:ts.LogicalExpression,operator:"&&",left:t,right:this.equality()};return t},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e={type:ts.BinaryExpression,operator:t.text,left:e,right:this.relational()};return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e={type:ts.BinaryExpression,operator:t.text,left:e,right:this.additive()};return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e={type:ts.BinaryExpression,operator:t.text,left:e,right:this.multiplicative()};return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e={type:ts.BinaryExpression,operator:t.text,left:e,right:this.unary()};return e},unary:function(){var t;return(t=this.expect("+","-","!"))?{type:ts.UnaryExpression,operator:t.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var t;this.expect("(")?(t=this.filterChain(),this.consume(")")):this.expect("[")?t=this.arrayDeclaration():this.expect("{")?t=this.object():this.constants.hasOwnProperty(this.peek().text)?t=z(this.constants[this.consume().text]):this.peek().identifier?t=this.identifier():this.peek().constant?t=this.constant():this.throwError("not a primary expression",this.peek());for(var e;e=this.expect("(","[",".");)"("===e.text?(t={type:ts.CallExpression,callee:t,arguments:this.parseArguments()},this.consume(")")):"["===e.text?(t={type:ts.MemberExpression,object:t,property:this.expression(),computed:!0},this.consume("]")):"."===e.text?t={type:ts.MemberExpression,object:t,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return t},filter:function(t){for(var e=[t],n={type:ts.CallExpression,callee:this.identifier(),arguments:e,filter:!0};this.expect(":");)e.push(this.expression());return n},parseArguments:function(){var t=[];if(")"!==this.peekToken().text)do t.push(this.expression());while(this.expect(","));return t},identifier:function(){var t=this.consume();return t.identifier||this.throwError("is not a valid identifier",t),{type:ts.Identifier,name:t.text}},constant:function(){return{type:ts.Literal,value:this.consume().value}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:ts.ArrayExpression,elements:t}},object:function(){var t,e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;t={type:ts.Property,kind:"init"},this.peek().constant?t.key=this.constant():this.peek().identifier?t.key=this.identifier():this.throwError("invalid key",this.peek()),this.consume(":"),t.value=this.expression(),e.push(t)}while(this.expect(","));return this.consume("}"),{type:ts.ObjectExpression,properties:e}},throwError:function(t,e){throw Yr("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",e.text,t,e.index+1,this.text,this.text.substring(e.index))},consume:function(t){if(0===this.tokens.length)throw Yr("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},peekToken:function(){if(0===this.tokens.length)throw Yr("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(t,e,n,i){return this.peekAhead(0,t,e,n,i)},peekAhead:function(t,e,n,i,r){if(this.tokens.length>t){var s=this.tokens[t],o=s.text;if(o===e||o===n||o===i||o===r||!e&&!n&&!i&&!r)return s}return!1},expect:function(t,e,n,i){var r=this.peek(t,e,n,i);return r?(this.tokens.shift(),r):!1},constants:{"true":{type:ts.Literal,value:!0},"false":{type:ts.Literal,value:!1},"null":{type:ts.Literal,value:null},undefined:{type:ts.Literal,value:n},"this":{type:ts.ThisExpression}}},an.prototype={compile:function(t,e){var i=this,r=this.astBuilder.ast(t);this.state={nextId:0,filters:{},expensiveChecks:e,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},tn(r,i.$filter);var o,a="";if(this.stage="assign",o=rn(r)){this.state.computing="assign";var l=this.nextId();this.recurse(o,l),this.return_(l),a="fn.assign="+this.generateFunction("assign","s,v,l")}var u=en(r.body);i.stage="inputs",s(u,function(t,e){var n="fn"+e;i.state[n]={vars:[],body:[],own:{}},i.state.computing=n;var r=i.nextId();i.recurse(t,r),i.return_(r),i.state.inputs.push(n),t.watchId=e}),this.state.computing="fn",this.stage="main",this.recurse(r);var c='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+a+this.watchFns()+"return fn;",h=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",c)(this.$filter,Be,Ke,Ge,Ye,Xe,Qe,Je,t);return this.state=this.stage=n,h.literal=sn(r),h.constant=on(r),h},USE:"use",STRICT:"strict",watchFns:function(){var t=[],e=this.state.inputs,n=this;return s(e,function(e){t.push("var "+e+"="+n.generateFunction(e,"s"))}),e.length&&t.push("fn.inputs=["+e.join(",")+"];"),t.join("")},generateFunction:function(t,e){return"function("+e+"){"+this.varsPrefix(t)+this.body(t)+"};"},filterPrefix:function(){var t=[],e=this;return s(this.state.filters,function(n,i){t.push(n+"=$filter("+e.escape(i)+")")}),t.length?"var "+t.join(",")+";":""},varsPrefix:function(t){return this.state[t].vars.length?"var "+this.state[t].vars.join(",")+";":""},body:function(t){return this.state[t].body.join("")},recurse:function(t,e,i,r,o,a){var l,u,c,h,d=this;if(r=r||m,!a&&$(t.watchId))return e=e||this.nextId(),void this.if_("i",this.lazyAssign(e,this.computedMember("i",t.watchId)),this.lazyRecurse(t,e,i,r,o,!0));switch(t.type){case ts.Program:s(t.body,function(e,i){d.recurse(e.expression,n,n,function(t){u=t}),i!==t.body.length-1?d.current().body.push(u,";"):d.return_(u)});break;case ts.Literal:h=this.escape(t.value),this.assign(e,h),r(h);break;case ts.UnaryExpression:this.recurse(t.argument,n,n,function(t){u=t}),h=t.operator+"("+this.ifDefined(u,0)+")",this.assign(e,h),r(h);break;case ts.BinaryExpression:this.recurse(t.left,n,n,function(t){l=t}),this.recurse(t.right,n,n,function(t){u=t}),h="+"===t.operator?this.plus(l,u):"-"===t.operator?this.ifDefined(l,0)+t.operator+this.ifDefined(u,0):"("+l+")"+t.operator+"("+u+")",this.assign(e,h),r(h);break;case ts.LogicalExpression:e=e||this.nextId(),d.recurse(t.left,e),d.if_("&&"===t.operator?e:d.not(e),d.lazyRecurse(t.right,e)),r(e);break;case ts.ConditionalExpression:e=e||this.nextId(),d.recurse(t.test,e),d.if_(e,d.lazyRecurse(t.alternate,e),d.lazyRecurse(t.consequent,e)),r(e);break;case ts.Identifier:e=e||this.nextId(),i&&(i.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",t.name)+"?l:s"),i.computed=!1,i.name=t.name),Be(t.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",t.name)),function(){d.if_("inputs"===d.stage||"s",function(){o&&1!==o&&d.if_(d.not(d.nonComputedMember("s",t.name)),d.lazyAssign(d.nonComputedMember("s",t.name),"{}")),d.assign(e,d.nonComputedMember("s",t.name))})},e&&d.lazyAssign(e,d.nonComputedMember("l",t.name))),(d.state.expensiveChecks||un(t.name))&&d.addEnsureSafeObject(e),r(e);break;case ts.MemberExpression:l=i&&(i.context=this.nextId())||this.nextId(),e=e||this.nextId(),d.recurse(t.object,l,n,function(){d.if_(d.notNull(l),function(){t.computed?(u=d.nextId(),d.recurse(t.property,u),d.getStringValue(u),d.addEnsureSafeMemberName(u),o&&1!==o&&d.if_(d.not(d.computedMember(l,u)),d.lazyAssign(d.computedMember(l,u),"{}")),h=d.ensureSafeObject(d.computedMember(l,u)),d.assign(e,h),i&&(i.computed=!0,i.name=u)):(Be(t.property.name),o&&1!==o&&d.if_(d.not(d.nonComputedMember(l,t.property.name)),d.lazyAssign(d.nonComputedMember(l,t.property.name),"{}")),h=d.nonComputedMember(l,t.property.name),(d.state.expensiveChecks||un(t.property.name))&&(h=d.ensureSafeObject(h)),d.assign(e,h),i&&(i.computed=!1,i.name=t.property.name))},function(){d.assign(e,"undefined")}),r(e)},!!o);break;case ts.CallExpression:e=e||this.nextId(),t.filter?(u=d.filter(t.callee.name),c=[],s(t.arguments,function(t){var e=d.nextId();d.recurse(t,e),c.push(e)}),h=u+"("+c.join(",")+")",d.assign(e,h),r(e)):(u=d.nextId(),l={},c=[],d.recurse(t.callee,u,l,function(){d.if_(d.notNull(u),function(){d.addEnsureSafeFunction(u),s(t.arguments,function(t){d.recurse(t,d.nextId(),n,function(t){c.push(d.ensureSafeObject(t))})}),l.name?(d.state.expensiveChecks||d.addEnsureSafeObject(l.context),h=d.member(l.context,l.name,l.computed)+"("+c.join(",")+")"):h=u+"("+c.join(",")+")",h=d.ensureSafeObject(h),d.assign(e,h)},function(){d.assign(e,"undefined")}),r(e)}));break;case ts.AssignmentExpression:if(u=this.nextId(),l={},!nn(t.left))throw Yr("lval","Trying to assing a value to a non l-value");this.recurse(t.left,n,l,function(){d.if_(d.notNull(l.context),function(){d.recurse(t.right,u),d.addEnsureSafeObject(d.member(l.context,l.name,l.computed)),d.addEnsureSafeAssignContext(l.context),h=d.member(l.context,l.name,l.computed)+t.operator+u,d.assign(e,h),r(e||h)})},1);break;case ts.ArrayExpression:c=[],s(t.elements,function(t){d.recurse(t,d.nextId(),n,function(t){c.push(t)})}),h="["+c.join(",")+"]",this.assign(e,h),r(h);break;case ts.ObjectExpression:c=[],s(t.properties,function(t){d.recurse(t.value,d.nextId(),n,function(e){c.push(d.escape(t.key.type===ts.Identifier?t.key.name:""+t.key.value)+":"+e)})}),h="{"+c.join(",")+"}",this.assign(e,h),r(h);break;case ts.ThisExpression:this.assign(e,"s"),r("s");break;case ts.NGValueParameter:this.assign(e,"v"),r("v")}},getHasOwnProperty:function(t,e){var n=t+"."+e,i=this.current().own;return i.hasOwnProperty(n)||(i[n]=this.nextId(!1,t+"&&("+this.escape(e)+" in "+t+")")),i[n]},assign:function(t,e){
+return t?(this.current().body.push(t,"=",e,";"),t):void 0},filter:function(t){return this.state.filters.hasOwnProperty(t)||(this.state.filters[t]=this.nextId(!0)),this.state.filters[t]},ifDefined:function(t,e){return"ifDefined("+t+","+this.escape(e)+")"},plus:function(t,e){return"plus("+t+","+e+")"},return_:function(t){this.current().body.push("return ",t,";")},if_:function(t,e,n){if(t===!0)e();else{var i=this.current().body;i.push("if(",t,"){"),e(),i.push("}"),n&&(i.push("else{"),n(),i.push("}"))}},not:function(t){return"!("+t+")"},notNull:function(t){return t+"!=null"},nonComputedMember:function(t,e){return t+"."+e},computedMember:function(t,e){return t+"["+e+"]"},member:function(t,e,n){return n?this.computedMember(t,e):this.nonComputedMember(t,e)},addEnsureSafeObject:function(t){this.current().body.push(this.ensureSafeObject(t),";")},addEnsureSafeMemberName:function(t){this.current().body.push(this.ensureSafeMemberName(t),";")},addEnsureSafeFunction:function(t){this.current().body.push(this.ensureSafeFunction(t),";")},addEnsureSafeAssignContext:function(t){this.current().body.push(this.ensureSafeAssignContext(t),";")},ensureSafeObject:function(t){return"ensureSafeObject("+t+",text)"},ensureSafeMemberName:function(t){return"ensureSafeMemberName("+t+",text)"},ensureSafeFunction:function(t){return"ensureSafeFunction("+t+",text)"},getStringValue:function(t){this.assign(t,"getStringValue("+t+",text)")},ensureSafeAssignContext:function(t){return"ensureSafeAssignContext("+t+",text)"},lazyRecurse:function(t,e,n,i,r,s){var o=this;return function(){o.recurse(t,e,n,i,r,s)}},lazyAssign:function(t,e){var n=this;return function(){n.assign(t,e)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(t){return"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)},escape:function(t){if(_(t))return"'"+t.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(C(t))return t.toString();if(t===!0)return"true";if(t===!1)return"false";if(null===t)return"null";if("undefined"==typeof t)return"undefined";throw Yr("esc","IMPOSSIBLE")},nextId:function(t,e){var n="v"+this.state.nextId++;return t||this.current().vars.push(n+(e?"="+e:"")),n},current:function(){return this.state[this.state.computing]}},ln.prototype={compile:function(t,e){var n=this,i=this.astBuilder.ast(t);this.expression=t,this.expensiveChecks=e,tn(i,n.$filter);var r,o;(r=rn(i))&&(o=this.recurse(r));var a,l=en(i.body);l&&(a=[],s(l,function(t,e){var i=n.recurse(t);t.input=i,a.push(i),t.watchId=e}));var u=[];s(i.body,function(t){u.push(n.recurse(t.expression))});var c=0===i.body.length?function(){}:1===i.body.length?u[0]:function(t,e){var n;return s(u,function(i){n=i(t,e)}),n};return o&&(c.assign=function(t,e,n){return o(t,n,e)}),a&&(c.inputs=a),c.literal=sn(i),c.constant=on(i),c},recurse:function(t,e,i){var r,o,a,l=this;if(t.input)return this.inputs(t.input,t.watchId);switch(t.type){case ts.Literal:return this.value(t.value,e);case ts.UnaryExpression:return o=this.recurse(t.argument),this["unary"+t.operator](o,e);case ts.BinaryExpression:return r=this.recurse(t.left),o=this.recurse(t.right),this["binary"+t.operator](r,o,e);case ts.LogicalExpression:return r=this.recurse(t.left),o=this.recurse(t.right),this["binary"+t.operator](r,o,e);case ts.ConditionalExpression:return this["ternary?:"](this.recurse(t.test),this.recurse(t.alternate),this.recurse(t.consequent),e);case ts.Identifier:return Be(t.name,l.expression),l.identifier(t.name,l.expensiveChecks||un(t.name),e,i,l.expression);case ts.MemberExpression:return r=this.recurse(t.object,!1,!!i),t.computed||(Be(t.property.name,l.expression),o=t.property.name),t.computed&&(o=this.recurse(t.property)),t.computed?this.computedMember(r,o,e,i,l.expression):this.nonComputedMember(r,o,l.expensiveChecks,e,i,l.expression);case ts.CallExpression:return a=[],s(t.arguments,function(t){a.push(l.recurse(t))}),t.filter&&(o=this.$filter(t.callee.name)),t.filter||(o=this.recurse(t.callee,!0)),t.filter?function(t,i,r,s){for(var l=[],u=0;u<a.length;++u)l.push(a[u](t,i,r,s));var c=o.apply(n,l,s);return e?{context:n,name:n,value:c}:c}:function(t,n,i,r){var s,u=o(t,n,i,r);if(null!=u.value){Ke(u.context,l.expression),Ge(u.value,l.expression);for(var c=[],h=0;h<a.length;++h)c.push(Ke(a[h](t,n,i,r),l.expression));s=Ke(u.value.apply(u.context,c),l.expression)}return e?{value:s}:s};case ts.AssignmentExpression:return r=this.recurse(t.left,!0,1),o=this.recurse(t.right),function(t,n,i,s){var a=r(t,n,i,s),u=o(t,n,i,s);return Ke(a.value,l.expression),Xe(a.context),a.context[a.name]=u,e?{value:u}:u};case ts.ArrayExpression:return a=[],s(t.elements,function(t){a.push(l.recurse(t))}),function(t,n,i,r){for(var s=[],o=0;o<a.length;++o)s.push(a[o](t,n,i,r));return e?{value:s}:s};case ts.ObjectExpression:return a=[],s(t.properties,function(t){a.push({key:t.key.type===ts.Identifier?t.key.name:""+t.key.value,value:l.recurse(t.value)})}),function(t,n,i,r){for(var s={},o=0;o<a.length;++o)s[a[o].key]=a[o].value(t,n,i,r);return e?{value:s}:s};case ts.ThisExpression:return function(t){return e?{value:t}:t};case ts.NGValueParameter:return function(t,n,i,r){return e?{value:i}:i}}},"unary+":function(t,e){return function(n,i,r,s){var o=t(n,i,r,s);return o=$(o)?+o:0,e?{value:o}:o}},"unary-":function(t,e){return function(n,i,r,s){var o=t(n,i,r,s);return o=$(o)?-o:0,e?{value:o}:o}},"unary!":function(t,e){return function(n,i,r,s){var o=!t(n,i,r,s);return e?{value:o}:o}},"binary+":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o),l=e(i,r,s,o),u=Je(a,l);return n?{value:u}:u}},"binary-":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o),l=e(i,r,s,o),u=($(a)?a:0)-($(l)?l:0);return n?{value:u}:u}},"binary*":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)*e(i,r,s,o);return n?{value:a}:a}},"binary/":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)/e(i,r,s,o);return n?{value:a}:a}},"binary%":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)%e(i,r,s,o);return n?{value:a}:a}},"binary===":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)===e(i,r,s,o);return n?{value:a}:a}},"binary!==":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)!==e(i,r,s,o);return n?{value:a}:a}},"binary==":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)==e(i,r,s,o);return n?{value:a}:a}},"binary!=":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)!=e(i,r,s,o);return n?{value:a}:a}},"binary<":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)<e(i,r,s,o);return n?{value:a}:a}},"binary>":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)>e(i,r,s,o);return n?{value:a}:a}},"binary<=":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)<=e(i,r,s,o);return n?{value:a}:a}},"binary>=":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)>=e(i,r,s,o);return n?{value:a}:a}},"binary&&":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)&&e(i,r,s,o);return n?{value:a}:a}},"binary||":function(t,e,n){return function(i,r,s,o){var a=t(i,r,s,o)||e(i,r,s,o);return n?{value:a}:a}},"ternary?:":function(t,e,n,i){return function(r,s,o,a){var l=t(r,s,o,a)?e(r,s,o,a):n(r,s,o,a);return i?{value:l}:l}},value:function(t,e){return function(){return e?{context:n,name:n,value:t}:t}},identifier:function(t,e,i,r,s){return function(o,a,l,u){var c=a&&t in a?a:o;r&&1!==r&&c&&!c[t]&&(c[t]={});var h=c?c[t]:n;return e&&Ke(h,s),i?{context:c,name:t,value:h}:h}},computedMember:function(t,e,n,i,r){return function(s,o,a,l){var u,c,h=t(s,o,a,l);return null!=h&&(u=e(s,o,a,l),u=Ye(u),Be(u,r),i&&1!==i&&h&&!h[u]&&(h[u]={}),c=h[u],Ke(c,r)),n?{context:h,name:u,value:c}:c}},nonComputedMember:function(t,e,i,r,s,o){return function(a,l,u,c){var h=t(a,l,u,c);s&&1!==s&&h&&!h[e]&&(h[e]={});var d=null!=h?h[e]:n;return(i||un(e))&&Ke(d,o),r?{context:h,name:e,value:d}:d}},inputs:function(t,e){return function(n,i,r,s){return s?s[e]:t(n,i,r)}}};var es=function(t,e,n){this.lexer=t,this.$filter=e,this.options=n,this.ast=new ts(this.lexer),this.astCompiler=n.csp?new ln(this.ast,e):new an(this.ast,e)};es.prototype={constructor:es,parse:function(t){return this.astCompiler.compile(t,this.options.expensiveChecks)}};var ns=(gt(),gt(),Object.prototype.valueOf),is=i("$sce"),rs={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Mr=i("$compile"),ss=e.createElement("a"),os=Dn(t.location.href);En.$inject=["$document"],An.$inject=["$provide"],Hn.$inject=["$locale"],Fn.$inject=["$locale"];var as=".",ls={yyyy:zn("FullYear",4),yy:zn("FullYear",2,0,!0),y:zn("FullYear",1),MMMM:Wn("Month"),MMM:Wn("Month",!0),MM:zn("Month",2,1),M:zn("Month",1,1),dd:zn("Date",2),d:zn("Date",1),HH:zn("Hours",2),H:zn("Hours",1),hh:zn("Hours",2,-12),h:zn("Hours",1,-12),mm:zn("Minutes",2),m:zn("Minutes",1),ss:zn("Seconds",2),s:zn("Seconds",1),sss:zn("Milliseconds",3),EEEE:Wn("Day"),EEE:Wn("Day",!0),a:Bn,Z:Ln,ww:Un(2),w:Un(1),G:Yn,GG:Yn,GGG:Yn,GGGG:Kn},us=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,cs=/^\-?\d+$/;Gn.$inject=["$locale"];var hs=v($i),ds=v(xi);Jn.$inject=["$parse"];var ps=v({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Ii.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),fs={};s(fr,function(t,e){function n(t,n,r){t.$watch(r[i],function(t){r.$set(e,!!t)})}if("multiple"!=t){var i=ue("ng-"+e),r=n;"checked"===t&&(r=function(t,e,r){r.ngModel!==r[i]&&n(t,e,r)}),fs[i]=function(){return{restrict:"A",priority:100,link:r}}}}),s(gr,function(t,e){fs[e]=function(){return{priority:100,link:function(t,n,i){if("ngPattern"===e&&"/"==i.ngPattern.charAt(0)){var r=i.ngPattern.match(bi);if(r)return void i.$set("ngPattern",new RegExp(r[1],r[2]))}t.$watch(i[e],function(t){i.$set(e,t)})}}}}),s(["src","srcset","href"],function(t){var e=ue("ng-"+t);fs[e]=function(){return{priority:99,link:function(n,i,r){var s=t,o=t;"href"===t&&"[object SVGAnimatedString]"===Ii.call(i.prop("href"))&&(o="xlinkHref",r.$attr[o]="xlink:href",s=null),r.$observe(e,function(e){return e?(r.$set(o,e),void(ki&&s&&i.prop(s,r[o]))):void("href"===t&&r.$set(o,null))})}}}});var ms={$addControl:m,$$renameControl:ti,$removeControl:m,$setValidity:m,$setDirty:m,$setPristine:m,$setSubmitted:m},gs="ng-submitted";ei.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var vs=function(t){return["$timeout","$parse",function(e,i){function r(t){return""===t?i('this[""]').assign:i(t).assign||m}var s={name:"form",restrict:t?"EAC":"E",require:["form","^^?form"],controller:ei,compile:function(i,s){i.addClass(Qs).addClass(Gs);var o=s.name?"name":t&&s.ngForm?"ngForm":!1;return{pre:function(t,i,s,a){var l=a[0];if(!("action"in s)){var u=function(e){t.$apply(function(){l.$commitViewValue(),l.$setSubmitted()}),e.preventDefault()};nr(i[0],"submit",u),i.on("$destroy",function(){e(function(){ir(i[0],"submit",u)},0,!1)})}var c=a[1]||l.$$parentForm;c.$addControl(l);var d=o?r(l.$name):m;o&&(d(t,l),s.$observe(o,function(e){l.$name!==e&&(d(t,n),l.$$parentForm.$$renameControl(l,e),(d=r(l.$name))(t,l))})),i.on("$destroy",function(){l.$$parentForm.$removeControl(l),d(t,n),h(l,ms)})}}}};return s}]},bs=vs(),ys=vs(!0),$s=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,ws=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,xs=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,_s=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Cs=/^(\d{4})-(\d{2})-(\d{2})$/,ks=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Ds=/^(\d{4})-W(\d\d)$/,Ts=/^(\d{4})-(\d\d)$/,Ss=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Es={text:ii,date:ai("date",Cs,oi(Cs,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ai("datetimelocal",ks,oi(ks,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ai("time",Ss,oi(Ss,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ai("week",Ds,si,"yyyy-Www"),month:ai("month",Ts,oi(Ts,["yyyy","MM"]),"yyyy-MM"),number:ui,url:ci,email:hi,radio:di,checkbox:fi,hidden:m,button:m,submit:m,reset:m,file:m},Ms=["$browser","$sniffer","$filter","$parse",function(t,e,n,i){return{restrict:"E",require:["?ngModel"],link:{pre:function(r,s,o,a){a[0]&&(Es[$i(o.type)]||Es.text)(r,s,o,a[0],e,t,n,i)}}}}],As=/^(true|false|\d+)$/,Is=function(){return{restrict:"A",priority:100,compile:function(t,e){return As.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},Os=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,n,i){t.$$addBindingInfo(n,i.ngBind),n=n[0],e.$watch(i.ngBind,function(t){n.textContent=y(t)?"":t})}}}}],Ps=["$interpolate","$compile",function(t,e){return{compile:function(n){return e.$$addBindingClass(n),function(n,i,r){var s=t(i.attr(r.$attr.ngBindTemplate));e.$$addBindingInfo(i,s.expressions),i=i[0],r.$observe("ngBindTemplate",function(t){i.textContent=y(t)?"":t})}}}}],Ns=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(i,r){var s=e(r.ngBindHtml),o=e(r.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(i),function(e,i,r){n.$$addBindingInfo(i,r.ngBindHtml),e.$watch(o,function(){i.html(t.getTrustedHtml(s(e))||"")})}}}}],Hs=v({restrict:"A",require:"ngModel",link:function(t,e,n,i){i.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),Fs=mi("",!0),js=mi("Odd",0),Rs=mi("Even",1),zs=Zn({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),Ws=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ls={},qs={blur:!0,focus:!0};s("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=ue("ng-"+t);Ls[e]=["$parse","$rootScope",function(n,i){return{restrict:"A",compile:function(r,s){var o=n(s[e],null,!0);return function(e,n){n.on(t,function(n){var r=function(){o(e,{$event:n})};qs[t]&&i.$$phase?e.$evalAsync(r):e.$apply(r)})}}}}]});var Vs=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,r,s,o){var a,l,u;n.$watch(r.ngIf,function(n){n?l||o(function(n,s){l=s,n[n.length++]=e.createComment(" end ngIf: "+r.ngIf+" "),a={clone:n},t.enter(n,i.parent(),i)}):(u&&(u.remove(),u=null),l&&(l.$destroy(),l=null),a&&(u=mt(a.clone),t.leave(u).then(function(){u=null}),a=null))})}}}],Us=["$templateRequest","$anchorScroll","$animate",function(t,e,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ni.noop,compile:function(i,r){var s=r.ngInclude||r.src,o=r.onload||"",a=r.autoscroll;return function(i,r,l,u,c){var h,d,p,f=0,m=function(){d&&(d.remove(),d=null),h&&(h.$destroy(),h=null),p&&(n.leave(p).then(function(){d=null}),d=p,p=null)};i.$watch(s,function(s){var l=function(){!$(a)||a&&!i.$eval(a)||e()},d=++f;s?(t(s,!0).then(function(t){if(d===f){var e=i.$new();u.template=t;var a=c(e,function(t){m(),n.enter(t,null,r).then(l)});h=e,p=a,h.$emit("$includeContentLoaded",s),i.$eval(o)}},function(){d===f&&(m(),i.$emit("$includeContentError",s))}),i.$emit("$includeContentRequested",s)):(m(),u.template=null)})}}}}],Bs=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,i,r,s){return/SVG/.test(i[0].toString())?(i.empty(),void t(Dt(s.template,e).childNodes)(n,function(t){i.append(t)},{futureParentElement:i})):(i.html(s.template),void t(i.contents())(n))}}}],Ys=Zn({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),Ks=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,i,r){var o=e.attr(i.$attr.ngList)||", ",a="false"!==i.ngTrim,l=a?zi(o):o,u=function(t){if(!y(t)){var e=[];return t&&s(t.split(l),function(t){t&&e.push(a?zi(t):t)}),e}};r.$parsers.push(u),r.$formatters.push(function(t){return ji(t)?t.join(o):n}),r.$isEmpty=function(t){return!t||!t.length}}}},Gs="ng-valid",Xs="ng-invalid",Qs="ng-pristine",Js="ng-dirty",Zs="ng-untouched",to="ng-touched",eo="ng-pending",no=i("ngModel"),io=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,i,r,o,a,l,u,c,h){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,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=n,this.$name=h(i.name||"",!1)(t),this.$$parentForm=ms;var d,p=o(i.ngModel),f=p.assign,g=p,v=f,b=null,w=this;this.$$setOptions=function(t){if(w.$options=t,t&&t.getterSetter){var e=o(i.ngModel+"()"),n=o(i.ngModel+"($$$p)");g=function(t){var n=p(t);return D(n)&&(n=e(t)),n},v=function(t,e){D(p(t))?n(t,{$$$p:w.$modelValue}):f(t,w.$modelValue)}}else if(!p.assign)throw no("nonassign","Expression '{0}' is non-assignable. Element: {1}",i.ngModel,J(r))},this.$render=m,this.$isEmpty=function(t){return y(t)||""===t||null===t||t!==t};var x=0;gi({ctrl:this,$element:r,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},$animate:a}),this.$setPristine=function(){w.$dirty=!1,w.$pristine=!0,a.removeClass(r,Js),a.addClass(r,Qs)},this.$setDirty=function(){w.$dirty=!0,w.$pristine=!1,a.removeClass(r,Qs),a.addClass(r,Js),w.$$parentForm.$setDirty()},this.$setUntouched=function(){w.$touched=!1,w.$untouched=!0,a.setClass(r,Zs,to)},this.$setTouched=function(){w.$touched=!0,w.$untouched=!1,a.setClass(r,to,Zs)},this.$rollbackViewValue=function(){l.cancel(b),w.$viewValue=w.$$lastCommittedViewValue,w.$render()},this.$validate=function(){if(!C(w.$modelValue)||!isNaN(w.$modelValue)){var t=w.$$lastCommittedViewValue,e=w.$$rawModelValue,i=w.$valid,r=w.$modelValue,s=w.$options&&w.$options.allowInvalid;w.$$runValidators(e,t,function(t){s||i===t||(w.$modelValue=t?e:n,w.$modelValue!==r&&w.$$writeModelToScope())})}},this.$$runValidators=function(t,e,i){function r(){var t=w.$$parserName||"parse";return y(d)?(l(t,null),!0):(d||(s(w.$validators,function(t,e){l(e,null)}),s(w.$asyncValidators,function(t,e){l(e,null)})),l(t,d),d)}function o(){var n=!0;return s(w.$validators,function(i,r){var s=i(t,e);n=n&&s,l(r,s)}),n?!0:(s(w.$asyncValidators,function(t,e){l(e,null)}),!1)}function a(){var i=[],r=!0;s(w.$asyncValidators,function(s,o){var a=s(t,e);if(!P(a))throw no("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",a);l(o,n),i.push(a.then(function(){l(o,!0)},function(t){r=!1,l(o,!1)}))}),i.length?c.all(i).then(function(){u(r)},m):u(!0)}function l(t,e){h===x&&w.$setValidity(t,e)}function u(t){h===x&&i(t)}x++;var h=x;return r()&&o()?void a():void u(!1)},this.$commitViewValue=function(){var t=w.$viewValue;l.cancel(b),(w.$$lastCommittedViewValue!==t||""===t&&w.$$hasNativeValidators)&&(w.$$lastCommittedViewValue=t,w.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){w.$modelValue!==o&&w.$$writeModelToScope()}var i=w.$$lastCommittedViewValue,r=i;if(d=y(r)?n:!0)for(var s=0;s<w.$parsers.length;s++)if(r=w.$parsers[s](r),y(r)){d=!1;break}C(w.$modelValue)&&isNaN(w.$modelValue)&&(w.$modelValue=g(t));var o=w.$modelValue,a=w.$options&&w.$options.allowInvalid;w.$$rawModelValue=r,a&&(w.$modelValue=r,e()),w.$$runValidators(r,w.$$lastCommittedViewValue,function(t){a||(w.$modelValue=t?r:n,e())})},this.$$writeModelToScope=function(){v(t,w.$modelValue),s(w.$viewChangeListeners,function(t){try{t()}catch(n){e(n)}})},this.$setViewValue=function(t,e){w.$viewValue=t,(!w.$options||w.$options.updateOnDefault)&&w.$$debounceViewValueCommit(e)},this.$$debounceViewValueCommit=function(e){var n,i=0,r=w.$options;r&&$(r.debounce)&&(n=r.debounce,C(n)?i=n:C(n[e])?i=n[e]:C(n["default"])&&(i=n["default"])),l.cancel(b),i?b=l(function(){w.$commitViewValue()},i):u.$$phase?w.$commitViewValue():t.$apply(function(){w.$commitViewValue()})},t.$watch(function(){var e=g(t);if(e!==w.$modelValue&&(w.$modelValue===w.$modelValue||e===e)){w.$modelValue=w.$$rawModelValue=e,d=n;for(var i=w.$formatters,r=i.length,s=e;r--;)s=i[r](s);w.$viewValue!==s&&(w.$viewValue=w.$$lastCommittedViewValue=s,w.$render(),w.$$runValidators(e,s,m))}return e})}],ro=["$rootScope",function(t){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:io,priority:1,compile:function(e){return e.addClass(Qs).addClass(Zs).addClass(Gs),{pre:function(t,e,n,i){var r=i[0],s=i[1]||r.$$parentForm;r.$$setOptions(i[2]&&i[2].$options),s.$addControl(r),n.$observe("name",function(t){r.$name!==t&&r.$$parentForm.$$renameControl(r,t)}),t.$on("$destroy",function(){r.$$parentForm.$removeControl(r)})},post:function(e,n,i,r){var s=r[0];s.$options&&s.$options.updateOn&&n.on(s.$options.updateOn,function(t){s.$$debounceViewValueCommit(t&&t.type)}),n.on("blur",function(n){s.$touched||(t.$$phase?e.$evalAsync(s.$setTouched):e.$apply(s.$setTouched))})}}}}}],so=/(\s+|^)default(\s+|$)/,oo=function(){return{restrict:"A",controller:["$scope","$attrs",function(t,e){var n=this;this.$options=z(t.$eval(e.ngModelOptions)),$(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=zi(this.$options.updateOn.replace(so,function(){return n.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},ao=Zn({terminal:!0,priority:1e3}),lo=i("ngOptions"),uo=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,co=["$compile","$parse",function(t,n){function i(t,e,i){function s(t,e,n,i,r){this.selectValue=t,this.viewValue=e,this.label=n,this.group=i,this.disabled=r}function o(t){var e;if(!u&&r(t))e=t;else{e=[];for(var n in t)t.hasOwnProperty(n)&&"$"!==n.charAt(0)&&e.push(n)}return e}var a=t.match(uo);if(!a)throw lo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",t,J(e));var l=a[5]||a[7],u=a[6],c=/ as /.test(a[0])&&a[1],h=a[9],d=n(a[2]?a[1]:l),p=c&&n(c),f=p||d,m=h&&n(h),g=h?function(t,e){return m(i,e)}:function(t){return Kt(t)},v=function(t,e){return g(t,_(t,e))},b=n(a[2]||a[1]),y=n(a[3]||""),$=n(a[4]||""),w=n(a[8]),x={},_=u?function(t,e){return x[u]=e,x[l]=t,x}:function(t){return x[l]=t,x};return{trackBy:h,getTrackByValue:v,getWatchables:n(w,function(t){var e=[];t=t||[];for(var n=o(t),r=n.length,s=0;r>s;s++){var l=t===n?s:n[s],u=(t[l],_(t[l],l)),c=g(t[l],u);if(e.push(c),a[2]||a[1]){var h=b(i,u);e.push(h)}if(a[4]){var d=$(i,u);e.push(d)}}return e}),getOptions:function(){for(var t=[],e={},n=w(i)||[],r=o(n),a=r.length,l=0;a>l;l++){var u=n===r?l:r[l],c=n[u],d=_(c,u),p=f(i,d),m=g(p,d),x=b(i,d),C=y(i,d),k=$(i,d),D=new s(m,p,x,C,k);t.push(D),e[m]=D}return{items:t,selectValueMap:e,getOptionFromViewValue:function(t){return e[v(t)]},getViewValueFromOption:function(t){return h?Ni.copy(t.viewValue):t.viewValue}}}}}var o=e.createElement("option"),a=e.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:function(e,n,r,l){function u(t,e){t.element=e,e.disabled=t.disabled,t.label!==e.label&&(e.label=t.label,e.textContent=t.label),t.value!==e.value&&(e.value=t.selectValue)}function c(t,e,n,i){var r;return e&&$i(e.nodeName)===n?r=e:(r=i.cloneNode(!1),e?t.insertBefore(r,e):t.appendChild(r)),r}function h(t){for(var e;t;)e=t.nextSibling,Lt(t),t=e}function d(t){var e=m&&m[0],n=x&&x[0];if(e||n)for(;t&&(t===e||t===n||e&&e.nodeType===Xi);)t=t.nextSibling;return t}function p(){var t=_&&g.readValue();_=C.getOptions();var e={},i=n[0].firstChild;if(w&&n.prepend(m),i=d(i),_.items.forEach(function(t){var r,s,l;t.group?(r=e[t.group],r||(s=c(n[0],i,"optgroup",a),i=s.nextSibling,s.label=t.group,r=e[t.group]={groupElement:s,currentOptionElement:s.firstChild}),l=c(r.groupElement,r.currentOptionElement,"option",o),u(t,l),r.currentOptionElement=l.nextSibling):(l=c(n[0],i,"option",o),u(t,l),i=l.nextSibling)}),Object.keys(e).forEach(function(t){h(e[t].currentOptionElement)}),h(i),f.$render(),!f.$isEmpty(t)){var r=g.readValue();(C.trackBy?L(t,r):t===r)||(f.$setViewValue(r),f.$render())}}var f=l[1];if(f){for(var m,g=l[0],v=r.multiple,b=0,y=n.children(),$=y.length;$>b;b++)if(""===y[b].value){m=y.eq(b);break}var w=!!m,x=Di(o.cloneNode(!1));x.val("?");var _,C=i(r.ngOptions,n,e),k=function(){w||n.prepend(m),n.val(""),m.prop("selected",!0),m.attr("selected",!0)},D=function(){w||m.remove()},T=function(){n.prepend(x),n.val("?"),x.prop("selected",!0),x.attr("selected",!0)},S=function(){x.remove()};v?(f.$isEmpty=function(t){return!t||0===t.length},g.writeValue=function(t){_.items.forEach(function(t){t.element.selected=!1}),t&&t.forEach(function(t){var e=_.getOptionFromViewValue(t);e&&!e.disabled&&(e.element.selected=!0)})},g.readValue=function(){var t=n.val()||[],e=[];return s(t,function(t){var n=_.selectValueMap[t];n&&!n.disabled&&e.push(_.getViewValueFromOption(n))}),e},C.trackBy&&e.$watchCollection(function(){return ji(f.$viewValue)?f.$viewValue.map(function(t){return C.getTrackByValue(t)}):void 0},function(){f.$render()})):(g.writeValue=function(t){var e=_.getOptionFromViewValue(t);e&&!e.disabled?n[0].value!==e.selectValue&&(S(),D(),n[0].value=e.selectValue,e.element.selected=!0,e.element.setAttribute("selected","selected")):null===t||w?(S(),k()):(D(),T())},g.readValue=function(){var t=_.selectValueMap[n.val()];return t&&!t.disabled?(D(),S(),_.getViewValueFromOption(t)):null},C.trackBy&&e.$watch(function(){return C.getTrackByValue(f.$viewValue)},function(){f.$render()})),w?(m.remove(),t(m)(e),m.removeClass("ng-scope")):m=Di(o.cloneNode(!1)),p(),e.$watchCollection(C.getWatchables,p)}}}}],ho=["$locale","$interpolate","$log",function(t,e,n){var i=/{}/g,r=/^when(Minus)?(.+)$/;return{link:function(o,a,l){function u(t){a.text(t||"")}var c,h=l.count,d=l.$attr.when&&a.attr(l.$attr.when),p=l.offset||0,f=o.$eval(d)||{},g={},v=e.startSymbol(),b=e.endSymbol(),$=v+h+"-"+p+b,w=Ni.noop;s(l,function(t,e){var n=r.exec(e);if(n){var i=(n[1]?"-":"")+$i(n[2]);f[i]=a.attr(l.$attr[e])}}),s(f,function(t,n){g[n]=e(t.replace(i,$))}),o.$watch(h,function(e){var i=parseFloat(e),r=isNaN(i);if(r||i in f||(i=t.pluralCat(i-p)),i!==c&&!(r&&C(c)&&isNaN(c))){w();var s=g[i];y(s)?(null!=e&&n.debug("ngPluralize: no rule defined for '"+i+"' in "+d),w=m,u()):w=o.$watch(s,u),c=i}})}}}],po=["$parse","$animate",function(t,o){var a="$$NG_REMOVED",l=i("ngRepeat"),u=function(t,e,n,i,r,s,o){t[n]=i,r&&(t[r]=s),t.$index=e,t.$first=0===e,t.$last=e===o-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},c=function(t){return t.clone[0]},h=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(i,d){var p=d.ngRepeat,f=e.createComment(" end ngRepeat: "+p+" "),m=p.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw l("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",p);var g=m[1],v=m[2],b=m[3],y=m[4];if(m=g.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw l("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",g);var $=m[3]||m[1],w=m[2];if(b&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(b)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(b)))throw l("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",b);var x,_,C,k,D={$id:Kt};return y?x=t(y):(C=function(t,e){return Kt(e)},k=function(t){return t}),function(t,e,i,d,m){x&&(_=function(e,n,i){return w&&(D[w]=e),D[$]=n,D.$index=i,x(t,D)});var g=gt();t.$watchCollection(v,function(i){var d,v,y,x,D,T,S,E,M,A,I,O,P=e[0],N=gt();if(b&&(t[b]=i),r(i))M=i,E=_||C;else{E=_||k,M=[];for(var H in i)wi.call(i,H)&&"$"!==H.charAt(0)&&M.push(H)}for(x=M.length,I=new Array(x),d=0;x>d;d++)if(D=i===M?d:M[d],T=i[D],S=E(D,T,d),g[S])A=g[S],delete g[S],N[S]=A,I[d]=A;else{if(N[S])throw s(I,function(t){t&&t.scope&&(g[t.id]=t)}),l("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",p,S,T);I[d]={id:S,scope:n,clone:n},N[S]=!0}for(var F in g){if(A=g[F],O=mt(A.clone),o.leave(O),O[0].parentNode)for(d=0,v=O.length;v>d;d++)O[d][a]=!0;A.scope.$destroy()}for(d=0;x>d;d++)if(D=i===M?d:M[d],T=i[D],A=I[d],A.scope){y=P;do y=y.nextSibling;while(y&&y[a]);c(A)!=y&&o.move(mt(A.clone),null,Di(P)),P=h(A),u(A.scope,d,$,T,w,D,x)}else m(function(t,e){A.scope=e;var n=f.cloneNode(!1);t[t.length++]=n,o.enter(t,null,Di(P)),P=n,A.clone=t,N[A.id]=A,u(A.scope,d,$,T,w,D,x)});g=N})}}}}],fo="ng-hide",mo="ng-hide-animate",go=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,i){e.$watch(i.ngShow,function(e){t[e?"removeClass":"addClass"](n,fo,{tempClasses:mo})})}}}],vo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,i){e.$watch(i.ngHide,function(e){t[e?"addClass":"removeClass"](n,fo,{tempClasses:mo})})}}}],bo=Zn(function(t,e,n){t.$watch(n.ngStyle,function(t,n){n&&t!==n&&s(n,function(t,n){e.css(n,"")}),t&&e.css(t)},!0)}),yo=["$animate",function(t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,i,r,o){var a=r.ngSwitch||r.on,l=[],u=[],c=[],h=[],d=function(t,e){return function(){t.splice(e,1)}};n.$watch(a,function(n){var i,r;for(i=0,r=c.length;r>i;++i)t.cancel(c[i]);for(c.length=0,i=0,r=h.length;r>i;++i){var a=mt(u[i].clone);h[i].$destroy();var p=c[i]=t.leave(a);p.then(d(c,i))}u.length=0,h.length=0,(l=o.cases["!"+n]||o.cases["?"])&&s(l,function(n){n.transclude(function(i,r){h.push(r);var s=n.element;i[i.length++]=e.createComment(" end ngSwitchWhen: ");var o={clone:i};u.push(o),t.enter(i,s.parent(),s)})})})}}}],$o=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,i,r){i.cases["!"+n.ngSwitchWhen]=i.cases["!"+n.ngSwitchWhen]||[],i.cases["!"+n.ngSwitchWhen].push({transclude:r,element:e})}}),wo=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,i,r){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:r,element:e})}}),xo=Zn({restrict:"EAC",link:function(t,e,n,r,s){if(!s)throw i("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",J(e));s(function(t){e.empty(),e.append(t)})}}),_o=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var i=n.id,r=e[0].text;t.put(i,r)}}}}],Co={$setViewValue:m,$render:m},ko=["$element","$scope","$attrs",function(t,i,r){var s=this,o=new Gt;s.ngModelCtrl=Co,s.unknownOption=Di(e.createElement("option")),s.renderUnknownOption=function(e){var n="? "+Kt(e)+" ?";s.unknownOption.val(n),t.prepend(s.unknownOption),t.val(n)},i.$on("$destroy",function(){s.renderUnknownOption=m}),s.removeUnknownOption=function(){s.unknownOption.parent()&&s.unknownOption.remove()},s.readValue=function(){return s.removeUnknownOption(),t.val()},s.writeValue=function(e){s.hasOption(e)?(s.removeUnknownOption(),t.val(e),""===e&&s.emptyOption.prop("selected",!0)):null==e&&s.emptyOption?(s.removeUnknownOption(),t.val("")):s.renderUnknownOption(e)},s.addOption=function(t,e){pt(t,'"option value"'),""===t&&(s.emptyOption=e);var n=o.get(t)||0;o.put(t,n+1)},s.removeOption=function(t){var e=o.get(t);e&&(1===e?(o.remove(t),""===t&&(s.emptyOption=n)):o.put(t,e-1))},s.hasOption=function(t){return!!o.get(t)}}],Do=function(){return{restrict:"E",require:["select","?ngModel"],controller:ko,link:function(t,e,n,i){var r=i[1];if(r){var o=i[0];if(o.ngModelCtrl=r,r.$render=function(){
+o.writeValue(r.$viewValue)},e.on("change",function(){t.$apply(function(){r.$setViewValue(o.readValue())})}),n.multiple){o.readValue=function(){var t=[];return s(e.find("option"),function(e){e.selected&&t.push(e.value)}),t},o.writeValue=function(t){var n=new Gt(t);s(e.find("option"),function(t){t.selected=$(n.get(t.value))})};var a,l=NaN;t.$watch(function(){l!==r.$viewValue||L(a,r.$viewValue)||(a=W(r.$viewValue),r.$render()),l=r.$viewValue}),r.$isEmpty=function(t){return!t||0===t.length}}}}}},To=["$interpolate",function(t){function e(t){t[0].hasAttribute("selected")&&(t[0].selected=!0)}return{restrict:"E",priority:100,compile:function(n,i){if($(i.value))var r=t(i.value,!0);else{var s=t(n.text(),!0);s||i.$set("value",n.text())}return function(t,n,i){function o(t){u.addOption(t,n),u.ngModelCtrl.$render(),e(n)}var a="$selectController",l=n.parent(),u=l.data(a)||l.parent().data(a);if(u&&u.ngModelCtrl){if(r){var c;i.$observe("value",function(t){$(c)&&u.removeOption(c),c=t,o(t)})}else s?t.$watch(s,function(t,e){i.$set("value",t),e!==t&&u.removeOption(e),o(t)}):o(i.value);n.on("$destroy",function(){u.removeOption(i.value),u.ngModelCtrl.$render()})}}}}}],So=v({restrict:"E",terminal:!1}),Eo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,i){i&&(n.required=!0,i.$validators.required=function(t,e){return!n.required||!i.$isEmpty(e)},n.$observe("required",function(){i.$validate()}))}}},Mo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,r,s){if(s){var o,a=r.ngPattern||r.pattern;r.$observe("pattern",function(t){if(_(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw i("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",a,t,J(e));o=t||n,s.$validate()}),s.$validators.pattern=function(t,e){return s.$isEmpty(e)||y(o)||o.test(e)}}}}},Ao=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,i){if(i){var r=-1;n.$observe("maxlength",function(t){var e=p(t);r=isNaN(e)?-1:e,i.$validate()}),i.$validators.maxlength=function(t,e){return 0>r||i.$isEmpty(e)||e.length<=r}}}}},Io=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,i){if(i){var r=0;n.$observe("minlength",function(t){r=p(t)||0,i.$validate()}),i.$validators.minlength=function(t,e){return i.$isEmpty(e)||e.length>=r}}}}};return t.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(ct(),$t(Ni),Ni.module("ngLocale",[],["$provide",function(t){function e(t){t+="";var e=t.indexOf(".");return-1==e?0:t.length-e-1}function i(t,i){var r=i;n===r&&(r=Math.min(e(t),3));var s=Math.pow(10,r),o=(t*s|0)%s;return{v:r,f:o}}var r={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};t.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],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:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",pluralCat:function(t,e){var n=0|t,s=i(t,e);return 1==n&&0==s.v?r.ONE:r.OTHER}})}]),void Di(e).ready(function(){st(e,ot)}))}(window,document),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(t,e,n){"use strict";function i(){function t(t,n){return e.extend(Object.create(t),n)}function n(t,e){var n=e.caseInsensitiveMatch,i={originalPath:t,regexp:t},r=i.keys=[];return t=t.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(t,e,n,i){var s="?"===i?i:null,o="*"===i?i:null;return r.push({name:n,optional:!!s}),e=e||"",""+(s?"":e)+"(?:"+(s?e:"")+(o&&"(.+?)"||"([^/]+)")+(s||"")+")"+(s||"")}).replace(/([\/$\*])/g,"\\$1"),i.regexp=new RegExp("^"+t+"$",n?"i":""),i}var i={};this.when=function(t,r){var s=e.copy(r);if(e.isUndefined(s.reloadOnSearch)&&(s.reloadOnSearch=!0),e.isUndefined(s.caseInsensitiveMatch)&&(s.caseInsensitiveMatch=this.caseInsensitiveMatch),i[t]=e.extend(s,t&&n(t,s)),t){var o="/"==t[t.length-1]?t.substr(0,t.length-1):t+"/";i[o]=e.extend({redirectTo:t},n(o,s))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(t){return"string"==typeof t&&(t={redirectTo:t}),this.when(null,t),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function(n,r,s,o,a,u,c){function h(t,e){var n=e.keys,i={};if(!e.regexp)return null;var r=e.regexp.exec(t);if(!r)return null;for(var s=1,o=r.length;o>s;++s){var a=n[s-1],l=r[s];a&&l&&(i[a.name]=l)}return i}function d(t){var i=y.current;g=f(),v=g&&i&&g.$$route===i.$$route&&e.equals(g.pathParams,i.pathParams)&&!g.reloadOnSearch&&!b,v||!i&&!g||n.$broadcast("$routeChangeStart",g,i).defaultPrevented&&t&&t.preventDefault()}function p(){var t=y.current,i=g;v?(t.params=i.params,e.copy(t.params,s),n.$broadcast("$routeUpdate",t)):(i||t)&&(b=!1,y.current=i,i&&i.redirectTo&&(e.isString(i.redirectTo)?r.path(m(i.redirectTo,i.params)).search(i.params).replace():r.url(i.redirectTo(i.pathParams,r.path(),r.search())).replace()),o.when(i).then(function(){if(i){var t,n,r=e.extend({},i.resolve);return e.forEach(r,function(t,n){r[n]=e.isString(t)?a.get(t):a.invoke(t,null,null,n)}),e.isDefined(t=i.template)?e.isFunction(t)&&(t=t(i.params)):e.isDefined(n=i.templateUrl)&&(e.isFunction(n)&&(n=n(i.params)),e.isDefined(n)&&(i.loadedTemplateUrl=c.valueOf(n),t=u(n))),e.isDefined(t)&&(r.$template=t),o.all(r)}}).then(function(r){i==y.current&&(i&&(i.locals=r,e.copy(i.params,s)),n.$broadcast("$routeChangeSuccess",i,t))},function(e){i==y.current&&n.$broadcast("$routeChangeError",i,t,e)}))}function f(){var n,s;return e.forEach(i,function(i,o){!s&&(n=h(r.path(),i))&&(s=t(i,{params:e.extend({},r.search(),n),pathParams:n}),s.$$route=i)}),s||i[null]&&t(i[null],{params:{},pathParams:{}})}function m(t,n){var i=[];return e.forEach((t||"").split(":"),function(t,e){if(0===e)i.push(t);else{var r=t.match(/(\w+)(?:[?*])?(.*)/),s=r[1];i.push(n[s]),i.push(r[2]||""),delete n[s]}}),i.join("")}var g,v,b=!1,y={routes:i,reload:function(){b=!0,n.$evalAsync(function(){d(),p()})},updateParams:function(t){if(!this.current||!this.current.$$route)throw l("norout","Tried updating route when with no current route");t=e.extend({},this.current.params,t),r.path(m(this.current.$$route.originalPath,t)),r.search(t)}};return n.$on("$locationChangeStart",d),n.$on("$locationChangeSuccess",p),y}]}function r(){this.$get=function(){return{}}}function s(t,n,i){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(r,s,o,a,l){function u(){p&&(i.cancel(p),p=null),h&&(h.$destroy(),h=null),d&&(p=i.leave(d),p.then(function(){p=null}),d=null)}function c(){var o=t.current&&t.current.locals,a=o&&o.$template;if(e.isDefined(a)){var c=r.$new(),p=t.current,g=l(c,function(t){i.enter(t,null,d||s).then(function(){!e.isDefined(f)||f&&!r.$eval(f)||n()}),u()});d=g,h=p.scope=c,h.$emit("$viewContentLoaded"),h.$eval(m)}else u()}var h,d,p,f=o.autoscroll,m=o.onload||"";r.$on("$routeChangeSuccess",c),c()}}}function o(t,e,n){return{restrict:"ECA",priority:-400,link:function(i,r){var s=n.current,o=s.locals;r.html(o.$template);var a=t(r.contents());if(s.controller){o.$scope=i;var l=e(s.controller,o);s.controllerAs&&(i[s.controllerAs]=l),r.data("$ngControllerController",l),r.children().data("$ngControllerController",l)}a(i)}}}var a=e.module("ngRoute",["ng"]).provider("$route",i),l=e.$$minErr("ngRoute");a.provider("$routeParams",r),a.directive("ngView",s),a.directive("ngView",o),s.$inject=["$route","$anchorScroll","$animate"],o.$inject=["$compile","$controller","$route"]}(window,window.angular),function(t,e,n){"use strict";function i(t){return null!=t&&""!==t&&"hasOwnProperty"!==t&&a.test("."+t)}function r(t,r){if(!i(r))throw o("badmember",'Dotted member path "@{0}" is invalid.',r);for(var s=r.split("."),a=0,l=s.length;l>a&&e.isDefined(t);a++){var u=s[a];t=null!==t?t[u]:n}return t}function s(t,n){n=n||{},e.forEach(n,function(t,e){delete n[e]});for(var i in t)!t.hasOwnProperty(i)||"$"===i.charAt(0)&&"$"===i.charAt(1)||(n[i]=t[i]);return n}var o=e.$$minErr("$resource"),a=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;e.module("ngResource",["ng"]).provider("$resource",function(){var t=/^https?:\/\/[^\/]*/,i=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}},this.$get=["$http","$q",function(a,l){function u(t){return c(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function c(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,e?"%20":"+")}function h(t,e){this.template=t,this.defaults=m({},i.defaults,e),this.urlParams={}}function d(t,u,c,b){function y(t,e){var n={};return e=m({},u,e),f(e,function(e,i){v(e)&&(e=e()),n[i]=e&&e.charAt&&"@"==e.charAt(0)?r(t,e.substr(1)):e}),n}function $(t){return t.resource}function w(t){s(t||{},this)}var x=new h(t,b);return c=m({},i.defaults.actions,c),w.prototype.toJSON=function(){var t=m({},this);return delete t.$promise,delete t.$resolved,t},f(c,function(t,i){var r=/^(POST|PUT|PATCH)$/i.test(t.method);w[i]=function(u,c,h,d){var b,_,C,k={};switch(arguments.length){case 4:C=d,_=h;case 3:case 2:if(!v(c)){k=u,b=c,_=h;break}if(v(u)){_=u,C=c;break}_=c,C=h;case 1:v(u)?_=u:r?b=u:k=u;break;case 0:break;default:throw o("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var D=this instanceof w,T=D?b:t.isArray?[]:new w(b),S={},E=t.interceptor&&t.interceptor.response||$,M=t.interceptor&&t.interceptor.responseError||n;f(t,function(t,e){"params"!=e&&"isArray"!=e&&"interceptor"!=e&&(S[e]=g(t))}),r&&(S.data=b),x.setUrlParams(S,m({},y(b,t.params||{}),k),t.url);var A=a(S).then(function(n){var r=n.data,a=T.$promise;if(r){if(e.isArray(r)!==!!t.isArray)throw o("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",i,t.isArray?"array":"object",e.isArray(r)?"array":"object",S.method,S.url);t.isArray?(T.length=0,f(r,function(t){"object"==typeof t?T.push(new w(t)):T.push(t)})):(s(r,T),T.$promise=a)}return T.$resolved=!0,n.resource=T,n},function(t){return T.$resolved=!0,(C||p)(t),l.reject(t)});return A=A.then(function(t){var e=E(t);return(_||p)(e,t.headers),e},M),D?A:(T.$promise=A,T.$resolved=!1,T)},w.prototype["$"+i]=function(t,e,n){v(t)&&(n=e,e=t,t={});var r=w[i].call(this,t,this,e,n);return r.$promise||r}}),w.bind=function(e){return d(t,m({},u,e),c)},w}var p=e.noop,f=e.forEach,m=e.extend,g=e.copy,v=e.isFunction;return h.prototype={setUrlParams:function(n,i,r){var s,a,l=this,c=r||l.template,h="",d=l.urlParams={};f(c.split(/\W/),function(t){if("hasOwnProperty"===t)throw o("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(t)&&t&&new RegExp("(^|[^\\\\]):"+t+"(\\W|$)").test(c)&&(d[t]=!0)}),c=c.replace(/\\:/g,":"),c=c.replace(t,function(t){return h=t,""}),i=i||{},f(l.urlParams,function(t,n){s=i.hasOwnProperty(n)?i[n]:l.defaults[n],e.isDefined(s)&&null!==s?(a=u(s),c=c.replace(new RegExp(":"+n+"(\\W|$)","g"),function(t,e){return a+e})):c=c.replace(new RegExp("(/?):"+n+"(\\W|$)","g"),function(t,e,n){return"/"==n.charAt(0)?n:e+n})}),l.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/"),c=c.replace(/\/\.(?=\w+($|\?))/,"."),n.url=h+c.replace(/\/\\\./,"/."),f(i,function(t,e){l.urlParams[e]||(n.params=n.params||{},n.params[e]=t)})}},d}]})}(window,window.angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.transition","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-html.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("collapse",["$animate",function(t){return{link:function(e,n,i){function r(){n.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),t.addClass(n,"in",{to:{height:n[0].scrollHeight+"px"}}).then(s)}function s(){n.removeClass("collapsing"),n.css({height:"auto"})}function o(){return n.hasClass("collapse")||n.hasClass("in")?(n.css({height:n[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),void t.removeClass(n,"in",{to:{height:"0"}}).then(a)):a()}function a(){n.css({height:"0"}),n.removeClass("collapsing"),n.addClass("collapse")}e.$watch(i.collapse,function(t){t?o():r()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(t,e,n){this.groups=[],this.closeOthers=function(i){var r=angular.isDefined(e.closeOthers)?t.$eval(e.closeOthers):n.closeOthers;r&&angular.forEach(this.groups,function(t){t!==i&&(t.isOpen=!1)})},this.addGroup=function(t){var e=this;this.groups.push(t),t.$on("$destroy",function(n){e.removeGroup(t)})},this.removeGroup=function(t){var e=this.groups.indexOf(t);-1!==e&&this.groups.splice(e,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",controllerAs:"accordion",transclude:!0,replace:!1,templateUrl:function(t,e){return e.templateUrl||"template/accordion/accordion.html"}}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:function(t,e){return e.templateUrl||"template/accordion/accordion-group.html"},scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(t){this.heading=t}},link:function(t,e,n,i){i.addGroup(t),t.openClass=n.openClass||"panel-open",t.panelClass=n.panelClass,t.$watch("isOpen",function(n){e.toggleClass(t.openClass,n),n&&i.closeOthers(t)}),t.toggleOpen=function(e){t.isDisabled||e&&32!==e.which||(t.isOpen=!t.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(t,e,n,i,r){i.setHeading(r(t,angular.noop))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(t,e,n,i){t.$watch(function(){return i[n.accordionTransclude]},function(t){t&&(e.find("span").html(""),e.find("span").append(t))})}}}),angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(t,e){t.closeable=!!e.close,this.close=t.close}]).directive("alert",function(){return{controller:"AlertController",controllerAs:"alert",templateUrl:function(t,e){return e.templateUrl||"template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}).directive("dismissOnTimeout",["$timeout",function(t){return{require:"alert",link:function(e,n,i,r){t(function(){r.close()},parseInt(i.dismissOnTimeout,10))}}}]),angular.module("ui.bootstrap.bindHtml",[]).value("$bindHtmlUnsafeSuppressDeprecated",!1).directive("bindHtmlUnsafe",["$log","$bindHtmlUnsafeSuppressDeprecated",function(t,e){return function(n,i,r){e||t.warn("bindHtmlUnsafe is now deprecated. Use ngBindHtml instead"),i.addClass("ng-binding").data("$binding",r.bindHtmlUnsafe),n.$watch(r.bindHtmlUnsafe,function(t){i.html(t||"")})}}]),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(t){this.activeClass=t.activeClass||"active",this.toggleEvent=t.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",controllerAs:"buttons",link:function(t,e,n,i){var r=i[0],s=i[1];e.find("input").css({display:"none"}),s.$render=function(){e.toggleClass(r.activeClass,angular.equals(s.$modelValue,t.$eval(n.btnRadio)))},e.bind(r.toggleEvent,function(){if(!n.disabled){var i=e.hasClass(r.activeClass);(!i||angular.isDefined(n.uncheckable))&&t.$apply(function(){s.$setViewValue(i?null:t.$eval(n.btnRadio)),s.$render()})}})}}}).directive("btnCheckbox",["$document",function(t){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",controllerAs:"button",link:function(e,n,i,r){function s(){return a(i.btnCheckboxTrue,!0)}function o(){return a(i.btnCheckboxFalse,!1)}function a(t,n){var i=e.$eval(t);return angular.isDefined(i)?i:n}var l=r[0],u=r[1];n.find("input").css({display:"none"}),u.$render=function(){n.toggleClass(l.activeClass,angular.equals(u.$modelValue,s()))},n.bind(l.toggleEvent,function(){i.disabled||e.$apply(function(){u.$setViewValue(n.hasClass(l.activeClass)?o():s()),u.$render()})}),n.on("keypress",function(r){i.disabled||32!==r.which||t[0].activeElement!==n[0]||e.$apply(function(){u.$setViewValue(n.hasClass(l.activeClass)?o():s()),u.$render()})})}}}]),angular.module("ui.bootstrap.carousel",[]).controller("CarouselController",["$scope","$element","$interval","$animate",function(t,e,n,i){function r(e,n,r){v||(angular.extend(e,{direction:r,active:!0}),angular.extend(h.currentSlide||{},{direction:r,active:!1}),i.enabled()&&!t.noTransition&&!t.$currentTransition&&e.$element&&h.slides.length>1&&(e.$element.data(m,e.direction),h.currentSlide&&h.currentSlide.$element&&h.currentSlide.$element.data(m,e.direction),t.$currentTransition=!0,p?i.on("addClass",e.$element,function(e,n){"close"===n&&(t.$currentTransition=null,i.off("addClass",e))}):e.$element.one("$animate:close",function(){t.$currentTransition=null})),h.currentSlide=e,g=n,o())}function s(t){if(angular.isUndefined(d[t].index))return d[t];var e;d.length;for(e=0;e<d.length;++e)if(d[e].index==t)return d[e]}function o(){a();var e=+t.interval;!isNaN(e)&&e>0&&(u=n(l,e))}function a(){u&&(n.cancel(u),u=null)}function l(){var e=+t.interval;c&&!isNaN(e)&&e>0&&d.length?t.next():t.pause()}var u,c,h=this,d=h.slides=t.slides=[],p=angular.version.minor>=4,f="uib-noTransition",m="uib-slideDirection",g=-1;h.currentSlide=null;var v=!1;h.select=t.select=function(e,n){var i=t.indexOfSlide(e);void 0===n&&(n=i>h.getCurrentIndex()?"next":"prev"),e&&e!==h.currentSlide&&!t.$currentTransition&&r(e,i,n)},t.$on("$destroy",function(){v=!0}),h.getCurrentIndex=function(){return h.currentSlide&&angular.isDefined(h.currentSlide.index)?+h.currentSlide.index:g},t.indexOfSlide=function(t){return angular.isDefined(t.index)?+t.index:d.indexOf(t)},t.next=function(){var e=(h.getCurrentIndex()+1)%d.length;return 0===e&&t.noWrap()?void t.pause():h.select(s(e),"next")},t.prev=function(){var e=h.getCurrentIndex()-1<0?d.length-1:h.getCurrentIndex()-1;return t.noWrap()&&e===d.length-1?void t.pause():h.select(s(e),"prev")},t.isActive=function(t){return h.currentSlide===t},t.$watch("interval",o),t.$on("$destroy",a),t.play=function(){c||(c=!0,o())},t.pause=function(){t.noPause||(c=!1,a())},h.addSlide=function(e,n){e.$element=n,d.push(e),1===d.length||e.active?(h.select(d[d.length-1]),1==d.length&&t.play()):e.active=!1},h.removeSlide=function(t){angular.isDefined(t.index)&&d.sort(function(t,e){return+t.index>+e.index});var e=d.indexOf(t);d.splice(e,1),d.length>0&&t.active?e>=d.length?h.select(d[e-1]):h.select(d[e]):g>e&&g--,0===d.length&&(h.currentSlide=null)},t.$watch("noTransition",function(t){e.data(f,t)})}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",controllerAs:"carousel",require:"carousel",templateUrl:function(t,e){return e.templateUrl||"template/carousel/carousel.html"},scope:{interval:"=",noTransition:"=",noPause:"=",noWrap:"&"}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:function(t,e){return e.templateUrl||"template/carousel/slide.html"},scope:{active:"=?",actual:"=?",index:"=?"},link:function(t,e,n,i){i.addSlide(t,e),t.$on("$destroy",function(){i.removeSlide(t)}),t.$watch("active",function(e){e&&i.select(t)})}}}).animation(".item",["$injector","$animate",function(t,e){function n(t,e,n){t.removeClass(e),n&&n()}var i="uib-noTransition",r="uib-slideDirection",s=null;return t.has("$animateCss")&&(s=t.get("$animateCss")),{beforeAddClass:function(t,o,a){if("active"==o&&t.parent()&&!t.parent().data(i)){var l=!1,u=t.data(r),c="next"==u?"left":"right",h=n.bind(this,t,c+" "+u,a);return t.addClass(u),s?s(t,{addClass:c}).start().done(h):e.addClass(t,c).then(function(){l||h(),a()}),function(){l=!0}}a()},beforeRemoveClass:function(t,o,a){if("active"===o&&t.parent()&&!t.parent().data(i)){var l=!1,u=t.data(r),c="next"==u?"left":"right",h=n.bind(this,t,c,a);return s?s(t,{addClass:c}).start().done(h):e.addClass(t,c).then(function(){l||h(),a()}),function(){l=!0}}a()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$log","$locale","orderByFilter",function(t,e,n){function i(t){var e=[],i=t.split("");return angular.forEach(o,function(n,r){var s=t.indexOf(r);if(s>-1){t=t.split(""),i[s]="("+n.regex+")",t[s]="$";for(var o=s+1,a=s+r.length;a>o;o++)i[o]="",t[o]="$";t=t.join(""),e.push({index:s,apply:n.apply})}}),{regex:new RegExp("^"+i.join("")+"$"),map:n(e,"index")}}function r(t,e,n){return 1>n?!1:1===e&&n>28?29===n&&(t%4===0&&t%100!==0||t%400===0):3===e||5===e||8===e||10===e?31>n:!0}var s=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.parsers={};var o={yyyy:{regex:"\\d{4}",apply:function(t){this.year=+t}},yy:{regex:"\\d{2}",apply:function(t){this.year=+t+2e3}},y:{regex:"\\d{1,4}",apply:function(t){this.year=+t}},MMMM:{regex:e.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=e.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:e.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=e.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(t){this.month=t-1}},M:{regex:"[1-9]|1[0-2]",apply:function(t){this.month=t-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(t){this.date=+t}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(t){this.date=+t}},EEEE:{regex:e.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:e.DATETIME_FORMATS.SHORTDAY.join("|")},HH:{regex:"(?:0|1)[0-9]|2[0-3]",apply:function(t){this.hours=+t}},hh:{regex:"0[0-9]|1[0-2]",apply:function(t){this.hours=+t}},H:{regex:"1?[0-9]|2[0-3]",apply:function(t){this.hours=+t}},h:{regex:"[0-9]|1[0-2]",apply:function(t){this.hours=+t}},mm:{regex:"[0-5][0-9]",apply:function(t){this.minutes=+t}},m:{regex:"[0-9]|[1-5][0-9]",apply:function(t){this.minutes=+t}},sss:{regex:"[0-9][0-9][0-9]",apply:function(t){this.milliseconds=+t}},ss:{regex:"[0-5][0-9]",apply:function(t){this.seconds=+t}},s:{regex:"[0-9]|[1-5][0-9]",apply:function(t){this.seconds=+t}},a:{regex:e.DATETIME_FORMATS.AMPMS.join("|"),apply:function(t){12===this.hours&&(this.hours=0),"PM"===t&&(this.hours+=12)}}};this.parse=function(n,o,a){if(!angular.isString(n)||!o)return n;o=e.DATETIME_FORMATS[o]||o,o=o.replace(s,"\\$&"),this.parsers[o]||(this.parsers[o]=i(o));var l=this.parsers[o],u=l.regex,c=l.map,h=n.match(u);if(h&&h.length){var d,p;angular.isDate(a)&&!isNaN(a.getTime())?d={year:a.getFullYear(),month:a.getMonth(),date:a.getDate(),hours:a.getHours(),minutes:a.getMinutes(),seconds:a.getSeconds(),milliseconds:a.getMilliseconds()}:(a&&t.warn("dateparser:","baseDate is not a valid date"),d={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var f=1,m=h.length;m>f;f++){var g=c[f-1];g.apply&&g.apply.call(d,h[f])}return r(d.year,d.month,d.date)&&(p=new Date(d.year,d.month,d.date,d.hours,d.minutes,d.seconds,d.milliseconds||0)),p}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(t,e){function n(t,n){return t.currentStyle?t.currentStyle[n]:e.getComputedStyle?e.getComputedStyle(t)[n]:t.style[n]}function i(t){return"static"===(n(t,"position")||"static")}var r=function(e){for(var n=t[0],r=e.offsetParent||n;r&&r!==n&&i(r);)r=r.offsetParent;return r||n};return{position:function(e){var n=this.offset(e),i={top:0,left:0},s=r(e[0]);s!=t[0]&&(i=this.offset(angular.element(s)),i.top+=s.clientTop-s.scrollTop,i.left+=s.clientLeft-s.scrollLeft);var o=e[0].getBoundingClientRect();return{width:o.width||e.prop("offsetWidth"),height:o.height||e.prop("offsetHeight"),top:n.top-i.top,left:n.left-i.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(e.pageYOffset||t[0].documentElement.scrollTop),left:i.left+(e.pageXOffset||t[0].documentElement.scrollLeft)}},positionElements:function(t,e,n,i){var r,s,o,a,l=n.split("-"),u=l[0],c=l[1]||"center";r=i?this.offset(t):this.position(t),s=e.prop("offsetWidth"),o=e.prop("offsetHeight");var h={center:function(){return r.left+r.width/2-s/2},left:function(){return r.left},right:function(){return r.left+r.width}},d={center:function(){return r.top+r.height/2-o/2},top:function(){return r.top},bottom:function(){return r.top+r.height}};switch(u){case"right":a={top:d[c](),left:h[u]()};break;case"left":a={top:d[c](),left:r.left-s};break;case"bottom":a={top:d[u](),left:h[c]()};break;default:a={top:r.top-o,left:h[c]()}}return a}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).value("$datepickerSuppressError",!1).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null,shortcutPropagation:!1}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$log","dateFilter","datepickerConfig","$datepickerSuppressError",function(t,e,n,i,r,s,o,a){var l=this,u={$setViewValue:angular.noop};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","showWeeks","startingDay","yearRange","shortcutPropagation"],function(n,r){l[n]=angular.isDefined(e[n])?6>r?i(e[n])(t.$parent):t.$parent.$eval(e[n]):o[n]}),angular.forEach(["minDate","maxDate"],function(i){e[i]?t.$parent.$watch(n(e[i]),function(t){l[i]=t?new Date(t):null,l.refreshView()}):l[i]=o[i]?new Date(o[i]):null}),angular.forEach(["minMode","maxMode"],function(i){e[i]?t.$parent.$watch(n(e[i]),function(n){l[i]=angular.isDefined(n)?n:e[i],t[i]=l[i],("minMode"==i&&l.modes.indexOf(t.datepickerMode)<l.modes.indexOf(l[i])||"maxMode"==i&&l.modes.indexOf(t.datepickerMode)>l.modes.indexOf(l[i]))&&(t.datepickerMode=l[i])}):(l[i]=o[i]||null,t[i]=l[i])}),t.datepickerMode=t.datepickerMode||o.datepickerMode,t.uniqueId="datepicker-"+t.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(e.initDate)?(this.activeDate=t.$parent.$eval(e.initDate)||new Date,t.$parent.$watch(e.initDate,function(t){t&&(u.$isEmpty(u.$modelValue)||u.$invalid)&&(l.activeDate=t,l.refreshView())})):this.activeDate=new Date,t.isActive=function(e){return 0===l.compare(e.date,l.activeDate)?(t.activeDateId=e.uid,!0):!1},this.init=function(t){u=t,u.$render=function(){l.render()}},this.render=function(){if(u.$viewValue){var t=new Date(u.$viewValue),e=!isNaN(t);e?this.activeDate=t:a||r.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')}this.refreshView()},this.refreshView=function(){if(this.element){this._refreshView();var t=u.$viewValue?new Date(u.$viewValue):null;u.$setValidity("dateDisabled",!t||this.element&&!this.isDisabled(t))}},this.createDateObject=function(t,e){var n=u.$viewValue?new Date(u.$viewValue):null;return{date:t,label:s(t,e),selected:n&&0===this.compare(t,n),disabled:this.isDisabled(t),current:0===this.compare(t,new Date),customClass:this.customClass(t)}},this.isDisabled=function(n){return this.minDate&&this.compare(n,this.minDate)<0||this.maxDate&&this.compare(n,this.maxDate)>0||e.dateDisabled&&t.dateDisabled({date:n,mode:t.datepickerMode})},this.customClass=function(e){return t.customClass({date:e,mode:t.datepickerMode})},this.split=function(t,e){for(var n=[];t.length>0;)n.push(t.splice(0,e));return n},this.fixTimeZone=function(t){var e=t.getHours();t.setHours(23===e?e+2:0)},t.select=function(e){if(t.datepickerMode===l.minMode){var n=u.$viewValue?new Date(u.$viewValue):new Date(0,0,0,0,0,0,0);n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),u.$setViewValue(n),u.$render()}else l.activeDate=e,t.datepickerMode=l.modes[l.modes.indexOf(t.datepickerMode)-1]},t.move=function(t){var e=l.activeDate.getFullYear()+t*(l.step.years||0),n=l.activeDate.getMonth()+t*(l.step.months||0);l.activeDate.setFullYear(e,n,1),l.refreshView()},t.toggleMode=function(e){e=e||1,t.datepickerMode===l.maxMode&&1===e||t.datepickerMode===l.minMode&&-1===e||(t.datepickerMode=l.modes[l.modes.indexOf(t.datepickerMode)+e])},t.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var c=function(){l.element[0].focus()};t.$on("datepicker.focus",c),t.keydown=function(e){var n=t.keys[e.which];if(n&&!e.shiftKey&&!e.altKey)if(e.preventDefault(),l.shortcutPropagation||e.stopPropagation(),"enter"===n||"space"===n){if(l.isDisabled(l.activeDate))return;t.select(l.activeDate),c()}else!e.ctrlKey||"up"!==n&&"down"!==n?(l.handleKeyDown(n,e),l.refreshView()):(t.toggleMode("up"===n?1:-1),c())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:function(t,e){return e.templateUrl||"template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["datepicker","^ngModel"],controller:"DatepickerController",controllerAs:"datepicker",link:function(t,e,n,i){var r=i[0],s=i[1];r.init(s)}}}).directive("daypicker",["dateFilter",function(t){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(e,n,i,r){function s(t,e){
+return 1!==e||t%4!==0||t%100===0&&t%400!==0?l[e]:29}function o(t,e){for(var n,i=new Array(e),s=new Date(t),o=0;e>o;)n=new Date(s),r.fixTimeZone(n),i[o++]=n,s.setDate(s.getDate()+1);return i}function a(t){var e=new Date(t);e.setDate(e.getDate()+4-(e.getDay()||7));var n=e.getTime();return e.setMonth(0),e.setDate(1),Math.floor(Math.round((n-e)/864e5)/7)+1}e.showWeeks=r.showWeeks,r.step={months:1},r.element=n;var l=[31,28,31,30,31,30,31,31,30,31,30,31];r._refreshView=function(){var n=r.activeDate.getFullYear(),i=r.activeDate.getMonth(),s=new Date(n,i,1),l=r.startingDay-s.getDay(),u=l>0?7-l:-l,c=new Date(s);u>0&&c.setDate(-u+1);for(var h=o(c,42),d=0;42>d;d++)h[d]=angular.extend(r.createDateObject(h[d],r.formatDay),{secondary:h[d].getMonth()!==i,uid:e.uniqueId+"-"+d});e.labels=new Array(7);for(var p=0;7>p;p++)e.labels[p]={abbr:t(h[p].date,r.formatDayHeader),full:t(h[p].date,"EEEE")};if(e.title=t(r.activeDate,r.formatDayTitle),e.rows=r.split(h,7),e.showWeeks){e.weekNumbers=[];for(var f=(11-r.startingDay)%7,m=e.rows.length,g=0;m>g;g++)e.weekNumbers.push(a(e.rows[g][f].date))}},r.compare=function(t,e){return new Date(t.getFullYear(),t.getMonth(),t.getDate())-new Date(e.getFullYear(),e.getMonth(),e.getDate())},r.handleKeyDown=function(t,e){var n=r.activeDate.getDate();if("left"===t)n-=1;else if("up"===t)n-=7;else if("right"===t)n+=1;else if("down"===t)n+=7;else if("pageup"===t||"pagedown"===t){var i=r.activeDate.getMonth()+("pageup"===t?-1:1);r.activeDate.setMonth(i,1),n=Math.min(s(r.activeDate.getFullYear(),r.activeDate.getMonth()),n)}else"home"===t?n=1:"end"===t&&(n=s(r.activeDate.getFullYear(),r.activeDate.getMonth()));r.activeDate.setDate(n)},r.refreshView()}}}]).directive("monthpicker",["dateFilter",function(t){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(e,n,i,r){r.step={years:1},r.element=n,r._refreshView=function(){for(var n,i=new Array(12),s=r.activeDate.getFullYear(),o=0;12>o;o++)n=new Date(s,o,1),r.fixTimeZone(n),i[o]=angular.extend(r.createDateObject(n,r.formatMonth),{uid:e.uniqueId+"-"+o});e.title=t(r.activeDate,r.formatMonthTitle),e.rows=r.split(i,3)},r.compare=function(t,e){return new Date(t.getFullYear(),t.getMonth())-new Date(e.getFullYear(),e.getMonth())},r.handleKeyDown=function(t,e){var n=r.activeDate.getMonth();if("left"===t)n-=1;else if("up"===t)n-=3;else if("right"===t)n+=1;else if("down"===t)n+=3;else if("pageup"===t||"pagedown"===t){var i=r.activeDate.getFullYear()+("pageup"===t?-1:1);r.activeDate.setFullYear(i)}else"home"===t?n=0:"end"===t&&(n=11);r.activeDate.setMonth(n)},r.refreshView()}}}]).directive("yearpicker",["dateFilter",function(t){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(t,e,n,i){function r(t){return parseInt((t-1)/s,10)*s+1}var s=i.yearRange;i.step={years:s},i.element=e,i._refreshView=function(){for(var e,n=new Array(s),o=0,a=r(i.activeDate.getFullYear());s>o;o++)e=new Date(a+o,0,1),i.fixTimeZone(e),n[o]=angular.extend(i.createDateObject(e,i.formatYear),{uid:t.uniqueId+"-"+o});t.title=[n[0].label,n[s-1].label].join(" - "),t.rows=i.split(n,5)},i.compare=function(t,e){return t.getFullYear()-e.getFullYear()},i.handleKeyDown=function(t,e){var n=i.activeDate.getFullYear();"left"===t?n-=1:"up"===t?n-=5:"right"===t?n+=1:"down"===t?n+=5:"pageup"===t||"pagedown"===t?n+=("pageup"===t?-1:1)*i.step.years:"home"===t?n=r(i.activeDate.getFullYear()):"end"===t&&(n=r(i.activeDate.getFullYear())+s-1),i.activeDate.setFullYear(n)},i.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"template/datepicker/popup.html",datepickerTemplateUrl:"template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0}).directive("datepickerPopup",["$compile","$parse","$document","$rootScope","$position","dateFilter","dateParser","datepickerPopupConfig","$timeout",function(t,e,n,i,r,s,o,a,l){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(u,c,h,d){function p(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}function f(t){angular.isNumber(t)&&(t=new Date(t));{if(!t)return null;if(angular.isDate(t)&&!isNaN(t))return t;if(angular.isString(t)){var e=o.parse(t,g,u.date);return isNaN(e)?void 0:e}}}function m(t,e){var n=t||e;if(!h.ngRequired&&!n)return!0;if(angular.isNumber(n)&&(n=new Date(n)),n){if(angular.isDate(n)&&!isNaN(n))return!0;if(angular.isString(n)){var i=o.parse(n,g);return!isNaN(i)}return!1}return!0}var g,v=angular.isDefined(h.closeOnDateSelection)?u.$parent.$eval(h.closeOnDateSelection):a.closeOnDateSelection,b=angular.isDefined(h.datepickerAppendToBody)?u.$parent.$eval(h.datepickerAppendToBody):a.appendToBody,y=angular.isDefined(h.onOpenFocus)?u.$parent.$eval(h.onOpenFocus):a.onOpenFocus,$=angular.isDefined(h.datepickerPopupTemplateUrl)?h.datepickerPopupTemplateUrl:a.datepickerPopupTemplateUrl,w=angular.isDefined(h.datepickerTemplateUrl)?h.datepickerTemplateUrl:a.datepickerTemplateUrl,x={};u.showButtonBar=angular.isDefined(h.showButtonBar)?u.$parent.$eval(h.showButtonBar):a.showButtonBar,u.getText=function(t){return u[t+"Text"]||a[t+"Text"]},u.isDisabled=function(t){return"today"===t&&(t=new Date),u.watchData.minDate&&u.compare(t,x.minDate)<0||u.watchData.maxDate&&u.compare(t,x.maxDate)>0},u.compare=function(t,e){return new Date(t.getFullYear(),t.getMonth(),t.getDate())-new Date(e.getFullYear(),e.getMonth(),e.getDate())};var _=!1;if(a.html5Types[h.type]?(g=a.html5Types[h.type],_=!0):(g=h.datepickerPopup||a.datepickerPopup,h.$observe("datepickerPopup",function(t,e){var n=t||a.datepickerPopup;if(n!==g&&(g=n,d.$modelValue=null,!g))throw new Error("datepickerPopup must have a date format specified.")})),!g)throw new Error("datepickerPopup must have a date format specified.");if(_&&h.datepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");var C=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>");C.attr({"ng-model":"date","ng-change":"dateSelection(date)","template-url":$});var k=angular.element(C.children()[0]);if(k.attr("template-url",w),_&&"month"===h.type&&(k.attr("datepicker-mode",'"month"'),k.attr("min-mode","month")),h.datepickerOptions){var D=u.$parent.$eval(h.datepickerOptions);D&&D.initDate&&(u.initDate=D.initDate,k.attr("init-date","initDate"),delete D.initDate),angular.forEach(D,function(t,e){k.attr(p(e),t)})}u.watchData={},angular.forEach(["minMode","maxMode","minDate","maxDate","datepickerMode","initDate","shortcutPropagation"],function(t){if(h[t]){var n=e(h[t]);if(u.$parent.$watch(n,function(e){u.watchData[t]=e,("minDate"===t||"maxDate"===t)&&(x[t]=new Date(e))}),k.attr(p(t),"watchData."+t),"datepickerMode"===t){var i=n.assign;u.$watch("watchData."+t,function(t,e){angular.isFunction(i)&&t!==e&&i(u.$parent,t)})}}}),h.dateDisabled&&k.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),h.showWeeks&&k.attr("show-weeks",h.showWeeks),h.customClass&&k.attr("custom-class","customClass({ date: date, mode: mode })"),_?d.$formatters.push(function(t){return u.date=t,t}):(d.$$parserName="date",d.$validators.date=m,d.$parsers.unshift(f),d.$formatters.push(function(t){return u.date=t,d.$isEmpty(t)?t:s(t,g)})),u.dateSelection=function(t){angular.isDefined(t)&&(u.date=t);var e=u.date?s(u.date,g):null;c.val(e),d.$setViewValue(e),v&&(u.isOpen=!1,c[0].focus())},d.$viewChangeListeners.push(function(){u.date=o.parse(d.$viewValue,g,u.date)});var T=function(t){!u.isOpen||c[0].contains(t.target)||C[0].contains(t.target)||u.$apply(function(){u.isOpen=!1})},S=function(t){27===t.which&&u.isOpen?(t.preventDefault(),t.stopPropagation(),u.$apply(function(){u.isOpen=!1}),c[0].focus()):40!==t.which||u.isOpen||(t.preventDefault(),t.stopPropagation(),u.$apply(function(){u.isOpen=!0}))};c.bind("keydown",S),u.keydown=function(t){27===t.which&&(u.isOpen=!1,c[0].focus())},u.$watch("isOpen",function(t){t?(u.position=b?r.offset(c):r.position(c),u.position.top=u.position.top+c.prop("offsetHeight"),l(function(){y&&u.$broadcast("datepicker.focus"),n.bind("click",T)},0,!1)):n.unbind("click",T)}),u.select=function(t){if("today"===t){var e=new Date;angular.isDate(u.date)?(t=new Date(u.date),t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate())):t=new Date(e.setHours(0,0,0,0))}u.dateSelection(t)},u.close=function(){u.isOpen=!1,c[0].focus()};var E=t(C)(u);C.remove(),b?n.find("body").append(E):c.after(E),u.$on("$destroy",function(){u.isOpen===!0&&(i.$$phase||u.$apply(function(){u.isOpen=!1})),E.remove(),c.unbind("keydown",S),n.unbind("click",T)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:function(t,e){return e.templateUrl||"template/datepicker/popup.html"}}}),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document","$rootScope",function(t,e){var n=null;this.open=function(e){n||(t.bind("click",i),t.bind("keydown",r)),n&&n!==e&&(n.isOpen=!1),n=e},this.close=function(e){n===e&&(n=null,t.unbind("click",i),t.unbind("keydown",r))};var i=function(t){if(n&&(!t||"disabled"!==n.getAutoClose())){var i=n.getToggleElement();if(!(t&&i&&i[0].contains(t.target))){var r=n.getDropdownElement();t&&"outsideClick"===n.getAutoClose()&&r&&r[0].contains(t.target)||(n.isOpen=!1,e.$$phase||n.$apply())}}},r=function(t){27===t.which?(n.focusToggleElement(),i()):n.isKeynavEnabled()&&/(38|40)/.test(t.which)&&n.isOpen&&(t.preventDefault(),t.stopPropagation(),n.focusDropdownEntry(t.which))}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate","$position","$document","$compile","$templateRequest",function(t,e,n,i,r,s,o,a,l,u){var c,h,d=this,p=t.$new(),f=i.openClass,m=angular.noop,g=e.onToggle?n(e.onToggle):angular.noop,v=!1,b=!1,y=a.find("body");this.init=function(i){d.$element=i,e.isOpen&&(h=n(e.isOpen),m=h.assign,t.$watch(h,function(t){p.isOpen=!!t})),v=angular.isDefined(e.dropdownAppendToBody),b=angular.isDefined(e.keyboardNav),v&&d.dropdownMenu&&(y.append(d.dropdownMenu),y.addClass("dropdown"),i.on("$destroy",function(){d.dropdownMenu.remove()}))},this.toggle=function(t){return p.isOpen=arguments.length?!!t:!p.isOpen},this.isOpen=function(){return p.isOpen},p.getToggleElement=function(){return d.toggleElement},p.getAutoClose=function(){return e.autoClose||"always"},p.getElement=function(){return d.$element},p.isKeynavEnabled=function(){return b},p.focusDropdownEntry=function(t){var e=d.dropdownMenu?angular.element(d.dropdownMenu).find("a"):angular.element(d.$element).find("ul").eq(0).find("a");switch(t){case 40:angular.isNumber(d.selectedOption)?d.selectedOption=d.selectedOption===e.length-1?d.selectedOption:d.selectedOption+1:d.selectedOption=0;break;case 38:angular.isNumber(d.selectedOption)?d.selectedOption=0===d.selectedOption?0:d.selectedOption-1:d.selectedOption=e.length-1}e[d.selectedOption].focus()},p.getDropdownElement=function(){return d.dropdownMenu},p.focusToggleElement=function(){d.toggleElement&&d.toggleElement[0].focus()},p.$watch("isOpen",function(e,n){if(v&&d.dropdownMenu){var i=o.positionElements(d.$element,d.dropdownMenu,"bottom-left",!0),a={top:i.top+"px",display:e?"block":"none"},h=d.dropdownMenu.hasClass("dropdown-menu-right");h?(a.left="auto",a.right=window.innerWidth-(i.left+d.$element.prop("offsetWidth"))+"px"):(a.left=i.left+"px",a.right="auto"),d.dropdownMenu.css(a)}var b=v?y:d.$element;if(s[e?"addClass":"removeClass"](b,f).then(function(){angular.isDefined(e)&&e!==n&&g(t,{open:!!e})}),e)d.dropdownMenuTemplateUrl&&u(d.dropdownMenuTemplateUrl).then(function(t){c=p.$new(),l(t.trim())(c,function(t){var e=t;d.dropdownMenu.replaceWith(e),d.dropdownMenu=e})}),p.focusToggleElement(),r.open(p);else{if(d.dropdownMenuTemplateUrl){c&&c.$destroy();var $=angular.element('<ul class="dropdown-menu"></ul>');d.dropdownMenu.replaceWith($),d.dropdownMenu=$}r.close(p),d.selectedOption=null}angular.isFunction(m)&&m(t,e)}),t.$on("$locationChangeSuccess",function(){"disabled"!==p.getAutoClose()&&(p.isOpen=!1)});var $=t.$on("$destroy",function(){p.$destroy()});p.$on("$destroy",$)}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(t,e,n,i){i.init(e),e.addClass("dropdown")}}}).directive("dropdownMenu",function(){return{restrict:"AC",require:"?^dropdown",link:function(t,e,n,i){if(i){var r=n.templateUrl;r&&(i.dropdownMenuTemplateUrl=r),i.dropdownMenu||(i.dropdownMenu=e)}}}}).directive("keyboardNav",function(){return{restrict:"A",require:"?^dropdown",link:function(t,e,n,i){e.bind("keydown",function(t){if(-1!==[38,40].indexOf(t.which)){t.preventDefault(),t.stopPropagation();var e=i.dropdownMenu.find("a");switch(t.which){case 40:angular.isNumber(i.selectedOption)?i.selectedOption=i.selectedOption===e.length-1?i.selectedOption:i.selectedOption+1:i.selectedOption=0;break;case 38:angular.isNumber(i.selectedOption)?i.selectedOption=0===i.selectedOption?0:i.selectedOption-1:i.selectedOption=e.length-1}e[i.selectedOption].focus()}})}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(t,e,n,i){if(i){e.addClass("dropdown-toggle"),i.toggleElement=e;var r=function(r){r.preventDefault(),e.hasClass("disabled")||n.disabled||t.$apply(function(){i.toggle()})};e.bind("click",r),e.attr({"aria-haspopup":!0,"aria-expanded":!1}),t.$watch(i.isOpen,function(t){e.attr("aria-expanded",!!t)}),t.$on("$destroy",function(){e.unbind("click",r)})}}}}),angular.module("ui.bootstrap.modal",[]).factory("$$stackedMap",function(){return{createNew:function(){var t=[];return{add:function(e,n){t.push({key:e,value:n})},get:function(e){for(var n=0;n<t.length;n++)if(e==t[n].key)return t[n]},keys:function(){for(var e=[],n=0;n<t.length;n++)e.push(t[n].key);return e},top:function(){return t[t.length-1]},remove:function(e){for(var n=-1,i=0;i<t.length;i++)if(e==t[i].key){n=i;break}return t.splice(n,1)[0]},removeTop:function(){return t.splice(t.length-1,1)[0]},length:function(){return t.length}}}}}).factory("$$multiMap",function(){return{createNew:function(){var t={};return{entries:function(){return Object.keys(t).map(function(e){return{key:e,value:t[e]}})},get:function(e){return t[e]},hasKey:function(e){return!!t[e]},keys:function(){return Object.keys(t)},put:function(e,n){t[e]||(t[e]=[]),t[e].push(n)},remove:function(e,n){var i=t[e];if(i){var r=i.indexOf(n);-1!==r&&i.splice(r,1),i.length||delete t[e]}}}}}}).directive("modalBackdrop",["$animate","$injector","$modalStack",function(t,e,n){function i(e,i,s){s.modalInClass&&(r?r(i,{addClass:s.modalInClass}).start():t.addClass(i,s.modalInClass),e.$on(n.NOW_CLOSING_EVENT,function(e,n){var o=n();r?r(i,{removeClass:s.modalInClass}).start().then(o):t.removeClass(i,s.modalInClass).then(o)}))}var r=null;return e.has("$animateCss")&&(r=e.get("$animateCss")),{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",compile:function(t,e){return t.addClass(e.backdropClass),i}}}]).directive("modalWindow",["$modalStack","$q","$animate","$injector",function(t,e,n,i){var r=null;return i.has("$animateCss")&&(r=i.get("$animateCss")),{restrict:"EA",scope:{index:"@"},replace:!0,transclude:!0,templateUrl:function(t,e){return e.templateUrl||"template/modal/window.html"},link:function(i,s,o){s.addClass(o.windowClass||""),i.size=o.size,i.close=function(e){var n=t.getTop();n&&n.value.backdrop&&"static"!==n.value.backdrop&&e.target===e.currentTarget&&(e.preventDefault(),e.stopPropagation(),t.dismiss(n.key,"backdrop click"))},i.$isRendered=!0;var a=e.defer();o.$observe("modalRender",function(t){"true"==t&&a.resolve()}),a.promise.then(function(){var a=null;o.modalInClass&&(a=r?r(s,{addClass:o.modalInClass}).start():n.addClass(s,o.modalInClass),i.$on(t.NOW_CLOSING_EVENT,function(t,e){var i=e();r?r(s,{removeClass:o.modalInClass}).start().then(i):n.removeClass(s,o.modalInClass).then(i)})),e.when(a).then(function(){var t=s[0].querySelectorAll("[autofocus]");t.length?t[0].focus():s[0].focus()});var l=t.getTop();l&&t.modalRendered(l.key)})}}}]).directive("modalAnimationClass",[function(){return{compile:function(t,e){e.modalAnimation&&t.addClass(e.modalAnimationClass)}}}]).directive("modalTransclude",function(){return{link:function(t,e,n,i,r){r(t.$parent,function(t){e.empty(),e.append(t)})}}}).factory("$modalStack",["$animate","$timeout","$document","$compile","$rootScope","$q","$injector","$$multiMap","$$stackedMap",function(t,e,n,i,r,s,o,a,l){function u(){for(var t=-1,e=y.keys(),n=0;n<e.length;n++)y.get(e[n]).value.backdrop&&(t=n);return t}function c(t,e){var i=n.find("body").eq(0),r=y.get(t).value;y.remove(t),d(r.modalDomEl,r.modalScope,function(){var e=r.openedClass||b;$.remove(e,t),i.toggleClass(e,$.hasKey(e))}),h(),e&&e.focus?e.focus():i.focus()}function h(){if(m&&-1==u()){var t=g;d(m,g,function(){t=null}),m=void 0,g=void 0}}function d(e,n,i){function r(){r.done||(r.done=!0,f?f(e,{event:"leave"}).start().then(function(){e.remove()}):t.leave(e),n.$destroy(),i&&i())}var o,a=null,l=function(){return o||(o=s.defer(),a=o.promise),function(){o.resolve()}};return n.$broadcast(w.NOW_CLOSING_EVENT,l),s.when(a).then(r)}function p(t,e,n){return!t.value.modalScope.$broadcast("modal.closing",e,n).defaultPrevented}var f=null;o.has("$animateCss")&&(f=o.get("$animateCss"));var m,g,v,b="modal-open",y=l.createNew(),$=a.createNew(),w={NOW_CLOSING_EVENT:"modal.stack.now-closing"},x=0,_="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return r.$watch(u,function(t){g&&(g.index=t)}),n.bind("keydown",function(t){if(t.isDefaultPrevented())return t;var e=y.top();if(e&&e.value.keyboard)switch(t.which){case 27:t.preventDefault(),r.$apply(function(){w.dismiss(e.key,"escape key press")});break;case 9:w.loadFocusElementList(e);var n=!1;t.shiftKey?w.isFocusInFirstItem(t)&&(n=w.focusLastFocusableElement()):w.isFocusInLastItem(t)&&(n=w.focusFirstFocusableElement()),n&&(t.preventDefault(),t.stopPropagation())}}),w.open=function(t,e){var s=n[0].activeElement,o=e.openedClass||b;y.add(t,{deferred:e.deferred,renderDeferred:e.renderDeferred,modalScope:e.scope,backdrop:e.backdrop,keyboard:e.keyboard,openedClass:e.openedClass}),$.put(o,t);var a=n.find("body").eq(0),l=u();if(l>=0&&!m){g=r.$new(!0),g.index=l;var c=angular.element('<div modal-backdrop="modal-backdrop"></div>');c.attr("backdrop-class",e.backdropClass),e.animation&&c.attr("modal-animation","true"),m=i(c)(g),a.append(m)}var h=angular.element('<div modal-window="modal-window"></div>');h.attr({"template-url":e.windowTemplateUrl,"window-class":e.windowClass,size:e.size,index:y.length()-1,animate:"animate"}).html(e.content),e.animation&&h.attr("modal-animation","true");var d=i(h)(e.scope);y.top().value.modalDomEl=d,y.top().value.modalOpener=s,a.append(d),a.addClass(o),w.clearFocusListCache()},w.close=function(t,e){var n=y.get(t);return n&&p(n,e,!0)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.resolve(e),c(t,n.value.modalOpener),!0):!n},w.dismiss=function(t,e){var n=y.get(t);return n&&p(n,e,!1)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.reject(e),c(t,n.value.modalOpener),!0):!n},w.dismissAll=function(t){for(var e=this.getTop();e&&this.dismiss(e.key,t);)e=this.getTop()},w.getTop=function(){return y.top()},w.modalRendered=function(t){var e=y.get(t);e&&e.value.renderDeferred.resolve()},w.focusFirstFocusableElement=function(){return v.length>0?(v[0].focus(),!0):!1},w.focusLastFocusableElement=function(){return v.length>0?(v[v.length-1].focus(),!0):!1},w.isFocusInFirstItem=function(t){return v.length>0?(t.target||t.srcElement)==v[0]:!1},w.isFocusInLastItem=function(t){return v.length>0?(t.target||t.srcElement)==v[v.length-1]:!1},w.clearFocusListCache=function(){v=[],x=0},w.loadFocusElementList=function(t){if((void 0===v||!v.length0)&&t){var e=t.value.modalDomEl;e&&e.length&&(v=e[0].querySelectorAll(_))}},w}]).provider("$modal",function(){var t={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$templateRequest","$controller","$modalStack",function(e,n,i,r,s,o){function a(t){return t.template?i.when(t.template):r(angular.isFunction(t.templateUrl)?t.templateUrl():t.templateUrl)}function l(t){var n=[];return angular.forEach(t,function(t){angular.isFunction(t)||angular.isArray(t)?n.push(i.when(e.invoke(t))):angular.isString(t)?n.push(i.when(e.get(t))):n.push(i.when(t))}),n}var u={},c=null;return u.getPromiseChain=function(){return c},u.open=function(e){var r=i.defer(),u=i.defer(),h=i.defer(),d={result:r.promise,opened:u.promise,rendered:h.promise,close:function(t){return o.close(d,t)},dismiss:function(t){return o.dismiss(d,t)}};if(e=angular.extend({},t.options,e),e.resolve=e.resolve||{},!e.template&&!e.templateUrl)throw new Error("One of template or templateUrl options is required.");var p,f=i.all([a(e)].concat(l(e.resolve)));return p=c=i.all([c]).then(function(){return f},function(){return f}).then(function(t){var i=(e.scope||n).$new();i.$close=d.close,i.$dismiss=d.dismiss,i.$on("$destroy",function(){i.$$uibDestructionScheduled||i.$dismiss("$uibUnscheduledDestruction")});var a,l={},c=1;e.controller&&(l.$scope=i,l.$modalInstance=d,angular.forEach(e.resolve,function(e,n){l[n]=t[c++]}),a=s(e.controller,l),e.controllerAs&&(e.bindToController&&angular.extend(a,i),i[e.controllerAs]=a)),o.open(d,{scope:i,deferred:r,renderDeferred:h,content:t[0],animation:e.animation,backdrop:e.backdrop,keyboard:e.keyboard,backdropClass:e.backdropClass,windowClass:e.windowClass,windowTemplateUrl:e.windowTemplateUrl,size:e.size,openedClass:e.openedClass}),u.resolve(!0)},function(t){u.reject(t),r.reject(t)})["finally"](function(){c===p&&(c=null)}),d},u}]};return t}),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(t,e,n){var i=this,r={$setViewValue:angular.noop},s=e.numPages?n(e.numPages).assign:angular.noop;this.init=function(o,a){r=o,this.config=a,r.$render=function(){i.render()},e.itemsPerPage?t.$parent.$watch(n(e.itemsPerPage),function(e){i.itemsPerPage=parseInt(e,10),t.totalPages=i.calculateTotalPages()}):this.itemsPerPage=a.itemsPerPage,t.$watch("totalItems",function(){t.totalPages=i.calculateTotalPages()}),t.$watch("totalPages",function(e){s(t.$parent,e),t.page>e?t.selectPage(e):r.$render()})},this.calculateTotalPages=function(){var e=this.itemsPerPage<1?1:Math.ceil(t.totalItems/this.itemsPerPage);return Math.max(e||0,1)},this.render=function(){t.page=parseInt(r.$viewValue,10)||1},t.selectPage=function(e,n){n&&n.preventDefault();var i=!t.ngDisabled||!n;i&&t.page!==e&&e>0&&e<=t.totalPages&&(n&&n.target&&n.target.blur(),r.$setViewValue(e),r.$render())},t.getText=function(e){return t[e+"Text"]||i.config[e+"Text"]},t.noPrevious=function(){return 1===t.page},t.noNext=function(){return t.page===t.totalPages}}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(t,e){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["pagination","?ngModel"],controller:"PaginationController",controllerAs:"pagination",templateUrl:function(t,e){return e.templateUrl||"template/pagination/pagination.html"},replace:!0,link:function(n,i,r,s){function o(t,e,n){return{number:t,text:e,active:n}}function a(t,e){var n=[],i=1,r=e,s=angular.isDefined(c)&&e>c;s&&(h?(i=Math.max(t-Math.floor(c/2),1),r=i+c-1,r>e&&(r=e,i=r-c+1)):(i=(Math.ceil(t/c)-1)*c+1,r=Math.min(i+c-1,e)));for(var a=i;r>=a;a++){var l=o(a,a,a===t);n.push(l)}if(s&&!h){if(i>1){var u=o(i-1,"...",!1);n.unshift(u)}if(e>r){var d=o(r+1,"...",!1);n.push(d)}}return n}var l=s[0],u=s[1];if(u){var c=angular.isDefined(r.maxSize)?n.$parent.$eval(r.maxSize):e.maxSize,h=angular.isDefined(r.rotate)?n.$parent.$eval(r.rotate):e.rotate;n.boundaryLinks=angular.isDefined(r.boundaryLinks)?n.$parent.$eval(r.boundaryLinks):e.boundaryLinks,n.directionLinks=angular.isDefined(r.directionLinks)?n.$parent.$eval(r.directionLinks):e.directionLinks,l.init(u,e),r.maxSize&&n.$parent.$watch(t(r.maxSize),function(t){c=parseInt(t,10),l.render()});var d=l.render;l.render=function(){d(),n.page>0&&n.page<=n.totalPages&&(n.pages=a(n.page,n.totalPages))}}}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(t){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["pager","?ngModel"],controller:"PaginationController",controllerAs:"pagination",templateUrl:function(t,e){return e.templateUrl||"template/pagination/pager.html"},replace:!0,link:function(e,n,i,r){var s=r[0],o=r[1];o&&(e.align=angular.isDefined(i.align)?e.$parent.$eval(i.align):t.align,s.init(o,t))}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function t(t){var e=/[A-Z]/g,n="-";return t.replace(e,function(t,e){return(e?n:"")+t.toLowerCase()})}var e={placement:"top",animation:!0,popupDelay:0,useContentExp:!1},n={mouseenter:"mouseleave",click:"click",focus:"blur",none:""},i={};this.options=function(t){angular.extend(i,t)},this.setTriggers=function(t){angular.extend(n,t)},this.$get=["$window","$compile","$timeout","$document","$position","$interpolate","$rootScope","$parse",function(r,s,o,a,l,u,c,h){return function(r,d,p,f){function m(t){var e=(t||f.trigger||p).split(" "),i=e.map(function(t){return n[t]||t});return{show:e,hide:i}}f=angular.extend({},e,i,f);var g=t(r),v=u.startSymbol(),b=u.endSymbol(),y="<div "+g+'-popup title="'+v+"title"+b+'" '+(f.useContentExp?'content-exp="contentExp()" ':'content="'+v+"content"+b+'" ')+'placement="'+v+"placement"+b+'" popup-class="'+v+"popupClass"+b+'" animation="animation" is-open="isOpen"origin-scope="origScope" ></div>';return{restrict:"EA",compile:function(t,e){var n=s(y);return function(t,e,i,s){function u(){P.isOpen?g():p()}function p(){(!O||t.$eval(i[d+"Enable"]))&&(w(),P.popupDelay?E||(E=o(v,P.popupDelay,!1)):v())}function g(){b(),c.$$phase||c.$digest()}function v(){return E=null,S&&(o.cancel(S),S=null),(f.useContentExp?P.contentExp():P.content)?(y(),P.isOpen=!0,H&&H.assign(P.origScope,P.isOpen),c.$$phase||P.$apply(),D.css({display:"block"}),void F()):angular.noop}function b(){P.isOpen=!1,H&&H.assign(P.origScope,P.isOpen),o.cancel(E),E=null,o.cancel(M),M=null,P.animation?S||(S=o($,500)):$()}function y(){D&&$(),T=P.$new(),D=n(T,function(t){A?a.find("body").append(t):e.after(t)}),f.useContentExp&&(T.$watch("contentExp()",function(t){!t&&P.isOpen&&b()}),T.$watch(function(){N||(N=!0,T.$$postDigest(function(){N=!1,P.isOpen&&F()}))}))}function $(){S=null,D&&(D.remove(),D=null),T&&(T.$destroy(),T=null)}function w(){x(),_(),C()}function x(){P.popupClass=i[d+"Class"]}function _(){var t=i[d+"Placement"];P.placement=angular.isDefined(t)?t:f.placement}function C(){var t=i[d+"PopupDelay"],e=parseInt(t,10);P.popupDelay=isNaN(e)?f.popupDelay:e}function k(){var t=i[d+"Trigger"];j(),I=m(t),"none"!==I.show&&I.show.forEach(function(t,n){t===I.hide[n]?e[0].addEventListener(t,u):t&&(e[0].addEventListener(t,p),e[0].addEventListener(I.hide[n],g))})}var D,T,S,E,M,A=angular.isDefined(f.appendToBody)?f.appendToBody:!1,I=m(void 0),O=angular.isDefined(i[d+"Enable"]),P=t.$new(!0),N=!1,H=angular.isDefined(i[d+"IsOpen"])?h(i[d+"IsOpen"]):!1,F=function(){D&&(M||(M=o(function(){D.css({top:0,left:0,width:"auto",height:"auto"});var t=l.position(D),n=l.positionElements(e,D,P.placement,A);n.top+="px",n.left+="px",n.width=t.width+"px",n.height=t.height+"px",D.css(n),M=null},0,!1)))};P.origScope=t,P.isOpen=!1,P.contentExp=function(){return t.$eval(i[r])},f.useContentExp||i.$observe(r,function(t){P.content=t,!t&&P.isOpen?b():F()}),i.$observe("disabled",function(t){E&&t&&(o.cancel(E),E=null),t&&P.isOpen&&b()}),i.$observe(d+"Title",function(t){P.title=t,F()}),i.$observe(d+"Placement",function(){P.isOpen&&(_(),F())}),H&&t.$watch(H,function(t){t!==P.isOpen&&u()});var j=function(){I.show.forEach(function(t){e.unbind(t,p)}),I.hide.forEach(function(t){e.unbind(t,g)})};k();var R=t.$eval(i[d+"Animation"]);P.animation=angular.isDefined(R)?!!R:f.animation;var z=t.$eval(i[d+"AppendToBody"]);A=angular.isDefined(z)?z:A,A&&t.$on("$locationChangeSuccess",function(){P.isOpen&&b()}),t.$on("$destroy",function(){o.cancel(S),o.cancel(E),o.cancel(M),j(),$(),P=null})}}}}}]}).directive("tooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(t,e,n,i){return{link:function(r,s,o){var a,l,u,c=r.$eval(o.tooltipTemplateTranscludeScope),h=0,d=function(){l&&(l.remove(),l=null),a&&(a.$destroy(),a=null),u&&(t.leave(u).then(function(){l=null}),l=u,u=null)};r.$watch(e.parseAsResourceUrl(o.tooltipTemplateTransclude),function(e){var o=++h;e?(i(e,!0).then(function(i){if(o===h){var r=c.$new(),l=i,p=n(l)(r,function(e){d(),t.enter(e,s)});a=r,u=p,a.$emit("$includeContentLoaded",e)}},function(){o===h&&(d(),r.$emit("$includeContentError",e))}),r.$emit("$includeContentRequested",e)):d()}),r.$on("$destroy",d)}}}]).directive("tooltipClasses",function(){return{restrict:"A",link:function(t,e,n){t.placement&&e.addClass(t.placement),t.popupClass&&e.addClass(t.popupClass),t.animation()&&e.addClass(n.tooltipAnimationClass)}}}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(t){return t("tooltip","tooltip","mouseenter")}]).directive("tooltipTemplatePopup",function(){return{restrict:"EA",replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/tooltip/tooltip-template-popup.html"}}).directive("tooltipTemplate",["$tooltip",function(t){return t("tooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("tooltipHtmlPopup",function(){return{restrict:"EA",replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-popup.html"}}).directive("tooltipHtml",["$tooltip",function(t){return t("tooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).value("tooltipHtmlUnsafeSuppressDeprecated",!1).directive("tooltipHtmlUnsafe",["$tooltip","tooltipHtmlUnsafeSuppressDeprecated","$log",function(t,e,n){return e||n.warn("tooltip-html-unsafe is now deprecated. Use tooltip-html or tooltip-template instead."),t("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverTemplatePopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"template/popover/popover-template.html"}}).directive("popoverTemplate",["$tooltip",function(t){return t("popoverTemplate","popover","click",{useContentExp:!0})}]).directive("popoverHtmlPopup",function(){return{restrict:"EA",replace:!0,scope:{contentExp:"&",title:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover-html.html"}}).directive("popoverHtml",["$tooltip",function(t){return t("popoverHtml","popover","click",{useContentExp:!0})}]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",
+content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(t){return t("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).value("$progressSuppressWarning",!1).controller("ProgressController",["$scope","$attrs","progressConfig",function(t,e,n){var i=this,r=angular.isDefined(e.animate)?t.$parent.$eval(e.animate):n.animate;this.bars=[],t.max=angular.isDefined(t.max)?t.max:n.max,this.addBar=function(e,n){r||n.css({transition:"none"}),this.bars.push(e),e.max=t.max,e.$watch("value",function(t){e.recalculatePercentage()}),e.recalculatePercentage=function(){e.percent=+(100*e.value/e.max).toFixed(2);var t=i.bars.reduce(function(t,e){return t+e.percent},0);t>100&&(e.percent-=t-100)},e.$on("$destroy",function(){n=null,i.removeBar(e)})},this.removeBar=function(t){this.bars.splice(this.bars.indexOf(t),1)},t.$watch("max",function(e){i.bars.forEach(function(e){e.max=t.max,e.recalculatePercentage()})})}]).directive("uibProgress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"uibProgress",scope:{max:"=?"},templateUrl:"template/progressbar/progress.html"}}).directive("progress",["$log","$progressSuppressWarning",function(t,e){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{max:"=?"},templateUrl:"template/progressbar/progress.html",link:function(){e&&t.warn("progress is now deprecated. Use uib-progress instead")}}}]).directive("uibBar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(t,e,n,i){i.addBar(t,e)}}}).directive("bar",["$log","$progressSuppressWarning",function(t,e){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(n,i,r,s){e&&t.warn("bar is now deprecated. Use uib-bar instead"),s.addBar(n,i)}}}]).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(t,e,n,i){i.addBar(t,angular.element(e.children()[0]))}}}),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null,titles:["one","two","three","four","five"]}).controller("RatingController",["$scope","$attrs","ratingConfig",function(t,e,n){var i={$setViewValue:angular.noop};this.init=function(r){i=r,i.$render=this.render,i.$formatters.push(function(t){return angular.isNumber(t)&&t<<0!==t&&(t=Math.round(t)),t}),this.stateOn=angular.isDefined(e.stateOn)?t.$parent.$eval(e.stateOn):n.stateOn,this.stateOff=angular.isDefined(e.stateOff)?t.$parent.$eval(e.stateOff):n.stateOff;var s=angular.isDefined(e.titles)?t.$parent.$eval(e.titles):n.titles;this.titles=angular.isArray(s)&&s.length>0?s:n.titles;var o=angular.isDefined(e.ratingStates)?t.$parent.$eval(e.ratingStates):new Array(angular.isDefined(e.max)?t.$parent.$eval(e.max):n.max);t.range=this.buildTemplateObjects(o)},this.buildTemplateObjects=function(t){for(var e=0,n=t.length;n>e;e++)t[e]=angular.extend({index:e},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(e)},t[e]);return t},this.getTitle=function(t){return t>=this.titles.length?t+1:this.titles[t]},t.rate=function(e){!t.readonly&&e>=0&&e<=t.range.length&&(i.$setViewValue(i.$viewValue===e?0:e),i.$render())},t.enter=function(e){t.readonly||(t.value=e),t.onHover({value:e})},t.reset=function(){t.value=i.$viewValue,t.onLeave()},t.onKeydown=function(e){/(37|38|39|40)/.test(e.which)&&(e.preventDefault(),e.stopPropagation(),t.rate(t.value+(38===e.which||39===e.which?1:-1)))},this.render=function(){t.value=i.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(t,e,n,i){var r=i[0],s=i[1];r.init(s)}}}),angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(t){var e=this,n=e.tabs=t.tabs=[];e.select=function(t){angular.forEach(n,function(e){e.active&&e!==t&&(e.active=!1,e.onDeselect(),t.selectCalled=!1)}),t.active=!0,t.selectCalled||(t.onSelect(),t.selectCalled=!0)},e.addTab=function(t){n.push(t),1===n.length&&t.active!==!1?t.active=!0:t.active?e.select(t):t.active=!1},e.removeTab=function(t){var r=n.indexOf(t);if(t.active&&n.length>1&&!i){var s=r==n.length-1?r-1:r+1;e.select(n[s])}n.splice(r,1)};var i;t.$on("$destroy",function(){i=!0})}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(t,e,n){t.vertical=angular.isDefined(n.vertical)?t.$parent.$eval(n.vertical):!1,t.justified=angular.isDefined(n.justified)?t.$parent.$eval(n.justified):!1}}}).directive("tab",["$parse","$log",function(t,e){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},link:function(n,i,r,s,o){n.$watch("active",function(t){t&&s.select(n)}),n.disabled=!1,r.disable&&n.$parent.$watch(t(r.disable),function(t){n.disabled=!!t}),r.disabled&&(e.warn('Use of "disabled" attribute has been deprecated, please use "disable"'),n.$parent.$watch(t(r.disabled),function(t){n.disabled=!!t})),n.select=function(){n.disabled||(n.active=!0)},s.addTab(n),n.$on("$destroy",function(){s.removeTab(n)}),n.$transcludeFn=o}}}]).directive("tabHeadingTransclude",function(){return{restrict:"A",require:"^tab",link:function(t,e,n,i){t.$watch("headingElement",function(t){t&&(e.html(""),e.append(t))})}}}).directive("tabContentTransclude",function(){function t(t){return t.tagName&&(t.hasAttribute("tab-heading")||t.hasAttribute("data-tab-heading")||t.hasAttribute("x-tab-heading")||"tab-heading"===t.tagName.toLowerCase()||"data-tab-heading"===t.tagName.toLowerCase()||"x-tab-heading"===t.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(e,n,i){var r=e.$eval(i.tabContentTransclude);r.$transcludeFn(r.$parent,function(e){angular.forEach(e,function(e){t(e)?r.headingElement=e:n.append(e)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(t,e,n,i,r,s){function o(){var e=parseInt(t.hours,10),n=t.showMeridian?e>0&&13>e:e>=0&&24>e;return n?(t.showMeridian&&(12===e&&(e=0),t.meridian===g[1]&&(e+=12)),e):void 0}function a(){var e=parseInt(t.minutes,10);return e>=0&&60>e?e:void 0}function l(t){return angular.isDefined(t)&&t.toString().length<2?"0"+t:t.toString()}function u(t){c(),m.$setViewValue(new Date(f)),h(t)}function c(){m.$setValidity("time",!0),t.invalidHours=!1,t.invalidMinutes=!1}function h(e){var n=f.getHours(),i=f.getMinutes();t.showMeridian&&(n=0===n||12===n?12:n%12),t.hours="h"===e?n:l(n),"m"!==e&&(t.minutes=l(i)),t.meridian=f.getHours()<12?g[0]:g[1]}function d(t,e){var n=new Date(t.getTime()+6e4*e),i=new Date(t);return i.setHours(n.getHours(),n.getMinutes()),i}function p(t){f=d(f,t),u()}var f=new Date,m={$setViewValue:angular.noop},g=angular.isDefined(e.meridians)?t.$parent.$eval(e.meridians):s.meridians||r.DATETIME_FORMATS.AMPMS;this.init=function(n,i){m=n,m.$render=this.render,m.$formatters.unshift(function(t){return t?new Date(t):null});var r=i.eq(0),o=i.eq(1),a=angular.isDefined(e.mousewheel)?t.$parent.$eval(e.mousewheel):s.mousewheel;a&&this.setupMousewheelEvents(r,o);var l=angular.isDefined(e.arrowkeys)?t.$parent.$eval(e.arrowkeys):s.arrowkeys;l&&this.setupArrowkeyEvents(r,o),t.readonlyInput=angular.isDefined(e.readonlyInput)?t.$parent.$eval(e.readonlyInput):s.readonlyInput,this.setupInputEvents(r,o)};var v=s.hourStep;e.hourStep&&t.$parent.$watch(n(e.hourStep),function(t){v=parseInt(t,10)});var b=s.minuteStep;e.minuteStep&&t.$parent.$watch(n(e.minuteStep),function(t){b=parseInt(t,10)});var y;t.$parent.$watch(n(e.min),function(t){var e=new Date(t);y=isNaN(e)?void 0:e});var $;t.$parent.$watch(n(e.max),function(t){var e=new Date(t);$=isNaN(e)?void 0:e}),t.noIncrementHours=function(){var t=d(f,60*v);return t>$||f>t&&y>t},t.noDecrementHours=function(){var t=d(f,60*-v);return y>t||t>f&&t>$},t.noIncrementMinutes=function(){var t=d(f,b);return t>$||f>t&&y>t},t.noDecrementMinutes=function(){var t=d(f,-b);return y>t||t>f&&t>$},t.noToggleMeridian=function(){return f.getHours()<13?d(f,720)>$:d(f,-720)<y},t.showMeridian=s.showMeridian,e.showMeridian&&t.$parent.$watch(n(e.showMeridian),function(e){if(t.showMeridian=!!e,m.$error.time){var n=o(),i=a();angular.isDefined(n)&&angular.isDefined(i)&&(f.setHours(n),u())}else h()}),this.setupMousewheelEvents=function(e,n){var i=function(t){t.originalEvent&&(t=t.originalEvent);var e=t.wheelDelta?t.wheelDelta:-t.deltaY;return t.detail||e>0};e.bind("mousewheel wheel",function(e){t.$apply(i(e)?t.incrementHours():t.decrementHours()),e.preventDefault()}),n.bind("mousewheel wheel",function(e){t.$apply(i(e)?t.incrementMinutes():t.decrementMinutes()),e.preventDefault()})},this.setupArrowkeyEvents=function(e,n){e.bind("keydown",function(e){38===e.which?(e.preventDefault(),t.incrementHours(),t.$apply()):40===e.which&&(e.preventDefault(),t.decrementHours(),t.$apply())}),n.bind("keydown",function(e){38===e.which?(e.preventDefault(),t.incrementMinutes(),t.$apply()):40===e.which&&(e.preventDefault(),t.decrementMinutes(),t.$apply())})},this.setupInputEvents=function(e,n){if(t.readonlyInput)return t.updateHours=angular.noop,void(t.updateMinutes=angular.noop);var i=function(e,n){m.$setViewValue(null),m.$setValidity("time",!1),angular.isDefined(e)&&(t.invalidHours=e),angular.isDefined(n)&&(t.invalidMinutes=n)};t.updateHours=function(){var t=o(),e=a();angular.isDefined(t)&&angular.isDefined(e)?(f.setHours(t),y>f||f>$?i(!0):u("h")):i(!0)},e.bind("blur",function(e){!t.invalidHours&&t.hours<10&&t.$apply(function(){t.hours=l(t.hours)})}),t.updateMinutes=function(){var t=a(),e=o();angular.isDefined(t)&&angular.isDefined(e)?(f.setMinutes(t),y>f||f>$?i(void 0,!0):u("m")):i(void 0,!0)},n.bind("blur",function(e){!t.invalidMinutes&&t.minutes<10&&t.$apply(function(){t.minutes=l(t.minutes)})})},this.render=function(){var e=m.$viewValue;isNaN(e)?(m.$setValidity("time",!1),i.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(e&&(f=e),y>f||f>$?(m.$setValidity("time",!1),t.invalidHours=!0,t.invalidMinutes=!0):c(),h())},t.showSpinners=angular.isDefined(e.showSpinners)?t.$parent.$eval(e.showSpinners):s.showSpinners,t.incrementHours=function(){t.noIncrementHours()||p(60*v)},t.decrementHours=function(){t.noDecrementHours()||p(60*-v)},t.incrementMinutes=function(){t.noIncrementMinutes()||p(b)},t.decrementMinutes=function(){t.noDecrementMinutes()||p(-b)},t.toggleMeridian=function(){t.noToggleMeridian()||p(720*(f.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(t,e){return e.templateUrl||"template/timepicker/timepicker.html"},link:function(t,e,n,i){var r=i[0],s=i[1];s&&r.init(s,e.find("input"))}}}),angular.module("ui.bootstrap.transition",[]).value("$transitionSuppressDeprecated",!1).factory("$transition",["$q","$timeout","$rootScope","$log","$transitionSuppressDeprecated",function(t,e,n,i,r){function s(t){for(var e in t)if(void 0!==a.style[e])return t[e]}r||i.warn("$transition is now deprecated. Use $animate from ngAnimate instead.");var o=function(i,r,s){s=s||{};var a=t.defer(),l=o[s.animation?"animationEndEventName":"transitionEndEventName"],u=function(t){n.$apply(function(){i.unbind(l,u),a.resolve(i)})};return l&&i.bind(l,u),e(function(){angular.isString(r)?i.addClass(r):angular.isFunction(r)?r(i):angular.isObject(r)&&i.css(r),l||a.resolve(i)}),a.promise.cancel=function(){l&&i.unbind(l,u),a.reject("Transition cancelled")},a.promise},a=document.createElement("trans"),l={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},u={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return o.transitionEndEventName=s(l),o.animationEndEventName=s(u),o}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position"]).factory("typeaheadParser",["$parse",function(t){var e=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(n){var i=n.match(e);if(!i)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+n+'".');return{itemName:i[3],source:t(i[4]),viewMapper:t(i[2]||i[1]),modelMapper:t(i[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$window","$rootScope","$position","typeaheadParser",function(t,e,n,i,r,s,o,a,l){var u=[9,13,27,38,40],c=200;return{require:["ngModel","^?ngModelOptions"],link:function(h,d,p,f){function m(){H.moveInProgress||(H.moveInProgress=!0,H.$digest()),V&&i.cancel(V),V=i(function(){H.matches.length&&g(),H.moveInProgress=!1,H.$digest()},c)}function g(){H.position=E?a.offset(d):a.position(d),H.position.top+=d.prop("offsetHeight")}var v=f[0],b=f[1],y=h.$eval(p.typeaheadMinLength);y||0===y||(y=1);var $,w,x=h.$eval(p.typeaheadWaitMs)||0,_=h.$eval(p.typeaheadEditable)!==!1,C=e(p.typeaheadLoading).assign||angular.noop,k=e(p.typeaheadOnSelect),D=angular.isDefined(p.typeaheadSelectOnBlur)?h.$eval(p.typeaheadSelectOnBlur):!1,T=e(p.typeaheadNoResults).assign||angular.noop,S=p.typeaheadInputFormatter?e(p.typeaheadInputFormatter):void 0,E=p.typeaheadAppendToBody?h.$eval(p.typeaheadAppendToBody):!1,M=h.$eval(p.typeaheadFocusFirst)!==!1,A=p.typeaheadSelectOnExact?h.$eval(p.typeaheadSelectOnExact):!1,I=e(p.ngModel),O=e(p.ngModel+"($$$p)"),P=function(t,e){return angular.isFunction(I(h))&&b&&b.$options&&b.$options.getterSetter?O(t,{$$$p:e}):I.assign(t,e)},N=l.parse(p.typeahead),H=h.$new(),F=h.$on("$destroy",function(){H.$destroy()});H.$on("$destroy",F);var j="typeahead-"+H.$id+"-"+Math.floor(1e4*Math.random());d.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":j});var R=angular.element("<div typeahead-popup></div>");R.attr({id:j,matches:"matches",active:"activeIdx",select:"select(activeIdx)","move-in-progress":"moveInProgress",query:"query",position:"position"}),angular.isDefined(p.typeaheadTemplateUrl)&&R.attr("template-url",p.typeaheadTemplateUrl),angular.isDefined(p.typeaheadPopupTemplateUrl)&&R.attr("popup-template-url",p.typeaheadPopupTemplateUrl);var z=function(){H.matches=[],H.activeIdx=-1,d.attr("aria-expanded",!1)},W=function(t){return j+"-option-"+t};H.$watch("activeIdx",function(t){0>t?d.removeAttr("aria-activedescendant"):d.attr("aria-activedescendant",W(t))});var L=function(t,e){return H.matches.length>e&&t?t.toUpperCase()===H.matches[e].label.toUpperCase():!1},q=function(t){var e={$viewValue:t};C(h,!0),T(h,!1),n.when(N.source(h,e)).then(function(n){var i=t===v.$viewValue;if(i&&$)if(n&&n.length>0){H.activeIdx=M?0:-1,T(h,!1),H.matches.length=0;for(var r=0;r<n.length;r++)e[N.itemName]=n[r],H.matches.push({id:W(r),label:N.viewMapper(H,e),model:n[r]});H.query=t,g(),d.attr("aria-expanded",!0),A&&1===H.matches.length&&L(t,0)&&H.select(0)}else z(),T(h,!0);i&&C(h,!1)},function(){z(),C(h,!1),T(h,!0)})};E&&(angular.element(s).bind("resize",m),r.find("body").bind("scroll",m));var V;H.moveInProgress=!1,z(),H.query=void 0;var U,B=function(t){U=i(function(){q(t)},x)},Y=function(){U&&i.cancel(U)};v.$parsers.unshift(function(t){return $=!0,0===y||t&&t.length>=y?x>0?(Y(),B(t)):q(t):(C(h,!1),Y(),z()),_?t:t?void v.$setValidity("editable",!1):(v.$setValidity("editable",!0),null)}),v.$formatters.push(function(t){var e,n,i={};return _||v.$setValidity("editable",!0),S?(i.$model=t,S(h,i)):(i[N.itemName]=t,e=N.viewMapper(h,i),i[N.itemName]=void 0,n=N.viewMapper(h,i),e!==n?e:t)}),H.select=function(t){var e,n,r={};w=!0,r[N.itemName]=n=H.matches[t].model,e=N.modelMapper(h,r),P(h,e),v.$setValidity("editable",!0),v.$setValidity("parse",!0),k(h,{$item:n,$model:e,$label:N.viewMapper(h,r)}),z(),H.$eval(p.typeaheadFocusOnSelect)!==!1&&i(function(){d[0].focus()},0,!1)},d.bind("keydown",function(t){if(0!==H.matches.length&&-1!==u.indexOf(t.which)){if(-1===H.activeIdx&&(9===t.which||13===t.which))return z(),void H.$digest();t.preventDefault(),40===t.which?(H.activeIdx=(H.activeIdx+1)%H.matches.length,H.$digest()):38===t.which?(H.activeIdx=(H.activeIdx>0?H.activeIdx:H.matches.length)-1,H.$digest()):13===t.which||9===t.which?H.$apply(function(){H.select(H.activeIdx)}):27===t.which&&(t.stopPropagation(),z(),H.$digest())}}),d.bind("blur",function(){D&&H.matches.length&&-1!==H.activeIdx&&!w&&(w=!0,H.$apply(function(){H.select(H.activeIdx)})),$=!1,w=!1});var K=function(t){d[0]!==t.target&&3!==t.which&&0!==H.matches.length&&(z(),o.$$phase||H.$digest())};r.bind("click",K),h.$on("$destroy",function(){r.unbind("click",K),E&&G.remove(),R.remove()});var G=t(R)(H);E?r.find("body").append(G):d.after(G)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&"},replace:!0,templateUrl:function(t,e){return e.popupTemplateUrl||"template/typeahead/typeahead-popup.html"},link:function(t,e,n){t.templateUrl=n.templateUrl,t.isOpen=function(){return t.matches.length>0},t.isActive=function(e){return t.active==e},t.selectActive=function(e){t.active=e},t.selectMatch=function(e){t.select({activeIdx:e})}}}}).directive("typeaheadMatch",["$templateRequest","$compile","$parse",function(t,e,n){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(i,r,s){var o=n(s.templateUrl)(i.$parent)||"template/typeahead/typeahead-match.html";t(o).then(function(t){e(t.trim())(i,function(t){r.replaceWith(t)})})}}}]).filter("typeaheadHighlight",["$sce","$injector","$log",function(t,e,n){function i(t){return t.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function r(t){return/<.*>/g.test(t)}var s;return s=e.has("$sanitize"),function(e,o){return!s&&r(e)&&n.warn("Unsafe use of typeahead please use ngSanitize"),e=o?(""+e).replace(new RegExp(i(o),"gi"),"<strong>$&</strong>"):e,s||(e=t.trustAsHtml(e)),e}}]),angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(t){t.put("template/accordion/accordion-group.html",'<div class="panel {{panelClass || \'panel-default\'}}">\n  <div class="panel-heading" ng-keypress="toggleOpen($event)">\n    <h4 class="panel-title">\n      <a href tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n    </h4>\n  </div>\n  <div class="panel-collapse collapse" collapse="!isOpen">\n	  <div class="panel-body" ng-transclude></div>\n  </div>\n</div>\n')}]),angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(t){t.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude></div>')}]),angular.module("template/alert/alert.html",[]).run(["$templateCache",function(t){t.put("template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissible\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close($event)">\n        <span aria-hidden="true">&times;</span>\n        <span class="sr-only">Close</span>\n    </button>\n    <div ng-transclude></div>\n</div>\n')}]),angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(t){t.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n    <ol class="carousel-indicators" ng-show="slides.length > 1">\n        <li ng-repeat="slide in slides | orderBy:indexOfSlide track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n    </ol>\n    <div class="carousel-inner" ng-transclude></div>\n    <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"></span></a>\n    <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"></span></a>\n</div>\n')}]),angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(t){t.put("template/carousel/slide.html",'<div ng-class="{\n    \'active\': active\n  }" class="item text-center" ng-transclude></div>\n')}]),angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <daypicker ng-switch-when="day" tabindex="0"></daypicker>\n  <monthpicker ng-switch-when="month" tabindex="0"></monthpicker>\n  <yearpicker ng-switch-when="year" tabindex="0"></yearpicker>\n</div>')}]),angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{::5 + showWeeks}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n    <tr>\n      <th ng-if="showWeeks" class="text-center"></th>\n      <th ng-repeat="label in ::labels track by $index" class="text-center"><small aria-label="{{::label.full}}">{{::label.abbr}}</small></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}" ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}" ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-if="isOpen" style="display: block" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n	<li ng-transclude></li>\n	<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n		<span class="btn-group pull-left">\n			<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n			<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n		</span>\n		<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}</button>\n	</li>\n</ul>\n')}]),angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(t){t.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="3"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}">\n        <button type="button" style="min-width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(t){t.put("template/modal/backdrop.html",'<div class="modal-backdrop"\n     modal-animation-class="fade"\n     modal-in-class="in"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(t){t.put("template/modal/window.html",'<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n    modal-animation-class="fade"\n    modal-in-class="in"\n	ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n    <div class="modal-dialog" ng-class="size ? \'modal-\' + size : \'\'"><div class="modal-content" modal-transclude></div></div>\n</div>\n')}]),angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(t){t.put("template/pagination/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious()||ngDisabled, previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-class="{disabled: noNext()||ngDisabled, next: align}"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n</ul>\n')}]),angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(t){t.put("template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)">{{::getText(\'first\')}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)">{{::getText(\'last\')}}</a></li>\n</ul>\n')}]),angular.module("template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-html-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(t){t.put("template/tooltip/tooltip-template-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner"\n    tooltip-template-transclude="contentExp()"\n    tooltip-template-transclude-scope="originScope()"></div>\n</div>\n')}]),angular.module("template/popover/popover-html.html",[]).run(["$templateCache",function(t){t.put("template/popover/popover-html.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content" ng-bind-html="contentExp()"></div>\n  </div>\n</div>\n')}]),angular.module("template/popover/popover-template.html",[]).run(["$templateCache",function(t){t.put("template/popover/popover-template.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content"\n        tooltip-template-transclude="contentExp()"\n        tooltip-template-transclude-scope="originScope()"></div>\n  </div>\n</div>\n');
+}]),angular.module("template/popover/popover.html",[]).run(["$templateCache",function(t){t.put("template/popover/popover.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content" ng-bind="content"></div>\n  </div>\n</div>\n')}]),angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(t){t.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" style="min-width: 0;" ng-transclude></div>\n')}]),angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(t){t.put("template/progressbar/progress.html",'<div class="progress" ng-transclude></div>')}]),angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(t){t.put("template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" style="min-width: 0;" ng-transclude></div>\n</div>\n')}]),angular.module("template/rating/rating.html",[]).run(["$templateCache",function(t){t.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <span ng-repeat-start="r in range track by $index" class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n    <i ng-repeat-end ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')" ng-attr-title="{{r.title}}" ></i>\n</span>\n')}]),angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(t){t.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n  <a href ng-click="select()" tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(t){t.put("template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         tab-content-transclude="tab">\n    </div>\n  </div>\n</div>\n')}]),angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(t){t.put("template/timepicker/timepicker.html",'<table>\n  <tbody>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td><a ng-click="incrementHours()" ng-class="{disabled: noIncrementHours()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td>&nbsp;</td>\n      <td><a ng-click="incrementMinutes()" ng-class="{disabled: noIncrementMinutes()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n    <tr>\n      <td class="form-group" ng-class="{\'has-error\': invalidHours}">\n        <input style="width:50px;" type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2">\n      </td>\n      <td>:</td>\n      <td class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n        <input style="width:50px;" type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2">\n      </td>\n      <td ng-show="showMeridian"><button type="button" ng-class="{disabled: noToggleMeridian()}" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}</button></td>\n    </tr>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td><a ng-click="decrementHours()" ng-class="{disabled: noDecrementHours()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td>&nbsp;</td>\n      <td><a ng-click="decrementMinutes()" ng-class="{disabled: noDecrementMinutes()}" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(t){t.put("template/typeahead/typeahead-match.html",'<a href tabindex="-1" ng-bind-html="match.label | typeaheadHighlight:query"></a>\n')}]),angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(t){t.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+\'px\', left: position().left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}">\n        <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n    </li>\n</ul>\n')}]),!angular.$$csp()&&angular.element(document).find("head").prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>'),function(t,e,n){"use strict";e.module("ui.sortable",[]).value("uiSortableConfig",{}).directive("uiSortable",["uiSortableConfig","$timeout","$log",function(t,i,r){return{require:"?ngModel",scope:{ngModel:"=",uiSortable:"="},link:function(s,o,a,l){function u(t,e){return e&&"function"==typeof e?function(){t.apply(this,arguments),e.apply(this,arguments)}:t}function c(t){var e=t.data("ui-sortable");return e&&"object"==typeof e&&"ui-sortable"===e.widgetFullName?e:null}function h(t,e){var n=t.sortable("option","helper");return"clone"===n||"function"==typeof n&&e.item.sortable.isCustomHelperUsed()}function d(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))}function p(t,e){for(var n=null,i=0;i<t.length;i++){var r=t[i];if(r.element[0]===e[0]){n=r.scope;break}}return n}function f(t,e){e.item.sortable._destroy()}var m,g={},v={"ui-floating":n},b={receive:null,remove:null,start:null,stop:null,update:null},y={helper:null};return e.extend(g,v,t,s.uiSortable),e.element.fn&&e.element.fn.jquery?(l?(s.$watch("ngModel.length",function(){i(function(){c(o)&&o.sortable("refresh")},0,!1)}),b.start=function(t,i){if("auto"===g["ui-floating"]){var r=i.item.siblings(),s=c(e.element(t.target));s.floating=d(r)}i.item.sortable={model:l.$modelValue[i.item.index()],index:i.item.index(),source:i.item.parent(),sourceModel:l.$modelValue,cancel:function(){i.item.sortable._isCanceled=!0},isCanceled:function(){return i.item.sortable._isCanceled},isCustomHelperUsed:function(){return!!i.item.sortable._isCustomHelperUsed},_isCanceled:!1,_isCustomHelperUsed:i.item.sortable._isCustomHelperUsed,_destroy:function(){e.forEach(i.item.sortable,function(t,e){i.item.sortable[e]=n})}}},b.activate=function(t,n){m=o.contents();var i=o.sortable("option","placeholder");if(i&&i.element&&"function"==typeof i.element){var r=i.element();r=e.element(r);var a=o.find('[class="'+r.attr("class")+'"]:not([ng-repeat], [data-ng-repeat])');m=m.not(a)}var l=n.item.sortable._connectedSortables||[];l.push({element:o,scope:s}),n.item.sortable._connectedSortables=l},b.update=function(t,e){if(!e.item.sortable.received){e.item.sortable.dropindex=e.item.index();var n=e.item.parent();e.item.sortable.droptarget=n;var i=p(e.item.sortable._connectedSortables,n);e.item.sortable.droptargetModel=i.ngModel,o.sortable("cancel")}h(o,e)&&!e.item.sortable.received&&"parent"===o.sortable("option","appendTo")&&(m=m.not(m.last())),m.appendTo(o),e.item.sortable.received&&(m=null),e.item.sortable.received&&!e.item.sortable.isCanceled()&&s.$apply(function(){l.$modelValue.splice(e.item.sortable.dropindex,0,e.item.sortable.moved)})},b.stop=function(t,e){!e.item.sortable.received&&"dropindex"in e.item.sortable&&!e.item.sortable.isCanceled()?s.$apply(function(){l.$modelValue.splice(e.item.sortable.dropindex,0,l.$modelValue.splice(e.item.sortable.index,1)[0])}):"dropindex"in e.item.sortable&&!e.item.sortable.isCanceled()||h(o,e)||m.appendTo(o),m=null},b.receive=function(t,e){e.item.sortable.received=!0},b.remove=function(t,e){"dropindex"in e.item.sortable||(o.sortable("cancel"),e.item.sortable.cancel()),e.item.sortable.isCanceled()||s.$apply(function(){e.item.sortable.moved=l.$modelValue.splice(e.item.sortable.index,1)[0]})},y.helper=function(t){return t&&"function"==typeof t?function(e,n){var i=t.apply(this,arguments);return n.sortable._isCustomHelperUsed=n!==i,i}:t},s.$watch("uiSortable",function(t){var n=c(o);n&&e.forEach(t,function(t,e){return e in v?("ui-floating"!==e||t!==!1&&t!==!0||(n.floating=t),void(g[e]=t)):(b[e]?("stop"===e&&(t=u(t,function(){s.$apply()}),t=u(t,f)),t=u(b[e],t)):y[e]&&(t=y[e](t)),g[e]=t,void o.sortable("option",e,t))})},!0),e.forEach(b,function(t,e){g[e]=u(t,g[e]),"stop"===e&&(g[e]=u(g[e],f))})):r.info("ui.sortable: ngModel not provided!",o),void o.sortable(g)):void r.error("ui.sortable: jQuery should be included before AngularJS!")}}}])}(window,window.angular),function(t,e,n){"use strict";function i(t){return e.lowercase(t.nodeName||t[0]&&t[0].nodeName)}function r(t,n,i){s.directive(t,["$parse","$swipe",function(r,s){var o=75,a=.3,l=30;return function(u,c,h){function d(t){if(!p)return!1;var e=Math.abs(t.y-p.y),i=(t.x-p.x)*n;return f&&o>e&&i>0&&i>l&&a>e/i}var p,f,m=r(h[t]),g=["touch"];e.isDefined(h.ngSwipeDisableMouse)||g.push("mouse"),s.bind(c,{start:function(t,e){p=t,f=!0},cancel:function(t){f=!1},end:function(t,e){d(t)&&u.$apply(function(){c.triggerHandler(i),m(u,{$event:e})})}},g)}}])}var s=e.module("ngTouch",[]);s.factory("$swipe",[function(){function t(t){var e=t.originalEvent||t,n=e.touches&&e.touches.length?e.touches:[e],i=e.changedTouches&&e.changedTouches[0]||n[0];return{x:i.clientX,y:i.clientY}}function n(t,n){var i=[];return e.forEach(t,function(t){var e=r[t][n];e&&i.push(e)}),i.join(" ")}var i=10,r={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(e,r,s){var o,a,l,u,c=!1;s=s||["mouse","touch"],e.on(n(s,"start"),function(e){l=t(e),c=!0,o=0,a=0,u=l,r.start&&r.start(l,e)});var h=n(s,"cancel");h&&e.on(h,function(t){c=!1,r.cancel&&r.cancel(t)}),e.on(n(s,"move"),function(e){if(c&&l){var n=t(e);if(o+=Math.abs(n.x-u.x),a+=Math.abs(n.y-u.y),u=n,!(i>o&&i>a))return a>o?(c=!1,void(r.cancel&&r.cancel(e))):(e.preventDefault(),void(r.move&&r.move(n,e)))}}),e.on(n(s,"end"),function(e){c&&(c=!1,r.end&&r.end(t(e),e))})}}}]),s.config(["$provide",function(t){t.decorator("ngClickDirective",["$delegate",function(t){return t.shift(),t}])}]),s.directive("ngClick",["$parse","$timeout","$rootElement",function(t,n,r){function s(t,e,n,i){return Math.abs(t-n)<g&&Math.abs(e-i)<g}function o(t,e,n){for(var i=0;i<t.length;i+=2)if(s(t[i],t[i+1],e,n))return t.splice(i,i+2),!0;return!1}function a(t){if(!(Date.now()-c>m)){var e=t.touches&&t.touches.length?t.touches:[t],n=e[0].clientX,r=e[0].clientY;1>n&&1>r||d&&d[0]===n&&d[1]===r||(d&&(d=null),"label"===i(t.target)&&(d=[n,r]),o(h,n,r)||(t.stopPropagation(),t.preventDefault(),t.target&&t.target.blur&&t.target.blur()))}}function l(t){var e=t.touches&&t.touches.length?t.touches:[t],i=e[0].clientX,r=e[0].clientY;h.push(i,r),n(function(){for(var t=0;t<h.length;t+=2)if(h[t]==i&&h[t+1]==r)return void h.splice(t,t+2)},m,!1)}function u(t,e){h||(r[0].addEventListener("click",a,!0),r[0].addEventListener("touchstart",l,!0),h=[]),c=Date.now(),o(h,t,e)}var c,h,d,p=750,f=12,m=2500,g=25,v="ng-click-active";return function(n,i,r){function s(){d=!1,i.removeClass(v)}var o,a,l,c,h=t(r.ngClick),d=!1;i.on("touchstart",function(t){d=!0,o=t.target?t.target:t.srcElement,3==o.nodeType&&(o=o.parentNode),i.addClass(v),a=Date.now();var e=t.originalEvent||t,n=e.touches&&e.touches.length?e.touches:[e],r=n[0];l=r.clientX,c=r.clientY}),i.on("touchcancel",function(t){s()}),i.on("touchend",function(t){var n=Date.now()-a,h=t.originalEvent||t,m=h.changedTouches&&h.changedTouches.length?h.changedTouches:h.touches&&h.touches.length?h.touches:[h],g=m[0],v=g.clientX,b=g.clientY,y=Math.sqrt(Math.pow(v-l,2)+Math.pow(b-c,2));d&&p>n&&f>y&&(u(v,b),o&&o.blur(),e.isDefined(r.disabled)&&r.disabled!==!1||i.triggerHandler("click",[t])),s()}),i.onclick=function(t){},i.on("click",function(t,e){n.$apply(function(){h(n,{$event:e||t})})}),i.on("mousedown",function(t){i.addClass(v)}),i.on("mousemove mouseup",function(t){i.removeClass(v)})}}]),r("ngSwipeLeft",-1,"swipeleft"),r("ngSwipeRight",1,"swiperight")}(window,window.angular),function(t,e,n){"use strict";function i(t){function e(t,e){return t?r(t)?t.indexOf(e)>=0:t.hasOwnProperty(e):void 0}return["$animate",function(t){return{restrict:"AE",transclude:"element",terminal:!0,require:"^^ngMessages",link:function(n,i,s,o,a){var l,u=i[0],c=s.ngMessage||s.when,h=s.ngMessageExp||s.whenExp,d=function(t){l=t?r(t)?t:t.split(/[\s,]+/):null,o.reRender()};h?(d(n.$eval(h)),n.$watchCollection(h,d)):d(c);var p,f;o.register(u,f={test:function(t){return e(l,t)},attach:function(){p||a(n,function(e){t.enter(e,null,i),p=e;var n=p.$$attachId=o.getAttachId();p.on("$destroy",function(){p&&p.$$attachId===n&&(o.deregister(u),f.detach())})})},detach:function(){if(p){var e=p;p=null,t.leave(e)}}})}}}]}var r=e.isArray,s=e.forEach,o=e.isString,a=e.element;e.module("ngMessages",[]).directive("ngMessages",["$animate",function(t){function e(t,e){return o(e)&&0===e.length||n(t.$eval(e))}function n(t){return o(t)?t.length:!!t}var i="ng-active",r="ng-inactive";return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(o,a,l){function u(t,e){for(var n=e,i=[];n&&n!==t;){var r=n.$$ngMessageNode;if(r&&r.length)return v[r];n.childNodes.length&&-1==i.indexOf(n)?(i.push(n),n=n.childNodes[n.childNodes.length-1]):n=n.previousSibling||n.parentNode}}function c(t,e,n){var i=v[n];if(d.head){var r=u(t,e);r?(i.next=r.next,r.next=i):(i.next=d.head,d.head=i)}else d.head=i}function h(t,e,n){var i=v[n],r=u(t,e);r?r.next=i.next:d.head=i.next}var d=this,p=0,f=0;this.getAttachId=function(){return f++};var m,g,v=this.messages={};this.render=function(u){u=u||{},m=!1,g=u;for(var c=e(a,l.ngMessagesMultiple)||e(a,l.multiple),h=[],p={},f=d.head,v=!1,b=0;null!=f;){b++;var y=f.message,$=!1;v||s(u,function(t,e){if(!$&&n(t)&&y.test(e)){if(p[e])return;p[e]=!0,$=!0,y.attach()}}),$?v=!c:h.push(y),f=f.next}s(h,function(t){t.detach()}),h.length!==b?t.setClass(o,i,r):t.setClass(o,r,i)},a.$watchCollection(l.ngMessages||l["for"],d.render),this.reRender=function(){m||(m=!0,a.$evalAsync(function(){m&&g&&d.render(g)}))},this.register=function(t,e){var n=p.toString();v[n]={message:e},c(o[0],t,n),t.$$ngMessageNode=n,p++,d.reRender()},this.deregister=function(t){var e=t.$$ngMessageNode;delete t.$$ngMessageNode,h(o[0],t,e),delete v[e],d.reRender()}}]}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(t,e,n){return{restrict:"AE",require:"^^ngMessages",link:function(i,r,s){var o=s.ngMessagesInclude||s.src;t(o).then(function(t){n(t)(i,function(t){r.after(t);var n=a(e[0].createComment(" ngMessagesInclude: "+o+" "));r.after(n),r.remove()})})}}}]).directive("ngMessage",i("AE")).directive("ngMessageExp",i("A"))}(window,window.angular);
\ No newline at end of file
--- a/server/ammicosrv/ammico/static/ammico/js/templates.js	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/static/ammico/js/templates.js	Wed Dec 02 19:38:02 2015 +0100
@@ -12,7 +12,7 @@
 $templateCache.put("my_visit/my_visit.html","<accordion ng-show=\"last_visit\" close-others=\"false\">\n  <accordion-group is-open=true>\n    <accordion-heading>\n\n      <a class=\"title\" ng-click=\"$event.stopPropagation();\" href=\"#/my_visit/{{last_visit.id}}\">{{ last_visit.title }}</a>\n      <a class=\"pull-right\" ng-click=\"$event.preventDefault(); $event.stopPropagation(); share($index)\"><span class=\"glyphicon glyphicon-share\"></span></a> \n      <a class=\"pull-right\" ng-click=\"$event.preventDefault(); $event.stopPropagation(); edit()\"><span class=\"glyphicon glyphicon-cog\"></span></a>\n      <a class=\"pull-right\" ng-click=\"$event.stopPropagation();\" href=\"#/slideshow/{{ last_visit.id }}\"><span class=\"glyphicon glyphicon-eye-open\"></span></a>\n      <a class=\"pull-right\" ng-click=\"$event.preventDefault(); $event.stopPropagation(); addBook(last_visit.id)\">Créer un Book</a>\n      \n    </accordion-heading>\n        <p class=\"nbrObjects\">{{last_visit.slides.length}} objets</p>\n\n        <ul ng:model=\"slides\" class=\"list-unstyled list-inline gallery container-fluid\">\n        \n            <li class=\"item\" ng-class=\"{\'no-img\': !slide.details.images[0]}\" ng-repeat=\"slide in last_visit.slides\">\n                <ng-include src=\"\'books/galleryItem.html\'\"></ng-include>\n            </li>\n        </ul>\n    </accordion-group>\n</accordion>\n\n <p ng-hide=\"last_visit\">\n    Vous n\'avez pas encore effectué de visites\n </p>\n    ");
 $templateCache.put("my_visit/share_modal_my_visit.html","<div class=\"modal-header ng-scope\">\n    <h3 class=\"modal-title\">Où souhaitez-vous partager ce book ?</h3>\n</div>\n\n<form ng-submit=\"share()\" novalidate>\n    <div class=\"modal-body ng-scope\">\n\n<a class=\"btn btn-social-icon btn-twitter\">\n    <i class=\"fa fa-twitter\"></i>\n  </a>\n\n    <div class=\"modal-footer ng-scope\">\n        <button type=\"button\" ng-click=\"cancel()\" class=\"btn btn-warning\">Cancel</button>\n        <button type=\"submit\" class=\"btn btn-primary\">Create</button>\n    </div>    \n</form>");
 $templateCache.put("search/modal.html","<div class=\"modal-header ng-scope\">\n    <h3 class=\"modal-title\">A quel Book ajouter cet element ?</h3>\n</div>\n\n<div class=\"modal-body ng-scope\">\n    <ul class=\"row \">\n        Les books de vos visites:\n        <li class=\"\" ng-repeat=\"i in books | filter:{parent_visit:\'!null\'}:filter:{ parent_visit: \'null\', id_article: \'null\' }\">\n            <div>\n                <a ng-click=\"addToBook(i.id)\">{{ i.title }}</a>\n            </div>\n        </li>\n        Autres Books:\n        <li class=\"\" ng-repeat=\"i in books | filter:{ parent_visit: \'null\', id_article: \'null\' }\">\n            <div>\n                <a ng-click=\"addToBook(i.id)\">{{ i.title }}</a>\n            </div>\n        </li>\n    </ul>\n</div>\n\n<div class=\"modal-footer ng-scope\">\n    <button ng-click=\"cancel()\" class=\"btn btn-warning\">Cancel</button>\n</div>");
-$templateCache.put("search/search.html","<h1>\n    Recherche <span ng-if=\"q !=\'\' \"> : {{ q }}</span>\n</h1>\n<h4 class=\"subtitle\" ng-if=\"results.nhits>0\">{{ results.nhits }} résultat(s)</h4>\n\n<div ng-if=\"results.nhits>0\">\n    <div class=\"row search-item\" ng-repeat=\"h in results.hits\"\n        ng-init=\"h.imgbig=false\">\n        <div ng-class=\"{\'col-md-5\': h.imgbig, \'col-md-3\': !h.imgbig}\">\n            <img ng-src=\"{{ h.metas_dict.images }}\" ng-class=\"{\'search-img-max\': !h.imgbig}\" ng-click=\"h.imgbig=!h.imgbig\" />\n        </div>\n        <div ng-class=\"{\'col-md-5\': h.imgbig, \'col-md-7\': !h.imgbig}\">\n            <p>\n                <strong>Nom&nbsp;:</strong> {{ h.metas_dict.name }}\n            </p>\n            <p>\n                <strong>Description&nbsp;:</strong> {{ h.metas_dict.description }}\n            </p>\n            <div ng-show=\"h.imgbig\">\n                <p>\n                    <small><strong>Classification&nbsp;:</strong> {{ h.metas_dict.classification }}</small>\n                </p>\n                <p>\n                    <small><strong>Propriétaire actuel&nbsp;:</strong> {{ h.metas_dict.currentcustody }}</small>\n                </p>\n                <p>\n                    <small><strong>Ancien propriétaire&nbsp;:</strong> {{ h.metas_dict.formercustody }}</small>\n                </p>\n                <p>\n                    <small><strong>Mesures&nbsp;:</strong> {{ h.metas_dict.measures }}</small>\n                </p>\n                <p>\n                    <small><strong>Acteurs&nbsp;:</strong> {{ h.metas_dict.actors }}</small>\n                </p>\n                <p>\n                    <small><strong>Lieux&nbsp;:</strong> {{ h.metas_dict.places }}</small>\n                </p>\n            </div>\n        </div>\n        <div class=\"col-md-1\">\n            <a class=\"btn btn-default\" ng-click=\"toggleModal($index)\"><span class=\"glyphicon glyphicon-plus\"></span></a>\n            <a class=\"btn btn-default\" ng-click=\"h.imgbig=!h.imgbig\"><span class=\"glyphicon glyphicon-eye-open\"></span></a>\n        </div>         \n    </div>\n</div>\n");
+$templateCache.put("search/search.html","<h1>\n    Recherche <span ng-if=\"q !=\'\' \"> : {{ q }}</span>\n</h1>\n<h4 class=\"subtitle\" ng-if=\"results.count>0\">{{ results.count }} résultat(s)</h4>\n\n<div ng-if=\"results.count>0\">\n    <div class=\"row search-item\" ng-repeat=\"h in results.collect\"\n        ng-init=\"h.imgbig=false; h.seemore=false\">\n        <div ng-class=\"{\'col-md-5\': h.imgbig, \'col-md-3\': !h.imgbig, \'img-wrap\': true }\">\n            <img ng-src=\"{{ h.images[0] || \'img/no_img.jpg\' }}\" ng-class=\"{\'search-img-max\': (h.images[0] && !h.imgbig), \'no-img\': !h.images[0]}\" ng-click=\"h.imgbig=(h.images[0] && !h.imgbig)\" />\n        </div>\n        <div ng-class=\"{\'col-md-5\': h.imgbig, \'col-md-7\': !h.imgbig}\">\n            <p>\n                <strong>Nom&nbsp;:</strong> {{ h.name }}\n            </p>\n            <p>\n                <strong>Description&nbsp;:</strong> {{ h.description }}\n            </p>\n            <p ng-if=\"h.url\">\n                <strong>Url&nbsp;:</strong> <a href=\"{{ h.url }}\" target=\"_blank\">{{ h.url }}</a>\n            </p>\n            <div ng-show=\"h.seemore\">\n                <p ng-if=\"h.date\">\n                    <small><strong>Date&nbsp;:</strong> {{ h.date }}</small>\n                </p>\n                <p ng-if=\"h.inventorynumber\">\n                    <small><strong>Numéro d\'inventaire&nbsp;:</strong> {{ h.inventorynumber }}</small>\n                </p>\n                <p ng-if=\"h.classification\">\n                    <small><strong>Classification&nbsp;:</strong> {{ h.classification }}</small>\n                </p>\n                <p ng-if=\"h.country\">\n                    <small><strong>Pays&nbsp;:</strong> {{ h.country }}</small>\n                </p>\n                <p ng-if=\"h.tags.length>0\">\n                    <small><strong>Mots Clefs&nbsp;:</strong> {{ h.tags }}</small>\n                </p>\n            </div>\n        </div>\n        <div class=\"col-md-1\">\n            <a class=\"btn btn-default\" ng-click=\"toggleModal($index)\"><span class=\"glyphicon glyphicon-plus\"></span></a>\n            <a class=\"btn btn-default\" ng-click=\"h.imgbig=(h.images[0] && !h.imgbig); h.seemore=!h.seemore\"><span class=\"glyphicon glyphicon-eye-open\"></span></a>\n        </div>\n    </div>\n</div>\n");
 $templateCache.put("slides/data_editor.html","<div class=\"user-details\">\n    <div ng-hide=\"slide.editMode\">\n        <label>Votre Titre</label>\n        <h4 ng-dblClick=\"doubleClick()\">{{slide.title}}</h4>\n        <label>Vos commentaires</label>\n        <p ng-dblClick=\"doubleClick()\" class=\"description\">{{slide.description}}</p>\n        <label>Tags</label>\n        <p ng-dblClick=\"doubleClick()\"><em>{{slide.tags.join(\', \')}}</em></p>\n        <div class=\"text-right\"><button id=\"btn-search-annotations\" class=\"btn\" ng-click=\"slide.editMode=true\"><span class=\"glyphicon glyphicon-pencil\"></span></button></div>\n    </div>\n\n    <div ng-show=\"slide.editMode\">\n        <input type=\"text\" class=\"form-control\" ng-model=\'slide.title\' placeholder=\"Titre\"></input>\n        <textarea class=\"form-control editor-textarea\" ng-model=\'slide.description\' placeholder=\"Description\"></textarea>\n        <input type=\"text\" class=\"form-control\" ng-model=\'slide.tags\' placeholder=\"Tags\"></input>\n        <div class=\"text-right\"><button id=\"btn-search-annotations\" class=\"btn\" ng-click=\"slidesave()\"><span class=\"glyphicon glyphicon-ok\"></span></button></div>\n    </div>\n</div>");
 $templateCache.put("slides/slides.html","<div class=\"slide row\">\n    <div class=\"slide-title\">\n        <h1>{{slide.title}} - {{slide.details.title}}</h1>\n    </div>\n    <div class=\"slide-nav\">\n        <a id=\"back\" href=\"#/books/{{slide.book}}\">&laquoRetour galerie</a>\n        <a id=\"next\" href=\"#\">Suivant&raquo</a>\n        <a id=\"previous\" href=\"#\">&laquoPrecedents</a>\n    </div>\n    <div class=\"container slide-content\">\n        <div class=\"col-md-8 media\">\n            <figure ng-if=\"slide.details.images && !slide.details.video\" ng-repeat=\"image in slide.details.images\">\n                <img ng-src=\"{{image}}\" style=\"margin: auto;\">\n                  <figcaption>{{slide.details.captions[$index]}}</figcaption>\n            </figure> \n            <audio ng-if=\"slide.details.audio\" ng-src=\"{{ slide.details.audio }}\" style=\"margin: auto; controls loop\"></audio>\n            <video ng-if=\"slide.details.video\" ng-src=\"{{ slide.details.video }}\" style=\"margin: auto;\" controls></video>\n        </div>\n        <div class=\"col-md-4 caption\">\n            <slide-editor index=\"{{$index}}\"></slide-editor>\n            <hr />\n            <div class=\"details\">\n                <p><strong>Titre&nbsp;:&nbsp;</strong><small>{{slide.details.title}}</small></p>\n                <p><strong>Description&nbsp;:&nbsp;</strong><small>{{slide.details.description}}</small></p>\n                <p><strong>Numéro d\'Inventaire&nbsp;:&nbsp;</strong><small>{{slide.details.idInventory}}</small></p>\n            </div>\n        </div>\n    </div>\n</div>\n");
 $templateCache.put("slideshow/slideshow.html","<div class=\"slideshow  container-fluid\">\n    <div class=\"container slideshow-title\">\n            <h1 class=\"book\">\n                {{book.title}}\n                <small>par Jonathan Linvingston</small>\n            </h1>\n            <h1 class=\"pull-right poi\"><small>{{book.count}} objets</small></h1>\n    </div>\n    <div class=\"carousel-holder container\">\n        <carousel>\n            <slide ng-repeat=\"slide in slides\" active=\"slide.active\">\n                <div class=\"container-fluid slideshow-content\">\n                    <div class=\"col-sm-8 media\">\n                        <img ng-if=\"slide.details.images[0]\" ng-src=\"{{ slide.details.images[0] }}\" style=\"margin: auto;\">\n                        <audio ng-if=\"slide.details.audio\" ng-src=\"{{ slide.details.audio }}\" style=\"margin: auto; controls loop\"></audio>\n                        <video ng-if=\"slide.details.video\" ng-src=\"{{ slide.details.video }}\" style=\"margin: auto;\" controls></video>\n                    </div>\n                    <div class=\"col-sm-4 caption\">\n                        <div class=\"user-details\">\n                            <h1>{{slide.title}}</h1>\n                            <p>{{slide.description}}</p>\n                            <p>\n                                <em>{{slide.tags.join(\', \')}}</em>\n                            </p>\n                        </div>\n                        <div class=\"details\">\n                            <p>\n                                <strong>Titre&nbsp;:&nbsp;</strong><small>{{slide.details.title}}</small>\n                            </p>\n                            <p>\n                                <strong>Description&nbsp;:&nbsp;</strong><small>{{slide.details.description}}</small>\n                            </p>\n                        </div>\n                    </div>\n                </div>\n            </slide> \n        </carousel>\n        <div class=\"insight\" >\n            <div class=\"item\" ng-class=\"{\'no-img\': !slide.details.images[0]}\" ng-repeat=\"slide in slides\" data-ng-click=\"slide.active = true\">\n                <img ng-hide=\"{{slide.details.images[0].length < 1}}\" ng-src=\"{{ slide.details.images[0] }}\" img-type />\n                <p ng-show=\"{{slide.details.images[0].length < 1}}\">\n                    {{slide.details.title}}\n                </p>\n            </div>\n        </div>\n    </div>\n</div>\n");
--- a/server/ammicosrv/ammico/templates/indexAmmico.html	Wed Dec 02 19:34:44 2015 +0100
+++ b/server/ammicosrv/ammico/templates/indexAmmico.html	Wed Dec 02 19:38:02 2015 +0100
@@ -1,5 +1,4 @@
 {% load static %}
-
 <!doctype html>
 <html>
 <head>
@@ -67,12 +66,10 @@
       angular.module("ammico")
           .value('context', {
               {% if context.token %} token: "{{ context.token }}", {% endif %}
-  			  idExpo: "{{ context.idExpo }}",
-			  record: angular.fromJson('{"record": "record value"}'),
+  			  idExpo: "{{ context.idExpo }}",			  record: angular.fromJson('{"record": "record value"}'),
               urls: {
                   ammicoUrl: "{{ context.ammicoUrl|safe }}",
-                  searchUrl: "{{ context.searchUrl|safe }}",
-              }
+                  searchUrl: "{{ context.searchUrl|safe }}",              }
           });
 
   </script>