windhamdavid 6 years ago
parent
commit
4edf0c1ac1
23 changed files with 31772 additions and 0 deletions
  1. 30 0
      about.html
  2. 30 0
      contact.html
  3. 2726 0
      css/fontawesome.css
  4. 17529 0
      css/material.css
  5. 354 0
      css/style.css
  6. 30 0
      heat.html
  7. 30 0
      hydro-flood.html
  8. 30 0
      hydro-toob.html
  9. 30 0
      hydro.html
  10. 30 0
      index.html
  11. 1011 0
      js/bootstrap-datetimepicker.min.js
  12. 2640 0
      js/bootstrap-material-design.min.js
  13. 668 0
      js/ekko-lightbox.js
  14. 18 0
      js/init.js
  15. 1 0
      js/instagram.js
  16. 3240 0
      js/jquery.min.js
  17. 217 0
      js/map.js
  18. 214 0
      js/material-kit.min.js
  19. 2020 0
      js/moment.min.js
  20. 834 0
      js/popper.min.js
  21. 30 0
      privacy.html
  22. 30 0
      quote.html
  23. 30 0
      tech.html

File diff suppressed because it is too large
+ 30 - 0
about.html


File diff suppressed because it is too large
+ 30 - 0
contact.html


+ 2726 - 0
css/fontawesome.css

@@ -0,0 +1,2726 @@
+/*!
+ * Font Awesome Free 5.0.8 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ */
+.fa,
+.fas,
+.far,
+.fal,
+.fab {
+  -moz-osx-font-smoothing: grayscale;
+  -webkit-font-smoothing: antialiased;
+  display: inline-block;
+  font-style: normal;
+  font-variant: normal;
+  text-rendering: auto;
+  line-height: 1; }
+
+.fa-lg {
+  font-size: 1.33333em;
+  line-height: 0.75em;
+  vertical-align: -.0667em; }
+
+.fa-xs {
+  font-size: .75em; }
+
+.fa-sm {
+  font-size: .875em; }
+
+.fa-1x {
+  font-size: 1em; }
+
+.fa-2x {
+  font-size: 2em; }
+
+.fa-3x {
+  font-size: 3em; }
+
+.fa-4x {
+  font-size: 4em; }
+
+.fa-5x {
+  font-size: 5em; }
+
+.fa-6x {
+  font-size: 6em; }
+
+.fa-7x {
+  font-size: 7em; }
+
+.fa-8x {
+  font-size: 8em; }
+
+.fa-9x {
+  font-size: 9em; }
+
+.fa-10x {
+  font-size: 10em; }
+
+.fa-fw {
+  text-align: center;
+  width: 1.25em; }
+
+.fa-ul {
+  list-style-type: none;
+  margin-left: 2.5em;
+  padding-left: 0; }
+  .fa-ul > li {
+    position: relative; }
+
+.fa-li {
+  left: -2em;
+  position: absolute;
+  text-align: center;
+  width: 2em;
+  line-height: inherit; }
+
+.fa-border {
+  border: solid 0.08em #eee;
+  border-radius: .1em;
+  padding: .2em .25em .15em; }
+
+.fa-pull-left {
+  float: left; }
+
+.fa-pull-right {
+  float: right; }
+
+.fa.fa-pull-left,
+.fas.fa-pull-left,
+.far.fa-pull-left,
+.fal.fa-pull-left,
+.fab.fa-pull-left {
+  margin-right: .3em; }
+
+.fa.fa-pull-right,
+.fas.fa-pull-right,
+.far.fa-pull-right,
+.fal.fa-pull-right,
+.fab.fa-pull-right {
+  margin-left: .3em; }
+
+.fa-spin {
+  -webkit-animation: fa-spin 2s infinite linear;
+          animation: fa-spin 2s infinite linear; }
+
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+          animation: fa-spin 1s infinite steps(8); }
+
+@-webkit-keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+            transform: rotate(0deg); }
+  100% {
+    -webkit-transform: rotate(360deg);
+            transform: rotate(360deg); } }
+
+@keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+            transform: rotate(0deg); }
+  100% {
+    -webkit-transform: rotate(360deg);
+            transform: rotate(360deg); } }
+
+.fa-rotate-90 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+  -webkit-transform: rotate(90deg);
+          transform: rotate(90deg); }
+
+.fa-rotate-180 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+  -webkit-transform: rotate(180deg);
+          transform: rotate(180deg); }
+
+.fa-rotate-270 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+  -webkit-transform: rotate(270deg);
+          transform: rotate(270deg); }
+
+.fa-flip-horizontal {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+  -webkit-transform: scale(-1, 1);
+          transform: scale(-1, 1); }
+
+.fa-flip-vertical {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+  -webkit-transform: scale(1, -1);
+          transform: scale(1, -1); }
+
+.fa-flip-horizontal.fa-flip-vertical {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+  -webkit-transform: scale(-1, -1);
+          transform: scale(-1, -1); }
+
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  -webkit-filter: none;
+          filter: none; }
+
+.fa-stack {
+  display: inline-block;
+  height: 2em;
+  line-height: 2em;
+  position: relative;
+  vertical-align: middle;
+  width: 2em; }
+
+.fa-stack-1x,
+.fa-stack-2x {
+  left: 0;
+  position: absolute;
+  text-align: center;
+  width: 100%; }
+
+.fa-stack-1x {
+  line-height: inherit; }
+
+.fa-stack-2x {
+  font-size: 2em; }
+
+.fa-inverse {
+  color: #fff; }
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+readers do not read off random characters that represent icons */
+.fa-500px:before {
+  content: "\f26e"; }
+
+.fa-accessible-icon:before {
+  content: "\f368"; }
+
+.fa-accusoft:before {
+  content: "\f369"; }
+
+.fa-address-book:before {
+  content: "\f2b9"; }
+
+.fa-address-card:before {
+  content: "\f2bb"; }
+
+.fa-adjust:before {
+  content: "\f042"; }
+
+.fa-adn:before {
+  content: "\f170"; }
+
+.fa-adversal:before {
+  content: "\f36a"; }
+
+.fa-affiliatetheme:before {
+  content: "\f36b"; }
+
+.fa-algolia:before {
+  content: "\f36c"; }
+
+.fa-align-center:before {
+  content: "\f037"; }
+
+.fa-align-justify:before {
+  content: "\f039"; }
+
+.fa-align-left:before {
+  content: "\f036"; }
+
+.fa-align-right:before {
+  content: "\f038"; }
+
+.fa-amazon:before {
+  content: "\f270"; }
+
+.fa-amazon-pay:before {
+  content: "\f42c"; }
+
+.fa-ambulance:before {
+  content: "\f0f9"; }
+
+.fa-american-sign-language-interpreting:before {
+  content: "\f2a3"; }
+
+.fa-amilia:before {
+  content: "\f36d"; }
+
+.fa-anchor:before {
+  content: "\f13d"; }
+
+.fa-android:before {
+  content: "\f17b"; }
+
+.fa-angellist:before {
+  content: "\f209"; }
+
+.fa-angle-double-down:before {
+  content: "\f103"; }
+
+.fa-angle-double-left:before {
+  content: "\f100"; }
+
+.fa-angle-double-right:before {
+  content: "\f101"; }
+
+.fa-angle-double-up:before {
+  content: "\f102"; }
+
+.fa-angle-down:before {
+  content: "\f107"; }
+
+.fa-angle-left:before {
+  content: "\f104"; }
+
+.fa-angle-right:before {
+  content: "\f105"; }
+
+.fa-angle-up:before {
+  content: "\f106"; }
+
+.fa-angrycreative:before {
+  content: "\f36e"; }
+
+.fa-angular:before {
+  content: "\f420"; }
+
+.fa-app-store:before {
+  content: "\f36f"; }
+
+.fa-app-store-ios:before {
+  content: "\f370"; }
+
+.fa-apper:before {
+  content: "\f371"; }
+
+.fa-apple:before {
+  content: "\f179"; }
+
+.fa-apple-pay:before {
+  content: "\f415"; }
+
+.fa-archive:before {
+  content: "\f187"; }
+
+.fa-arrow-alt-circle-down:before {
+  content: "\f358"; }
+
+.fa-arrow-alt-circle-left:before {
+  content: "\f359"; }
+
+.fa-arrow-alt-circle-right:before {
+  content: "\f35a"; }
+
+.fa-arrow-alt-circle-up:before {
+  content: "\f35b"; }
+
+.fa-arrow-circle-down:before {
+  content: "\f0ab"; }
+
+.fa-arrow-circle-left:before {
+  content: "\f0a8"; }
+
+.fa-arrow-circle-right:before {
+  content: "\f0a9"; }
+
+.fa-arrow-circle-up:before {
+  content: "\f0aa"; }
+
+.fa-arrow-down:before {
+  content: "\f063"; }
+
+.fa-arrow-left:before {
+  content: "\f060"; }
+
+.fa-arrow-right:before {
+  content: "\f061"; }
+
+.fa-arrow-up:before {
+  content: "\f062"; }
+
+.fa-arrows-alt:before {
+  content: "\f0b2"; }
+
+.fa-arrows-alt-h:before {
+  content: "\f337"; }
+
+.fa-arrows-alt-v:before {
+  content: "\f338"; }
+
+.fa-assistive-listening-systems:before {
+  content: "\f2a2"; }
+
+.fa-asterisk:before {
+  content: "\f069"; }
+
+.fa-asymmetrik:before {
+  content: "\f372"; }
+
+.fa-at:before {
+  content: "\f1fa"; }
+
+.fa-audible:before {
+  content: "\f373"; }
+
+.fa-audio-description:before {
+  content: "\f29e"; }
+
+.fa-autoprefixer:before {
+  content: "\f41c"; }
+
+.fa-avianex:before {
+  content: "\f374"; }
+
+.fa-aviato:before {
+  content: "\f421"; }
+
+.fa-aws:before {
+  content: "\f375"; }
+
+.fa-backward:before {
+  content: "\f04a"; }
+
+.fa-balance-scale:before {
+  content: "\f24e"; }
+
+.fa-ban:before {
+  content: "\f05e"; }
+
+.fa-band-aid:before {
+  content: "\f462"; }
+
+.fa-bandcamp:before {
+  content: "\f2d5"; }
+
+.fa-barcode:before {
+  content: "\f02a"; }
+
+.fa-bars:before {
+  content: "\f0c9"; }
+
+.fa-baseball-ball:before {
+  content: "\f433"; }
+
+.fa-basketball-ball:before {
+  content: "\f434"; }
+
+.fa-bath:before {
+  content: "\f2cd"; }
+
+.fa-battery-empty:before {
+  content: "\f244"; }
+
+.fa-battery-full:before {
+  content: "\f240"; }
+
+.fa-battery-half:before {
+  content: "\f242"; }
+
+.fa-battery-quarter:before {
+  content: "\f243"; }
+
+.fa-battery-three-quarters:before {
+  content: "\f241"; }
+
+.fa-bed:before {
+  content: "\f236"; }
+
+.fa-beer:before {
+  content: "\f0fc"; }
+
+.fa-behance:before {
+  content: "\f1b4"; }
+
+.fa-behance-square:before {
+  content: "\f1b5"; }
+
+.fa-bell:before {
+  content: "\f0f3"; }
+
+.fa-bell-slash:before {
+  content: "\f1f6"; }
+
+.fa-bicycle:before {
+  content: "\f206"; }
+
+.fa-bimobject:before {
+  content: "\f378"; }
+
+.fa-binoculars:before {
+  content: "\f1e5"; }
+
+.fa-birthday-cake:before {
+  content: "\f1fd"; }
+
+.fa-bitbucket:before {
+  content: "\f171"; }
+
+.fa-bitcoin:before {
+  content: "\f379"; }
+
+.fa-bity:before {
+  content: "\f37a"; }
+
+.fa-black-tie:before {
+  content: "\f27e"; }
+
+.fa-blackberry:before {
+  content: "\f37b"; }
+
+.fa-blind:before {
+  content: "\f29d"; }
+
+.fa-blogger:before {
+  content: "\f37c"; }
+
+.fa-blogger-b:before {
+  content: "\f37d"; }
+
+.fa-bluetooth:before {
+  content: "\f293"; }
+
+.fa-bluetooth-b:before {
+  content: "\f294"; }
+
+.fa-bold:before {
+  content: "\f032"; }
+
+.fa-bolt:before {
+  content: "\f0e7"; }
+
+.fa-bomb:before {
+  content: "\f1e2"; }
+
+.fa-book:before {
+  content: "\f02d"; }
+
+.fa-bookmark:before {
+  content: "\f02e"; }
+
+.fa-bowling-ball:before {
+  content: "\f436"; }
+
+.fa-box:before {
+  content: "\f466"; }
+
+.fa-boxes:before {
+  content: "\f468"; }
+
+.fa-braille:before {
+  content: "\f2a1"; }
+
+.fa-briefcase:before {
+  content: "\f0b1"; }
+
+.fa-btc:before {
+  content: "\f15a"; }
+
+.fa-bug:before {
+  content: "\f188"; }
+
+.fa-building:before {
+  content: "\f1ad"; }
+
+.fa-bullhorn:before {
+  content: "\f0a1"; }
+
+.fa-bullseye:before {
+  content: "\f140"; }
+
+.fa-buromobelexperte:before {
+  content: "\f37f"; }
+
+.fa-bus:before {
+  content: "\f207"; }
+
+.fa-buysellads:before {
+  content: "\f20d"; }
+
+.fa-calculator:before {
+  content: "\f1ec"; }
+
+.fa-calendar:before {
+  content: "\f133"; }
+
+.fa-calendar-alt:before {
+  content: "\f073"; }
+
+.fa-calendar-check:before {
+  content: "\f274"; }
+
+.fa-calendar-minus:before {
+  content: "\f272"; }
+
+.fa-calendar-plus:before {
+  content: "\f271"; }
+
+.fa-calendar-times:before {
+  content: "\f273"; }
+
+.fa-camera:before {
+  content: "\f030"; }
+
+.fa-camera-retro:before {
+  content: "\f083"; }
+
+.fa-car:before {
+  content: "\f1b9"; }
+
+.fa-caret-down:before {
+  content: "\f0d7"; }
+
+.fa-caret-left:before {
+  content: "\f0d9"; }
+
+.fa-caret-right:before {
+  content: "\f0da"; }
+
+.fa-caret-square-down:before {
+  content: "\f150"; }
+
+.fa-caret-square-left:before {
+  content: "\f191"; }
+
+.fa-caret-square-right:before {
+  content: "\f152"; }
+
+.fa-caret-square-up:before {
+  content: "\f151"; }
+
+.fa-caret-up:before {
+  content: "\f0d8"; }
+
+.fa-cart-arrow-down:before {
+  content: "\f218"; }
+
+.fa-cart-plus:before {
+  content: "\f217"; }
+
+.fa-cc-amazon-pay:before {
+  content: "\f42d"; }
+
+.fa-cc-amex:before {
+  content: "\f1f3"; }
+
+.fa-cc-apple-pay:before {
+  content: "\f416"; }
+
+.fa-cc-diners-club:before {
+  content: "\f24c"; }
+
+.fa-cc-discover:before {
+  content: "\f1f2"; }
+
+.fa-cc-jcb:before {
+  content: "\f24b"; }
+
+.fa-cc-mastercard:before {
+  content: "\f1f1"; }
+
+.fa-cc-paypal:before {
+  content: "\f1f4"; }
+
+.fa-cc-stripe:before {
+  content: "\f1f5"; }
+
+.fa-cc-visa:before {
+  content: "\f1f0"; }
+
+.fa-centercode:before {
+  content: "\f380"; }
+
+.fa-certificate:before {
+  content: "\f0a3"; }
+
+.fa-chart-area:before {
+  content: "\f1fe"; }
+
+.fa-chart-bar:before {
+  content: "\f080"; }
+
+.fa-chart-line:before {
+  content: "\f201"; }
+
+.fa-chart-pie:before {
+  content: "\f200"; }
+
+.fa-check:before {
+  content: "\f00c"; }
+
+.fa-check-circle:before {
+  content: "\f058"; }
+
+.fa-check-square:before {
+  content: "\f14a"; }
+
+.fa-chess:before {
+  content: "\f439"; }
+
+.fa-chess-bishop:before {
+  content: "\f43a"; }
+
+.fa-chess-board:before {
+  content: "\f43c"; }
+
+.fa-chess-king:before {
+  content: "\f43f"; }
+
+.fa-chess-knight:before {
+  content: "\f441"; }
+
+.fa-chess-pawn:before {
+  content: "\f443"; }
+
+.fa-chess-queen:before {
+  content: "\f445"; }
+
+.fa-chess-rook:before {
+  content: "\f447"; }
+
+.fa-chevron-circle-down:before {
+  content: "\f13a"; }
+
+.fa-chevron-circle-left:before {
+  content: "\f137"; }
+
+.fa-chevron-circle-right:before {
+  content: "\f138"; }
+
+.fa-chevron-circle-up:before {
+  content: "\f139"; }
+
+.fa-chevron-down:before {
+  content: "\f078"; }
+
+.fa-chevron-left:before {
+  content: "\f053"; }
+
+.fa-chevron-right:before {
+  content: "\f054"; }
+
+.fa-chevron-up:before {
+  content: "\f077"; }
+
+.fa-child:before {
+  content: "\f1ae"; }
+
+.fa-chrome:before {
+  content: "\f268"; }
+
+.fa-circle:before {
+  content: "\f111"; }
+
+.fa-circle-notch:before {
+  content: "\f1ce"; }
+
+.fa-clipboard:before {
+  content: "\f328"; }
+
+.fa-clipboard-check:before {
+  content: "\f46c"; }
+
+.fa-clipboard-list:before {
+  content: "\f46d"; }
+
+.fa-clock:before {
+  content: "\f017"; }
+
+.fa-clone:before {
+  content: "\f24d"; }
+
+.fa-closed-captioning:before {
+  content: "\f20a"; }
+
+.fa-cloud:before {
+  content: "\f0c2"; }
+
+.fa-cloud-download-alt:before {
+  content: "\f381"; }
+
+.fa-cloud-upload-alt:before {
+  content: "\f382"; }
+
+.fa-cloudscale:before {
+  content: "\f383"; }
+
+.fa-cloudsmith:before {
+  content: "\f384"; }
+
+.fa-cloudversify:before {
+  content: "\f385"; }
+
+.fa-code:before {
+  content: "\f121"; }
+
+.fa-code-branch:before {
+  content: "\f126"; }
+
+.fa-codepen:before {
+  content: "\f1cb"; }
+
+.fa-codiepie:before {
+  content: "\f284"; }
+
+.fa-coffee:before {
+  content: "\f0f4"; }
+
+.fa-cog:before {
+  content: "\f013"; }
+
+.fa-cogs:before {
+  content: "\f085"; }
+
+.fa-columns:before {
+  content: "\f0db"; }
+
+.fa-comment:before {
+  content: "\f075"; }
+
+.fa-comment-alt:before {
+  content: "\f27a"; }
+
+.fa-comments:before {
+  content: "\f086"; }
+
+.fa-compass:before {
+  content: "\f14e"; }
+
+.fa-compress:before {
+  content: "\f066"; }
+
+.fa-connectdevelop:before {
+  content: "\f20e"; }
+
+.fa-contao:before {
+  content: "\f26d"; }
+
+.fa-copy:before {
+  content: "\f0c5"; }
+
+.fa-copyright:before {
+  content: "\f1f9"; }
+
+.fa-cpanel:before {
+  content: "\f388"; }
+
+.fa-creative-commons:before {
+  content: "\f25e"; }
+
+.fa-credit-card:before {
+  content: "\f09d"; }
+
+.fa-crop:before {
+  content: "\f125"; }
+
+.fa-crosshairs:before {
+  content: "\f05b"; }
+
+.fa-css3:before {
+  content: "\f13c"; }
+
+.fa-css3-alt:before {
+  content: "\f38b"; }
+
+.fa-cube:before {
+  content: "\f1b2"; }
+
+.fa-cubes:before {
+  content: "\f1b3"; }
+
+.fa-cut:before {
+  content: "\f0c4"; }
+
+.fa-cuttlefish:before {
+  content: "\f38c"; }
+
+.fa-d-and-d:before {
+  content: "\f38d"; }
+
+.fa-dashcube:before {
+  content: "\f210"; }
+
+.fa-database:before {
+  content: "\f1c0"; }
+
+.fa-deaf:before {
+  content: "\f2a4"; }
+
+.fa-delicious:before {
+  content: "\f1a5"; }
+
+.fa-deploydog:before {
+  content: "\f38e"; }
+
+.fa-deskpro:before {
+  content: "\f38f"; }
+
+.fa-desktop:before {
+  content: "\f108"; }
+
+.fa-deviantart:before {
+  content: "\f1bd"; }
+
+.fa-digg:before {
+  content: "\f1a6"; }
+
+.fa-digital-ocean:before {
+  content: "\f391"; }
+
+.fa-discord:before {
+  content: "\f392"; }
+
+.fa-discourse:before {
+  content: "\f393"; }
+
+.fa-dna:before {
+  content: "\f471"; }
+
+.fa-dochub:before {
+  content: "\f394"; }
+
+.fa-docker:before {
+  content: "\f395"; }
+
+.fa-dollar-sign:before {
+  content: "\f155"; }
+
+.fa-dolly:before {
+  content: "\f472"; }
+
+.fa-dolly-flatbed:before {
+  content: "\f474"; }
+
+.fa-dot-circle:before {
+  content: "\f192"; }
+
+.fa-download:before {
+  content: "\f019"; }
+
+.fa-draft2digital:before {
+  content: "\f396"; }
+
+.fa-dribbble:before {
+  content: "\f17d"; }
+
+.fa-dribbble-square:before {
+  content: "\f397"; }
+
+.fa-dropbox:before {
+  content: "\f16b"; }
+
+.fa-drupal:before {
+  content: "\f1a9"; }
+
+.fa-dyalog:before {
+  content: "\f399"; }
+
+.fa-earlybirds:before {
+  content: "\f39a"; }
+
+.fa-edge:before {
+  content: "\f282"; }
+
+.fa-edit:before {
+  content: "\f044"; }
+
+.fa-eject:before {
+  content: "\f052"; }
+
+.fa-elementor:before {
+  content: "\f430"; }
+
+.fa-ellipsis-h:before {
+  content: "\f141"; }
+
+.fa-ellipsis-v:before {
+  content: "\f142"; }
+
+.fa-ember:before {
+  content: "\f423"; }
+
+.fa-empire:before {
+  content: "\f1d1"; }
+
+.fa-envelope:before {
+  content: "\f0e0"; }
+
+.fa-envelope-open:before {
+  content: "\f2b6"; }
+
+.fa-envelope-square:before {
+  content: "\f199"; }
+
+.fa-envira:before {
+  content: "\f299"; }
+
+.fa-eraser:before {
+  content: "\f12d"; }
+
+.fa-erlang:before {
+  content: "\f39d"; }
+
+.fa-ethereum:before {
+  content: "\f42e"; }
+
+.fa-etsy:before {
+  content: "\f2d7"; }
+
+.fa-euro-sign:before {
+  content: "\f153"; }
+
+.fa-exchange-alt:before {
+  content: "\f362"; }
+
+.fa-exclamation:before {
+  content: "\f12a"; }
+
+.fa-exclamation-circle:before {
+  content: "\f06a"; }
+
+.fa-exclamation-triangle:before {
+  content: "\f071"; }
+
+.fa-expand:before {
+  content: "\f065"; }
+
+.fa-expand-arrows-alt:before {
+  content: "\f31e"; }
+
+.fa-expeditedssl:before {
+  content: "\f23e"; }
+
+.fa-external-link-alt:before {
+  content: "\f35d"; }
+
+.fa-external-link-square-alt:before {
+  content: "\f360"; }
+
+.fa-eye:before {
+  content: "\f06e"; }
+
+.fa-eye-dropper:before {
+  content: "\f1fb"; }
+
+.fa-eye-slash:before {
+  content: "\f070"; }
+
+.fa-facebook:before {
+  content: "\f09a"; }
+
+.fa-facebook-f:before {
+  content: "\f39e"; }
+
+.fa-facebook-messenger:before {
+  content: "\f39f"; }
+
+.fa-facebook-square:before {
+  content: "\f082"; }
+
+.fa-fast-backward:before {
+  content: "\f049"; }
+
+.fa-fast-forward:before {
+  content: "\f050"; }
+
+.fa-fax:before {
+  content: "\f1ac"; }
+
+.fa-female:before {
+  content: "\f182"; }
+
+.fa-fighter-jet:before {
+  content: "\f0fb"; }
+
+.fa-file:before {
+  content: "\f15b"; }
+
+.fa-file-alt:before {
+  content: "\f15c"; }
+
+.fa-file-archive:before {
+  content: "\f1c6"; }
+
+.fa-file-audio:before {
+  content: "\f1c7"; }
+
+.fa-file-code:before {
+  content: "\f1c9"; }
+
+.fa-file-excel:before {
+  content: "\f1c3"; }
+
+.fa-file-image:before {
+  content: "\f1c5"; }
+
+.fa-file-pdf:before {
+  content: "\f1c1"; }
+
+.fa-file-powerpoint:before {
+  content: "\f1c4"; }
+
+.fa-file-video:before {
+  content: "\f1c8"; }
+
+.fa-file-word:before {
+  content: "\f1c2"; }
+
+.fa-film:before {
+  content: "\f008"; }
+
+.fa-filter:before {
+  content: "\f0b0"; }
+
+.fa-fire:before {
+  content: "\f06d"; }
+
+.fa-fire-extinguisher:before {
+  content: "\f134"; }
+
+.fa-firefox:before {
+  content: "\f269"; }
+
+.fa-first-aid:before {
+  content: "\f479"; }
+
+.fa-first-order:before {
+  content: "\f2b0"; }
+
+.fa-firstdraft:before {
+  content: "\f3a1"; }
+
+.fa-flag:before {
+  content: "\f024"; }
+
+.fa-flag-checkered:before {
+  content: "\f11e"; }
+
+.fa-flask:before {
+  content: "\f0c3"; }
+
+.fa-flickr:before {
+  content: "\f16e"; }
+
+.fa-flipboard:before {
+  content: "\f44d"; }
+
+.fa-fly:before {
+  content: "\f417"; }
+
+.fa-folder:before {
+  content: "\f07b"; }
+
+.fa-folder-open:before {
+  content: "\f07c"; }
+
+.fa-font:before {
+  content: "\f031"; }
+
+.fa-font-awesome:before {
+  content: "\f2b4"; }
+
+.fa-font-awesome-alt:before {
+  content: "\f35c"; }
+
+.fa-font-awesome-flag:before {
+  content: "\f425"; }
+
+.fa-fonticons:before {
+  content: "\f280"; }
+
+.fa-fonticons-fi:before {
+  content: "\f3a2"; }
+
+.fa-football-ball:before {
+  content: "\f44e"; }
+
+.fa-fort-awesome:before {
+  content: "\f286"; }
+
+.fa-fort-awesome-alt:before {
+  content: "\f3a3"; }
+
+.fa-forumbee:before {
+  content: "\f211"; }
+
+.fa-forward:before {
+  content: "\f04e"; }
+
+.fa-foursquare:before {
+  content: "\f180"; }
+
+.fa-free-code-camp:before {
+  content: "\f2c5"; }
+
+.fa-freebsd:before {
+  content: "\f3a4"; }
+
+.fa-frown:before {
+  content: "\f119"; }
+
+.fa-futbol:before {
+  content: "\f1e3"; }
+
+.fa-gamepad:before {
+  content: "\f11b"; }
+
+.fa-gavel:before {
+  content: "\f0e3"; }
+
+.fa-gem:before {
+  content: "\f3a5"; }
+
+.fa-genderless:before {
+  content: "\f22d"; }
+
+.fa-get-pocket:before {
+  content: "\f265"; }
+
+.fa-gg:before {
+  content: "\f260"; }
+
+.fa-gg-circle:before {
+  content: "\f261"; }
+
+.fa-gift:before {
+  content: "\f06b"; }
+
+.fa-git:before {
+  content: "\f1d3"; }
+
+.fa-git-square:before {
+  content: "\f1d2"; }
+
+.fa-github:before {
+  content: "\f09b"; }
+
+.fa-github-alt:before {
+  content: "\f113"; }
+
+.fa-github-square:before {
+  content: "\f092"; }
+
+.fa-gitkraken:before {
+  content: "\f3a6"; }
+
+.fa-gitlab:before {
+  content: "\f296"; }
+
+.fa-gitter:before {
+  content: "\f426"; }
+
+.fa-glass-martini:before {
+  content: "\f000"; }
+
+.fa-glide:before {
+  content: "\f2a5"; }
+
+.fa-glide-g:before {
+  content: "\f2a6"; }
+
+.fa-globe:before {
+  content: "\f0ac"; }
+
+.fa-gofore:before {
+  content: "\f3a7"; }
+
+.fa-golf-ball:before {
+  content: "\f450"; }
+
+.fa-goodreads:before {
+  content: "\f3a8"; }
+
+.fa-goodreads-g:before {
+  content: "\f3a9"; }
+
+.fa-google:before {
+  content: "\f1a0"; }
+
+.fa-google-drive:before {
+  content: "\f3aa"; }
+
+.fa-google-play:before {
+  content: "\f3ab"; }
+
+.fa-google-plus:before {
+  content: "\f2b3"; }
+
+.fa-google-plus-g:before {
+  content: "\f0d5"; }
+
+.fa-google-plus-square:before {
+  content: "\f0d4"; }
+
+.fa-google-wallet:before {
+  content: "\f1ee"; }
+
+.fa-graduation-cap:before {
+  content: "\f19d"; }
+
+.fa-gratipay:before {
+  content: "\f184"; }
+
+.fa-grav:before {
+  content: "\f2d6"; }
+
+.fa-gripfire:before {
+  content: "\f3ac"; }
+
+.fa-grunt:before {
+  content: "\f3ad"; }
+
+.fa-gulp:before {
+  content: "\f3ae"; }
+
+.fa-h-square:before {
+  content: "\f0fd"; }
+
+.fa-hacker-news:before {
+  content: "\f1d4"; }
+
+.fa-hacker-news-square:before {
+  content: "\f3af"; }
+
+.fa-hand-lizard:before {
+  content: "\f258"; }
+
+.fa-hand-paper:before {
+  content: "\f256"; }
+
+.fa-hand-peace:before {
+  content: "\f25b"; }
+
+.fa-hand-point-down:before {
+  content: "\f0a7"; }
+
+.fa-hand-point-left:before {
+  content: "\f0a5"; }
+
+.fa-hand-point-right:before {
+  content: "\f0a4"; }
+
+.fa-hand-point-up:before {
+  content: "\f0a6"; }
+
+.fa-hand-pointer:before {
+  content: "\f25a"; }
+
+.fa-hand-rock:before {
+  content: "\f255"; }
+
+.fa-hand-scissors:before {
+  content: "\f257"; }
+
+.fa-hand-spock:before {
+  content: "\f259"; }
+
+.fa-handshake:before {
+  content: "\f2b5"; }
+
+.fa-hashtag:before {
+  content: "\f292"; }
+
+.fa-hdd:before {
+  content: "\f0a0"; }
+
+.fa-heading:before {
+  content: "\f1dc"; }
+
+.fa-headphones:before {
+  content: "\f025"; }
+
+.fa-heart:before {
+  content: "\f004"; }
+
+.fa-heartbeat:before {
+  content: "\f21e"; }
+
+.fa-hips:before {
+  content: "\f452"; }
+
+.fa-hire-a-helper:before {
+  content: "\f3b0"; }
+
+.fa-history:before {
+  content: "\f1da"; }
+
+.fa-hockey-puck:before {
+  content: "\f453"; }
+
+.fa-home:before {
+  content: "\f015"; }
+
+.fa-hooli:before {
+  content: "\f427"; }
+
+.fa-hospital:before {
+  content: "\f0f8"; }
+
+.fa-hospital-symbol:before {
+  content: "\f47e"; }
+
+.fa-hotjar:before {
+  content: "\f3b1"; }
+
+.fa-hourglass:before {
+  content: "\f254"; }
+
+.fa-hourglass-end:before {
+  content: "\f253"; }
+
+.fa-hourglass-half:before {
+  content: "\f252"; }
+
+.fa-hourglass-start:before {
+  content: "\f251"; }
+
+.fa-houzz:before {
+  content: "\f27c"; }
+
+.fa-html5:before {
+  content: "\f13b"; }
+
+.fa-hubspot:before {
+  content: "\f3b2"; }
+
+.fa-i-cursor:before {
+  content: "\f246"; }
+
+.fa-id-badge:before {
+  content: "\f2c1"; }
+
+.fa-id-card:before {
+  content: "\f2c2"; }
+
+.fa-image:before {
+  content: "\f03e"; }
+
+.fa-images:before {
+  content: "\f302"; }
+
+.fa-imdb:before {
+  content: "\f2d8"; }
+
+.fa-inbox:before {
+  content: "\f01c"; }
+
+.fa-indent:before {
+  content: "\f03c"; }
+
+.fa-industry:before {
+  content: "\f275"; }
+
+.fa-info:before {
+  content: "\f129"; }
+
+.fa-info-circle:before {
+  content: "\f05a"; }
+
+.fa-instagram:before {
+  content: "\f16d"; }
+
+.fa-internet-explorer:before {
+  content: "\f26b"; }
+
+.fa-ioxhost:before {
+  content: "\f208"; }
+
+.fa-italic:before {
+  content: "\f033"; }
+
+.fa-itunes:before {
+  content: "\f3b4"; }
+
+.fa-itunes-note:before {
+  content: "\f3b5"; }
+
+.fa-jenkins:before {
+  content: "\f3b6"; }
+
+.fa-joget:before {
+  content: "\f3b7"; }
+
+.fa-joomla:before {
+  content: "\f1aa"; }
+
+.fa-js:before {
+  content: "\f3b8"; }
+
+.fa-js-square:before {
+  content: "\f3b9"; }
+
+.fa-jsfiddle:before {
+  content: "\f1cc"; }
+
+.fa-key:before {
+  content: "\f084"; }
+
+.fa-keyboard:before {
+  content: "\f11c"; }
+
+.fa-keycdn:before {
+  content: "\f3ba"; }
+
+.fa-kickstarter:before {
+  content: "\f3bb"; }
+
+.fa-kickstarter-k:before {
+  content: "\f3bc"; }
+
+.fa-korvue:before {
+  content: "\f42f"; }
+
+.fa-language:before {
+  content: "\f1ab"; }
+
+.fa-laptop:before {
+  content: "\f109"; }
+
+.fa-laravel:before {
+  content: "\f3bd"; }
+
+.fa-lastfm:before {
+  content: "\f202"; }
+
+.fa-lastfm-square:before {
+  content: "\f203"; }
+
+.fa-leaf:before {
+  content: "\f06c"; }
+
+.fa-leanpub:before {
+  content: "\f212"; }
+
+.fa-lemon:before {
+  content: "\f094"; }
+
+.fa-less:before {
+  content: "\f41d"; }
+
+.fa-level-down-alt:before {
+  content: "\f3be"; }
+
+.fa-level-up-alt:before {
+  content: "\f3bf"; }
+
+.fa-life-ring:before {
+  content: "\f1cd"; }
+
+.fa-lightbulb:before {
+  content: "\f0eb"; }
+
+.fa-line:before {
+  content: "\f3c0"; }
+
+.fa-link:before {
+  content: "\f0c1"; }
+
+.fa-linkedin:before {
+  content: "\f08c"; }
+
+.fa-linkedin-in:before {
+  content: "\f0e1"; }
+
+.fa-linode:before {
+  content: "\f2b8"; }
+
+.fa-linux:before {
+  content: "\f17c"; }
+
+.fa-lira-sign:before {
+  content: "\f195"; }
+
+.fa-list:before {
+  content: "\f03a"; }
+
+.fa-list-alt:before {
+  content: "\f022"; }
+
+.fa-list-ol:before {
+  content: "\f0cb"; }
+
+.fa-list-ul:before {
+  content: "\f0ca"; }
+
+.fa-location-arrow:before {
+  content: "\f124"; }
+
+.fa-lock:before {
+  content: "\f023"; }
+
+.fa-lock-open:before {
+  content: "\f3c1"; }
+
+.fa-long-arrow-alt-down:before {
+  content: "\f309"; }
+
+.fa-long-arrow-alt-left:before {
+  content: "\f30a"; }
+
+.fa-long-arrow-alt-right:before {
+  content: "\f30b"; }
+
+.fa-long-arrow-alt-up:before {
+  content: "\f30c"; }
+
+.fa-low-vision:before {
+  content: "\f2a8"; }
+
+.fa-lyft:before {
+  content: "\f3c3"; }
+
+.fa-magento:before {
+  content: "\f3c4"; }
+
+.fa-magic:before {
+  content: "\f0d0"; }
+
+.fa-magnet:before {
+  content: "\f076"; }
+
+.fa-male:before {
+  content: "\f183"; }
+
+.fa-map:before {
+  content: "\f279"; }
+
+.fa-map-marker:before {
+  content: "\f041"; }
+
+.fa-map-marker-alt:before {
+  content: "\f3c5"; }
+
+.fa-map-pin:before {
+  content: "\f276"; }
+
+.fa-map-signs:before {
+  content: "\f277"; }
+
+.fa-mars:before {
+  content: "\f222"; }
+
+.fa-mars-double:before {
+  content: "\f227"; }
+
+.fa-mars-stroke:before {
+  content: "\f229"; }
+
+.fa-mars-stroke-h:before {
+  content: "\f22b"; }
+
+.fa-mars-stroke-v:before {
+  content: "\f22a"; }
+
+.fa-maxcdn:before {
+  content: "\f136"; }
+
+.fa-medapps:before {
+  content: "\f3c6"; }
+
+.fa-medium:before {
+  content: "\f23a"; }
+
+.fa-medium-m:before {
+  content: "\f3c7"; }
+
+.fa-medkit:before {
+  content: "\f0fa"; }
+
+.fa-medrt:before {
+  content: "\f3c8"; }
+
+.fa-meetup:before {
+  content: "\f2e0"; }
+
+.fa-meh:before {
+  content: "\f11a"; }
+
+.fa-mercury:before {
+  content: "\f223"; }
+
+.fa-microchip:before {
+  content: "\f2db"; }
+
+.fa-microphone:before {
+  content: "\f130"; }
+
+.fa-microphone-slash:before {
+  content: "\f131"; }
+
+.fa-microsoft:before {
+  content: "\f3ca"; }
+
+.fa-minus:before {
+  content: "\f068"; }
+
+.fa-minus-circle:before {
+  content: "\f056"; }
+
+.fa-minus-square:before {
+  content: "\f146"; }
+
+.fa-mix:before {
+  content: "\f3cb"; }
+
+.fa-mixcloud:before {
+  content: "\f289"; }
+
+.fa-mizuni:before {
+  content: "\f3cc"; }
+
+.fa-mobile:before {
+  content: "\f10b"; }
+
+.fa-mobile-alt:before {
+  content: "\f3cd"; }
+
+.fa-modx:before {
+  content: "\f285"; }
+
+.fa-monero:before {
+  content: "\f3d0"; }
+
+.fa-money-bill-alt:before {
+  content: "\f3d1"; }
+
+.fa-moon:before {
+  content: "\f186"; }
+
+.fa-motorcycle:before {
+  content: "\f21c"; }
+
+.fa-mouse-pointer:before {
+  content: "\f245"; }
+
+.fa-music:before {
+  content: "\f001"; }
+
+.fa-napster:before {
+  content: "\f3d2"; }
+
+.fa-neuter:before {
+  content: "\f22c"; }
+
+.fa-newspaper:before {
+  content: "\f1ea"; }
+
+.fa-nintendo-switch:before {
+  content: "\f418"; }
+
+.fa-node:before {
+  content: "\f419"; }
+
+.fa-node-js:before {
+  content: "\f3d3"; }
+
+.fa-npm:before {
+  content: "\f3d4"; }
+
+.fa-ns8:before {
+  content: "\f3d5"; }
+
+.fa-nutritionix:before {
+  content: "\f3d6"; }
+
+.fa-object-group:before {
+  content: "\f247"; }
+
+.fa-object-ungroup:before {
+  content: "\f248"; }
+
+.fa-odnoklassniki:before {
+  content: "\f263"; }
+
+.fa-odnoklassniki-square:before {
+  content: "\f264"; }
+
+.fa-opencart:before {
+  content: "\f23d"; }
+
+.fa-openid:before {
+  content: "\f19b"; }
+
+.fa-opera:before {
+  content: "\f26a"; }
+
+.fa-optin-monster:before {
+  content: "\f23c"; }
+
+.fa-osi:before {
+  content: "\f41a"; }
+
+.fa-outdent:before {
+  content: "\f03b"; }
+
+.fa-page4:before {
+  content: "\f3d7"; }
+
+.fa-pagelines:before {
+  content: "\f18c"; }
+
+.fa-paint-brush:before {
+  content: "\f1fc"; }
+
+.fa-palfed:before {
+  content: "\f3d8"; }
+
+.fa-pallet:before {
+  content: "\f482"; }
+
+.fa-paper-plane:before {
+  content: "\f1d8"; }
+
+.fa-paperclip:before {
+  content: "\f0c6"; }
+
+.fa-paragraph:before {
+  content: "\f1dd"; }
+
+.fa-paste:before {
+  content: "\f0ea"; }
+
+.fa-patreon:before {
+  content: "\f3d9"; }
+
+.fa-pause:before {
+  content: "\f04c"; }
+
+.fa-pause-circle:before {
+  content: "\f28b"; }
+
+.fa-paw:before {
+  content: "\f1b0"; }
+
+.fa-paypal:before {
+  content: "\f1ed"; }
+
+.fa-pen-square:before {
+  content: "\f14b"; }
+
+.fa-pencil-alt:before {
+  content: "\f303"; }
+
+.fa-percent:before {
+  content: "\f295"; }
+
+.fa-periscope:before {
+  content: "\f3da"; }
+
+.fa-phabricator:before {
+  content: "\f3db"; }
+
+.fa-phoenix-framework:before {
+  content: "\f3dc"; }
+
+.fa-phone:before {
+  content: "\f095"; }
+
+.fa-phone-square:before {
+  content: "\f098"; }
+
+.fa-phone-volume:before {
+  content: "\f2a0"; }
+
+.fa-php:before {
+  content: "\f457"; }
+
+.fa-pied-piper:before {
+  content: "\f2ae"; }
+
+.fa-pied-piper-alt:before {
+  content: "\f1a8"; }
+
+.fa-pied-piper-pp:before {
+  content: "\f1a7"; }
+
+.fa-pills:before {
+  content: "\f484"; }
+
+.fa-pinterest:before {
+  content: "\f0d2"; }
+
+.fa-pinterest-p:before {
+  content: "\f231"; }
+
+.fa-pinterest-square:before {
+  content: "\f0d3"; }
+
+.fa-plane:before {
+  content: "\f072"; }
+
+.fa-play:before {
+  content: "\f04b"; }
+
+.fa-play-circle:before {
+  content: "\f144"; }
+
+.fa-playstation:before {
+  content: "\f3df"; }
+
+.fa-plug:before {
+  content: "\f1e6"; }
+
+.fa-plus:before {
+  content: "\f067"; }
+
+.fa-plus-circle:before {
+  content: "\f055"; }
+
+.fa-plus-square:before {
+  content: "\f0fe"; }
+
+.fa-podcast:before {
+  content: "\f2ce"; }
+
+.fa-pound-sign:before {
+  content: "\f154"; }
+
+.fa-power-off:before {
+  content: "\f011"; }
+
+.fa-print:before {
+  content: "\f02f"; }
+
+.fa-product-hunt:before {
+  content: "\f288"; }
+
+.fa-pushed:before {
+  content: "\f3e1"; }
+
+.fa-puzzle-piece:before {
+  content: "\f12e"; }
+
+.fa-python:before {
+  content: "\f3e2"; }
+
+.fa-qq:before {
+  content: "\f1d6"; }
+
+.fa-qrcode:before {
+  content: "\f029"; }
+
+.fa-question:before {
+  content: "\f128"; }
+
+.fa-question-circle:before {
+  content: "\f059"; }
+
+.fa-quidditch:before {
+  content: "\f458"; }
+
+.fa-quinscape:before {
+  content: "\f459"; }
+
+.fa-quora:before {
+  content: "\f2c4"; }
+
+.fa-quote-left:before {
+  content: "\f10d"; }
+
+.fa-quote-right:before {
+  content: "\f10e"; }
+
+.fa-random:before {
+  content: "\f074"; }
+
+.fa-ravelry:before {
+  content: "\f2d9"; }
+
+.fa-react:before {
+  content: "\f41b"; }
+
+.fa-rebel:before {
+  content: "\f1d0"; }
+
+.fa-recycle:before {
+  content: "\f1b8"; }
+
+.fa-red-river:before {
+  content: "\f3e3"; }
+
+.fa-reddit:before {
+  content: "\f1a1"; }
+
+.fa-reddit-alien:before {
+  content: "\f281"; }
+
+.fa-reddit-square:before {
+  content: "\f1a2"; }
+
+.fa-redo:before {
+  content: "\f01e"; }
+
+.fa-redo-alt:before {
+  content: "\f2f9"; }
+
+.fa-registered:before {
+  content: "\f25d"; }
+
+.fa-rendact:before {
+  content: "\f3e4"; }
+
+.fa-renren:before {
+  content: "\f18b"; }
+
+.fa-reply:before {
+  content: "\f3e5"; }
+
+.fa-reply-all:before {
+  content: "\f122"; }
+
+.fa-replyd:before {
+  content: "\f3e6"; }
+
+.fa-resolving:before {
+  content: "\f3e7"; }
+
+.fa-retweet:before {
+  content: "\f079"; }
+
+.fa-road:before {
+  content: "\f018"; }
+
+.fa-rocket:before {
+  content: "\f135"; }
+
+.fa-rocketchat:before {
+  content: "\f3e8"; }
+
+.fa-rockrms:before {
+  content: "\f3e9"; }
+
+.fa-rss:before {
+  content: "\f09e"; }
+
+.fa-rss-square:before {
+  content: "\f143"; }
+
+.fa-ruble-sign:before {
+  content: "\f158"; }
+
+.fa-rupee-sign:before {
+  content: "\f156"; }
+
+.fa-safari:before {
+  content: "\f267"; }
+
+.fa-sass:before {
+  content: "\f41e"; }
+
+.fa-save:before {
+  content: "\f0c7"; }
+
+.fa-schlix:before {
+  content: "\f3ea"; }
+
+.fa-scribd:before {
+  content: "\f28a"; }
+
+.fa-search:before {
+  content: "\f002"; }
+
+.fa-search-minus:before {
+  content: "\f010"; }
+
+.fa-search-plus:before {
+  content: "\f00e"; }
+
+.fa-searchengin:before {
+  content: "\f3eb"; }
+
+.fa-sellcast:before {
+  content: "\f2da"; }
+
+.fa-sellsy:before {
+  content: "\f213"; }
+
+.fa-server:before {
+  content: "\f233"; }
+
+.fa-servicestack:before {
+  content: "\f3ec"; }
+
+.fa-share:before {
+  content: "\f064"; }
+
+.fa-share-alt:before {
+  content: "\f1e0"; }
+
+.fa-share-alt-square:before {
+  content: "\f1e1"; }
+
+.fa-share-square:before {
+  content: "\f14d"; }
+
+.fa-shekel-sign:before {
+  content: "\f20b"; }
+
+.fa-shield-alt:before {
+  content: "\f3ed"; }
+
+.fa-ship:before {
+  content: "\f21a"; }
+
+.fa-shipping-fast:before {
+  content: "\f48b"; }
+
+.fa-shirtsinbulk:before {
+  content: "\f214"; }
+
+.fa-shopping-bag:before {
+  content: "\f290"; }
+
+.fa-shopping-basket:before {
+  content: "\f291"; }
+
+.fa-shopping-cart:before {
+  content: "\f07a"; }
+
+.fa-shower:before {
+  content: "\f2cc"; }
+
+.fa-sign-in-alt:before {
+  content: "\f2f6"; }
+
+.fa-sign-language:before {
+  content: "\f2a7"; }
+
+.fa-sign-out-alt:before {
+  content: "\f2f5"; }
+
+.fa-signal:before {
+  content: "\f012"; }
+
+.fa-simplybuilt:before {
+  content: "\f215"; }
+
+.fa-sistrix:before {
+  content: "\f3ee"; }
+
+.fa-sitemap:before {
+  content: "\f0e8"; }
+
+.fa-skyatlas:before {
+  content: "\f216"; }
+
+.fa-skype:before {
+  content: "\f17e"; }
+
+.fa-slack:before {
+  content: "\f198"; }
+
+.fa-slack-hash:before {
+  content: "\f3ef"; }
+
+.fa-sliders-h:before {
+  content: "\f1de"; }
+
+.fa-slideshare:before {
+  content: "\f1e7"; }
+
+.fa-smile:before {
+  content: "\f118"; }
+
+.fa-snapchat:before {
+  content: "\f2ab"; }
+
+.fa-snapchat-ghost:before {
+  content: "\f2ac"; }
+
+.fa-snapchat-square:before {
+  content: "\f2ad"; }
+
+.fa-snowflake:before {
+  content: "\f2dc"; }
+
+.fa-sort:before {
+  content: "\f0dc"; }
+
+.fa-sort-alpha-down:before {
+  content: "\f15d"; }
+
+.fa-sort-alpha-up:before {
+  content: "\f15e"; }
+
+.fa-sort-amount-down:before {
+  content: "\f160"; }
+
+.fa-sort-amount-up:before {
+  content: "\f161"; }
+
+.fa-sort-down:before {
+  content: "\f0dd"; }
+
+.fa-sort-numeric-down:before {
+  content: "\f162"; }
+
+.fa-sort-numeric-up:before {
+  content: "\f163"; }
+
+.fa-sort-up:before {
+  content: "\f0de"; }
+
+.fa-soundcloud:before {
+  content: "\f1be"; }
+
+.fa-space-shuttle:before {
+  content: "\f197"; }
+
+.fa-speakap:before {
+  content: "\f3f3"; }
+
+.fa-spinner:before {
+  content: "\f110"; }
+
+.fa-spotify:before {
+  content: "\f1bc"; }
+
+.fa-square:before {
+  content: "\f0c8"; }
+
+.fa-square-full:before {
+  content: "\f45c"; }
+
+.fa-stack-exchange:before {
+  content: "\f18d"; }
+
+.fa-stack-overflow:before {
+  content: "\f16c"; }
+
+.fa-star:before {
+  content: "\f005"; }
+
+.fa-star-half:before {
+  content: "\f089"; }
+
+.fa-staylinked:before {
+  content: "\f3f5"; }
+
+.fa-steam:before {
+  content: "\f1b6"; }
+
+.fa-steam-square:before {
+  content: "\f1b7"; }
+
+.fa-steam-symbol:before {
+  content: "\f3f6"; }
+
+.fa-step-backward:before {
+  content: "\f048"; }
+
+.fa-step-forward:before {
+  content: "\f051"; }
+
+.fa-stethoscope:before {
+  content: "\f0f1"; }
+
+.fa-sticker-mule:before {
+  content: "\f3f7"; }
+
+.fa-sticky-note:before {
+  content: "\f249"; }
+
+.fa-stop:before {
+  content: "\f04d"; }
+
+.fa-stop-circle:before {
+  content: "\f28d"; }
+
+.fa-stopwatch:before {
+  content: "\f2f2"; }
+
+.fa-strava:before {
+  content: "\f428"; }
+
+.fa-street-view:before {
+  content: "\f21d"; }
+
+.fa-strikethrough:before {
+  content: "\f0cc"; }
+
+.fa-stripe:before {
+  content: "\f429"; }
+
+.fa-stripe-s:before {
+  content: "\f42a"; }
+
+.fa-studiovinari:before {
+  content: "\f3f8"; }
+
+.fa-stumbleupon:before {
+  content: "\f1a4"; }
+
+.fa-stumbleupon-circle:before {
+  content: "\f1a3"; }
+
+.fa-subscript:before {
+  content: "\f12c"; }
+
+.fa-subway:before {
+  content: "\f239"; }
+
+.fa-suitcase:before {
+  content: "\f0f2"; }
+
+.fa-sun:before {
+  content: "\f185"; }
+
+.fa-superpowers:before {
+  content: "\f2dd"; }
+
+.fa-superscript:before {
+  content: "\f12b"; }
+
+.fa-supple:before {
+  content: "\f3f9"; }
+
+.fa-sync:before {
+  content: "\f021"; }
+
+.fa-sync-alt:before {
+  content: "\f2f1"; }
+
+.fa-syringe:before {
+  content: "\f48e"; }
+
+.fa-table:before {
+  content: "\f0ce"; }
+
+.fa-table-tennis:before {
+  content: "\f45d"; }
+
+.fa-tablet:before {
+  content: "\f10a"; }
+
+.fa-tablet-alt:before {
+  content: "\f3fa"; }
+
+.fa-tachometer-alt:before {
+  content: "\f3fd"; }
+
+.fa-tag:before {
+  content: "\f02b"; }
+
+.fa-tags:before {
+  content: "\f02c"; }
+
+.fa-tasks:before {
+  content: "\f0ae"; }
+
+.fa-taxi:before {
+  content: "\f1ba"; }
+
+.fa-telegram:before {
+  content: "\f2c6"; }
+
+.fa-telegram-plane:before {
+  content: "\f3fe"; }
+
+.fa-tencent-weibo:before {
+  content: "\f1d5"; }
+
+.fa-terminal:before {
+  content: "\f120"; }
+
+.fa-text-height:before {
+  content: "\f034"; }
+
+.fa-text-width:before {
+  content: "\f035"; }
+
+.fa-th:before {
+  content: "\f00a"; }
+
+.fa-th-large:before {
+  content: "\f009"; }
+
+.fa-th-list:before {
+  content: "\f00b"; }
+
+.fa-themeisle:before {
+  content: "\f2b2"; }
+
+.fa-thermometer:before {
+  content: "\f491"; }
+
+.fa-thermometer-empty:before {
+  content: "\f2cb"; }
+
+.fa-thermometer-full:before {
+  content: "\f2c7"; }
+
+.fa-thermometer-half:before {
+  content: "\f2c9"; }
+
+.fa-thermometer-quarter:before {
+  content: "\f2ca"; }
+
+.fa-thermometer-three-quarters:before {
+  content: "\f2c8"; }
+
+.fa-thumbs-down:before {
+  content: "\f165"; }
+
+.fa-thumbs-up:before {
+  content: "\f164"; }
+
+.fa-thumbtack:before {
+  content: "\f08d"; }
+
+.fa-ticket-alt:before {
+  content: "\f3ff"; }
+
+.fa-times:before {
+  content: "\f00d"; }
+
+.fa-times-circle:before {
+  content: "\f057"; }
+
+.fa-tint:before {
+  content: "\f043"; }
+
+.fa-toggle-off:before {
+  content: "\f204"; }
+
+.fa-toggle-on:before {
+  content: "\f205"; }
+
+.fa-trademark:before {
+  content: "\f25c"; }
+
+.fa-train:before {
+  content: "\f238"; }
+
+.fa-transgender:before {
+  content: "\f224"; }
+
+.fa-transgender-alt:before {
+  content: "\f225"; }
+
+.fa-trash:before {
+  content: "\f1f8"; }
+
+.fa-trash-alt:before {
+  content: "\f2ed"; }
+
+.fa-tree:before {
+  content: "\f1bb"; }
+
+.fa-trello:before {
+  content: "\f181"; }
+
+.fa-tripadvisor:before {
+  content: "\f262"; }
+
+.fa-trophy:before {
+  content: "\f091"; }
+
+.fa-truck:before {
+  content: "\f0d1"; }
+
+.fa-tty:before {
+  content: "\f1e4"; }
+
+.fa-tumblr:before {
+  content: "\f173"; }
+
+.fa-tumblr-square:before {
+  content: "\f174"; }
+
+.fa-tv:before {
+  content: "\f26c"; }
+
+.fa-twitch:before {
+  content: "\f1e8"; }
+
+.fa-twitter:before {
+  content: "\f099"; }
+
+.fa-twitter-square:before {
+  content: "\f081"; }
+
+.fa-typo3:before {
+  content: "\f42b"; }
+
+.fa-uber:before {
+  content: "\f402"; }
+
+.fa-uikit:before {
+  content: "\f403"; }
+
+.fa-umbrella:before {
+  content: "\f0e9"; }
+
+.fa-underline:before {
+  content: "\f0cd"; }
+
+.fa-undo:before {
+  content: "\f0e2"; }
+
+.fa-undo-alt:before {
+  content: "\f2ea"; }
+
+.fa-uniregistry:before {
+  content: "\f404"; }
+
+.fa-universal-access:before {
+  content: "\f29a"; }
+
+.fa-university:before {
+  content: "\f19c"; }
+
+.fa-unlink:before {
+  content: "\f127"; }
+
+.fa-unlock:before {
+  content: "\f09c"; }
+
+.fa-unlock-alt:before {
+  content: "\f13e"; }
+
+.fa-untappd:before {
+  content: "\f405"; }
+
+.fa-upload:before {
+  content: "\f093"; }
+
+.fa-usb:before {
+  content: "\f287"; }
+
+.fa-user:before {
+  content: "\f007"; }
+
+.fa-user-circle:before {
+  content: "\f2bd"; }
+
+.fa-user-md:before {
+  content: "\f0f0"; }
+
+.fa-user-plus:before {
+  content: "\f234"; }
+
+.fa-user-secret:before {
+  content: "\f21b"; }
+
+.fa-user-times:before {
+  content: "\f235"; }
+
+.fa-users:before {
+  content: "\f0c0"; }
+
+.fa-ussunnah:before {
+  content: "\f407"; }
+
+.fa-utensil-spoon:before {
+  content: "\f2e5"; }
+
+.fa-utensils:before {
+  content: "\f2e7"; }
+
+.fa-vaadin:before {
+  content: "\f408"; }
+
+.fa-venus:before {
+  content: "\f221"; }
+
+.fa-venus-double:before {
+  content: "\f226"; }
+
+.fa-venus-mars:before {
+  content: "\f228"; }
+
+.fa-viacoin:before {
+  content: "\f237"; }
+
+.fa-viadeo:before {
+  content: "\f2a9"; }
+
+.fa-viadeo-square:before {
+  content: "\f2aa"; }
+
+.fa-viber:before {
+  content: "\f409"; }
+
+.fa-video:before {
+  content: "\f03d"; }
+
+.fa-vimeo:before {
+  content: "\f40a"; }
+
+.fa-vimeo-square:before {
+  content: "\f194"; }
+
+.fa-vimeo-v:before {
+  content: "\f27d"; }
+
+.fa-vine:before {
+  content: "\f1ca"; }
+
+.fa-vk:before {
+  content: "\f189"; }
+
+.fa-vnv:before {
+  content: "\f40b"; }
+
+.fa-volleyball-ball:before {
+  content: "\f45f"; }
+
+.fa-volume-down:before {
+  content: "\f027"; }
+
+.fa-volume-off:before {
+  content: "\f026"; }
+
+.fa-volume-up:before {
+  content: "\f028"; }
+
+.fa-vuejs:before {
+  content: "\f41f"; }
+
+.fa-warehouse:before {
+  content: "\f494"; }
+
+.fa-weibo:before {
+  content: "\f18a"; }
+
+.fa-weight:before {
+  content: "\f496"; }
+
+.fa-weixin:before {
+  content: "\f1d7"; }
+
+.fa-whatsapp:before {
+  content: "\f232"; }
+
+.fa-whatsapp-square:before {
+  content: "\f40c"; }
+
+.fa-wheelchair:before {
+  content: "\f193"; }
+
+.fa-whmcs:before {
+  content: "\f40d"; }
+
+.fa-wifi:before {
+  content: "\f1eb"; }
+
+.fa-wikipedia-w:before {
+  content: "\f266"; }
+
+.fa-window-close:before {
+  content: "\f410"; }
+
+.fa-window-maximize:before {
+  content: "\f2d0"; }
+
+.fa-window-minimize:before {
+  content: "\f2d1"; }
+
+.fa-window-restore:before {
+  content: "\f2d2"; }
+
+.fa-windows:before {
+  content: "\f17a"; }
+
+.fa-won-sign:before {
+  content: "\f159"; }
+
+.fa-wordpress:before {
+  content: "\f19a"; }
+
+.fa-wordpress-simple:before {
+  content: "\f411"; }
+
+.fa-wpbeginner:before {
+  content: "\f297"; }
+
+.fa-wpexplorer:before {
+  content: "\f2de"; }
+
+.fa-wpforms:before {
+  content: "\f298"; }
+
+.fa-wrench:before {
+  content: "\f0ad"; }
+
+.fa-xbox:before {
+  content: "\f412"; }
+
+.fa-xing:before {
+  content: "\f168"; }
+
+.fa-xing-square:before {
+  content: "\f169"; }
+
+.fa-y-combinator:before {
+  content: "\f23b"; }
+
+.fa-yahoo:before {
+  content: "\f19e"; }
+
+.fa-yandex:before {
+  content: "\f413"; }
+
+.fa-yandex-international:before {
+  content: "\f414"; }
+
+.fa-yelp:before {
+  content: "\f1e9"; }
+
+.fa-yen-sign:before {
+  content: "\f157"; }
+
+.fa-yoast:before {
+  content: "\f2b1"; }
+
+.fa-youtube:before {
+  content: "\f167"; }
+
+.fa-youtube-square:before {
+  content: "\f431"; }
+
+.sr-only {
+  border: 0;
+  clip: rect(0, 0, 0, 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px; }
+
+.sr-only-focusable:active, .sr-only-focusable:focus {
+  clip: auto;
+  height: auto;
+  margin: 0;
+  overflow: visible;
+  position: static;
+  width: auto; }
+@font-face {
+  font-family: 'Font Awesome 5 Brands';
+  font-style: normal;
+  font-weight: normal;
+  src: url("../fonts/fa-brands-400.eot");
+  src: url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-brands-400.woff2") format("woff2"), url("../fonts/fa-brands-400.woff") format("woff"), url("../fonts/fa-brands-400.ttf") format("truetype"), url("../fonts/fa-brands-400.svg#fontawesome") format("svg"); }
+
+.fab {
+  font-family: 'Font Awesome 5 Brands'; }
+@font-face {
+  font-family: 'Font Awesome 5 Free';
+  font-style: normal;
+  font-weight: 400;
+  src: url("../fonts/fa-regular-400.eot");
+  src: url("../fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-regular-400.woff2") format("woff2"), url("../fonts/fa-regular-400.woff") format("woff"), url("../fonts/fa-regular-400.ttf") format("truetype"), url("../fonts/fa-regular-400.svg#fontawesome") format("svg"); }
+
+.far {
+  font-family: 'Font Awesome 5 Free';
+  font-weight: 400; }
+@font-face {
+  font-family: 'Font Awesome 5 Free';
+  font-style: normal;
+  font-weight: 900;
+  src: url("../fonts/fa-solid-900.eot");
+  src: url("../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../fonts/fa-solid-900.woff2") format("woff2"), url("../fonts/fa-solid-900.woff") format("woff"), url("../fonts/fa-solid-900.ttf") format("truetype"), url("../fonts/fa-solid-900.svg#fontawesome") format("svg"); }
+
+.fa,
+.fas {
+  font-family: 'Font Awesome 5 Free';
+  font-weight: 900; }

+ 17529 - 0
css/material.css

@@ -0,0 +1,17529 @@
+/*! =========================================================
+ *
+ *  BioThermSolutions.com
+ *
+ *  by: https://davidawindham.com
+ *
+ * 	Thanks: 
+ * 				https://material.io/
+ * 				https://getbootstrap.com/
+ * 				https://fezvrasta.github.io/bootstrap-material-design/
+ * 				https://demos.creative-tim.com/material-kit/index.html
+ *
+ *
+ * ========================================================= */
+
+.card {
+    font-size: .875rem;
+}
+
+*,
+*::before,
+*::after {
+    box-sizing: border-box;
+}
+
+html {
+    font-family: sans-serif;
+    line-height: 1.15;
+    -webkit-text-size-adjust: 100%;
+    -ms-text-size-adjust: 100%;
+    -ms-overflow-style: scrollbar;
+    -webkit-tap-highlight-color: transparent;
+}
+
+@-ms-viewport {
+    width: device-width;
+}
+
+article,
+aside,
+dialog,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section {
+    display: block;
+}
+
+body {
+    margin: 0;
+    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+    font-size: 1rem;
+    font-weight: 400;
+    line-height: 1.5;
+    color: #212529;
+    text-align: left;
+    background-color: #fafafa;
+}
+
+[tabindex="-1"]:focus {
+    outline: 0 !important;
+}
+
+hr {
+    box-sizing: content-box;
+    height: 0;
+    overflow: visible;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    margin-top: 0;
+    margin-bottom: 0.5rem;
+}
+
+p {
+    margin-top: 0;
+    margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-original-title] {
+    text-decoration: underline;
+    text-decoration: underline dotted;
+    cursor: help;
+    border-bottom: 0;
+}
+
+address {
+    margin-bottom: 1rem;
+    font-style: normal;
+    line-height: inherit;
+}
+
+ol,
+ul,
+dl {
+    margin-top: 0;
+    margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+    margin-bottom: 0;
+}
+
+dt {
+    font-weight: 500;
+}
+
+dd {
+    margin-bottom: .5rem;
+    margin-left: 0;
+}
+
+blockquote {
+    margin: 0 0 1rem;
+}
+
+dfn {
+    font-style: italic;
+}
+
+b,
+strong {
+    font-weight: bolder;
+}
+
+small {
+    font-size: 80%;
+}
+
+sub,
+sup {
+    position: relative;
+    font-size: 75%;
+    line-height: 0;
+    vertical-align: baseline;
+}
+
+sub {
+    bottom: -.25em;
+}
+
+sup {
+    top: -.5em;
+}
+
+a {
+    color: #9c27b0;
+    text-decoration: none;
+    background-color: transparent;
+    -webkit-text-decoration-skip: objects;
+}
+
+a:hover {
+    color: #0a6ebd;
+    text-decoration: underline;
+}
+
+a:not([href]):not([tabindex]) {
+    color: inherit;
+    text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):hover,
+a:not([href]):not([tabindex]):focus {
+    color: inherit;
+    text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus {
+    outline: 0;
+}
+
+pre,
+code,
+kbd,
+samp {
+    font-family: monospace, monospace;
+    font-size: 1em;
+}
+
+pre {
+    margin-top: 0;
+    margin-bottom: 1rem;
+    overflow: auto;
+    -ms-overflow-style: scrollbar;
+}
+
+figure {
+    margin: 0 0 1rem;
+}
+
+img {
+    vertical-align: middle;
+    border-style: none;
+}
+
+svg:not(:root) {
+    overflow: hidden;
+}
+
+table {
+    border-collapse: collapse;
+}
+
+caption {
+    padding-top: 0.75rem;
+    padding-bottom: 0.75rem;
+    color: #6c757d;
+    text-align: left;
+    caption-side: bottom;
+}
+
+th {
+    text-align: inherit;
+}
+
+label {
+    display: inline-block;
+    margin-bottom: .5rem;
+}
+
+button {
+    border-radius: 0;
+}
+
+button:focus {
+    outline: 1px dotted;
+    outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+    margin: 0;
+    font-family: inherit;
+    font-size: inherit;
+    line-height: inherit;
+}
+
+button,
+input {
+    overflow: visible;
+}
+
+button,
+select {
+    text-transform: none;
+}
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+    -webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+    padding: 0;
+    border-style: none;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+    box-sizing: border-box;
+    padding: 0;
+}
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+    -webkit-appearance: listbox;
+}
+
+textarea {
+    overflow: auto;
+    resize: vertical;
+}
+
+fieldset {
+    min-width: 0;
+    padding: 0;
+    margin: 0;
+    border: 0;
+}
+
+legend {
+    display: block;
+    width: 100%;
+    max-width: 100%;
+    padding: 0;
+    margin-bottom: .5rem;
+    font-size: 1.5rem;
+    line-height: inherit;
+    color: inherit;
+    white-space: normal;
+}
+
+progress {
+    vertical-align: baseline;
+}
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+    height: auto;
+}
+
+[type="search"] {
+    outline-offset: -2px;
+    -webkit-appearance: none;
+}
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+    -webkit-appearance: none;
+}
+
+::-webkit-file-upload-button {
+    font: inherit;
+    -webkit-appearance: button;
+}
+
+output {
+    display: inline-block;
+}
+
+summary {
+    display: list-item;
+    cursor: pointer;
+}
+
+template {
+    display: none;
+}
+
+[hidden] {
+    display: none !important;
+}
+
+@media print {
+    *,
+    *::before,
+    *::after {
+        text-shadow: none !important;
+        box-shadow: none !important;
+    }
+    a:not(.btn) {
+        text-decoration: underline;
+    }
+    abbr[title]::after {
+        content: " (" attr(title) ")";
+    }
+    pre {
+        white-space: pre-wrap !important;
+    }
+    pre,
+    blockquote {
+        border: 1px solid #999;
+        page-break-inside: avoid;
+    }
+    thead {
+        display: table-header-group;
+    }
+    tr,
+    img {
+        page-break-inside: avoid;
+    }
+    p,
+    h2,
+    h3 {
+        orphans: 3;
+        widows: 3;
+    }
+    h2,
+    h3 {
+        page-break-after: avoid;
+    }
+    @page {
+        size: a3;
+    }
+    body {
+        min-width: 992px !important;
+    }
+    .container {
+        min-width: 992px !important;
+    }
+    .navbar {
+        display: none;
+    }
+    .badge {
+        border: 1px solid #000;
+    }
+    .table {
+        border-collapse: collapse !important;
+    }
+    .table td,
+    .table th {
+        background-color: #fff !important;
+    }
+    .table-bordered th,
+    .table-bordered td {
+        border: 1px solid #ddd !important;
+    }
+}
+
+*,
+*::before,
+*::after {
+    box-sizing: border-box;
+}
+
+html {
+    font-family: sans-serif;
+    line-height: 1.15;
+    -webkit-text-size-adjust: 100%;
+    -ms-text-size-adjust: 100%;
+    -ms-overflow-style: scrollbar;
+    -webkit-tap-highlight-color: transparent;
+}
+
+@-ms-viewport {
+    width: device-width;
+}
+
+article,
+aside,
+dialog,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section {
+    display: block;
+}
+
+body {
+    margin: 0;
+    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+    font-size: 1rem;
+    font-weight: 400;
+    line-height: 1.5;
+    color: #212529;
+    text-align: left;
+    background-color: #fafafa;
+}
+
+[tabindex="-1"]:focus {
+    outline: 0 !important;
+}
+
+hr {
+    box-sizing: content-box;
+    height: 0;
+    overflow: visible;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    margin-top: 0;
+    margin-bottom: 0.5rem;
+}
+
+p {
+    margin-top: 0;
+    margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-original-title] {
+    text-decoration: underline;
+    text-decoration: underline dotted;
+    cursor: help;
+    border-bottom: 0;
+}
+
+address {
+    margin-bottom: 1rem;
+    font-style: normal;
+    line-height: inherit;
+}
+
+ol,
+ul,
+dl {
+    margin-top: 0;
+    margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+    margin-bottom: 0;
+}
+
+dt {
+    font-weight: 500;
+}
+
+dd {
+    margin-bottom: .5rem;
+    margin-left: 0;
+}
+
+blockquote {
+    margin: 0 0 1rem;
+}
+
+dfn {
+    font-style: italic;
+}
+
+b,
+strong {
+    font-weight: bolder;
+}
+
+small {
+    font-size: 80%;
+}
+
+sub,
+sup {
+    position: relative;
+    font-size: 75%;
+    line-height: 0;
+    vertical-align: baseline;
+}
+
+sub {
+    bottom: -.25em;
+}
+
+sup {
+    top: -.5em;
+}
+
+a {
+    color: #9c27b0;
+    text-decoration: none;
+    background-color: transparent;
+    -webkit-text-decoration-skip: objects;
+}
+
+a:hover {
+    color: #0a6ebd;
+    text-decoration: underline;
+}
+
+a:not([href]):not([tabindex]) {
+    color: inherit;
+    text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):hover,
+a:not([href]):not([tabindex]):focus {
+    color: inherit;
+    text-decoration: none;
+}
+
+a:not([href]):not([tabindex]):focus {
+    outline: 0;
+}
+
+pre,
+code,
+kbd,
+samp {
+    font-family: monospace, monospace;
+    font-size: 1em;
+}
+
+pre {
+    margin-top: 0;
+    margin-bottom: 1rem;
+    overflow: auto;
+    -ms-overflow-style: scrollbar;
+}
+
+figure {
+    margin: 0 0 1rem;
+}
+
+img {
+    vertical-align: middle;
+    border-style: none;
+}
+
+svg:not(:root) {
+    overflow: hidden;
+}
+
+table {
+    border-collapse: collapse;
+}
+
+caption {
+    padding-top: 0.75rem;
+    padding-bottom: 0.75rem;
+    color: #6c757d;
+    text-align: left;
+    caption-side: bottom;
+}
+
+th {
+    text-align: inherit;
+}
+
+label {
+    display: inline-block;
+    margin-bottom: .5rem;
+}
+
+button {
+    border-radius: 0;
+}
+
+button:focus {
+    outline: 1px dotted;
+    outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+    margin: 0;
+    font-family: inherit;
+    font-size: inherit;
+    line-height: inherit;
+}
+
+button,
+input {
+    overflow: visible;
+}
+
+button,
+select {
+    text-transform: none;
+}
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+    -webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+    padding: 0;
+    border-style: none;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+    box-sizing: border-box;
+    padding: 0;
+}
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+    -webkit-appearance: listbox;
+}
+
+textarea {
+    overflow: auto;
+    resize: vertical;
+}
+
+fieldset {
+    min-width: 0;
+    padding: 0;
+    margin: 0;
+    border: 0;
+}
+
+legend {
+    display: block;
+    width: 100%;
+    max-width: 100%;
+    padding: 0;
+    margin-bottom: .5rem;
+    font-size: 1.5rem;
+    line-height: inherit;
+    color: inherit;
+    white-space: normal;
+}
+
+progress {
+    vertical-align: baseline;
+}
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+    height: auto;
+}
+
+[type="search"] {
+    outline-offset: -2px;
+    -webkit-appearance: none;
+}
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+    -webkit-appearance: none;
+}
+
+::-webkit-file-upload-button {
+    font: inherit;
+    -webkit-appearance: button;
+}
+
+output {
+    display: inline-block;
+}
+
+summary {
+    display: list-item;
+    cursor: pointer;
+}
+
+template {
+    display: none;
+}
+
+[hidden] {
+    display: none !important;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+    margin-bottom: 0.5rem;
+    font-family: inherit;
+    font-weight: 400;
+    line-height: 1.2;
+    color: inherit;
+}
+
+h1,
+.h1 {
+    font-size: 2.5rem;
+}
+
+h2,
+.h2 {
+    font-size: 2rem;
+}
+
+h3,
+.h3 {
+    font-size: 1.75rem;
+}
+
+h4,
+.h4 {
+    font-size: 1.5rem;
+}
+
+h5,
+.h5 {
+    font-size: 1.25rem;
+}
+
+h6,
+.h6 {
+    font-size: 1rem;
+}
+
+.lead {
+    font-size: 1.25rem;
+    font-weight: 300;
+}
+
+.display-1 {
+    font-size: 7rem;
+    font-weight: 300;
+    line-height: 1.2;
+}
+
+.display-2 {
+    font-size: 3.5rem;
+    font-weight: 300;
+    line-height: 1.2;
+}
+
+.display-3 {
+    font-size: 2.8125rem;
+    font-weight: 300;
+    line-height: 1.2;
+}
+
+.display-4 {
+    font-size: 2.125rem;
+    font-weight: 300;
+    line-height: 1.2;
+}
+
+hr {
+    margin-top: 1rem;
+    margin-bottom: 1rem;
+    border: 0;
+    border-top: 1px solid rgba(0, 0, 0, 0.1);
+}
+
+small,
+.small {
+    font-size: 80%;
+    font-weight: 400;
+}
+
+mark,
+.mark {
+    padding: 0.2em;
+    background-color: #fcf8e3;
+}
+
+.list-unstyled {
+    padding-left: 0;
+    list-style: none;
+}
+
+.list-inline {
+    padding-left: 0;
+    list-style: none;
+}
+
+.list-inline-item {
+    display: inline-block;
+}
+
+.list-inline-item:not(:last-child) {
+    margin-right: 0.5rem;
+}
+
+.initialism {
+    font-size: 90%;
+    text-transform: uppercase;
+}
+
+.blockquote {
+    margin-bottom: 1rem;
+    font-size: 1.25rem;
+}
+
+.blockquote-footer {
+    display: block;
+    font-size: 80%;
+    color: #6c757d;
+}
+
+.blockquote-footer::before {
+    content: "\2014 \00A0";
+}
+
+.img-fluid {
+    max-width: 100%;
+    height: auto;
+}
+
+.img-thumbnail {
+    padding: 0.25rem;
+    background-color: #fafafa;
+    border: 1px solid #dee2e6;
+    border-radius: 0.25rem;
+    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+    max-width: 100%;
+    height: auto;
+}
+
+.figure {
+    display: inline-block;
+}
+
+.figure-img {
+    margin-bottom: 0.5rem;
+    line-height: 1;
+}
+
+.figure-caption {
+    font-size: 90%;
+    color: #6c757d;
+}
+
+code,
+kbd,
+pre,
+samp {
+    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+}
+
+code {
+    font-size: 87.5%;
+    color: #e91e63;
+    word-break: break-word;
+}
+
+a>code {
+    color: inherit;
+}
+
+kbd {
+    padding: 0.2rem 0.4rem;
+    font-size: 87.5%;
+    color: #ffffff;
+    background-color: #212529;
+    border-radius: 0.2rem;
+    box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);
+}
+
+kbd kbd {
+    padding: 0;
+    font-size: 100%;
+    font-weight: 500;
+    box-shadow: none;
+}
+
+pre {
+    display: block;
+    font-size: 87.5%;
+    color: #212529;
+}
+
+pre code {
+    font-size: inherit;
+    color: inherit;
+    word-break: normal;
+}
+
+.pre-scrollable {
+    max-height: 340px;
+    overflow-y: scroll;
+}
+
+.container {
+    width: 100%;
+    padding-right: 15px;
+    padding-left: 15px;
+    margin-right: auto;
+    margin-left: auto;
+}
+
+@media (min-width: 576px) {
+    .container {
+        max-width: 540px;
+    }
+}
+
+@media (min-width: 768px) {
+    .container {
+        max-width: 720px;
+    }
+}
+
+@media (min-width: 992px) {
+    .container {
+        max-width: 960px;
+    }
+}
+
+@media (min-width: 1200px) {
+    .container {
+        max-width: 1140px;
+    }
+}
+
+.container-fluid {
+    width: 100%;
+    padding-right: 15px;
+    padding-left: 15px;
+    margin-right: auto;
+    margin-left: auto;
+}
+
+.row {
+    display: flex;
+    flex-wrap: wrap;
+    margin-right: -15px;
+    margin-left: -15px;
+}
+
+.no-gutters {
+    margin-right: 0;
+    margin-left: 0;
+}
+
+.no-gutters>.col,
+.no-gutters>[class*="col-"] {
+    padding-right: 0;
+    padding-left: 0;
+}
+
+.col-1,
+.col-2,
+.col-3,
+.col-4,
+.col-5,
+.col-6,
+.col-7,
+.col-8,
+.col-9,
+.col-10,
+.col-11,
+.col-12,
+.col,
+.col-auto,
+.col-sm-1,
+.col-sm-2,
+.col-sm-3,
+.col-sm-4,
+.col-sm-5,
+.col-sm-6,
+.col-sm-7,
+.col-sm-8,
+.col-sm-9,
+.col-sm-10,
+.col-sm-11,
+.col-sm-12,
+.col-sm,
+.col-sm-auto,
+.col-md-1,
+.col-md-2,
+.col-md-3,
+.col-md-4,
+.col-md-5,
+.col-md-6,
+.col-md-7,
+.col-md-8,
+.col-md-9,
+.col-md-10,
+.col-md-11,
+.col-md-12,
+.col-md,
+.col-md-auto,
+.col-lg-1,
+.col-lg-2,
+.col-lg-3,
+.col-lg-4,
+.col-lg-5,
+.col-lg-6,
+.col-lg-7,
+.col-lg-8,
+.col-lg-9,
+.col-lg-10,
+.col-lg-11,
+.col-lg-12,
+.col-lg,
+.col-lg-auto,
+.col-xl-1,
+.col-xl-2,
+.col-xl-3,
+.col-xl-4,
+.col-xl-5,
+.col-xl-6,
+.col-xl-7,
+.col-xl-8,
+.col-xl-9,
+.col-xl-10,
+.col-xl-11,
+.col-xl-12,
+.col-xl,
+.col-xl-auto {
+    position: relative;
+    width: 100%;
+    min-height: 1px;
+    padding-right: 15px;
+    padding-left: 15px;
+}
+
+.col {
+    flex-basis: 0;
+    flex-grow: 1;
+    max-width: 100%;
+}
+
+.col-auto {
+    flex: 0 0 auto;
+    width: auto;
+    max-width: none;
+}
+
+.col-1 {
+    flex: 0 0 8.333333%;
+    max-width: 8.333333%;
+}
+
+.col-2 {
+    flex: 0 0 16.666667%;
+    max-width: 16.666667%;
+}
+
+.col-3 {
+    flex: 0 0 25%;
+    max-width: 25%;
+}
+
+.col-4 {
+    flex: 0 0 33.333333%;
+    max-width: 33.333333%;
+}
+
+.col-5 {
+    flex: 0 0 41.666667%;
+    max-width: 41.666667%;
+}
+
+.col-6 {
+    flex: 0 0 50%;
+    max-width: 50%;
+}
+
+.col-7 {
+    flex: 0 0 58.333333%;
+    max-width: 58.333333%;
+}
+
+.col-8 {
+    flex: 0 0 66.666667%;
+    max-width: 66.666667%;
+}
+
+.col-9 {
+    flex: 0 0 75%;
+    max-width: 75%;
+}
+
+.col-10 {
+    flex: 0 0 83.333333%;
+    max-width: 83.333333%;
+}
+
+.col-11 {
+    flex: 0 0 91.666667%;
+    max-width: 91.666667%;
+}
+
+.col-12 {
+    flex: 0 0 100%;
+    max-width: 100%;
+}
+
+.order-first {
+    order: -1;
+}
+
+.order-last {
+    order: 13;
+}
+
+.order-0 {
+    order: 0;
+}
+
+.order-1 {
+    order: 1;
+}
+
+.order-2 {
+    order: 2;
+}
+
+.order-3 {
+    order: 3;
+}
+
+.order-4 {
+    order: 4;
+}
+
+.order-5 {
+    order: 5;
+}
+
+.order-6 {
+    order: 6;
+}
+
+.order-7 {
+    order: 7;
+}
+
+.order-8 {
+    order: 8;
+}
+
+.order-9 {
+    order: 9;
+}
+
+.order-10 {
+    order: 10;
+}
+
+.order-11 {
+    order: 11;
+}
+
+.order-12 {
+    order: 12;
+}
+
+.offset-1 {
+    margin-left: 8.333333%;
+}
+
+.offset-2 {
+    margin-left: 16.666667%;
+}
+
+.offset-3 {
+    margin-left: 25%;
+}
+
+.offset-4 {
+    margin-left: 33.333333%;
+}
+
+.offset-5 {
+    margin-left: 41.666667%;
+}
+
+.offset-6 {
+    margin-left: 50%;
+}
+
+.offset-7 {
+    margin-left: 58.333333%;
+}
+
+.offset-8 {
+    margin-left: 66.666667%;
+}
+
+.offset-9 {
+    margin-left: 75%;
+}
+
+.offset-10 {
+    margin-left: 83.333333%;
+}
+
+.offset-11 {
+    margin-left: 91.666667%;
+}
+
+@media (min-width: 576px) {
+    .col-sm {
+        flex-basis: 0;
+        flex-grow: 1;
+        max-width: 100%;
+    }
+    .col-sm-auto {
+        flex: 0 0 auto;
+        width: auto;
+        max-width: none;
+    }
+    .col-sm-1 {
+        flex: 0 0 8.333333%;
+        max-width: 8.333333%;
+    }
+    .col-sm-2 {
+        flex: 0 0 16.666667%;
+        max-width: 16.666667%;
+    }
+    .col-sm-3 {
+        flex: 0 0 25%;
+        max-width: 25%;
+    }
+    .col-sm-4 {
+        flex: 0 0 33.333333%;
+        max-width: 33.333333%;
+    }
+    .col-sm-5 {
+        flex: 0 0 41.666667%;
+        max-width: 41.666667%;
+    }
+    .col-sm-6 {
+        flex: 0 0 50%;
+        max-width: 50%;
+    }
+    .col-sm-7 {
+        flex: 0 0 58.333333%;
+        max-width: 58.333333%;
+    }
+    .col-sm-8 {
+        flex: 0 0 66.666667%;
+        max-width: 66.666667%;
+    }
+    .col-sm-9 {
+        flex: 0 0 75%;
+        max-width: 75%;
+    }
+    .col-sm-10 {
+        flex: 0 0 83.333333%;
+        max-width: 83.333333%;
+    }
+    .col-sm-11 {
+        flex: 0 0 91.666667%;
+        max-width: 91.666667%;
+    }
+    .col-sm-12 {
+        flex: 0 0 100%;
+        max-width: 100%;
+    }
+    .order-sm-first {
+        order: -1;
+    }
+    .order-sm-last {
+        order: 13;
+    }
+    .order-sm-0 {
+        order: 0;
+    }
+    .order-sm-1 {
+        order: 1;
+    }
+    .order-sm-2 {
+        order: 2;
+    }
+    .order-sm-3 {
+        order: 3;
+    }
+    .order-sm-4 {
+        order: 4;
+    }
+    .order-sm-5 {
+        order: 5;
+    }
+    .order-sm-6 {
+        order: 6;
+    }
+    .order-sm-7 {
+        order: 7;
+    }
+    .order-sm-8 {
+        order: 8;
+    }
+    .order-sm-9 {
+        order: 9;
+    }
+    .order-sm-10 {
+        order: 10;
+    }
+    .order-sm-11 {
+        order: 11;
+    }
+    .order-sm-12 {
+        order: 12;
+    }
+    .offset-sm-0 {
+        margin-left: 0;
+    }
+    .offset-sm-1 {
+        margin-left: 8.333333%;
+    }
+    .offset-sm-2 {
+        margin-left: 16.666667%;
+    }
+    .offset-sm-3 {
+        margin-left: 25%;
+    }
+    .offset-sm-4 {
+        margin-left: 33.333333%;
+    }
+    .offset-sm-5 {
+        margin-left: 41.666667%;
+    }
+    .offset-sm-6 {
+        margin-left: 50%;
+    }
+    .offset-sm-7 {
+        margin-left: 58.333333%;
+    }
+    .offset-sm-8 {
+        margin-left: 66.666667%;
+    }
+    .offset-sm-9 {
+        margin-left: 75%;
+    }
+    .offset-sm-10 {
+        margin-left: 83.333333%;
+    }
+    .offset-sm-11 {
+        margin-left: 91.666667%;
+    }
+}
+
+@media (min-width: 768px) {
+    .col-md {
+        flex-basis: 0;
+        flex-grow: 1;
+        max-width: 100%;
+    }
+    .col-md-auto {
+        flex: 0 0 auto;
+        width: auto;
+        max-width: none;
+    }
+    .col-md-1 {
+        flex: 0 0 8.333333%;
+        max-width: 8.333333%;
+    }
+    .col-md-2 {
+        flex: 0 0 16.666667%;
+        max-width: 16.666667%;
+    }
+    .col-md-3 {
+        flex: 0 0 25%;
+        max-width: 25%;
+    }
+    .col-md-4 {
+        flex: 0 0 33.333333%;
+        max-width: 33.333333%;
+    }
+    .col-md-5 {
+        flex: 0 0 41.666667%;
+        max-width: 41.666667%;
+    }
+    .col-md-6 {
+        flex: 0 0 50%;
+        max-width: 50%;
+    }
+    .col-md-7 {
+        flex: 0 0 58.333333%;
+        max-width: 58.333333%;
+    }
+    .col-md-8 {
+        flex: 0 0 66.666667%;
+        max-width: 66.666667%;
+    }
+    .col-md-9 {
+        flex: 0 0 75%;
+        max-width: 75%;
+    }
+    .col-md-10 {
+        flex: 0 0 83.333333%;
+        max-width: 83.333333%;
+    }
+    .col-md-11 {
+        flex: 0 0 91.666667%;
+        max-width: 91.666667%;
+    }
+    .col-md-12 {
+        flex: 0 0 100%;
+        max-width: 100%;
+    }
+    .order-md-first {
+        order: -1;
+    }
+    .order-md-last {
+        order: 13;
+    }
+    .order-md-0 {
+        order: 0;
+    }
+    .order-md-1 {
+        order: 1;
+    }
+    .order-md-2 {
+        order: 2;
+    }
+    .order-md-3 {
+        order: 3;
+    }
+    .order-md-4 {
+        order: 4;
+    }
+    .order-md-5 {
+        order: 5;
+    }
+    .order-md-6 {
+        order: 6;
+    }
+    .order-md-7 {
+        order: 7;
+    }
+    .order-md-8 {
+        order: 8;
+    }
+    .order-md-9 {
+        order: 9;
+    }
+    .order-md-10 {
+        order: 10;
+    }
+    .order-md-11 {
+        order: 11;
+    }
+    .order-md-12 {
+        order: 12;
+    }
+    .offset-md-0 {
+        margin-left: 0;
+    }
+    .offset-md-1 {
+        margin-left: 8.333333%;
+    }
+    .offset-md-2 {
+        margin-left: 16.666667%;
+    }
+    .offset-md-3 {
+        margin-left: 25%;
+    }
+    .offset-md-4 {
+        margin-left: 33.333333%;
+    }
+    .offset-md-5 {
+        margin-left: 41.666667%;
+    }
+    .offset-md-6 {
+        margin-left: 50%;
+    }
+    .offset-md-7 {
+        margin-left: 58.333333%;
+    }
+    .offset-md-8 {
+        margin-left: 66.666667%;
+    }
+    .offset-md-9 {
+        margin-left: 75%;
+    }
+    .offset-md-10 {
+        margin-left: 83.333333%;
+    }
+    .offset-md-11 {
+        margin-left: 91.666667%;
+    }
+}
+
+@media (min-width: 992px) {
+    .col-lg {
+        flex-basis: 0;
+        flex-grow: 1;
+        max-width: 100%;
+    }
+    .col-lg-auto {
+        flex: 0 0 auto;
+        width: auto;
+        max-width: none;
+    }
+    .col-lg-1 {
+        flex: 0 0 8.333333%;
+        max-width: 8.333333%;
+    }
+    .col-lg-2 {
+        flex: 0 0 16.666667%;
+        max-width: 16.666667%;
+    }
+    .col-lg-3 {
+        flex: 0 0 25%;
+        max-width: 25%;
+    }
+    .col-lg-4 {
+        flex: 0 0 33.333333%;
+        max-width: 33.333333%;
+    }
+    .col-lg-5 {
+        flex: 0 0 41.666667%;
+        max-width: 41.666667%;
+    }
+    .col-lg-6 {
+        flex: 0 0 50%;
+        max-width: 50%;
+    }
+    .col-lg-7 {
+        flex: 0 0 58.333333%;
+        max-width: 58.333333%;
+    }
+    .col-lg-8 {
+        flex: 0 0 66.666667%;
+        max-width: 66.666667%;
+    }
+    .col-lg-9 {
+        flex: 0 0 75%;
+        max-width: 75%;
+    }
+    .col-lg-10 {
+        flex: 0 0 83.333333%;
+        max-width: 83.333333%;
+    }
+    .col-lg-11 {
+        flex: 0 0 91.666667%;
+        max-width: 91.666667%;
+    }
+    .col-lg-12 {
+        flex: 0 0 100%;
+        max-width: 100%;
+    }
+    .order-lg-first {
+        order: -1;
+    }
+    .order-lg-last {
+        order: 13;
+    }
+    .order-lg-0 {
+        order: 0;
+    }
+    .order-lg-1 {
+        order: 1;
+    }
+    .order-lg-2 {
+        order: 2;
+    }
+    .order-lg-3 {
+        order: 3;
+    }
+    .order-lg-4 {
+        order: 4;
+    }
+    .order-lg-5 {
+        order: 5;
+    }
+    .order-lg-6 {
+        order: 6;
+    }
+    .order-lg-7 {
+        order: 7;
+    }
+    .order-lg-8 {
+        order: 8;
+    }
+    .order-lg-9 {
+        order: 9;
+    }
+    .order-lg-10 {
+        order: 10;
+    }
+    .order-lg-11 {
+        order: 11;
+    }
+    .order-lg-12 {
+        order: 12;
+    }
+    .offset-lg-0 {
+        margin-left: 0;
+    }
+    .offset-lg-1 {
+        margin-left: 8.333333%;
+    }
+    .offset-lg-2 {
+        margin-left: 16.666667%;
+    }
+    .offset-lg-3 {
+        margin-left: 25%;
+    }
+    .offset-lg-4 {
+        margin-left: 33.333333%;
+    }
+    .offset-lg-5 {
+        margin-left: 41.666667%;
+    }
+    .offset-lg-6 {
+        margin-left: 50%;
+    }
+    .offset-lg-7 {
+        margin-left: 58.333333%;
+    }
+    .offset-lg-8 {
+        margin-left: 66.666667%;
+    }
+    .offset-lg-9 {
+        margin-left: 75%;
+    }
+    .offset-lg-10 {
+        margin-left: 83.333333%;
+    }
+    .offset-lg-11 {
+        margin-left: 91.666667%;
+    }
+}
+
+@media (min-width: 1200px) {
+    .col-xl {
+        flex-basis: 0;
+        flex-grow: 1;
+        max-width: 100%;
+    }
+    .col-xl-auto {
+        flex: 0 0 auto;
+        width: auto;
+        max-width: none;
+    }
+    .col-xl-1 {
+        flex: 0 0 8.333333%;
+        max-width: 8.333333%;
+    }
+    .col-xl-2 {
+        flex: 0 0 16.666667%;
+        max-width: 16.666667%;
+    }
+    .col-xl-3 {
+        flex: 0 0 25%;
+        max-width: 25%;
+    }
+    .col-xl-4 {
+        flex: 0 0 33.333333%;
+        max-width: 33.333333%;
+    }
+    .col-xl-5 {
+        flex: 0 0 41.666667%;
+        max-width: 41.666667%;
+    }
+    .col-xl-6 {
+        flex: 0 0 50%;
+        max-width: 50%;
+    }
+    .col-xl-7 {
+        flex: 0 0 58.333333%;
+        max-width: 58.333333%;
+    }
+    .col-xl-8 {
+        flex: 0 0 66.666667%;
+        max-width: 66.666667%;
+    }
+    .col-xl-9 {
+        flex: 0 0 75%;
+        max-width: 75%;
+    }
+    .col-xl-10 {
+        flex: 0 0 83.333333%;
+        max-width: 83.333333%;
+    }
+    .col-xl-11 {
+        flex: 0 0 91.666667%;
+        max-width: 91.666667%;
+    }
+    .col-xl-12 {
+        flex: 0 0 100%;
+        max-width: 100%;
+    }
+    .order-xl-first {
+        order: -1;
+    }
+    .order-xl-last {
+        order: 13;
+    }
+    .order-xl-0 {
+        order: 0;
+    }
+    .order-xl-1 {
+        order: 1;
+    }
+    .order-xl-2 {
+        order: 2;
+    }
+    .order-xl-3 {
+        order: 3;
+    }
+    .order-xl-4 {
+        order: 4;
+    }
+    .order-xl-5 {
+        order: 5;
+    }
+    .order-xl-6 {
+        order: 6;
+    }
+    .order-xl-7 {
+        order: 7;
+    }
+    .order-xl-8 {
+        order: 8;
+    }
+    .order-xl-9 {
+        order: 9;
+    }
+    .order-xl-10 {
+        order: 10;
+    }
+    .order-xl-11 {
+        order: 11;
+    }
+    .order-xl-12 {
+        order: 12;
+    }
+    .offset-xl-0 {
+        margin-left: 0;
+    }
+    .offset-xl-1 {
+        margin-left: 8.333333%;
+    }
+    .offset-xl-2 {
+        margin-left: 16.666667%;
+    }
+    .offset-xl-3 {
+        margin-left: 25%;
+    }
+    .offset-xl-4 {
+        margin-left: 33.333333%;
+    }
+    .offset-xl-5 {
+        margin-left: 41.666667%;
+    }
+    .offset-xl-6 {
+        margin-left: 50%;
+    }
+    .offset-xl-7 {
+        margin-left: 58.333333%;
+    }
+    .offset-xl-8 {
+        margin-left: 66.666667%;
+    }
+    .offset-xl-9 {
+        margin-left: 75%;
+    }
+    .offset-xl-10 {
+        margin-left: 83.333333%;
+    }
+    .offset-xl-11 {
+        margin-left: 91.666667%;
+    }
+}
+
+.table {
+    width: 100%;
+    max-width: 100%;
+    margin-bottom: 1rem;
+    background-color: transparent;
+}
+
+.table th,
+.table td {
+    padding: 0.75rem;
+    vertical-align: top;
+    border-top: 1px solid rgba(0, 0, 0, 0.06);
+}
+
+.table thead th {
+    vertical-align: bottom;
+    border-bottom: 2px solid rgba(0, 0, 0, 0.06);
+}
+
+.table tbody+tbody {
+    border-top: 2px solid rgba(0, 0, 0, 0.06);
+}
+
+.table .table {
+    background-color: #fafafa;
+}
+
+.table-sm th,
+.table-sm td {
+    padding: 0.3rem;
+}
+
+.table-bordered {
+    border: 1px solid rgba(0, 0, 0, 0.06);
+}
+
+.table-bordered th,
+.table-bordered td {
+    border: 1px solid rgba(0, 0, 0, 0.06);
+}
+
+.table-bordered thead th,
+.table-bordered thead td {
+    border-bottom-width: 2px;
+}
+
+.table-striped tbody tr:nth-of-type(odd) {
+    background-color: rgba(0, 0, 0, 0.05);
+}
+
+.table-hover tbody tr:hover {
+    background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-primary,
+.table-primary>th,
+.table-primary>td {
+    background-color: #c1e2fc;
+}
+
+.table-hover .table-primary:hover {
+    background-color: #a9d7fb;
+}
+
+.table-hover .table-primary:hover>td,
+.table-hover .table-primary:hover>th {
+    background-color: #a9d7fb;
+}
+
+.table-secondary,
+.table-secondary>th,
+.table-secondary>td {
+    background-color: #d6d8db;
+}
+
+.table-hover .table-secondary:hover {
+    background-color: #c8cbcf;
+}
+
+.table-hover .table-secondary:hover>td,
+.table-hover .table-secondary:hover>th {
+    background-color: #c8cbcf;
+}
+
+.table-success,
+.table-success>th,
+.table-success>td {
+    background-color: #cde9ce;
+}
+
+.table-hover .table-success:hover {
+    background-color: #bbe1bd;
+}
+
+.table-hover .table-success:hover>td,
+.table-hover .table-success:hover>th {
+    background-color: #bbe1bd;
+}
+
+.table-info,
+.table-info>th,
+.table-info>td {
+    background-color: #b8ecf3;
+}
+
+.table-hover .table-info:hover {
+    background-color: #a2e6ef;
+}
+
+.table-hover .table-info:hover>td,
+.table-hover .table-info:hover>th {
+    background-color: #a2e6ef;
+}
+
+.table-warning,
+.table-warning>th,
+.table-warning>td {
+    background-color: #fff9c8;
+}
+
+.table-hover .table-warning:hover {
+    background-color: #fff6af;
+}
+
+.table-hover .table-warning:hover>td,
+.table-hover .table-warning:hover>th {
+    background-color: #fff6af;
+}
+
+.table-danger,
+.table-danger>th,
+.table-danger>td {
+    background-color: #fccac7;
+}
+
+.table-hover .table-danger:hover {
+    background-color: #fbb3af;
+}
+
+.table-hover .table-danger:hover>td,
+.table-hover .table-danger:hover>th {
+    background-color: #fbb3af;
+}
+
+.table-light,
+.table-light>th,
+.table-light>td {
+    background-color: #fdfdfe;
+}
+
+.table-hover .table-light:hover {
+    background-color: #ececf6;
+}
+
+.table-hover .table-light:hover>td,
+.table-hover .table-light:hover>th {
+    background-color: #ececf6;
+}
+
+.table-dark,
+.table-dark>th,
+.table-dark>td {
+    background-color: #c6c8ca;
+}
+
+.table-hover .table-dark:hover {
+    background-color: #b9bbbe;
+}
+
+.table-hover .table-dark:hover>td,
+.table-hover .table-dark:hover>th {
+    background-color: #b9bbbe;
+}
+
+.table-active,
+.table-active>th,
+.table-active>td {
+    background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-hover .table-active:hover {
+    background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table-hover .table-active:hover>td,
+.table-hover .table-active:hover>th {
+    background-color: rgba(0, 0, 0, 0.075);
+}
+
+.table .thead-dark th {
+    color: #fafafa;
+    background-color: #212529;
+    border-color: #32383e;
+}
+
+.table .thead-light th {
+    color: #495057;
+    background-color: #e9ecef;
+    border-color: rgba(0, 0, 0, 0.06);
+}
+
+.table-dark {
+    color: #fafafa;
+    background-color: #212529;
+}
+
+.table-dark th,
+.table-dark td,
+.table-dark thead th {
+    border-color: #32383e;
+}
+
+.table-dark.table-bordered {
+    border: 0;
+}
+
+.table-dark.table-striped tbody tr:nth-of-type(odd) {
+    background-color: rgba(255, 255, 255, 0.05);
+}
+
+.table-dark.table-hover tbody tr:hover {
+    background-color: rgba(255, 255, 255, 0.075);
+}
+
+@media (max-width: 575.98px) {
+    .table-responsive-sm {
+        display: block;
+        width: 100%;
+        overflow-x: auto;
+        -webkit-overflow-scrolling: touch;
+        -ms-overflow-style: -ms-autohiding-scrollbar;
+    }
+    .table-responsive-sm>.table-bordered {
+        border: 0;
+    }
+}
+
+@media (max-width: 767.98px) {
+    .table-responsive-md {
+        display: block;
+        width: 100%;
+        overflow-x: auto;
+        -webkit-overflow-scrolling: touch;
+        -ms-overflow-style: -ms-autohiding-scrollbar;
+    }
+    .table-responsive-md>.table-bordered {
+        border: 0;
+    }
+}
+
+@media (max-width: 991.98px) {
+    .table-responsive-lg {
+        display: block;
+        width: 100%;
+        overflow-x: auto;
+        -webkit-overflow-scrolling: touch;
+        -ms-overflow-style: -ms-autohiding-scrollbar;
+    }
+    .table-responsive-lg>.table-bordered {
+        border: 0;
+    }
+}
+
+@media (max-width: 1199.98px) {
+    .table-responsive-xl {
+        display: block;
+        width: 100%;
+        overflow-x: auto;
+        -webkit-overflow-scrolling: touch;
+        -ms-overflow-style: -ms-autohiding-scrollbar;
+    }
+    .table-responsive-xl>.table-bordered {
+        border: 0;
+    }
+}
+
+.table-responsive {
+    display: block;
+    width: 100%;
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+    -ms-overflow-style: -ms-autohiding-scrollbar;
+}
+
+.table-responsive>.table-bordered {
+    border: 0;
+}
+
+.form-control {
+    display: block;
+    width: 100%;
+    padding: 0.4375rem 0;
+    font-size: 1rem;
+    line-height: 1.5;
+    color: #495057;
+    background-color: transparent;
+    background-clip: padding-box;
+    border: 1px solid #d2d2d2;
+    border-radius: 0;
+    box-shadow: none;
+    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+
+.form-control::-ms-expand {
+    background-color: transparent;
+    border: 0;
+}
+
+.form-control:focus {
+    color: #495057;
+    background-color: transparent;
+    border-color: #9acffa;
+    outline: 0;
+    box-shadow: none, 0 0 0 0.2rem rgba(33, 150, 243, 0.25);
+}
+
+.form-control::placeholder {
+    color: #6c757d;
+    opacity: 1;
+}
+
+.form-control:disabled,
+.form-control[readonly] {
+    background-color: #e9ecef;
+    opacity: 1;
+}
+
+select.form-control:not([size]):not([multiple]) {
+    height: calc(2.4375rem + 2px);
+}
+
+select.form-control:focus::-ms-value {
+    color: #495057;
+    background-color: transparent;
+}
+
+.form-control-file,
+.form-control-range {
+    display: block;
+    width: 100%;
+}
+
+.col-form-label {
+    padding-top: calc(0.4375rem + 1px);
+    padding-bottom: calc(0.4375rem + 1px);
+    margin-bottom: 0;
+    font-size: inherit;
+    line-height: 1.5;
+}
+
+.col-form-label-lg {
+    padding-top: calc(0.5625rem + 1px);
+    padding-bottom: calc(0.5625rem + 1px);
+    font-size: 1.25rem;
+    line-height: 1.5;
+}
+
+.col-form-label-sm {
+    padding-top: calc(0.25rem + 1px);
+    padding-bottom: calc(0.25rem + 1px);
+    font-size: 0.875rem;
+    line-height: 1.5;
+}
+
+.form-control-plaintext {
+    display: block;
+    width: 100%;
+    padding-top: 0.4375rem;
+    padding-bottom: 0.4375rem;
+    margin-bottom: 0;
+    line-height: 1.5;
+    background-color: transparent;
+    border: solid transparent;
+    border-width: 1px 0;
+}
+
+.form-control-plaintext.form-control-sm,
+.input-group-sm>.form-control-plaintext.form-control,
+.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text,
+.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,
+.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,
+.input-group-sm>.input-group-append>.form-control-plaintext.btn,
+.form-control-plaintext.form-control-lg,
+.input-group-lg>.form-control-plaintext.form-control,
+.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,
+.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,
+.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,
+.input-group-lg>.input-group-append>.form-control-plaintext.btn {
+    padding-right: 0;
+    padding-left: 0;
+}
+
+.form-control-sm,
+.input-group-sm>.form-control,
+.input-group-sm>.input-group-prepend>.input-group-text,
+.input-group-sm>.input-group-append>.input-group-text,
+.input-group-sm>.input-group-prepend>.btn,
+.input-group-sm>.input-group-append>.btn {
+    padding: 0.25rem 0;
+    font-size: 0.875rem;
+    line-height: 1.5;
+    border-radius: 0.2rem;
+}
+
+select.form-control-sm:not([size]):not([multiple]),
+.input-group-sm>select.form-control:not([size]):not([multiple]),
+.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),
+.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),
+.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),
+.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]) {
+    height: calc(2.125rem + 2px);
+}
+
+.form-control-lg,
+.input-group-lg>.form-control,
+.input-group-lg>.input-group-prepend>.input-group-text,
+.input-group-lg>.input-group-append>.input-group-text,
+.input-group-lg>.input-group-prepend>.btn,
+.input-group-lg>.input-group-append>.btn {
+    padding: 0.5625rem 0;
+    font-size: 1.25rem;
+    line-height: 1.5;
+    border-radius: 0.3rem;
+}
+
+select.form-control-lg:not([size]):not([multiple]),
+.input-group-lg>select.form-control:not([size]):not([multiple]),
+.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),
+.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),
+.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),
+.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]) {
+    height: calc(4.125rem + 2px);
+}
+
+.form-group {
+    margin-bottom: 1rem;
+}
+
+.form-text {
+    display: block;
+    margin-top: 0.25rem;
+}
+
+.form-row {
+    display: flex;
+    flex-wrap: wrap;
+    margin-right: -5px;
+    margin-left: -5px;
+}
+
+.form-row>.col,
+.form-row>[class*="col-"] {
+    padding-right: 5px;
+    padding-left: 5px;
+}
+
+.form-check {
+    position: relative;
+    display: block;
+    padding-left: 1.25rem;
+}
+
+.form-check-input {
+    position: absolute;
+    margin-top: 0.3rem;
+    margin-left: -1.25rem;
+}
+
+.form-check-input:disabled~.form-check-label {
+    color: #6c757d;
+}
+
+.form-check-label {
+    margin-bottom: 0;
+}
+
+.form-check-inline {
+    display: inline-flex;
+    align-items: center;
+    padding-left: 0;
+    margin-right: 0.75rem;
+}
+
+.form-check-inline .form-check-input {
+    position: static;
+    margin-top: 0;
+    margin-right: 0.3125rem;
+    margin-left: 0;
+}
+
+.valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #4caf50;
+}
+
+.valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(76, 175, 80, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .form-control:valid,
+.form-control.is-valid,
+.was-validated .custom-select:valid,
+.custom-select.is-valid {
+    border-color: #4caf50;
+}
+
+.was-validated .form-control:valid:focus,
+.form-control.is-valid:focus,
+.was-validated .custom-select:valid:focus,
+.custom-select.is-valid:focus {
+    border-color: #4caf50;
+    box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25);
+}
+
+.was-validated .form-control:valid~.valid-feedback,
+.was-validated .form-control:valid~.valid-tooltip,
+.form-control.is-valid~.valid-feedback,
+.form-control.is-valid~.valid-tooltip,
+.was-validated .custom-select:valid~.valid-feedback,
+.was-validated .custom-select:valid~.valid-tooltip,
+.custom-select.is-valid~.valid-feedback,
+.custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .form-check-input:valid~.form-check-label,
+.form-check-input.is-valid~.form-check-label {
+    color: #4caf50;
+}
+
+.was-validated .form-check-input:valid~.valid-feedback,
+.was-validated .form-check-input:valid~.valid-tooltip,
+.form-check-input.is-valid~.valid-feedback,
+.form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .custom-control-input:valid~.custom-control-label,
+.custom-control-input.is-valid~.custom-control-label {
+    color: #4caf50;
+}
+
+.was-validated .custom-control-input:valid~.custom-control-label::before,
+.custom-control-input.is-valid~.custom-control-label::before {
+    background-color: #a3d7a5;
+}
+
+.was-validated .custom-control-input:valid~.valid-feedback,
+.was-validated .custom-control-input:valid~.valid-tooltip,
+.custom-control-input.is-valid~.valid-feedback,
+.custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .custom-control-input:valid:checked~.custom-control-label::before,
+.custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: #6ec071;
+}
+
+.was-validated .custom-control-input:valid:focus~.custom-control-label::before,
+.custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(76, 175, 80, 0.25);
+}
+
+.was-validated .custom-file-input:valid~.custom-file-label,
+.custom-file-input.is-valid~.custom-file-label {
+    border-color: #4caf50;
+}
+
+.was-validated .custom-file-input:valid~.custom-file-label::before,
+.custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .custom-file-input:valid~.valid-feedback,
+.was-validated .custom-file-input:valid~.valid-tooltip,
+.custom-file-input.is-valid~.valid-feedback,
+.custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .custom-file-input:valid:focus~.custom-file-label,
+.custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25);
+}
+
+.invalid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #f44336;
+}
+
+.invalid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(244, 67, 54, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .form-control:invalid,
+.form-control.is-invalid,
+.was-validated .custom-select:invalid,
+.custom-select.is-invalid {
+    border-color: #f44336;
+}
+
+.was-validated .form-control:invalid:focus,
+.form-control.is-invalid:focus,
+.was-validated .custom-select:invalid:focus,
+.custom-select.is-invalid:focus {
+    border-color: #f44336;
+    box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25);
+}
+
+.was-validated .form-control:invalid~.invalid-feedback,
+.was-validated .form-control:invalid~.invalid-tooltip,
+.form-control.is-invalid~.invalid-feedback,
+.form-control.is-invalid~.invalid-tooltip,
+.was-validated .custom-select:invalid~.invalid-feedback,
+.was-validated .custom-select:invalid~.invalid-tooltip,
+.custom-select.is-invalid~.invalid-feedback,
+.custom-select.is-invalid~.invalid-tooltip {
+    display: block;
+}
+
+.was-validated .form-check-input:invalid~.form-check-label,
+.form-check-input.is-invalid~.form-check-label {
+    color: #f44336;
+}
+
+.was-validated .form-check-input:invalid~.invalid-feedback,
+.was-validated .form-check-input:invalid~.invalid-tooltip,
+.form-check-input.is-invalid~.invalid-feedback,
+.form-check-input.is-invalid~.invalid-tooltip {
+    display: block;
+}
+
+.was-validated .custom-control-input:invalid~.custom-control-label,
+.custom-control-input.is-invalid~.custom-control-label {
+    color: #f44336;
+}
+
+.was-validated .custom-control-input:invalid~.custom-control-label::before,
+.custom-control-input.is-invalid~.custom-control-label::before {
+    background-color: #fbb4af;
+}
+
+.was-validated .custom-control-input:invalid~.invalid-feedback,
+.was-validated .custom-control-input:invalid~.invalid-tooltip,
+.custom-control-input.is-invalid~.invalid-feedback,
+.custom-control-input.is-invalid~.invalid-tooltip {
+    display: block;
+}
+
+.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,
+.custom-control-input.is-invalid:checked~.custom-control-label::before {
+    background-color: #f77066;
+}
+
+.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,
+.custom-control-input.is-invalid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(244, 67, 54, 0.25);
+}
+
+.was-validated .custom-file-input:invalid~.custom-file-label,
+.custom-file-input.is-invalid~.custom-file-label {
+    border-color: #f44336;
+}
+
+.was-validated .custom-file-input:invalid~.custom-file-label::before,
+.custom-file-input.is-invalid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .custom-file-input:invalid~.invalid-feedback,
+.was-validated .custom-file-input:invalid~.invalid-tooltip,
+.custom-file-input.is-invalid~.invalid-feedback,
+.custom-file-input.is-invalid~.invalid-tooltip {
+    display: block;
+}
+
+.was-validated .custom-file-input:invalid:focus~.custom-file-label,
+.custom-file-input.is-invalid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25);
+}
+
+.form-inline {
+    display: flex;
+    flex-flow: row wrap;
+    align-items: center;
+}
+
+.form-inline .form-check {
+    width: 100%;
+}
+
+@media (min-width: 576px) {
+    .form-inline label {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-bottom: 0;
+    }
+    .form-inline .form-group {
+        display: flex;
+        flex: 0 0 auto;
+        flex-flow: row wrap;
+        align-items: center;
+        margin-bottom: 0;
+    }
+    .form-inline .form-control {
+        display: inline-block;
+        width: auto;
+        vertical-align: middle;
+    }
+    .form-inline .form-control-plaintext {
+        display: inline-block;
+    }
+    .form-inline .input-group {
+        width: auto;
+    }
+    .form-inline .form-check {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: auto;
+        padding-left: 0;
+    }
+    .form-inline .form-check-input {
+        position: relative;
+        margin-top: 0;
+        margin-right: 0.25rem;
+        margin-left: 0;
+    }
+    .form-inline .custom-control {
+        align-items: center;
+        justify-content: center;
+    }
+    .form-inline .custom-control-label {
+        margin-bottom: 0;
+    }
+}
+
+.btn {
+    display: inline-block;
+    font-weight: 400;
+    text-align: center;
+    white-space: nowrap;
+    vertical-align: middle;
+    user-select: none;
+    border: 1px solid transparent;
+    padding: 0.46875rem 1rem;
+    font-size: 1rem;
+    line-height: 1.5;
+    border-radius: 0.25rem;
+    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+
+.btn:hover,
+.btn:focus {
+    text-decoration: none;
+}
+
+.btn:focus,
+.btn.focus {
+    outline: 0;
+    box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25);
+}
+
+.btn.disabled,
+.btn:disabled {
+    opacity: 0.65;
+    box-shadow: none;
+}
+
+.btn:not(:disabled):not(.disabled) {
+    cursor: pointer;
+}
+
+.btn:not(:disabled):not(.disabled):active,
+.btn:not(:disabled):not(.disabled).active {
+    background-image: none;
+    box-shadow: none;
+}
+
+.btn:not(:disabled):not(.disabled):active:focus,
+.btn:not(:disabled):not(.disabled).active:focus {
+    box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25), none;
+}
+
+a.btn.disabled,
+fieldset:disabled a.btn {
+    pointer-events: none;
+}
+
+.btn-primary {
+    color: #ffffff;
+    background-color: #2196f3;
+    border-color: #2196f3;
+    box-shadow: none;
+}
+
+.btn-primary:hover {
+    color: #ffffff;
+    background-color: #0c83e2;
+    border-color: #0c7cd5;
+}
+
+.btn-primary:focus,
+.btn-primary.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(33, 150, 243, 0.5);
+}
+
+.btn-primary.disabled,
+.btn-primary:disabled {
+    color: #ffffff;
+    background-color: #2196f3;
+    border-color: #2196f3;
+}
+
+.btn-primary:not(:disabled):not(.disabled):active,
+.btn-primary:not(:disabled):not(.disabled).active,
+.show>.btn-primary.dropdown-toggle {
+    color: #ffffff;
+    background-color: #0c7cd5;
+    border-color: #0b75c9;
+}
+
+.btn-primary:not(:disabled):not(.disabled):active:focus,
+.btn-primary:not(:disabled):not(.disabled).active:focus,
+.show>.btn-primary.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(33, 150, 243, 0.5);
+}
+
+.btn-secondary {
+    color: #ffffff;
+    background-color: #6c757d;
+    border-color: #6c757d;
+    box-shadow: none;
+}
+
+.btn-secondary:hover {
+    color: #ffffff;
+    background-color: #5a6268;
+    border-color: #545b62;
+}
+
+.btn-secondary:focus,
+.btn-secondary.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
+}
+
+.btn-secondary.disabled,
+.btn-secondary:disabled {
+    color: #ffffff;
+    background-color: #6c757d;
+    border-color: #6c757d;
+}
+
+.btn-secondary:not(:disabled):not(.disabled):active,
+.btn-secondary:not(:disabled):not(.disabled).active,
+.show>.btn-secondary.dropdown-toggle {
+    color: #ffffff;
+    background-color: #545b62;
+    border-color: #4e555b;
+}
+
+.btn-secondary:not(:disabled):not(.disabled):active:focus,
+.btn-secondary:not(:disabled):not(.disabled).active:focus,
+.show>.btn-secondary.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
+}
+
+.btn-success {
+    color: #ffffff;
+    background-color: #4caf50;
+    border-color: #4caf50;
+    box-shadow: none;
+}
+
+.btn-success:hover {
+    color: #ffffff;
+    background-color: #409444;
+    border-color: #3d8b40;
+}
+
+.btn-success:focus,
+.btn-success.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(76, 175, 80, 0.5);
+}
+
+.btn-success.disabled,
+.btn-success:disabled {
+    color: #ffffff;
+    background-color: #4caf50;
+    border-color: #4caf50;
+}
+
+.btn-success:not(:disabled):not(.disabled):active,
+.btn-success:not(:disabled):not(.disabled).active,
+.show>.btn-success.dropdown-toggle {
+    color: #ffffff;
+    background-color: #3d8b40;
+    border-color: #39833c;
+}
+
+.btn-success:not(:disabled):not(.disabled):active:focus,
+.btn-success:not(:disabled):not(.disabled).active:focus,
+.show>.btn-success.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(76, 175, 80, 0.5);
+}
+
+.btn-info {
+    color: #ffffff;
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+    box-shadow: none;
+}
+
+.btn-info:hover {
+    color: #ffffff;
+    background-color: #009aae;
+    border-color: #008fa1;
+}
+
+.btn-info:focus,
+.btn-info.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(0, 188, 212, 0.5);
+}
+
+.btn-info.disabled,
+.btn-info:disabled {
+    color: #ffffff;
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+}
+
+.btn-info:not(:disabled):not(.disabled):active,
+.btn-info:not(:disabled):not(.disabled).active,
+.show>.btn-info.dropdown-toggle {
+    color: #ffffff;
+    background-color: #008fa1;
+    border-color: #008394;
+}
+
+.btn-info:not(:disabled):not(.disabled):active:focus,
+.btn-info:not(:disabled):not(.disabled).active:focus,
+.show>.btn-info.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(0, 188, 212, 0.5);
+}
+
+.btn-warning {
+    color: #212529;
+    background-color: #ffeb3b;
+    border-color: #ffeb3b;
+    box-shadow: none;
+}
+
+.btn-warning:hover {
+    color: #212529;
+    background-color: #ffe715;
+    border-color: #ffe608;
+}
+
+.btn-warning:focus,
+.btn-warning.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(255, 235, 59, 0.5);
+}
+
+.btn-warning.disabled,
+.btn-warning:disabled {
+    color: #212529;
+    background-color: #ffeb3b;
+    border-color: #ffeb3b;
+}
+
+.btn-warning:not(:disabled):not(.disabled):active,
+.btn-warning:not(:disabled):not(.disabled).active,
+.show>.btn-warning.dropdown-toggle {
+    color: #212529;
+    background-color: #ffe608;
+    border-color: #fae100;
+}
+
+.btn-warning:not(:disabled):not(.disabled):active:focus,
+.btn-warning:not(:disabled):not(.disabled).active:focus,
+.show>.btn-warning.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(255, 235, 59, 0.5);
+}
+
+.btn-danger {
+    color: #ffffff;
+    background-color: #f44336;
+    border-color: #f44336;
+    box-shadow: none;
+}
+
+.btn-danger:hover {
+    color: #ffffff;
+    background-color: #f22112;
+    border-color: #ea1c0d;
+}
+
+.btn-danger:focus,
+.btn-danger.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(244, 67, 54, 0.5);
+}
+
+.btn-danger.disabled,
+.btn-danger:disabled {
+    color: #ffffff;
+    background-color: #f44336;
+    border-color: #f44336;
+}
+
+.btn-danger:not(:disabled):not(.disabled):active,
+.btn-danger:not(:disabled):not(.disabled).active,
+.show>.btn-danger.dropdown-toggle {
+    color: #ffffff;
+    background-color: #ea1c0d;
+    border-color: #de1b0c;
+}
+
+.btn-danger:not(:disabled):not(.disabled):active:focus,
+.btn-danger:not(:disabled):not(.disabled).active:focus,
+.show>.btn-danger.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(244, 67, 54, 0.5);
+}
+
+.btn-light {
+    color: #212529;
+    background-color: #f8f9fa;
+    border-color: #f8f9fa;
+    box-shadow: none;
+}
+
+.btn-light:hover {
+    color: #212529;
+    background-color: #e2e6ea;
+    border-color: #dae0e5;
+}
+
+.btn-light:focus,
+.btn-light.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-light.disabled,
+.btn-light:disabled {
+    color: #212529;
+    background-color: #f8f9fa;
+    border-color: #f8f9fa;
+}
+
+.btn-light:not(:disabled):not(.disabled):active,
+.btn-light:not(:disabled):not(.disabled).active,
+.show>.btn-light.dropdown-toggle {
+    color: #212529;
+    background-color: #dae0e5;
+    border-color: #d3d9df;
+}
+
+.btn-light:not(:disabled):not(.disabled):active:focus,
+.btn-light:not(:disabled):not(.disabled).active:focus,
+.show>.btn-light.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-dark {
+    color: #ffffff;
+    background-color: #343a40;
+    border-color: #343a40;
+    box-shadow: none;
+}
+
+.btn-dark:hover {
+    color: #ffffff;
+    background-color: #23272b;
+    border-color: #1d2124;
+}
+
+.btn-dark:focus,
+.btn-dark.focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-dark.disabled,
+.btn-dark:disabled {
+    color: #ffffff;
+    background-color: #343a40;
+    border-color: #343a40;
+}
+
+.btn-dark:not(:disabled):not(.disabled):active,
+.btn-dark:not(:disabled):not(.disabled).active,
+.show>.btn-dark.dropdown-toggle {
+    color: #ffffff;
+    background-color: #1d2124;
+    border-color: #171a1d;
+}
+
+.btn-dark:not(:disabled):not(.disabled):active:focus,
+.btn-dark:not(:disabled):not(.disabled).active:focus,
+.show>.btn-dark.dropdown-toggle:focus {
+    box-shadow: none, 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-outline-primary {
+    color: #2196f3;
+    background-color: transparent;
+    background-image: none;
+    border-color: #2196f3;
+}
+
+.btn-outline-primary:hover {
+    color: #ffffff;
+    background-color: #2196f3;
+    border-color: #2196f3;
+}
+
+.btn-outline-primary:focus,
+.btn-outline-primary.focus {
+    box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.5);
+}
+
+.btn-outline-primary.disabled,
+.btn-outline-primary:disabled {
+    color: #2196f3;
+    background-color: transparent;
+}
+
+.btn-outline-primary:not(:disabled):not(.disabled):active,
+.btn-outline-primary:not(:disabled):not(.disabled).active,
+.show>.btn-outline-primary.dropdown-toggle {
+    color: #ffffff;
+    background-color: #2196f3;
+    border-color: #2196f3;
+}
+
+.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
+.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-primary.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.5);
+}
+
+.btn-outline-secondary {
+    color: #6c757d;
+    background-color: transparent;
+    background-image: none;
+    border-color: #6c757d;
+}
+
+.btn-outline-secondary:hover {
+    color: #ffffff;
+    background-color: #6c757d;
+    border-color: #6c757d;
+}
+
+.btn-outline-secondary:focus,
+.btn-outline-secondary.focus {
+    box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
+}
+
+.btn-outline-secondary.disabled,
+.btn-outline-secondary:disabled {
+    color: #6c757d;
+    background-color: transparent;
+}
+
+.btn-outline-secondary:not(:disabled):not(.disabled):active,
+.btn-outline-secondary:not(:disabled):not(.disabled).active,
+.show>.btn-outline-secondary.dropdown-toggle {
+    color: #ffffff;
+    background-color: #6c757d;
+    border-color: #6c757d;
+}
+
+.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,
+.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-secondary.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
+}
+
+.btn-outline-success {
+    color: #4caf50;
+    background-color: transparent;
+    background-image: none;
+    border-color: #4caf50;
+}
+
+.btn-outline-success:hover {
+    color: #ffffff;
+    background-color: #4caf50;
+    border-color: #4caf50;
+}
+
+.btn-outline-success:focus,
+.btn-outline-success.focus {
+    box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.5);
+}
+
+.btn-outline-success.disabled,
+.btn-outline-success:disabled {
+    color: #4caf50;
+    background-color: transparent;
+}
+
+.btn-outline-success:not(:disabled):not(.disabled):active,
+.btn-outline-success:not(:disabled):not(.disabled).active,
+.show>.btn-outline-success.dropdown-toggle {
+    color: #ffffff;
+    background-color: #4caf50;
+    border-color: #4caf50;
+}
+
+.btn-outline-success:not(:disabled):not(.disabled):active:focus,
+.btn-outline-success:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-success.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.5);
+}
+
+.btn-outline-info {
+    color: #00bcd4;
+    background-color: transparent;
+    background-image: none;
+    border-color: #00bcd4;
+}
+
+.btn-outline-info:hover {
+    color: #ffffff;
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+}
+
+.btn-outline-info:focus,
+.btn-outline-info.focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.5);
+}
+
+.btn-outline-info.disabled,
+.btn-outline-info:disabled {
+    color: #00bcd4;
+    background-color: transparent;
+}
+
+.btn-outline-info:not(:disabled):not(.disabled):active,
+.btn-outline-info:not(:disabled):not(.disabled).active,
+.show>.btn-outline-info.dropdown-toggle {
+    color: #ffffff;
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+}
+
+.btn-outline-info:not(:disabled):not(.disabled):active:focus,
+.btn-outline-info:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-info.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.5);
+}
+
+.btn-outline-warning {
+    color: #ffeb3b;
+    background-color: transparent;
+    background-image: none;
+    border-color: #ffeb3b;
+}
+
+.btn-outline-warning:hover {
+    color: #212529;
+    background-color: #ffeb3b;
+    border-color: #ffeb3b;
+}
+
+.btn-outline-warning:focus,
+.btn-outline-warning.focus {
+    box-shadow: 0 0 0 0.2rem rgba(255, 235, 59, 0.5);
+}
+
+.btn-outline-warning.disabled,
+.btn-outline-warning:disabled {
+    color: #ffeb3b;
+    background-color: transparent;
+}
+
+.btn-outline-warning:not(:disabled):not(.disabled):active,
+.btn-outline-warning:not(:disabled):not(.disabled).active,
+.show>.btn-outline-warning.dropdown-toggle {
+    color: #212529;
+    background-color: #ffeb3b;
+    border-color: #ffeb3b;
+}
+
+.btn-outline-warning:not(:disabled):not(.disabled):active:focus,
+.btn-outline-warning:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-warning.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(255, 235, 59, 0.5);
+}
+
+.btn-outline-danger {
+    color: #f44336;
+    background-color: transparent;
+    background-image: none;
+    border-color: #f44336;
+}
+
+.btn-outline-danger:hover {
+    color: #ffffff;
+    background-color: #f44336;
+    border-color: #f44336;
+}
+
+.btn-outline-danger:focus,
+.btn-outline-danger.focus {
+    box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.5);
+}
+
+.btn-outline-danger.disabled,
+.btn-outline-danger:disabled {
+    color: #f44336;
+    background-color: transparent;
+}
+
+.btn-outline-danger:not(:disabled):not(.disabled):active,
+.btn-outline-danger:not(:disabled):not(.disabled).active,
+.show>.btn-outline-danger.dropdown-toggle {
+    color: #ffffff;
+    background-color: #f44336;
+    border-color: #f44336;
+}
+
+.btn-outline-danger:not(:disabled):not(.disabled):active:focus,
+.btn-outline-danger:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-danger.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.5);
+}
+
+.btn-outline-light {
+    color: #f8f9fa;
+    background-color: transparent;
+    background-image: none;
+    border-color: #f8f9fa;
+}
+
+.btn-outline-light:hover {
+    color: #212529;
+    background-color: #f8f9fa;
+    border-color: #f8f9fa;
+}
+
+.btn-outline-light:focus,
+.btn-outline-light.focus {
+    box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-outline-light.disabled,
+.btn-outline-light:disabled {
+    color: #f8f9fa;
+    background-color: transparent;
+}
+
+.btn-outline-light:not(:disabled):not(.disabled):active,
+.btn-outline-light:not(:disabled):not(.disabled).active,
+.show>.btn-outline-light.dropdown-toggle {
+    color: #212529;
+    background-color: #f8f9fa;
+    border-color: #f8f9fa;
+}
+
+.btn-outline-light:not(:disabled):not(.disabled):active:focus,
+.btn-outline-light:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-light.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
+}
+
+.btn-outline-dark {
+    color: #343a40;
+    background-color: transparent;
+    background-image: none;
+    border-color: #343a40;
+}
+
+.btn-outline-dark:hover {
+    color: #ffffff;
+    background-color: #343a40;
+    border-color: #343a40;
+}
+
+.btn-outline-dark:focus,
+.btn-outline-dark.focus {
+    box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-outline-dark.disabled,
+.btn-outline-dark:disabled {
+    color: #343a40;
+    background-color: transparent;
+}
+
+.btn-outline-dark:not(:disabled):not(.disabled):active,
+.btn-outline-dark:not(:disabled):not(.disabled).active,
+.show>.btn-outline-dark.dropdown-toggle {
+    color: #ffffff;
+    background-color: #343a40;
+    border-color: #343a40;
+}
+
+.btn-outline-dark:not(:disabled):not(.disabled):active:focus,
+.btn-outline-dark:not(:disabled):not(.disabled).active:focus,
+.show>.btn-outline-dark.dropdown-toggle:focus {
+    box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
+}
+
+.btn-link {
+    font-weight: 400;
+    color: #9c27b0;
+    background-color: transparent;
+}
+
+.btn-link:hover {
+    color: #0a6ebd;
+    text-decoration: underline;
+    background-color: transparent;
+    border-color: transparent;
+}
+
+.btn-link:focus,
+.btn-link.focus {
+    text-decoration: underline;
+    border-color: transparent;
+    box-shadow: none;
+}
+
+.btn-link:disabled,
+.btn-link.disabled {
+    color: #999;
+}
+
+.btn-lg,
+.btn-group-lg>.btn {
+    padding: 1.125rem 2.25rem;
+    font-size: 1.25rem;
+    line-height: 1.5;
+    border-radius: 0.3rem;
+}
+
+.btn-sm,
+.btn-group-sm>.btn {
+    padding: 0.40625rem 1.25rem;
+    font-size: 0.875rem;
+    line-height: 1.5;
+    border-radius: 0.1875rem;
+}
+
+.btn-block {
+    display: block;
+    width: 100%;
+}
+
+.btn-block+.btn-block {
+    margin-top: 0.5rem;
+}
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+    width: 100%;
+}
+
+.fade {
+    opacity: 0;
+    transition: opacity 0.15s linear;
+}
+
+.fade.show {
+    opacity: 1;
+}
+
+.collapse {
+    display: none;
+}
+
+.collapse.show {
+    display: block;
+}
+
+tr.collapse.show {
+    display: table-row;
+}
+
+tbody.collapse.show {
+    display: table-row-group;
+}
+
+.collapsing {
+    position: relative;
+    height: 0;
+    overflow: hidden;
+    transition: height 0.35s ease;
+}
+
+.dropup,
+.dropdown {
+    position: relative;
+}
+
+.dropdown-toggle::after {
+    display: inline-block;
+    width: 0;
+    height: 0;
+    margin-left: 0.255em;
+    vertical-align: 0.255em;
+    content: "";
+    border-top: 0.3em solid;
+    border-right: 0.3em solid transparent;
+    border-bottom: 0;
+    border-left: 0.3em solid transparent;
+}
+
+.dropdown-toggle:empty::after {
+    margin-left: 0;
+}
+
+.dropdown-menu {
+    position: absolute;
+    top: 100%;
+    left: 0;
+    z-index: 1000;
+    display: none;
+    float: left;
+    min-width: 10rem;
+    padding: 0.5rem 0;
+    margin: 0.125rem 0 0;
+    font-size: 1rem;
+    color: #212529;
+    text-align: left;
+    list-style: none;
+    background-color: #ffffff;
+    background-clip: padding-box;
+    border: 1px solid rgba(0, 0, 0, 0.15);
+    border-radius: 0.25rem;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.dropup .dropdown-menu {
+    margin-top: 0;
+    margin-bottom: 0.125rem;
+}
+
+.dropup .dropdown-toggle::after {
+    display: inline-block;
+    width: 0;
+    height: 0;
+    margin-left: 0.255em;
+    vertical-align: 0.255em;
+    content: "";
+    border-top: 0;
+    border-right: 0.3em solid transparent;
+    border-bottom: 0.3em solid;
+    border-left: 0.3em solid transparent;
+}
+
+.dropup .dropdown-toggle:empty::after {
+    margin-left: 0;
+}
+
+.dropright .dropdown-menu {
+    margin-top: 0;
+    margin-left: 0.125rem;
+}
+
+.dropright .dropdown-toggle::after {
+    display: inline-block;
+    width: 0;
+    height: 0;
+    margin-left: 0.255em;
+    vertical-align: 0.255em;
+    content: "";
+    border-top: 0.3em solid transparent;
+    border-bottom: 0.3em solid transparent;
+    border-left: 0.3em solid;
+}
+
+.dropright .dropdown-toggle:empty::after {
+    margin-left: 0;
+}
+
+.dropright .dropdown-toggle::after {
+    vertical-align: 0;
+}
+
+.dropleft .dropdown-menu {
+    margin-top: 0;
+    margin-right: 0.125rem;
+}
+
+.dropleft .dropdown-toggle::after {
+    display: inline-block;
+    width: 0;
+    height: 0;
+    margin-left: 0.255em;
+    vertical-align: 0.255em;
+    content: "";
+}
+
+.dropleft .dropdown-toggle::after {
+    display: none;
+}
+
+.dropleft .dropdown-toggle::before {
+    display: inline-block;
+    width: 0;
+    height: 0;
+    margin-right: 0.255em;
+    vertical-align: 0.255em;
+    content: "";
+    border-top: 0.3em solid transparent;
+    border-right: 0.3em solid;
+    border-bottom: 0.3em solid transparent;
+}
+
+.dropleft .dropdown-toggle:empty::after {
+    margin-left: 0;
+}
+
+.dropleft .dropdown-toggle::before {
+    vertical-align: 0;
+}
+
+.dropdown-divider {
+    height: 0;
+    margin: 0.5rem 0;
+    overflow: hidden;
+    border-top: 1px solid #e9ecef;
+}
+
+.dropdown-item {
+    display: block;
+    width: 100%;
+    padding: 0.625rem 1.25rem;
+    clear: both;
+    font-weight: 400;
+    color: #212529;
+    text-align: inherit;
+    white-space: nowrap;
+    background-color: transparent;
+    border: 0;
+}
+
+.dropdown-item:hover,
+.dropdown-item:focus {
+    color: #16181b;
+    text-decoration: none;
+    background-color: #f8f9fa;
+}
+
+.dropdown-item.active,
+.dropdown-item:active {
+    color: #ffffff;
+    text-decoration: none;
+    background-color: #2196f3;
+}
+
+.dropdown-item.disabled,
+.dropdown-item:disabled {
+    color: #6c757d;
+    background-color: transparent;
+}
+
+.dropdown-menu.show {
+    display: block;
+}
+
+.dropdown-header {
+    display: block;
+    padding: 0.5rem 1.25rem;
+    margin-bottom: 0;
+    font-size: 0.875rem;
+    color: #6c757d;
+    white-space: nowrap;
+}
+
+.btn-group,
+.btn-group-vertical {
+    position: relative;
+    display: inline-flex;
+    vertical-align: middle;
+}
+
+.btn-group>.btn,
+.btn-group-vertical>.btn {
+    position: relative;
+    flex: 0 1 auto;
+}
+
+.btn-group>.btn:hover,
+.btn-group-vertical>.btn:hover {
+    z-index: 1;
+}
+
+.btn-group>.btn:focus,
+.btn-group>.btn:active,
+.btn-group>.btn.active,
+.btn-group-vertical>.btn:focus,
+.btn-group-vertical>.btn:active,
+.btn-group-vertical>.btn.active {
+    z-index: 1;
+}
+
+.btn-group .btn+.btn,
+.btn-group .btn+.btn-group,
+.btn-group .btn-group+.btn,
+.btn-group .btn-group+.btn-group,
+.btn-group-vertical .btn+.btn,
+.btn-group-vertical .btn+.btn-group,
+.btn-group-vertical .btn-group+.btn,
+.btn-group-vertical .btn-group+.btn-group {
+    margin-left: -1px;
+}
+
+.btn-toolbar {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: flex-start;
+}
+
+.btn-toolbar .input-group {
+    width: auto;
+}
+
+.btn-group>.btn:first-child {
+    margin-left: 0;
+}
+
+.btn-group>.btn:not(:last-child):not(.dropdown-toggle),
+.btn-group>.btn-group:not(:last-child)>.btn {
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0;
+}
+
+.btn-group>.btn:not(:first-child),
+.btn-group>.btn-group:not(:first-child)>.btn {
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0;
+}
+
+.dropdown-toggle-split {
+    padding-right: 0.75rem;
+    padding-left: 0.75rem;
+}
+
+.dropdown-toggle-split::after {
+    margin-left: 0;
+}
+
+.btn-sm+.dropdown-toggle-split,
+.btn-group-sm>.btn+.dropdown-toggle-split {
+    padding-right: 0.9375rem;
+    padding-left: 0.9375rem;
+}
+
+.btn-lg+.dropdown-toggle-split,
+.btn-group-lg>.btn+.dropdown-toggle-split {
+    padding-right: 1.6875rem;
+    padding-left: 1.6875rem;
+}
+
+.btn-group.show .dropdown-toggle {
+    box-shadow: none;
+}
+
+.btn-group.show .dropdown-toggle.btn-link {
+    box-shadow: none;
+}
+
+.btn-group-vertical {
+    flex-direction: column;
+    align-items: flex-start;
+    justify-content: center;
+}
+
+.btn-group-vertical .btn,
+.btn-group-vertical .btn-group {
+    width: 100%;
+}
+
+.btn-group-vertical>.btn+.btn,
+.btn-group-vertical>.btn+.btn-group,
+.btn-group-vertical>.btn-group+.btn,
+.btn-group-vertical>.btn-group+.btn-group {
+    margin-top: -1px;
+    margin-left: 0;
+}
+
+.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),
+.btn-group-vertical>.btn-group:not(:last-child)>.btn {
+    border-bottom-right-radius: 0;
+    border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical>.btn:not(:first-child),
+.btn-group-vertical>.btn-group:not(:first-child)>.btn {
+    border-top-left-radius: 0;
+    border-top-right-radius: 0;
+}
+
+.btn-group-toggle>.btn,
+.btn-group-toggle>.btn-group>.btn {
+    margin-bottom: 0;
+}
+
+.btn-group-toggle>.btn input[type="radio"],
+.btn-group-toggle>.btn input[type="checkbox"],
+.btn-group-toggle>.btn-group>.btn input[type="radio"],
+.btn-group-toggle>.btn-group>.btn input[type="checkbox"] {
+    position: absolute;
+    clip: rect(0, 0, 0, 0);
+    pointer-events: none;
+}
+
+.input-group {
+    position: relative;
+    display: flex;
+    flex-wrap: wrap;
+    align-items: stretch;
+    width: 100%;
+}
+
+.input-group>.form-control,
+.input-group>.custom-select,
+.input-group>.custom-file {
+    position: relative;
+    flex: 1 1 auto;
+    width: 1%;
+    margin-bottom: 0;
+}
+
+.input-group>.form-control:focus,
+.input-group>.custom-select:focus,
+.input-group>.custom-file:focus {
+    z-index: 3;
+}
+
+.input-group>.form-control+.form-control,
+.input-group>.form-control+.custom-select,
+.input-group>.form-control+.custom-file,
+.input-group>.custom-select+.form-control,
+.input-group>.custom-select+.custom-select,
+.input-group>.custom-select+.custom-file,
+.input-group>.custom-file+.form-control,
+.input-group>.custom-file+.custom-select,
+.input-group>.custom-file+.custom-file {
+    margin-left: -1px;
+}
+
+.input-group>.form-control:not(:last-child),
+.input-group>.custom-select:not(:last-child) {
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0;
+}
+
+.input-group>.form-control:not(:first-child),
+.input-group>.custom-select:not(:first-child) {
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0;
+}
+
+.input-group>.custom-file {
+    display: flex;
+    align-items: center;
+}
+
+.input-group>.custom-file:not(:last-child) .custom-file-label,
+.input-group>.custom-file:not(:last-child) .custom-file-label::before {
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0;
+}
+
+.input-group>.custom-file:not(:first-child) .custom-file-label,
+.input-group>.custom-file:not(:first-child) .custom-file-label::before {
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0;
+}
+
+.input-group-prepend,
+.input-group-append {
+    display: flex;
+}
+
+.input-group-prepend .btn,
+.input-group-append .btn {
+    position: relative;
+    z-index: 2;
+}
+
+.input-group-prepend .btn+.btn,
+.input-group-prepend .btn+.input-group-text,
+.input-group-prepend .input-group-text+.input-group-text,
+.input-group-prepend .input-group-text+.btn,
+.input-group-append .btn+.btn,
+.input-group-append .btn+.input-group-text,
+.input-group-append .input-group-text+.input-group-text,
+.input-group-append .input-group-text+.btn {
+    margin-left: -1px;
+}
+
+.input-group-prepend {
+    margin-right: -1px;
+}
+
+.input-group-append {
+    margin-left: -1px;
+}
+
+.input-group-text {
+    display: flex;
+    align-items: center;
+    padding: 0.4375rem 0;
+    margin-bottom: 0;
+    font-size: 1rem;
+    font-weight: 400;
+    line-height: 1.5;
+    color: #495057;
+    text-align: center;
+    white-space: nowrap;
+    background-color: transparent;
+    border: 1px solid transparent;
+    border-radius: 0;
+}
+
+.input-group-text input[type="radio"],
+.input-group-text input[type="checkbox"] {
+    margin-top: 0;
+}
+
+.input-group>.input-group-prepend>.btn,
+.input-group>.input-group-prepend>.input-group-text,
+.input-group>.input-group-append:not(:last-child)>.btn,
+.input-group>.input-group-append:not(:last-child)>.input-group-text,
+.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),
+.input-group>.input-group-append:last-child>.input-group-text:not(:last-child) {
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0;
+}
+
+.input-group>.input-group-append>.btn,
+.input-group>.input-group-append>.input-group-text,
+.input-group>.input-group-prepend:not(:first-child)>.btn,
+.input-group>.input-group-prepend:not(:first-child)>.input-group-text,
+.input-group>.input-group-prepend:first-child>.btn:not(:first-child),
+.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child) {
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0;
+}
+
+.custom-control {
+    position: relative;
+    display: block;
+    min-height: 1.5rem;
+    padding-left: 1.5rem;
+}
+
+.custom-control-inline {
+    display: inline-flex;
+    margin-right: 1rem;
+}
+
+.custom-control-input {
+    position: absolute;
+    z-index: -1;
+    opacity: 0;
+}
+
+.custom-control-input:checked~.custom-control-label::before {
+    color: #ffffff;
+    background-color: #2196f3;
+    box-shadow: none;
+}
+
+.custom-control-input:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(33, 150, 243, 0.25);
+}
+
+.custom-control-input:active~.custom-control-label::before {
+    color: #ffffff;
+    background-color: #cae6fc;
+    box-shadow: none;
+}
+
+.custom-control-input:disabled~.custom-control-label {
+    color: #6c757d;
+}
+
+.custom-control-input:disabled~.custom-control-label::before {
+    background-color: #e9ecef;
+}
+
+.custom-control-label {
+    margin-bottom: 0;
+}
+
+.custom-control-label::before {
+    position: absolute;
+    top: 0.25rem;
+    left: 0;
+    display: block;
+    width: 1rem;
+    height: 1rem;
+    pointer-events: none;
+    content: "";
+    user-select: none;
+    background-color: #dee2e6;
+    box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);
+}
+
+.custom-control-label::after {
+    position: absolute;
+    top: 0.25rem;
+    left: 0;
+    display: block;
+    width: 1rem;
+    height: 1rem;
+    content: "";
+    background-repeat: no-repeat;
+    background-position: center center;
+    background-size: 50% 50%;
+}
+
+.custom-checkbox .custom-control-label::before {
+    border-radius: 0.25rem;
+}
+
+.custom-checkbox .custom-control-input:checked~.custom-control-label::before {
+    background-color: #2196f3;
+}
+
+.custom-checkbox .custom-control-input:checked~.custom-control-label::after {
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffffff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
+}
+
+.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before {
+    background-color: #2196f3;
+    box-shadow: none;
+}
+
+.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after {
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23ffffff' d='M0 2h4'/%3E%3C/svg%3E");
+}
+
+.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before {
+    background-color: rgba(33, 150, 243, 0.5);
+}
+
+.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before {
+    background-color: rgba(33, 150, 243, 0.5);
+}
+
+.custom-radio .custom-control-label::before {
+    border-radius: 50%;
+}
+
+.custom-radio .custom-control-input:checked~.custom-control-label::before {
+    background-color: #2196f3;
+}
+
+.custom-radio .custom-control-input:checked~.custom-control-label::after {
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffffff'/%3E%3C/svg%3E");
+}
+
+.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before {
+    background-color: rgba(33, 150, 243, 0.5);
+}
+
+.custom-select {
+    display: inline-block;
+    width: 100%;
+    height: calc(2.4375rem + 2px);
+    padding: 0.375rem 1.75rem 0.375rem 0.75rem;
+    line-height: 1.5;
+    color: #495057;
+    vertical-align: middle;
+    background: #ffffff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
+    background-size: 8px 10px;
+    border: 1px solid #d2d2d2;
+    border-radius: 0.25rem;
+    appearance: none;
+}
+
+.custom-select:focus {
+    border-color: #9acffa;
+    outline: 0;
+    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(154, 207, 250, 0.5);
+}
+
+.custom-select:focus::-ms-value {
+    color: #495057;
+    background-color: transparent;
+}
+
+.custom-select[multiple],
+.custom-select[size]:not([size="1"]) {
+    height: auto;
+    padding-right: 0.75rem;
+    background-image: none;
+}
+
+.custom-select:disabled {
+    color: #6c757d;
+    background-color: #e9ecef;
+}
+
+.custom-select::-ms-expand {
+    opacity: 0;
+}
+
+.custom-select-sm {
+    height: calc(2.125rem + 2px);
+    padding-top: 0.375rem;
+    padding-bottom: 0.375rem;
+    font-size: 75%;
+}
+
+.custom-select-lg {
+    height: calc(4.125rem + 2px);
+    padding-top: 0.375rem;
+    padding-bottom: 0.375rem;
+    font-size: 125%;
+}
+
+.custom-file {
+    position: relative;
+    display: inline-block;
+    width: 100%;
+    height: calc(2.4375rem + 2px);
+    margin-bottom: 0;
+}
+
+.custom-file-input {
+    position: relative;
+    z-index: 2;
+    width: 100%;
+    height: calc(2.4375rem + 2px);
+    margin: 0;
+    opacity: 0;
+}
+
+.custom-file-input:focus~.custom-file-control {
+    border-color: #9acffa;
+    box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25);
+}
+
+.custom-file-input:focus~.custom-file-control::before {
+    border-color: #9acffa;
+}
+
+.custom-file-input:lang(en)~.custom-file-label::after {
+    content: "Browse";
+}
+
+.custom-file-label {
+    position: absolute;
+    top: 0;
+    right: 0;
+    left: 0;
+    z-index: 1;
+    height: calc(2.4375rem + 2px);
+    padding: 0.46875rem 1rem;
+    line-height: 1.3;
+    color: #495057;
+    background-color: transparent;
+    border: 0 solid #d2d2d2;
+    border-radius: 0;
+    box-shadow: none;
+}
+
+.custom-file-label::after {
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 3;
+    display: block;
+    height: calc(calc(2.4375rem + 2px) - 0 * 2);
+    padding: 0.46875rem 1rem;
+    line-height: 1.3;
+    color: #495057;
+    content: "Browse";
+    background-color: transparent;
+    border-left: 0 solid #d2d2d2;
+    border-radius: 0 0 0 0;
+}
+
+.nav {
+    display: flex;
+    flex-wrap: wrap;
+    padding-left: 0;
+    margin-bottom: 0;
+    list-style: none;
+}
+
+.nav-link {
+    display: block;
+    padding: 0.5rem 1rem;
+}
+
+.nav-link:hover,
+.nav-link:focus {
+    text-decoration: none;
+}
+
+.nav-link.disabled {
+    color: #6c757d;
+}
+
+.nav-tabs {
+    border-bottom: 1px solid #dee2e6;
+}
+
+.nav-tabs .nav-item {
+    margin-bottom: -1px;
+}
+
+.nav-tabs .nav-link {
+    border: 1px solid transparent;
+    border-top-left-radius: 0.25rem;
+    border-top-right-radius: 0.25rem;
+}
+
+.nav-tabs .nav-link:hover,
+.nav-tabs .nav-link:focus {
+    border-color: #e9ecef #e9ecef #dee2e6;
+}
+
+.nav-tabs .nav-link.disabled {
+    color: #6c757d;
+    background-color: transparent;
+    border-color: transparent;
+}
+
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+    color: #495057;
+    background-color: #fafafa;
+    border-color: #dee2e6 #dee2e6 #fafafa;
+}
+
+.nav-tabs .dropdown-menu {
+    margin-top: -1px;
+    border-top-left-radius: 0;
+    border-top-right-radius: 0;
+}
+
+.nav-pills .nav-link {
+    border-radius: 0.25rem;
+}
+
+.nav-pills .nav-link.active,
+.nav-pills .show>.nav-link {
+    color: #ffffff;
+    background-color: #2196f3;
+}
+
+.nav-fill .nav-item {
+    flex: 1 1 auto;
+    text-align: center;
+}
+
+.nav-justified .nav-item {
+    flex-basis: 0;
+    flex-grow: 1;
+    text-align: center;
+}
+
+.tab-content>.tab-pane {
+    display: none;
+}
+
+.tab-content>.active {
+    display: block;
+}
+
+.navbar {
+    position: relative;
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    justify-content: space-between;
+    padding: 0.5rem 1rem;
+}
+
+.navbar>.container,
+.navbar>.container-fluid {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    justify-content: space-between;
+}
+
+.navbar-brand {
+    display: inline-block;
+    padding-top: 0.3125rem;
+    padding-bottom: 0.3125rem;
+    margin-right: 1rem;
+    font-size: 1.25rem;
+    line-height: inherit;
+    white-space: nowrap;
+}
+
+.navbar-brand:hover,
+.navbar-brand:focus {
+    text-decoration: none;
+}
+
+.navbar-nav {
+    display: flex;
+    flex-direction: column;
+    padding-left: 0;
+    margin-bottom: 0;
+    list-style: none;
+}
+
+.navbar-nav .nav-link {
+    padding-right: 0;
+    padding-left: 0;
+}
+
+.navbar-nav .dropdown-menu {
+    position: static;
+    float: none;
+}
+
+.navbar-text {
+    display: inline-block;
+    padding-top: 0.5rem;
+    padding-bottom: 0.5rem;
+}
+
+.navbar-collapse {
+    flex-basis: 100%;
+    flex-grow: 1;
+    align-items: center;
+}
+
+.navbar-toggler {
+    padding: 0.25rem 0.75rem;
+    font-size: 1.25rem;
+    line-height: 1;
+    background-color: transparent;
+    border: 1px solid transparent;
+    border-radius: 0.25rem;
+}
+
+.navbar-toggler:hover,
+.navbar-toggler:focus {
+    text-decoration: none;
+}
+
+.navbar-toggler:not(:disabled):not(.disabled) {
+    cursor: pointer;
+}
+
+.navbar-toggler-icon {
+    display: inline-block;
+    width: 1.5em;
+    height: 1.5em;
+    vertical-align: middle;
+    content: "";
+    background: no-repeat center center;
+    background-size: 100% 100%;
+}
+
+@media (max-width: 575.98px) {
+    .navbar-expand-sm>.container,
+    .navbar-expand-sm>.container-fluid {
+        padding-right: 0;
+        padding-left: 0;
+    }
+}
+
+@media (min-width: 576px) {
+    .navbar-expand-sm {
+        flex-flow: row nowrap;
+        justify-content: flex-start;
+    }
+    .navbar-expand-sm .navbar-nav {
+        flex-direction: row;
+    }
+    .navbar-expand-sm .navbar-nav .dropdown-menu {
+        position: absolute;
+    }
+    .navbar-expand-sm .navbar-nav .dropdown-menu-right {
+        right: 0;
+        left: auto;
+    }
+    .navbar-expand-sm .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem;
+    }
+    .navbar-expand-sm>.container,
+    .navbar-expand-sm>.container-fluid {
+        flex-wrap: nowrap;
+    }
+    .navbar-expand-sm .navbar-collapse {
+        display: flex !important;
+        flex-basis: auto;
+    }
+    .navbar-expand-sm .navbar-toggler {
+        display: none;
+    }
+    .navbar-expand-sm .dropup .dropdown-menu {
+        top: auto;
+        bottom: 100%;
+    }
+}
+
+@media (max-width: 767.98px) {
+    .navbar-expand-md>.container,
+    .navbar-expand-md>.container-fluid {
+        padding-right: 0;
+        padding-left: 0;
+    }
+}
+
+@media (min-width: 768px) {
+    .navbar-expand-md {
+        flex-flow: row nowrap;
+        justify-content: flex-start;
+    }
+    .navbar-expand-md .navbar-nav {
+        flex-direction: row;
+    }
+    .navbar-expand-md .navbar-nav .dropdown-menu {
+        position: absolute;
+    }
+    .navbar-expand-md .navbar-nav .dropdown-menu-right {
+        right: 0;
+        left: auto;
+    }
+    .navbar-expand-md .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem;
+    }
+    .navbar-expand-md>.container,
+    .navbar-expand-md>.container-fluid {
+        flex-wrap: nowrap;
+    }
+    .navbar-expand-md .navbar-collapse {
+        display: flex !important;
+        flex-basis: auto;
+    }
+    .navbar-expand-md .navbar-toggler {
+        display: none;
+    }
+    .navbar-expand-md .dropup .dropdown-menu {
+        top: auto;
+        bottom: 100%;
+    }
+}
+
+@media (max-width: 991.98px) {
+    .navbar-expand-lg>.container,
+    .navbar-expand-lg>.container-fluid {
+        padding-right: 0;
+        padding-left: 0;
+    }
+}
+
+@media (min-width: 992px) {
+    .navbar-expand-lg {
+        flex-flow: row nowrap;
+        justify-content: flex-start;
+    }
+    .navbar-expand-lg .navbar-nav {
+        flex-direction: row;
+    }
+    .navbar-expand-lg .navbar-nav .dropdown-menu {
+        position: absolute;
+    }
+    .navbar-expand-lg .navbar-nav .dropdown-menu-right {
+        right: 0;
+        left: auto;
+    }
+    .navbar-expand-lg .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem;
+    }
+    .navbar-expand-lg>.container,
+    .navbar-expand-lg>.container-fluid {
+        flex-wrap: nowrap;
+    }
+    .navbar-expand-lg .navbar-collapse {
+        display: flex !important;
+        flex-basis: auto;
+    }
+    .navbar-expand-lg .navbar-toggler {
+        display: none;
+    }
+    .navbar-expand-lg .dropup .dropdown-menu {
+        top: auto;
+        bottom: 100%;
+    }
+}
+
+@media (max-width: 1199.98px) {
+    .navbar-expand-xl>.container,
+    .navbar-expand-xl>.container-fluid {
+        padding-right: 0;
+        padding-left: 0;
+    }
+}
+
+@media (min-width: 1200px) {
+    .navbar-expand-xl {
+        flex-flow: row nowrap;
+        justify-content: flex-start;
+    }
+    .navbar-expand-xl .navbar-nav {
+        flex-direction: row;
+    }
+    .navbar-expand-xl .navbar-nav .dropdown-menu {
+        position: absolute;
+    }
+    .navbar-expand-xl .navbar-nav .dropdown-menu-right {
+        right: 0;
+        left: auto;
+    }
+    .navbar-expand-xl .navbar-nav .nav-link {
+        padding-right: 0.5rem;
+        padding-left: 0.5rem;
+    }
+    .navbar-expand-xl>.container,
+    .navbar-expand-xl>.container-fluid {
+        flex-wrap: nowrap;
+    }
+    .navbar-expand-xl .navbar-collapse {
+        display: flex !important;
+        flex-basis: auto;
+    }
+    .navbar-expand-xl .navbar-toggler {
+        display: none;
+    }
+    .navbar-expand-xl .dropup .dropdown-menu {
+        top: auto;
+        bottom: 100%;
+    }
+}
+
+.navbar-expand {
+    flex-flow: row nowrap;
+    justify-content: flex-start;
+}
+
+.navbar-expand>.container,
+.navbar-expand>.container-fluid {
+    padding-right: 0;
+    padding-left: 0;
+}
+
+.navbar-expand .navbar-nav {
+    flex-direction: row;
+}
+
+.navbar-expand .navbar-nav .dropdown-menu {
+    position: absolute;
+}
+
+.navbar-expand .navbar-nav .dropdown-menu-right {
+    right: 0;
+    left: auto;
+}
+
+.navbar-expand .navbar-nav .nav-link {
+    padding-right: 0.5rem;
+    padding-left: 0.5rem;
+}
+
+.navbar-expand>.container,
+.navbar-expand>.container-fluid {
+    flex-wrap: nowrap;
+}
+
+.navbar-expand .navbar-collapse {
+    display: flex !important;
+    flex-basis: auto;
+}
+
+.navbar-expand .navbar-toggler {
+    display: none;
+}
+
+.navbar-expand .dropup .dropdown-menu {
+    top: auto;
+    bottom: 100%;
+}
+
+.navbar-light .navbar-brand {
+    color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-brand:hover,
+.navbar-light .navbar-brand:focus {
+    color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-nav .nav-link {
+    color: rgba(0, 0, 0, 0.5);
+}
+
+.navbar-light .navbar-nav .nav-link:hover,
+.navbar-light .navbar-nav .nav-link:focus {
+    color: rgba(0, 0, 0, 0.7);
+}
+
+.navbar-light .navbar-nav .nav-link.disabled {
+    color: rgba(0, 0, 0, 0.3);
+}
+
+.navbar-light .navbar-nav .show>.nav-link,
+.navbar-light .navbar-nav .active>.nav-link,
+.navbar-light .navbar-nav .nav-link.show,
+.navbar-light .navbar-nav .nav-link.active {
+    color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-toggler {
+    color: rgba(0, 0, 0, 0.5);
+    border-color: rgba(0, 0, 0, 0.1);
+}
+
+.navbar-light .navbar-toggler-icon {
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
+}
+
+.navbar-light .navbar-text {
+    color: rgba(0, 0, 0, 0.5);
+}
+
+.navbar-light .navbar-text a {
+    color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-light .navbar-text a:hover,
+.navbar-light .navbar-text a:focus {
+    color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-dark .navbar-brand {
+    color: #ffffff;
+}
+
+.navbar-dark .navbar-brand:hover,
+.navbar-dark .navbar-brand:focus {
+    color: #ffffff;
+}
+
+.navbar-dark .navbar-nav .nav-link {
+    color: rgba(255, 255, 255, 0.5);
+}
+
+.navbar-dark .navbar-nav .nav-link:hover,
+.navbar-dark .navbar-nav .nav-link:focus {
+    color: rgba(255, 255, 255, 0.75);
+}
+
+.navbar-dark .navbar-nav .nav-link.disabled {
+    color: rgba(255, 255, 255, 0.25);
+}
+
+.navbar-dark .navbar-nav .show>.nav-link,
+.navbar-dark .navbar-nav .active>.nav-link,
+.navbar-dark .navbar-nav .nav-link.show,
+.navbar-dark .navbar-nav .nav-link.active {
+    color: #ffffff;
+}
+
+.navbar-dark .navbar-toggler {
+    color: rgba(255, 255, 255, 0.5);
+    border-color: rgba(255, 255, 255, 0.1);
+}
+
+.navbar-dark .navbar-toggler-icon {
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
+}
+
+.navbar-dark .navbar-text {
+    color: rgba(255, 255, 255, 0.5);
+}
+
+.navbar-dark .navbar-text a {
+    color: #ffffff;
+}
+
+.navbar-dark .navbar-text a:hover,
+.navbar-dark .navbar-text a:focus {
+    color: #ffffff;
+}
+
+.card {
+    position: relative;
+    display: flex;
+    flex-direction: column;
+    min-width: 0;
+    word-wrap: break-word;
+    background-color: #fff;
+    background-clip: border-box;
+    border: 1px solid rgba(0, 0, 0, 0.12);
+    border-radius: 0.25rem;
+}
+
+.card>hr {
+    margin-right: 0;
+    margin-left: 0;
+}
+
+.card>.list-group:first-child .list-group-item:first-child {
+    border-top-left-radius: 0.25rem;
+    border-top-right-radius: 0.25rem;
+}
+
+.card>.list-group:last-child .list-group-item:last-child {
+    border-bottom-right-radius: 0.25rem;
+    border-bottom-left-radius: 0.25rem;
+}
+
+.card-body {
+    flex: 1 1 auto;
+    padding: 1.25rem;
+}
+
+.card-title {
+    margin-bottom: 0.75rem;
+}
+
+.card-subtitle {
+    margin-top: -0.375rem;
+    margin-bottom: 0;
+}
+
+.card-text:last-child {
+    margin-bottom: 0;
+}
+
+.card-link:hover {
+    text-decoration: none;
+}
+
+.card-link+.card-link {
+    margin-left: 1.25rem;
+}
+
+.card-header {
+    padding: 0.75rem 1.25rem;
+    margin-bottom: 0;
+    background-color: #fff;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+}
+
+.card-header:first-child {
+    border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
+}
+
+.card-header+.list-group .list-group-item:first-child {
+    border-top: 0;
+}
+
+.card-footer {
+    padding: 0.75rem 1.25rem;
+    background-color: #fff;
+    border-top: 1px solid rgba(0, 0, 0, 0.12);
+}
+
+.card-footer:last-child {
+    border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
+}
+
+.card-header-tabs {
+    margin-right: -0.625rem;
+    margin-bottom: -0.75rem;
+    margin-left: -0.625rem;
+    border-bottom: 0;
+}
+
+.card-header-pills {
+    margin-right: -0.625rem;
+    margin-left: -0.625rem;
+}
+
+.card-img-overlay {
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    padding: 1.25rem;
+}
+
+.card-img {
+    width: 100%;
+    border-radius: calc(0.25rem - 1px);
+}
+
+.card-img-top {
+    width: 100%;
+    border-top-left-radius: calc(0.25rem - 1px);
+    border-top-right-radius: calc(0.25rem - 1px);
+}
+
+.card-img-bottom {
+    width: 100%;
+    border-bottom-right-radius: calc(0.25rem - 1px);
+    border-bottom-left-radius: calc(0.25rem - 1px);
+}
+
+.card-deck {
+    display: flex;
+    flex-direction: column;
+}
+
+.card-deck .card {
+    margin-bottom: 15px;
+}
+
+@media (min-width: 576px) {
+    .card-deck {
+        flex-flow: row wrap;
+        margin-right: -15px;
+        margin-left: -15px;
+    }
+    .card-deck .card {
+        display: flex;
+        flex: 1 0 0%;
+        flex-direction: column;
+        margin-right: 15px;
+        margin-bottom: 0;
+        margin-left: 15px;
+    }
+}
+
+.card-group {
+    display: flex;
+    flex-direction: column;
+}
+
+.card-group>.card {
+    margin-bottom: 15px;
+}
+
+@media (min-width: 576px) {
+    .card-group {
+        flex-flow: row wrap;
+    }
+    .card-group>.card {
+        flex: 1 0 0%;
+        margin-bottom: 0;
+    }
+    .card-group>.card+.card {
+        margin-left: 0;
+        border-left: 0;
+    }
+    .card-group>.card:first-child {
+        border-top-right-radius: 0;
+        border-bottom-right-radius: 0;
+    }
+    .card-group>.card:first-child .card-img-top,
+    .card-group>.card:first-child .card-header {
+        border-top-right-radius: 0;
+    }
+    .card-group>.card:first-child .card-img-bottom,
+    .card-group>.card:first-child .card-footer {
+        border-bottom-right-radius: 0;
+    }
+    .card-group>.card:last-child {
+        border-top-left-radius: 0;
+        border-bottom-left-radius: 0;
+    }
+    .card-group>.card:last-child .card-img-top,
+    .card-group>.card:last-child .card-header {
+        border-top-left-radius: 0;
+    }
+    .card-group>.card:last-child .card-img-bottom,
+    .card-group>.card:last-child .card-footer {
+        border-bottom-left-radius: 0;
+    }
+    .card-group>.card:only-child {
+        border-radius: 0.25rem;
+    }
+    .card-group>.card:only-child .card-img-top,
+    .card-group>.card:only-child .card-header {
+        border-top-left-radius: 0.25rem;
+        border-top-right-radius: 0.25rem;
+    }
+    .card-group>.card:only-child .card-img-bottom,
+    .card-group>.card:only-child .card-footer {
+        border-bottom-right-radius: 0.25rem;
+        border-bottom-left-radius: 0.25rem;
+    }
+    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) {
+        border-radius: 0;
+    }
+    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
+    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
+    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,
+    .card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
+        border-radius: 0;
+    }
+}
+
+.card-columns .card {
+    margin-bottom: 0.75rem;
+}
+
+@media (min-width: 576px) {
+    .card-columns {
+        column-count: 3;
+        column-gap: 1.25rem;
+    }
+    .card-columns .card {
+        display: inline-block;
+        width: 100%;
+    }
+}
+
+.breadcrumb {
+    display: flex;
+    flex-wrap: wrap;
+    padding: 0.75rem 1rem;
+    margin-bottom: 1rem;
+    list-style: none;
+    background-color: #e9ecef;
+    border-radius: 0.25rem;
+}
+
+.breadcrumb-item+.breadcrumb-item::before {
+    display: inline-block;
+    padding-right: 0.5rem;
+    padding-left: 0.5rem;
+    color: #6c757d;
+    content: "/";
+}
+
+.breadcrumb-item+.breadcrumb-item:hover::before {
+    text-decoration: underline;
+}
+
+.breadcrumb-item+.breadcrumb-item:hover::before {
+    text-decoration: none;
+}
+
+.breadcrumb-item.active {
+    color: #6c757d;
+}
+
+.pagination {
+    display: flex;
+    padding-left: 0;
+    list-style: none;
+    border-radius: 0.25rem;
+}
+
+.page-link {
+    position: relative;
+    display: block;
+    padding: 0.5rem 0.75rem;
+    margin-left: 0;
+    line-height: 1.25;
+    color: #2196f3;
+    background-color: transparent;
+    border: 0 solid #dee2e6;
+}
+
+.page-link:hover {
+    color: #0a6ebd;
+    text-decoration: none;
+    background-color: #e9ecef;
+    border-color: #dee2e6;
+}
+
+.page-link:focus {
+    z-index: 2;
+    outline: 0;
+    box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.25);
+}
+
+.page-link:not(:disabled):not(.disabled) {
+    cursor: pointer;
+}
+
+.page-item:first-child .page-link {
+    margin-left: 0;
+    border-top-left-radius: 0.25rem;
+    border-bottom-left-radius: 0.25rem;
+}
+
+.page-item:last-child .page-link {
+    border-top-right-radius: 0.25rem;
+    border-bottom-right-radius: 0.25rem;
+}
+
+.page-item.active .page-link {
+    z-index: 1;
+    color: #ffffff;
+    background-color: #2196f3;
+    border-color: #2196f3;
+}
+
+.page-item.disabled .page-link {
+    color: #6c757d;
+    pointer-events: none;
+    cursor: auto;
+    background-color: transparent;
+    border-color: #dee2e6;
+}
+
+.pagination-lg .page-link {
+    padding: 0.75rem 0;
+    font-size: 1.25rem;
+    line-height: 1.5;
+}
+
+.pagination-lg .page-item:first-child .page-link {
+    border-top-left-radius: 0.3rem;
+    border-bottom-left-radius: 0.3rem;
+}
+
+.pagination-lg .page-item:last-child .page-link {
+    border-top-right-radius: 0.3rem;
+    border-bottom-right-radius: 0.3rem;
+}
+
+.pagination-sm .page-link {
+    padding: 0.25rem 0;
+    font-size: 0.875rem;
+    line-height: 1.5;
+}
+
+.pagination-sm .page-item:first-child .page-link {
+    border-top-left-radius: 0.2rem;
+    border-bottom-left-radius: 0.2rem;
+}
+
+.pagination-sm .page-item:last-child .page-link {
+    border-top-right-radius: 0.2rem;
+    border-bottom-right-radius: 0.2rem;
+}
+
+.jumbotron {
+    padding: 2rem 1rem;
+    margin-bottom: 2rem;
+    background-color: #e9ecef;
+    border-radius: 0.3rem;
+}
+
+@media (min-width: 576px) {
+    .jumbotron {
+        padding: 4rem 2rem;
+    }
+}
+
+.jumbotron-fluid {
+    padding-right: 0;
+    padding-left: 0;
+    border-radius: 0;
+}
+
+.alert {
+    position: relative;
+    padding: 0.75rem 1.25rem;
+    margin-bottom: 1rem;
+    border: 1px solid transparent;
+    border-radius: 0.25rem;
+}
+
+.alert-heading {
+    color: inherit;
+}
+
+.alert-link {
+    font-weight: 500;
+}
+
+.alert-dismissible {
+    padding-right: 4rem;
+}
+
+.alert-dismissible .close {
+    position: absolute;
+    top: 0;
+    right: 0;
+    padding: 0.75rem 1.25rem;
+    color: inherit;
+}
+
+.alert-primary {
+    color: #114e7e;
+    background-color: #d3eafd;
+    border-color: #c1e2fc;
+}
+
+.alert-primary hr {
+    border-top-color: #a9d7fb;
+}
+
+.alert-primary .alert-link {
+    color: #0b3251;
+}
+
+.alert-secondary {
+    color: #383d41;
+    background-color: #e2e3e5;
+    border-color: #d6d8db;
+}
+
+.alert-secondary hr {
+    border-top-color: #c8cbcf;
+}
+
+.alert-secondary .alert-link {
+    color: #202326;
+}
+
+.alert-success {
+    color: #285b2a;
+    background-color: #dbefdc;
+    border-color: #cde9ce;
+}
+
+.alert-success hr {
+    border-top-color: #bbe1bd;
+}
+
+.alert-success .alert-link {
+    color: #18381a;
+}
+
+.alert-info {
+    color: #00626e;
+    background-color: #ccf2f6;
+    border-color: #b8ecf3;
+}
+
+.alert-info hr {
+    border-top-color: #a2e6ef;
+}
+
+.alert-info .alert-link {
+    color: #00353b;
+}
+
+.alert-warning {
+    color: #857a1f;
+    background-color: #fffbd8;
+    border-color: #fff9c8;
+}
+
+.alert-warning hr {
+    border-top-color: #fff6af;
+}
+
+.alert-warning .alert-link {
+    color: #5c5415;
+}
+
+.alert-danger {
+    color: #7f231c;
+    background-color: #fdd9d7;
+    border-color: #fccac7;
+}
+
+.alert-danger hr {
+    border-top-color: #fbb3af;
+}
+
+.alert-danger .alert-link {
+    color: #551713;
+}
+
+.alert-light {
+    color: #818182;
+    background-color: #fefefe;
+    border-color: #fdfdfe;
+}
+
+.alert-light hr {
+    border-top-color: #ececf6;
+}
+
+.alert-light .alert-link {
+    color: #686868;
+}
+
+.alert-dark {
+    color: #1b1e21;
+    background-color: #d6d8d9;
+    border-color: #c6c8ca;
+}
+
+.alert-dark hr {
+    border-top-color: #b9bbbe;
+}
+
+.alert-dark .alert-link {
+    color: #040505;
+}
+
+@keyframes progress-bar-stripes {
+    from {
+        background-position: 1rem 0;
+    }
+    to {
+        background-position: 0 0;
+    }
+}
+
+.progress {
+    display: flex;
+    height: 1rem;
+    overflow: hidden;
+    font-size: 0.75rem;
+    background-color: #e9ecef;
+    border-radius: 0.25rem;
+    box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);
+}
+
+.progress-bar {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    color: #ffffff;
+    text-align: center;
+    background-color: #2196f3;
+    transition: width 0.6s ease;
+}
+
+.progress-bar-striped {
+    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+    background-size: 1rem 1rem;
+}
+
+.progress-bar-animated {
+    animation: progress-bar-stripes 1s linear infinite;
+}
+
+.media {
+    display: flex;
+    align-items: flex-start;
+}
+
+.media-body {
+    flex: 1;
+}
+
+.list-group {
+    display: flex;
+    flex-direction: column;
+    padding-left: 0;
+    margin-bottom: 0;
+}
+
+.list-group-item-action {
+    width: 100%;
+    color: #495057;
+    text-align: inherit;
+}
+
+.list-group-item-action:hover,
+.list-group-item-action:focus {
+    color: #495057;
+    text-decoration: none;
+    background-color: #f8f9fa;
+}
+
+.list-group-item-action:active {
+    color: #212529;
+    background-color: #e9ecef;
+}
+
+.list-group-item {
+    position: relative;
+    display: block;
+    padding: 0.75rem 1.25rem;
+    margin-bottom: 0;
+    background-color: inherit;
+    border: 0 solid rgba(0, 0, 0, 0.125);
+}
+
+.list-group-item:first-child {
+    border-top-left-radius: 0;
+    border-top-right-radius: 0;
+}
+
+.list-group-item:last-child {
+    margin-bottom: 0;
+    border-bottom-right-radius: 0;
+    border-bottom-left-radius: 0;
+}
+
+.list-group-item:hover,
+.list-group-item:focus {
+    z-index: 1;
+    text-decoration: none;
+}
+
+.list-group-item.disabled,
+.list-group-item:disabled {
+    color: #6c757d;
+    background-color: inherit;
+}
+
+.list-group-item.active {
+    z-index: 2;
+    color: #ffffff;
+    background-color: #2196f3;
+    border-color: #2196f3;
+}
+
+.list-group-flush .list-group-item {
+    border-right: 0;
+    border-left: 0;
+    border-radius: 0;
+}
+
+.list-group-flush:first-child .list-group-item:first-child {
+    border-top: 0;
+}
+
+.list-group-flush:last-child .list-group-item:last-child {
+    border-bottom: 0;
+}
+
+.list-group-item-primary {
+    color: #114e7e;
+    background-color: #c1e2fc;
+}
+
+.list-group-item-primary.list-group-item-action:hover,
+.list-group-item-primary.list-group-item-action:focus {
+    color: #114e7e;
+    background-color: #a9d7fb;
+}
+
+.list-group-item-primary.list-group-item-action.active {
+    color: #fff;
+    background-color: #114e7e;
+    border-color: #114e7e;
+}
+
+.list-group-item-secondary {
+    color: #383d41;
+    background-color: #d6d8db;
+}
+
+.list-group-item-secondary.list-group-item-action:hover,
+.list-group-item-secondary.list-group-item-action:focus {
+    color: #383d41;
+    background-color: #c8cbcf;
+}
+
+.list-group-item-secondary.list-group-item-action.active {
+    color: #fff;
+    background-color: #383d41;
+    border-color: #383d41;
+}
+
+.list-group-item-success {
+    color: #285b2a;
+    background-color: #cde9ce;
+}
+
+.list-group-item-success.list-group-item-action:hover,
+.list-group-item-success.list-group-item-action:focus {
+    color: #285b2a;
+    background-color: #bbe1bd;
+}
+
+.list-group-item-success.list-group-item-action.active {
+    color: #fff;
+    background-color: #285b2a;
+    border-color: #285b2a;
+}
+
+.list-group-item-info {
+    color: #00626e;
+    background-color: #b8ecf3;
+}
+
+.list-group-item-info.list-group-item-action:hover,
+.list-group-item-info.list-group-item-action:focus {
+    color: #00626e;
+    background-color: #a2e6ef;
+}
+
+.list-group-item-info.list-group-item-action.active {
+    color: #fff;
+    background-color: #00626e;
+    border-color: #00626e;
+}
+
+.list-group-item-warning {
+    color: #857a1f;
+    background-color: #fff9c8;
+}
+
+.list-group-item-warning.list-group-item-action:hover,
+.list-group-item-warning.list-group-item-action:focus {
+    color: #857a1f;
+    background-color: #fff6af;
+}
+
+.list-group-item-warning.list-group-item-action.active {
+    color: #fff;
+    background-color: #857a1f;
+    border-color: #857a1f;
+}
+
+.list-group-item-danger {
+    color: #7f231c;
+    background-color: #fccac7;
+}
+
+.list-group-item-danger.list-group-item-action:hover,
+.list-group-item-danger.list-group-item-action:focus {
+    color: #7f231c;
+    background-color: #fbb3af;
+}
+
+.list-group-item-danger.list-group-item-action.active {
+    color: #fff;
+    background-color: #7f231c;
+    border-color: #7f231c;
+}
+
+.list-group-item-light {
+    color: #818182;
+    background-color: #fdfdfe;
+}
+
+.list-group-item-light.list-group-item-action:hover,
+.list-group-item-light.list-group-item-action:focus {
+    color: #818182;
+    background-color: #ececf6;
+}
+
+.list-group-item-light.list-group-item-action.active {
+    color: #fff;
+    background-color: #818182;
+    border-color: #818182;
+}
+
+.list-group-item-dark {
+    color: #1b1e21;
+    background-color: #c6c8ca;
+}
+
+.list-group-item-dark.list-group-item-action:hover,
+.list-group-item-dark.list-group-item-action:focus {
+    color: #1b1e21;
+    background-color: #b9bbbe;
+}
+
+.list-group-item-dark.list-group-item-action.active {
+    color: #fff;
+    background-color: #1b1e21;
+    border-color: #1b1e21;
+}
+
+.close {
+    float: right;
+    font-size: 1.5rem;
+    font-weight: 500;
+    line-height: 1;
+    color: #000000;
+    text-shadow: 0 1px 0 #ffffff;
+    opacity: .5;
+}
+
+.close:hover,
+.close:focus {
+    color: #000000;
+    text-decoration: none;
+    opacity: .75;
+}
+
+.close:not(:disabled):not(.disabled) {
+    cursor: pointer;
+}
+
+button.close {
+    padding: 0;
+    background-color: transparent;
+    border: 0;
+    -webkit-appearance: none;
+}
+
+.badge {
+    display: inline-block;
+    padding: 0.25em 0.4em;
+    font-size: 75%;
+    font-weight: 500;
+    line-height: 1;
+    text-align: center;
+    white-space: nowrap;
+    vertical-align: baseline;
+    border-radius: 0.25rem;
+}
+
+.badge:empty {
+    display: none;
+}
+
+.btn .badge {
+    position: relative;
+    top: -1px;
+}
+
+.badge-pill {
+    padding-right: 0.6em;
+    padding-left: 0.6em;
+    border-radius: 10rem;
+}
+
+.badge-primary {
+    color: #ffffff;
+    background-color: #2196f3;
+}
+
+.badge-primary[href]:hover,
+.badge-primary[href]:focus {
+    color: #ffffff;
+    text-decoration: none;
+    background-color: #0c7cd5;
+}
+
+.badge-secondary {
+    color: #ffffff;
+    background-color: #6c757d;
+}
+
+.badge-secondary[href]:hover,
+.badge-secondary[href]:focus {
+    color: #ffffff;
+    text-decoration: none;
+    background-color: #545b62;
+}
+
+.badge-success {
+    color: #ffffff;
+    background-color: #4caf50;
+}
+
+.badge-success[href]:hover,
+.badge-success[href]:focus {
+    color: #ffffff;
+    text-decoration: none;
+    background-color: #3d8b40;
+}
+
+.badge-info {
+    color: #ffffff;
+    background-color: #00bcd4;
+}
+
+.badge-info[href]:hover,
+.badge-info[href]:focus {
+    color: #ffffff;
+    text-decoration: none;
+    background-color: #008fa1;
+}
+
+.badge-warning {
+    color: #212529;
+    background-color: #ffeb3b;
+}
+
+.badge-warning[href]:hover,
+.badge-warning[href]:focus {
+    color: #212529;
+    text-decoration: none;
+    background-color: #ffe608;
+}
+
+.badge-danger {
+    color: #ffffff;
+    background-color: #f44336;
+}
+
+.badge-danger[href]:hover,
+.badge-danger[href]:focus {
+    color: #ffffff;
+    text-decoration: none;
+    background-color: #ea1c0d;
+}
+
+.badge-light {
+    color: #212529;
+    background-color: #f8f9fa;
+}
+
+.badge-light[href]:hover,
+.badge-light[href]:focus {
+    color: #212529;
+    text-decoration: none;
+    background-color: #dae0e5;
+}
+
+.badge-dark {
+    color: #ffffff;
+    background-color: #343a40;
+}
+
+.badge-dark[href]:hover,
+.badge-dark[href]:focus {
+    color: #ffffff;
+    text-decoration: none;
+    background-color: #1d2124;
+}
+
+.modal-open {
+    overflow: hidden;
+}
+
+.modal {
+    position: fixed;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    z-index: 1050;
+    display: none;
+    overflow: hidden;
+    outline: 0;
+}
+
+.modal-open .modal {
+    overflow-x: hidden;
+    overflow-y: auto;
+}
+
+.modal-dialog {
+    position: relative;
+    width: auto;
+    margin: 0.5rem;
+    pointer-events: none;
+}
+
+.modal.fade .modal-dialog {
+    transition: transform 0.3s ease-out;
+    transform: translate(0, -25%);
+}
+
+.modal.show .modal-dialog {
+    transform: translate(0, 0);
+}
+
+.modal-dialog-centered {
+    display: flex;
+    align-items: center;
+    min-height: calc(100% - (0.5rem * 2));
+}
+
+.modal-content {
+    position: relative;
+    display: flex;
+    flex-direction: column;
+    width: 100%;
+    pointer-events: auto;
+    background-color: #ffffff;
+    background-clip: padding-box;
+    border: 1px solid rgba(0, 0, 0, 0.2);
+    border-radius: 0.3rem;
+    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);
+    outline: 0;
+}
+
+.modal-backdrop {
+    position: fixed;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    z-index: 1040;
+    background-color: #000000;
+}
+
+.modal-backdrop.fade {
+    opacity: 0;
+}
+
+.modal-backdrop.show {
+    opacity: 0.26;
+}
+
+.modal-header {
+    display: flex;
+    align-items: flex-start;
+    justify-content: space-between;
+    padding: 1rem;
+    border-bottom: 1px solid #e9ecef;
+    border-top-left-radius: 0.3rem;
+    border-top-right-radius: 0.3rem;
+}
+
+.modal-header .close {
+    padding: 1rem;
+    margin: -1rem -1rem -1rem auto;
+}
+
+.modal-title {
+    margin-bottom: 0;
+    line-height: 1.5;
+}
+
+.modal-body {
+    position: relative;
+    flex: 1 1 auto;
+    padding: 1rem;
+}
+
+.modal-footer {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+    padding: 1rem;
+    border-top: 1px solid #e9ecef;
+}
+
+.modal-footer> :not(:first-child) {
+    margin-left: .25rem;
+}
+
+.modal-footer> :not(:last-child) {
+    margin-right: .25rem;
+}
+
+.modal-scrollbar-measure {
+    position: absolute;
+    top: -9999px;
+    width: 50px;
+    height: 50px;
+    overflow: scroll;
+}
+
+@media (min-width: 576px) {
+    .modal-dialog {
+        max-width: 500px;
+        margin: 1.75rem auto;
+    }
+    .modal-dialog-centered {
+        min-height: calc(100% - (1.75rem * 2));
+    }
+    .modal-content {
+        box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);
+    }
+    .modal-sm {
+        max-width: 300px;
+    }
+}
+
+@media (min-width: 992px) {
+    .modal-lg {
+        max-width: 800px;
+    }
+}
+
+.tooltip {
+    position: absolute;
+    z-index: 1070;
+    display: block;
+    margin: 0;
+    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+    font-style: normal;
+    font-weight: 400;
+    line-height: 1.5;
+    text-align: left;
+    text-align: start;
+    text-decoration: none;
+    text-shadow: none;
+    text-transform: none;
+    letter-spacing: normal;
+    word-break: normal;
+    word-spacing: normal;
+    white-space: normal;
+    line-break: auto;
+    font-size: 0.875rem;
+    word-wrap: break-word;
+    opacity: 0;
+}
+
+.tooltip.show {
+    opacity: 0.9;
+}
+
+.tooltip .arrow {
+    position: absolute;
+    display: block;
+    width: 0.8rem;
+    height: 0.4rem;
+}
+
+.tooltip .arrow::before {
+    position: absolute;
+    content: "";
+    border-color: transparent;
+    border-style: solid;
+}
+
+.bs-tooltip-top,
+.bs-tooltip-auto[x-placement^="top"] {
+    padding: 0.4rem 0;
+}
+
+.bs-tooltip-top .arrow,
+.bs-tooltip-auto[x-placement^="top"] .arrow {
+    bottom: 0;
+}
+
+.bs-tooltip-top .arrow::before,
+.bs-tooltip-auto[x-placement^="top"] .arrow::before {
+    top: 0;
+    border-width: 0.4rem 0.4rem 0;
+    border-top-color: rgba(97, 97, 97, 0.9);
+}
+
+.bs-tooltip-right,
+.bs-tooltip-auto[x-placement^="right"] {
+    padding: 0 0.4rem;
+}
+
+.bs-tooltip-right .arrow,
+.bs-tooltip-auto[x-placement^="right"] .arrow {
+    left: 0;
+    width: 0.4rem;
+    height: 0.8rem;
+}
+
+.bs-tooltip-right .arrow::before,
+.bs-tooltip-auto[x-placement^="right"] .arrow::before {
+    right: 0;
+    border-width: 0.4rem 0.4rem 0.4rem 0;
+    border-right-color: rgba(97, 97, 97, 0.9);
+}
+
+.bs-tooltip-bottom,
+.bs-tooltip-auto[x-placement^="bottom"] {
+    padding: 0.4rem 0;
+}
+
+.bs-tooltip-bottom .arrow,
+.bs-tooltip-auto[x-placement^="bottom"] .arrow {
+    top: 0;
+}
+
+.bs-tooltip-bottom .arrow::before,
+.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
+    bottom: 0;
+    border-width: 0 0.4rem 0.4rem;
+    border-bottom-color: rgba(97, 97, 97, 0.9);
+}
+
+.bs-tooltip-left,
+.bs-tooltip-auto[x-placement^="left"] {
+    padding: 0 0.4rem;
+}
+
+.bs-tooltip-left .arrow,
+.bs-tooltip-auto[x-placement^="left"] .arrow {
+    right: 0;
+    width: 0.4rem;
+    height: 0.8rem;
+}
+
+.bs-tooltip-left .arrow::before,
+.bs-tooltip-auto[x-placement^="left"] .arrow::before {
+    left: 0;
+    border-width: 0.4rem 0 0.4rem 0.4rem;
+    border-left-color: rgba(97, 97, 97, 0.9);
+}
+
+.tooltip-inner {
+    max-width: 200px;
+    padding: 0.25rem 0.5rem;
+    color: #ffffff;
+    text-align: center;
+    background-color: rgba(97, 97, 97, 0.9);
+    border-radius: 0.25rem;
+}
+
+.popover {
+    position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 1060;
+    display: block;
+    max-width: 276px;
+    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+    font-style: normal;
+    font-weight: 400;
+    line-height: 1.5;
+    text-align: left;
+    text-align: start;
+    text-decoration: none;
+    text-shadow: none;
+    text-transform: none;
+    letter-spacing: normal;
+    word-break: normal;
+    word-spacing: normal;
+    white-space: normal;
+    line-break: auto;
+    font-size: 0.875rem;
+    word-wrap: break-word;
+    background-color: #ffffff;
+    background-clip: padding-box;
+    border: 1px solid rgba(0, 0, 0, 0.2);
+    border-radius: 0.3rem;
+    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
+}
+
+.popover .arrow {
+    position: absolute;
+    display: block;
+    width: 1rem;
+    height: 0.5rem;
+    margin: 0 0.3rem;
+}
+
+.popover .arrow::before,
+.popover .arrow::after {
+    position: absolute;
+    display: block;
+    content: "";
+    border-color: transparent;
+    border-style: solid;
+}
+
+.bs-popover-top,
+.bs-popover-auto[x-placement^="top"] {
+    margin-bottom: 0.5rem;
+}
+
+.bs-popover-top .arrow,
+.bs-popover-auto[x-placement^="top"] .arrow {
+    bottom: calc((0.5rem + 1px) * -1);
+}
+
+.bs-popover-top .arrow::before,
+.bs-popover-auto[x-placement^="top"] .arrow::before,
+.bs-popover-top .arrow::after,
+.bs-popover-auto[x-placement^="top"] .arrow::after {
+    border-width: 0.5rem 0.5rem 0;
+}
+
+.bs-popover-top .arrow::before,
+.bs-popover-auto[x-placement^="top"] .arrow::before {
+    bottom: 0;
+    border-top-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-top .arrow::after,
+.bs-popover-auto[x-placement^="top"] .arrow::after {
+    bottom: 1px;
+    border-top-color: #ffffff;
+}
+
+.bs-popover-right,
+.bs-popover-auto[x-placement^="right"] {
+    margin-left: 0.5rem;
+}
+
+.bs-popover-right .arrow,
+.bs-popover-auto[x-placement^="right"] .arrow {
+    left: calc((0.5rem + 1px) * -1);
+    width: 0.5rem;
+    height: 1rem;
+    margin: 0.3rem 0;
+}
+
+.bs-popover-right .arrow::before,
+.bs-popover-auto[x-placement^="right"] .arrow::before,
+.bs-popover-right .arrow::after,
+.bs-popover-auto[x-placement^="right"] .arrow::after {
+    border-width: 0.5rem 0.5rem 0.5rem 0;
+}
+
+.bs-popover-right .arrow::before,
+.bs-popover-auto[x-placement^="right"] .arrow::before {
+    left: 0;
+    border-right-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-right .arrow::after,
+.bs-popover-auto[x-placement^="right"] .arrow::after {
+    left: 1px;
+    border-right-color: #ffffff;
+}
+
+.bs-popover-bottom,
+.bs-popover-auto[x-placement^="bottom"] {
+    margin-top: 0.5rem;
+}
+
+.bs-popover-bottom .arrow,
+.bs-popover-auto[x-placement^="bottom"] .arrow {
+    top: calc((0.5rem + 1px) * -1);
+}
+
+.bs-popover-bottom .arrow::before,
+.bs-popover-auto[x-placement^="bottom"] .arrow::before,
+.bs-popover-bottom .arrow::after,
+.bs-popover-auto[x-placement^="bottom"] .arrow::after {
+    border-width: 0 0.5rem 0.5rem 0.5rem;
+}
+
+.bs-popover-bottom .arrow::before,
+.bs-popover-auto[x-placement^="bottom"] .arrow::before {
+    top: 0;
+    border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-bottom .arrow::after,
+.bs-popover-auto[x-placement^="bottom"] .arrow::after {
+    top: 1px;
+    border-bottom-color: #ffffff;
+}
+
+.bs-popover-bottom .popover-header::before,
+.bs-popover-auto[x-placement^="bottom"] .popover-header::before {
+    position: absolute;
+    top: 0;
+    left: 50%;
+    display: block;
+    width: 1rem;
+    margin-left: -0.5rem;
+    content: "";
+    border-bottom: 1px solid #f7f7f7;
+}
+
+.bs-popover-left,
+.bs-popover-auto[x-placement^="left"] {
+    margin-right: 0.5rem;
+}
+
+.bs-popover-left .arrow,
+.bs-popover-auto[x-placement^="left"] .arrow {
+    right: calc((0.5rem + 1px) * -1);
+    width: 0.5rem;
+    height: 1rem;
+    margin: 0.3rem 0;
+}
+
+.bs-popover-left .arrow::before,
+.bs-popover-auto[x-placement^="left"] .arrow::before,
+.bs-popover-left .arrow::after,
+.bs-popover-auto[x-placement^="left"] .arrow::after {
+    border-width: 0.5rem 0 0.5rem 0.5rem;
+}
+
+.bs-popover-left .arrow::before,
+.bs-popover-auto[x-placement^="left"] .arrow::before {
+    right: 0;
+    border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+.bs-popover-left .arrow::after,
+.bs-popover-auto[x-placement^="left"] .arrow::after {
+    right: 1px;
+    border-left-color: #ffffff;
+}
+
+.popover-header {
+    padding: 0.5rem 0.75rem;
+    margin-bottom: 0;
+    font-size: 1rem;
+    color: inherit;
+    background-color: #f7f7f7;
+    border-bottom: 1px solid #ebebeb;
+    border-top-left-radius: calc(0.3rem - 1px);
+    border-top-right-radius: calc(0.3rem - 1px);
+}
+
+.popover-header:empty {
+    display: none;
+}
+
+.popover-body {
+    padding: 0.5rem 0.75rem;
+    color: #212529;
+}
+
+.carousel {
+    position: relative;
+}
+
+.carousel-inner {
+    position: relative;
+    width: 100%;
+    overflow: hidden;
+}
+
+.carousel-item {
+    position: relative;
+    display: none;
+    align-items: center;
+    width: 100%;
+    transition: transform 0.6s ease;
+    backface-visibility: hidden;
+    perspective: 1000px;
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+    display: block;
+}
+
+.carousel-item-next,
+.carousel-item-prev {
+    position: absolute;
+    top: 0;
+}
+
+.carousel-item-next.carousel-item-left,
+.carousel-item-prev.carousel-item-right {
+    transform: translateX(0);
+}
+
+@supports (transform-style: preserve-3d) {
+    .carousel-item-next.carousel-item-left,
+    .carousel-item-prev.carousel-item-right {
+        transform: translate3d(0, 0, 0);
+    }
+}
+
+.carousel-item-next,
+.active.carousel-item-right {
+    transform: translateX(100%);
+}
+
+@supports (transform-style: preserve-3d) {
+    .carousel-item-next,
+    .active.carousel-item-right {
+        transform: translate3d(100%, 0, 0);
+    }
+}
+
+.carousel-item-prev,
+.active.carousel-item-left {
+    transform: translateX(-100%);
+}
+
+@supports (transform-style: preserve-3d) {
+    .carousel-item-prev,
+    .active.carousel-item-left {
+        transform: translate3d(-100%, 0, 0);
+    }
+}
+
+.carousel-control-prev,
+.carousel-control-next {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 15%;
+    color: #ffffff;
+    text-align: center;
+    opacity: 0.5;
+}
+
+.carousel-control-prev:hover,
+.carousel-control-prev:focus,
+.carousel-control-next:hover,
+.carousel-control-next:focus {
+    color: #ffffff;
+    text-decoration: none;
+    outline: 0;
+    opacity: .9;
+}
+
+.carousel-control-prev {
+    left: 0;
+}
+
+.carousel-control-next {
+    right: 0;
+}
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    background: transparent no-repeat center center;
+    background-size: 100% 100%;
+}
+
+.carousel-control-prev-icon {
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
+}
+
+.carousel-control-next-icon {
+    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
+}
+
+.carousel-indicators {
+    position: absolute;
+    right: 0;
+    bottom: 10px;
+    left: 0;
+    z-index: 15;
+    display: flex;
+    justify-content: center;
+    padding-left: 0;
+    margin-right: 15%;
+    margin-left: 15%;
+    list-style: none;
+}
+
+.carousel-indicators li {
+    position: relative;
+    flex: 0 1 auto;
+    width: 30px;
+    height: 3px;
+    margin-right: 3px;
+    margin-left: 3px;
+    text-indent: -999px;
+    background-color: rgba(255, 255, 255, 0.5);
+}
+
+.carousel-indicators li::before {
+    position: absolute;
+    top: -10px;
+    left: 0;
+    display: inline-block;
+    width: 100%;
+    height: 10px;
+    content: "";
+}
+
+.carousel-indicators li::after {
+    position: absolute;
+    bottom: -10px;
+    left: 0;
+    display: inline-block;
+    width: 100%;
+    height: 10px;
+    content: "";
+}
+
+.carousel-indicators .active {
+    background-color: #ffffff;
+}
+
+.carousel-caption {
+    position: absolute;
+    right: 15%;
+    bottom: 20px;
+    left: 15%;
+    z-index: 10;
+    padding-top: 20px;
+    padding-bottom: 20px;
+    color: #ffffff;
+    text-align: center;
+}
+
+.align-baseline {
+    vertical-align: baseline !important;
+}
+
+.align-top {
+    vertical-align: top !important;
+}
+
+.align-middle {
+    vertical-align: middle !important;
+}
+
+.align-bottom {
+    vertical-align: bottom !important;
+}
+
+.align-text-bottom {
+    vertical-align: text-bottom !important;
+}
+
+.align-text-top {
+    vertical-align: text-top !important;
+}
+
+.bg-primary {
+    background-color: #2196f3 !important;
+}
+
+a.bg-primary:hover,
+a.bg-primary:focus,
+button.bg-primary:hover,
+button.bg-primary:focus {
+    background-color: #0c7cd5 !important;
+}
+
+.bg-secondary {
+    background-color: #6c757d !important;
+}
+
+a.bg-secondary:hover,
+a.bg-secondary:focus,
+button.bg-secondary:hover,
+button.bg-secondary:focus {
+    background-color: #545b62 !important;
+}
+
+.bg-success {
+    background-color: #4caf50 !important;
+}
+
+a.bg-success:hover,
+a.bg-success:focus,
+button.bg-success:hover,
+button.bg-success:focus {
+    background-color: #3d8b40 !important;
+}
+
+.bg-info {
+    background-color: #00bcd4 !important;
+}
+
+a.bg-info:hover,
+a.bg-info:focus,
+button.bg-info:hover,
+button.bg-info:focus {
+    background-color: #008fa1 !important;
+}
+
+.bg-warning {
+    background-color: #ffeb3b !important;
+}
+
+a.bg-warning:hover,
+a.bg-warning:focus,
+button.bg-warning:hover,
+button.bg-warning:focus {
+    background-color: #ffe608 !important;
+}
+
+.bg-danger {
+    background-color: #f44336 !important;
+}
+
+a.bg-danger:hover,
+a.bg-danger:focus,
+button.bg-danger:hover,
+button.bg-danger:focus {
+    background-color: #ea1c0d !important;
+}
+
+.bg-light {
+    background-color: #f8f9fa !important;
+}
+
+a.bg-light:hover,
+a.bg-light:focus,
+button.bg-light:hover,
+button.bg-light:focus {
+    background-color: #dae0e5 !important;
+}
+
+.bg-dark {
+    background-color: #343a40 !important;
+}
+
+a.bg-dark:hover,
+a.bg-dark:focus,
+button.bg-dark:hover,
+button.bg-dark:focus {
+    background-color: #1d2124 !important;
+}
+
+.bg-white {
+    background-color: #ffffff !important;
+}
+
+.bg-transparent {
+    background-color: transparent !important;
+}
+
+.border {
+    border: 1px solid #dee2e6 !important;
+}
+
+.border-top {
+    border-top: 1px solid #dee2e6 !important;
+}
+
+.border-right {
+    border-right: 1px solid #dee2e6 !important;
+}
+
+.border-bottom {
+    border-bottom: 1px solid #dee2e6 !important;
+}
+
+.border-left {
+    border-left: 1px solid #dee2e6 !important;
+}
+
+.border-0 {
+    border: 0 !important;
+}
+
+.border-top-0 {
+    border-top: 0 !important;
+}
+
+.border-right-0 {
+    border-right: 0 !important;
+}
+
+.border-bottom-0 {
+    border-bottom: 0 !important;
+}
+
+.border-left-0 {
+    border-left: 0 !important;
+}
+
+.border-primary {
+    border-color: #2196f3 !important;
+}
+
+.border-secondary {
+    border-color: #6c757d !important;
+}
+
+.border-success {
+    border-color: #4caf50 !important;
+}
+
+.border-info {
+    border-color: #00bcd4 !important;
+}
+
+.border-warning {
+    border-color: #ffeb3b !important;
+}
+
+.border-danger {
+    border-color: #f44336 !important;
+}
+
+.border-light {
+    border-color: #f8f9fa !important;
+}
+
+.border-dark {
+    border-color: #343a40 !important;
+}
+
+.border-white {
+    border-color: #ffffff !important;
+}
+
+.rounded {
+    border-radius: 0.25rem !important;
+}
+
+.rounded-top {
+    border-top-left-radius: 0.25rem !important;
+    border-top-right-radius: 0.25rem !important;
+}
+
+.rounded-right {
+    border-top-right-radius: 0.25rem !important;
+    border-bottom-right-radius: 0.25rem !important;
+}
+
+.rounded-bottom {
+    border-bottom-right-radius: 0.25rem !important;
+    border-bottom-left-radius: 0.25rem !important;
+}
+
+.rounded-left {
+    border-top-left-radius: 0.25rem !important;
+    border-bottom-left-radius: 0.25rem !important;
+}
+
+.rounded-circle {
+    border-radius: 50% !important;
+}
+
+.rounded-0 {
+    border-radius: 0 !important;
+}
+
+.clearfix::after {
+    display: block;
+    clear: both;
+    content: "";
+}
+
+.d-none {
+    display: none !important;
+}
+
+.d-inline {
+    display: inline !important;
+}
+
+.d-inline-block {
+    display: inline-block !important;
+}
+
+.d-block {
+    display: block !important;
+}
+
+.d-table {
+    display: table !important;
+}
+
+.d-table-row {
+    display: table-row !important;
+}
+
+.d-table-cell {
+    display: table-cell !important;
+}
+
+.d-flex {
+    display: flex !important;
+}
+
+.d-inline-flex {
+    display: inline-flex !important;
+}
+
+@media (min-width: 576px) {
+    .d-sm-none {
+        display: none !important;
+    }
+    .d-sm-inline {
+        display: inline !important;
+    }
+    .d-sm-inline-block {
+        display: inline-block !important;
+    }
+    .d-sm-block {
+        display: block !important;
+    }
+    .d-sm-table {
+        display: table !important;
+    }
+    .d-sm-table-row {
+        display: table-row !important;
+    }
+    .d-sm-table-cell {
+        display: table-cell !important;
+    }
+    .d-sm-flex {
+        display: flex !important;
+    }
+    .d-sm-inline-flex {
+        display: inline-flex !important;
+    }
+}
+
+@media (min-width: 768px) {
+    .d-md-none {
+        display: none !important;
+    }
+    .d-md-inline {
+        display: inline !important;
+    }
+    .d-md-inline-block {
+        display: inline-block !important;
+    }
+    .d-md-block {
+        display: block !important;
+    }
+    .d-md-table {
+        display: table !important;
+    }
+    .d-md-table-row {
+        display: table-row !important;
+    }
+    .d-md-table-cell {
+        display: table-cell !important;
+    }
+    .d-md-flex {
+        display: flex !important;
+    }
+    .d-md-inline-flex {
+        display: inline-flex !important;
+    }
+}
+
+@media (min-width: 992px) {
+    .d-lg-none {
+        display: none !important;
+    }
+    .d-lg-inline {
+        display: inline !important;
+    }
+    .d-lg-inline-block {
+        display: inline-block !important;
+    }
+    .d-lg-block {
+        display: block !important;
+    }
+    .d-lg-table {
+        display: table !important;
+    }
+    .d-lg-table-row {
+        display: table-row !important;
+    }
+    .d-lg-table-cell {
+        display: table-cell !important;
+    }
+    .d-lg-flex {
+        display: flex !important;
+    }
+    .d-lg-inline-flex {
+        display: inline-flex !important;
+    }
+}
+
+@media (min-width: 1200px) {
+    .d-xl-none {
+        display: none !important;
+    }
+    .d-xl-inline {
+        display: inline !important;
+    }
+    .d-xl-inline-block {
+        display: inline-block !important;
+    }
+    .d-xl-block {
+        display: block !important;
+    }
+    .d-xl-table {
+        display: table !important;
+    }
+    .d-xl-table-row {
+        display: table-row !important;
+    }
+    .d-xl-table-cell {
+        display: table-cell !important;
+    }
+    .d-xl-flex {
+        display: flex !important;
+    }
+    .d-xl-inline-flex {
+        display: inline-flex !important;
+    }
+}
+
+@media print {
+    .d-print-none {
+        display: none !important;
+    }
+    .d-print-inline {
+        display: inline !important;
+    }
+    .d-print-inline-block {
+        display: inline-block !important;
+    }
+    .d-print-block {
+        display: block !important;
+    }
+    .d-print-table {
+        display: table !important;
+    }
+    .d-print-table-row {
+        display: table-row !important;
+    }
+    .d-print-table-cell {
+        display: table-cell !important;
+    }
+    .d-print-flex {
+        display: flex !important;
+    }
+    .d-print-inline-flex {
+        display: inline-flex !important;
+    }
+}
+
+.embed-responsive {
+    position: relative;
+    display: block;
+    width: 100%;
+    padding: 0;
+    overflow: hidden;
+}
+
+.embed-responsive::before {
+    display: block;
+    content: "";
+}
+
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    border: 0;
+}
+
+.embed-responsive-21by9::before {
+    padding-top: 42.857143%;
+}
+
+.embed-responsive-16by9::before {
+    padding-top: 56.25%;
+}
+
+.embed-responsive-4by3::before {
+    padding-top: 75%;
+}
+
+.embed-responsive-1by1::before {
+    padding-top: 100%;
+}
+
+.flex-row {
+    flex-direction: row !important;
+}
+
+.flex-column {
+    flex-direction: column !important;
+}
+
+.flex-row-reverse {
+    flex-direction: row-reverse !important;
+}
+
+.flex-column-reverse {
+    flex-direction: column-reverse !important;
+}
+
+.flex-wrap {
+    flex-wrap: wrap !important;
+}
+
+.flex-nowrap {
+    flex-wrap: nowrap !important;
+}
+
+.flex-wrap-reverse {
+    flex-wrap: wrap-reverse !important;
+}
+
+.justify-content-start {
+    justify-content: flex-start !important;
+}
+
+.justify-content-end {
+    justify-content: flex-end !important;
+}
+
+.justify-content-center {
+    justify-content: center !important;
+}
+
+.justify-content-between {
+    justify-content: space-between !important;
+}
+
+.justify-content-around {
+    justify-content: space-around !important;
+}
+
+.align-items-start {
+    align-items: flex-start !important;
+}
+
+.align-items-end {
+    align-items: flex-end !important;
+}
+
+.align-items-center {
+    align-items: center !important;
+}
+
+.align-items-baseline {
+    align-items: baseline !important;
+}
+
+.align-items-stretch {
+    align-items: stretch !important;
+}
+
+.align-content-start {
+    align-content: flex-start !important;
+}
+
+.align-content-end {
+    align-content: flex-end !important;
+}
+
+.align-content-center {
+    align-content: center !important;
+}
+
+.align-content-between {
+    align-content: space-between !important;
+}
+
+.align-content-around {
+    align-content: space-around !important;
+}
+
+.align-content-stretch {
+    align-content: stretch !important;
+}
+
+.align-self-auto {
+    align-self: auto !important;
+}
+
+.align-self-start {
+    align-self: flex-start !important;
+}
+
+.align-self-end {
+    align-self: flex-end !important;
+}
+
+.align-self-center {
+    align-self: center !important;
+}
+
+.align-self-baseline {
+    align-self: baseline !important;
+}
+
+.align-self-stretch {
+    align-self: stretch !important;
+}
+
+@media (min-width: 576px) {
+    .flex-sm-row {
+        flex-direction: row !important;
+    }
+    .flex-sm-column {
+        flex-direction: column !important;
+    }
+    .flex-sm-row-reverse {
+        flex-direction: row-reverse !important;
+    }
+    .flex-sm-column-reverse {
+        flex-direction: column-reverse !important;
+    }
+    .flex-sm-wrap {
+        flex-wrap: wrap !important;
+    }
+    .flex-sm-nowrap {
+        flex-wrap: nowrap !important;
+    }
+    .flex-sm-wrap-reverse {
+        flex-wrap: wrap-reverse !important;
+    }
+    .justify-content-sm-start {
+        justify-content: flex-start !important;
+    }
+    .justify-content-sm-end {
+        justify-content: flex-end !important;
+    }
+    .justify-content-sm-center {
+        justify-content: center !important;
+    }
+    .justify-content-sm-between {
+        justify-content: space-between !important;
+    }
+    .justify-content-sm-around {
+        justify-content: space-around !important;
+    }
+    .align-items-sm-start {
+        align-items: flex-start !important;
+    }
+    .align-items-sm-end {
+        align-items: flex-end !important;
+    }
+    .align-items-sm-center {
+        align-items: center !important;
+    }
+    .align-items-sm-baseline {
+        align-items: baseline !important;
+    }
+    .align-items-sm-stretch {
+        align-items: stretch !important;
+    }
+    .align-content-sm-start {
+        align-content: flex-start !important;
+    }
+    .align-content-sm-end {
+        align-content: flex-end !important;
+    }
+    .align-content-sm-center {
+        align-content: center !important;
+    }
+    .align-content-sm-between {
+        align-content: space-between !important;
+    }
+    .align-content-sm-around {
+        align-content: space-around !important;
+    }
+    .align-content-sm-stretch {
+        align-content: stretch !important;
+    }
+    .align-self-sm-auto {
+        align-self: auto !important;
+    }
+    .align-self-sm-start {
+        align-self: flex-start !important;
+    }
+    .align-self-sm-end {
+        align-self: flex-end !important;
+    }
+    .align-self-sm-center {
+        align-self: center !important;
+    }
+    .align-self-sm-baseline {
+        align-self: baseline !important;
+    }
+    .align-self-sm-stretch {
+        align-self: stretch !important;
+    }
+}
+
+@media (min-width: 768px) {
+    .flex-md-row {
+        flex-direction: row !important;
+    }
+    .flex-md-column {
+        flex-direction: column !important;
+    }
+    .flex-md-row-reverse {
+        flex-direction: row-reverse !important;
+    }
+    .flex-md-column-reverse {
+        flex-direction: column-reverse !important;
+    }
+    .flex-md-wrap {
+        flex-wrap: wrap !important;
+    }
+    .flex-md-nowrap {
+        flex-wrap: nowrap !important;
+    }
+    .flex-md-wrap-reverse {
+        flex-wrap: wrap-reverse !important;
+    }
+    .justify-content-md-start {
+        justify-content: flex-start !important;
+    }
+    .justify-content-md-end {
+        justify-content: flex-end !important;
+    }
+    .justify-content-md-center {
+        justify-content: center !important;
+    }
+    .justify-content-md-between {
+        justify-content: space-between !important;
+    }
+    .justify-content-md-around {
+        justify-content: space-around !important;
+    }
+    .align-items-md-start {
+        align-items: flex-start !important;
+    }
+    .align-items-md-end {
+        align-items: flex-end !important;
+    }
+    .align-items-md-center {
+        align-items: center !important;
+    }
+    .align-items-md-baseline {
+        align-items: baseline !important;
+    }
+    .align-items-md-stretch {
+        align-items: stretch !important;
+    }
+    .align-content-md-start {
+        align-content: flex-start !important;
+    }
+    .align-content-md-end {
+        align-content: flex-end !important;
+    }
+    .align-content-md-center {
+        align-content: center !important;
+    }
+    .align-content-md-between {
+        align-content: space-between !important;
+    }
+    .align-content-md-around {
+        align-content: space-around !important;
+    }
+    .align-content-md-stretch {
+        align-content: stretch !important;
+    }
+    .align-self-md-auto {
+        align-self: auto !important;
+    }
+    .align-self-md-start {
+        align-self: flex-start !important;
+    }
+    .align-self-md-end {
+        align-self: flex-end !important;
+    }
+    .align-self-md-center {
+        align-self: center !important;
+    }
+    .align-self-md-baseline {
+        align-self: baseline !important;
+    }
+    .align-self-md-stretch {
+        align-self: stretch !important;
+    }
+}
+
+@media (min-width: 992px) {
+    .flex-lg-row {
+        flex-direction: row !important;
+    }
+    .flex-lg-column {
+        flex-direction: column !important;
+    }
+    .flex-lg-row-reverse {
+        flex-direction: row-reverse !important;
+    }
+    .flex-lg-column-reverse {
+        flex-direction: column-reverse !important;
+    }
+    .flex-lg-wrap {
+        flex-wrap: wrap !important;
+    }
+    .flex-lg-nowrap {
+        flex-wrap: nowrap !important;
+    }
+    .flex-lg-wrap-reverse {
+        flex-wrap: wrap-reverse !important;
+    }
+    .justify-content-lg-start {
+        justify-content: flex-start !important;
+    }
+    .justify-content-lg-end {
+        justify-content: flex-end !important;
+    }
+    .justify-content-lg-center {
+        justify-content: center !important;
+    }
+    .justify-content-lg-between {
+        justify-content: space-between !important;
+    }
+    .justify-content-lg-around {
+        justify-content: space-around !important;
+    }
+    .align-items-lg-start {
+        align-items: flex-start !important;
+    }
+    .align-items-lg-end {
+        align-items: flex-end !important;
+    }
+    .align-items-lg-center {
+        align-items: center !important;
+    }
+    .align-items-lg-baseline {
+        align-items: baseline !important;
+    }
+    .align-items-lg-stretch {
+        align-items: stretch !important;
+    }
+    .align-content-lg-start {
+        align-content: flex-start !important;
+    }
+    .align-content-lg-end {
+        align-content: flex-end !important;
+    }
+    .align-content-lg-center {
+        align-content: center !important;
+    }
+    .align-content-lg-between {
+        align-content: space-between !important;
+    }
+    .align-content-lg-around {
+        align-content: space-around !important;
+    }
+    .align-content-lg-stretch {
+        align-content: stretch !important;
+    }
+    .align-self-lg-auto {
+        align-self: auto !important;
+    }
+    .align-self-lg-start {
+        align-self: flex-start !important;
+    }
+    .align-self-lg-end {
+        align-self: flex-end !important;
+    }
+    .align-self-lg-center {
+        align-self: center !important;
+    }
+    .align-self-lg-baseline {
+        align-self: baseline !important;
+    }
+    .align-self-lg-stretch {
+        align-self: stretch !important;
+    }
+}
+
+@media (min-width: 1200px) {
+    .flex-xl-row {
+        flex-direction: row !important;
+    }
+    .flex-xl-column {
+        flex-direction: column !important;
+    }
+    .flex-xl-row-reverse {
+        flex-direction: row-reverse !important;
+    }
+    .flex-xl-column-reverse {
+        flex-direction: column-reverse !important;
+    }
+    .flex-xl-wrap {
+        flex-wrap: wrap !important;
+    }
+    .flex-xl-nowrap {
+        flex-wrap: nowrap !important;
+    }
+    .flex-xl-wrap-reverse {
+        flex-wrap: wrap-reverse !important;
+    }
+    .justify-content-xl-start {
+        justify-content: flex-start !important;
+    }
+    .justify-content-xl-end {
+        justify-content: flex-end !important;
+    }
+    .justify-content-xl-center {
+        justify-content: center !important;
+    }
+    .justify-content-xl-between {
+        justify-content: space-between !important;
+    }
+    .justify-content-xl-around {
+        justify-content: space-around !important;
+    }
+    .align-items-xl-start {
+        align-items: flex-start !important;
+    }
+    .align-items-xl-end {
+        align-items: flex-end !important;
+    }
+    .align-items-xl-center {
+        align-items: center !important;
+    }
+    .align-items-xl-baseline {
+        align-items: baseline !important;
+    }
+    .align-items-xl-stretch {
+        align-items: stretch !important;
+    }
+    .align-content-xl-start {
+        align-content: flex-start !important;
+    }
+    .align-content-xl-end {
+        align-content: flex-end !important;
+    }
+    .align-content-xl-center {
+        align-content: center !important;
+    }
+    .align-content-xl-between {
+        align-content: space-between !important;
+    }
+    .align-content-xl-around {
+        align-content: space-around !important;
+    }
+    .align-content-xl-stretch {
+        align-content: stretch !important;
+    }
+    .align-self-xl-auto {
+        align-self: auto !important;
+    }
+    .align-self-xl-start {
+        align-self: flex-start !important;
+    }
+    .align-self-xl-end {
+        align-self: flex-end !important;
+    }
+    .align-self-xl-center {
+        align-self: center !important;
+    }
+    .align-self-xl-baseline {
+        align-self: baseline !important;
+    }
+    .align-self-xl-stretch {
+        align-self: stretch !important;
+    }
+}
+
+.float-left {
+    float: left !important;
+}
+
+.float-right {
+    float: right !important;
+}
+
+.float-none {
+    float: none !important;
+}
+
+@media (min-width: 576px) {
+    .float-sm-left {
+        float: left !important;
+    }
+    .float-sm-right {
+        float: right !important;
+    }
+    .float-sm-none {
+        float: none !important;
+    }
+}
+
+@media (min-width: 768px) {
+    .float-md-left {
+        float: left !important;
+    }
+    .float-md-right {
+        float: right !important;
+    }
+    .float-md-none {
+        float: none !important;
+    }
+}
+
+@media (min-width: 992px) {
+    .float-lg-left {
+        float: left !important;
+    }
+    .float-lg-right {
+        float: right !important;
+    }
+    .float-lg-none {
+        float: none !important;
+    }
+}
+
+@media (min-width: 1200px) {
+    .float-xl-left {
+        float: left !important;
+    }
+    .float-xl-right {
+        float: right !important;
+    }
+    .float-xl-none {
+        float: none !important;
+    }
+}
+
+.position-static {
+    position: static !important;
+}
+
+.position-relative {
+    position: relative !important;
+}
+
+.position-absolute {
+    position: absolute !important;
+}
+
+.position-fixed {
+    position: fixed !important;
+}
+
+.position-sticky {
+    position: sticky !important;
+}
+
+.fixed-top {
+    position: fixed;
+    top: 0;
+    right: 0;
+    left: 0;
+    z-index: 1030;
+}
+
+.fixed-bottom {
+    position: fixed;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    z-index: 1030;
+}
+
+@supports (position: sticky) {
+    .sticky-top {
+        position: sticky;
+        top: 0;
+        z-index: 1020;
+    }
+}
+
+.sr-only,
+.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="today"]::after,
+.bootstrap-datetimepicker-widget .picker-switch::after,
+.bootstrap-datetimepicker-widget table th.prev::after,
+.bootstrap-datetimepicker-widget table th.next::after {
+    position: absolute;
+    width: 1px;
+    height: 1px;
+    padding: 0;
+    overflow: hidden;
+    clip: rect(0, 0, 0, 0);
+    white-space: nowrap;
+    clip-path: inset(50%);
+    border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+    position: static;
+    width: auto;
+    height: auto;
+    overflow: visible;
+    clip: auto;
+    white-space: normal;
+    clip-path: none;
+}
+
+.w-25 {
+    width: 25% !important;
+}
+
+.w-50 {
+    width: 50% !important;
+}
+
+.w-75 {
+    width: 75% !important;
+}
+
+.w-100 {
+    width: 100% !important;
+}
+
+.h-25 {
+    height: 25% !important;
+}
+
+.h-50 {
+    height: 50% !important;
+}
+
+.h-75 {
+    height: 75% !important;
+}
+
+.h-100 {
+    height: 100% !important;
+}
+
+.mw-100 {
+    max-width: 100% !important;
+}
+
+.mh-100 {
+    max-height: 100% !important;
+}
+
+.m-0 {
+    margin: 0 !important;
+}
+
+.mt-0,
+.my-0 {
+    margin-top: 0 !important;
+}
+
+.mr-0,
+.mx-0 {
+    margin-right: 0 !important;
+}
+
+.mb-0,
+.my-0 {
+    margin-bottom: 0 !important;
+}
+
+.ml-0,
+.mx-0 {
+    margin-left: 0 !important;
+}
+
+.m-1 {
+    margin: 0.25rem !important;
+}
+
+.mt-1,
+.my-1 {
+    margin-top: 0.25rem !important;
+}
+
+.mr-1,
+.mx-1 {
+    margin-right: 0.25rem !important;
+}
+
+.mb-1,
+.my-1 {
+    margin-bottom: 0.25rem !important;
+}
+
+.ml-1,
+.mx-1 {
+    margin-left: 0.25rem !important;
+}
+
+.m-2 {
+    margin: 0.5rem !important;
+}
+
+.mt-2,
+.my-2 {
+    margin-top: 0.5rem !important;
+}
+
+.mr-2,
+.mx-2 {
+    margin-right: 0.5rem !important;
+}
+
+.mb-2,
+.my-2 {
+    margin-bottom: 0.5rem !important;
+}
+
+.ml-2,
+.mx-2 {
+    margin-left: 0.5rem !important;
+}
+
+.m-3 {
+    margin: 1rem !important;
+}
+
+.mt-3,
+.my-3 {
+    margin-top: 1rem !important;
+}
+
+.mr-3,
+.mx-3 {
+    margin-right: 1rem !important;
+}
+
+.mb-3,
+.my-3 {
+    margin-bottom: 1rem !important;
+}
+
+.ml-3,
+.mx-3 {
+    margin-left: 1rem !important;
+}
+
+.m-4 {
+    margin: 1.5rem !important;
+}
+
+.mt-4,
+.my-4 {
+    margin-top: 1.5rem !important;
+}
+
+.mr-4,
+.mx-4 {
+    margin-right: 1.5rem !important;
+}
+
+.mb-4,
+.my-4 {
+    margin-bottom: 1.5rem !important;
+}
+
+.ml-4,
+.mx-4 {
+    margin-left: 1.5rem !important;
+}
+
+.m-5 {
+    margin: 3rem !important;
+}
+
+.mt-5,
+.my-5 {
+    margin-top: 3rem !important;
+}
+
+.mr-5,
+.mx-5 {
+    margin-right: 3rem !important;
+}
+
+.mb-5,
+.my-5 {
+    margin-bottom: 3rem !important;
+}
+
+.ml-5,
+.mx-5 {
+    margin-left: 3rem !important;
+}
+
+.p-0 {
+    padding: 0 !important;
+}
+
+.pt-0,
+.py-0 {
+    padding-top: 0 !important;
+}
+
+.pr-0,
+.px-0 {
+    padding-right: 0 !important;
+}
+
+.pb-0,
+.py-0 {
+    padding-bottom: 0 !important;
+}
+
+.pl-0,
+.px-0 {
+    padding-left: 0 !important;
+}
+
+.p-1 {
+    padding: 0.25rem !important;
+}
+
+.pt-1,
+.py-1 {
+    padding-top: 0.25rem !important;
+}
+
+.pr-1,
+.px-1 {
+    padding-right: 0.25rem !important;
+}
+
+.pb-1,
+.py-1 {
+    padding-bottom: 0.25rem !important;
+}
+
+.pl-1,
+.px-1 {
+    padding-left: 0.25rem !important;
+}
+
+.p-2 {
+    padding: 0.5rem !important;
+}
+
+.pt-2,
+.py-2 {
+    padding-top: 0.5rem !important;
+}
+
+.pr-2,
+.px-2 {
+    padding-right: 0.5rem !important;
+}
+
+.pb-2,
+.py-2 {
+    padding-bottom: 0.5rem !important;
+}
+
+.pl-2,
+.px-2 {
+    padding-left: 0.5rem !important;
+}
+
+.p-3 {
+    padding: 1rem !important;
+}
+
+.pt-3,
+.py-3 {
+    padding-top: 1rem !important;
+}
+
+.pr-3,
+.px-3 {
+    padding-right: 1rem !important;
+}
+
+.pb-3,
+.py-3 {
+    padding-bottom: 1rem !important;
+}
+
+.pl-3,
+.px-3 {
+    padding-left: 1rem !important;
+}
+
+.p-4 {
+    padding: 1.5rem !important;
+}
+
+.pt-4,
+.py-4 {
+    padding-top: 1.5rem !important;
+}
+
+.pr-4,
+.px-4 {
+    padding-right: 1.5rem !important;
+}
+
+.pb-4,
+.py-4 {
+    padding-bottom: 1.5rem !important;
+}
+
+.pl-4,
+.px-4 {
+    padding-left: 1.5rem !important;
+}
+
+.p-5 {
+    padding: 3rem !important;
+}
+
+.pt-5,
+.py-5 {
+    padding-top: 3rem !important;
+}
+
+.pr-5,
+.px-5 {
+    padding-right: 3rem !important;
+}
+
+.pb-5,
+.py-5 {
+    padding-bottom: 3rem !important;
+}
+
+.pl-5,
+.px-5 {
+    padding-left: 3rem !important;
+}
+
+.m-auto {
+    margin: auto !important;
+}
+
+.mt-auto,
+.my-auto {
+    margin-top: auto !important;
+}
+
+.mr-auto,
+.mx-auto {
+    margin-right: auto !important;
+}
+
+.mb-auto,
+.my-auto {
+    margin-bottom: auto !important;
+}
+
+.ml-auto,
+.mx-auto {
+    margin-left: auto !important;
+}
+
+@media (min-width: 576px) {
+    .m-sm-0 {
+        margin: 0 !important;
+    }
+    .mt-sm-0,
+    .my-sm-0 {
+        margin-top: 0 !important;
+    }
+    .mr-sm-0,
+    .mx-sm-0 {
+        margin-right: 0 !important;
+    }
+    .mb-sm-0,
+    .my-sm-0 {
+        margin-bottom: 0 !important;
+    }
+    .ml-sm-0,
+    .mx-sm-0 {
+        margin-left: 0 !important;
+    }
+    .m-sm-1 {
+        margin: 0.25rem !important;
+    }
+    .mt-sm-1,
+    .my-sm-1 {
+        margin-top: 0.25rem !important;
+    }
+    .mr-sm-1,
+    .mx-sm-1 {
+        margin-right: 0.25rem !important;
+    }
+    .mb-sm-1,
+    .my-sm-1 {
+        margin-bottom: 0.25rem !important;
+    }
+    .ml-sm-1,
+    .mx-sm-1 {
+        margin-left: 0.25rem !important;
+    }
+    .m-sm-2 {
+        margin: 0.5rem !important;
+    }
+    .mt-sm-2,
+    .my-sm-2 {
+        margin-top: 0.5rem !important;
+    }
+    .mr-sm-2,
+    .mx-sm-2 {
+        margin-right: 0.5rem !important;
+    }
+    .mb-sm-2,
+    .my-sm-2 {
+        margin-bottom: 0.5rem !important;
+    }
+    .ml-sm-2,
+    .mx-sm-2 {
+        margin-left: 0.5rem !important;
+    }
+    .m-sm-3 {
+        margin: 1rem !important;
+    }
+    .mt-sm-3,
+    .my-sm-3 {
+        margin-top: 1rem !important;
+    }
+    .mr-sm-3,
+    .mx-sm-3 {
+        margin-right: 1rem !important;
+    }
+    .mb-sm-3,
+    .my-sm-3 {
+        margin-bottom: 1rem !important;
+    }
+    .ml-sm-3,
+    .mx-sm-3 {
+        margin-left: 1rem !important;
+    }
+    .m-sm-4 {
+        margin: 1.5rem !important;
+    }
+    .mt-sm-4,
+    .my-sm-4 {
+        margin-top: 1.5rem !important;
+    }
+    .mr-sm-4,
+    .mx-sm-4 {
+        margin-right: 1.5rem !important;
+    }
+    .mb-sm-4,
+    .my-sm-4 {
+        margin-bottom: 1.5rem !important;
+    }
+    .ml-sm-4,
+    .mx-sm-4 {
+        margin-left: 1.5rem !important;
+    }
+    .m-sm-5 {
+        margin: 3rem !important;
+    }
+    .mt-sm-5,
+    .my-sm-5 {
+        margin-top: 3rem !important;
+    }
+    .mr-sm-5,
+    .mx-sm-5 {
+        margin-right: 3rem !important;
+    }
+    .mb-sm-5,
+    .my-sm-5 {
+        margin-bottom: 3rem !important;
+    }
+    .ml-sm-5,
+    .mx-sm-5 {
+        margin-left: 3rem !important;
+    }
+    .p-sm-0 {
+        padding: 0 !important;
+    }
+    .pt-sm-0,
+    .py-sm-0 {
+        padding-top: 0 !important;
+    }
+    .pr-sm-0,
+    .px-sm-0 {
+        padding-right: 0 !important;
+    }
+    .pb-sm-0,
+    .py-sm-0 {
+        padding-bottom: 0 !important;
+    }
+    .pl-sm-0,
+    .px-sm-0 {
+        padding-left: 0 !important;
+    }
+    .p-sm-1 {
+        padding: 0.25rem !important;
+    }
+    .pt-sm-1,
+    .py-sm-1 {
+        padding-top: 0.25rem !important;
+    }
+    .pr-sm-1,
+    .px-sm-1 {
+        padding-right: 0.25rem !important;
+    }
+    .pb-sm-1,
+    .py-sm-1 {
+        padding-bottom: 0.25rem !important;
+    }
+    .pl-sm-1,
+    .px-sm-1 {
+        padding-left: 0.25rem !important;
+    }
+    .p-sm-2 {
+        padding: 0.5rem !important;
+    }
+    .pt-sm-2,
+    .py-sm-2 {
+        padding-top: 0.5rem !important;
+    }
+    .pr-sm-2,
+    .px-sm-2 {
+        padding-right: 0.5rem !important;
+    }
+    .pb-sm-2,
+    .py-sm-2 {
+        padding-bottom: 0.5rem !important;
+    }
+    .pl-sm-2,
+    .px-sm-2 {
+        padding-left: 0.5rem !important;
+    }
+    .p-sm-3 {
+        padding: 1rem !important;
+    }
+    .pt-sm-3,
+    .py-sm-3 {
+        padding-top: 1rem !important;
+    }
+    .pr-sm-3,
+    .px-sm-3 {
+        padding-right: 1rem !important;
+    }
+    .pb-sm-3,
+    .py-sm-3 {
+        padding-bottom: 1rem !important;
+    }
+    .pl-sm-3,
+    .px-sm-3 {
+        padding-left: 1rem !important;
+    }
+    .p-sm-4 {
+        padding: 1.5rem !important;
+    }
+    .pt-sm-4,
+    .py-sm-4 {
+        padding-top: 1.5rem !important;
+    }
+    .pr-sm-4,
+    .px-sm-4 {
+        padding-right: 1.5rem !important;
+    }
+    .pb-sm-4,
+    .py-sm-4 {
+        padding-bottom: 1.5rem !important;
+    }
+    .pl-sm-4,
+    .px-sm-4 {
+        padding-left: 1.5rem !important;
+    }
+    .p-sm-5 {
+        padding: 3rem !important;
+    }
+    .pt-sm-5,
+    .py-sm-5 {
+        padding-top: 3rem !important;
+    }
+    .pr-sm-5,
+    .px-sm-5 {
+        padding-right: 3rem !important;
+    }
+    .pb-sm-5,
+    .py-sm-5 {
+        padding-bottom: 3rem !important;
+    }
+    .pl-sm-5,
+    .px-sm-5 {
+        padding-left: 3rem !important;
+    }
+    .m-sm-auto {
+        margin: auto !important;
+    }
+    .mt-sm-auto,
+    .my-sm-auto {
+        margin-top: auto !important;
+    }
+    .mr-sm-auto,
+    .mx-sm-auto {
+        margin-right: auto !important;
+    }
+    .mb-sm-auto,
+    .my-sm-auto {
+        margin-bottom: auto !important;
+    }
+    .ml-sm-auto,
+    .mx-sm-auto {
+        margin-left: auto !important;
+    }
+}
+
+@media (min-width: 768px) {
+    .m-md-0 {
+        margin: 0 !important;
+    }
+    .mt-md-0,
+    .my-md-0 {
+        margin-top: 0 !important;
+    }
+    .mr-md-0,
+    .mx-md-0 {
+        margin-right: 0 !important;
+    }
+    .mb-md-0,
+    .my-md-0 {
+        margin-bottom: 0 !important;
+    }
+    .ml-md-0,
+    .mx-md-0 {
+        margin-left: 0 !important;
+    }
+    .m-md-1 {
+        margin: 0.25rem !important;
+    }
+    .mt-md-1,
+    .my-md-1 {
+        margin-top: 0.25rem !important;
+    }
+    .mr-md-1,
+    .mx-md-1 {
+        margin-right: 0.25rem !important;
+    }
+    .mb-md-1,
+    .my-md-1 {
+        margin-bottom: 0.25rem !important;
+    }
+    .ml-md-1,
+    .mx-md-1 {
+        margin-left: 0.25rem !important;
+    }
+    .m-md-2 {
+        margin: 0.5rem !important;
+    }
+    .mt-md-2,
+    .my-md-2 {
+        margin-top: 0.5rem !important;
+    }
+    .mr-md-2,
+    .mx-md-2 {
+        margin-right: 0.5rem !important;
+    }
+    .mb-md-2,
+    .my-md-2 {
+        margin-bottom: 0.5rem !important;
+    }
+    .ml-md-2,
+    .mx-md-2 {
+        margin-left: 0.5rem !important;
+    }
+    .m-md-3 {
+        margin: 1rem !important;
+    }
+    .mt-md-3,
+    .my-md-3 {
+        margin-top: 1rem !important;
+    }
+    .mr-md-3,
+    .mx-md-3 {
+        margin-right: 1rem !important;
+    }
+    .mb-md-3,
+    .my-md-3 {
+        margin-bottom: 1rem !important;
+    }
+    .ml-md-3,
+    .mx-md-3 {
+        margin-left: 1rem !important;
+    }
+    .m-md-4 {
+        margin: 1.5rem !important;
+    }
+    .mt-md-4,
+    .my-md-4 {
+        margin-top: 1.5rem !important;
+    }
+    .mr-md-4,
+    .mx-md-4 {
+        margin-right: 1.5rem !important;
+    }
+    .mb-md-4,
+    .my-md-4 {
+        margin-bottom: 1.5rem !important;
+    }
+    .ml-md-4,
+    .mx-md-4 {
+        margin-left: 1.5rem !important;
+    }
+    .m-md-5 {
+        margin: 3rem !important;
+    }
+    .mt-md-5,
+    .my-md-5 {
+        margin-top: 3rem !important;
+    }
+    .mr-md-5,
+    .mx-md-5 {
+        margin-right: 3rem !important;
+    }
+    .mb-md-5,
+    .my-md-5 {
+        margin-bottom: 3rem !important;
+    }
+    .ml-md-5,
+    .mx-md-5 {
+        margin-left: 3rem !important;
+    }
+    .p-md-0 {
+        padding: 0 !important;
+    }
+    .pt-md-0,
+    .py-md-0 {
+        padding-top: 0 !important;
+    }
+    .pr-md-0,
+    .px-md-0 {
+        padding-right: 0 !important;
+    }
+    .pb-md-0,
+    .py-md-0 {
+        padding-bottom: 0 !important;
+    }
+    .pl-md-0,
+    .px-md-0 {
+        padding-left: 0 !important;
+    }
+    .p-md-1 {
+        padding: 0.25rem !important;
+    }
+    .pt-md-1,
+    .py-md-1 {
+        padding-top: 0.25rem !important;
+    }
+    .pr-md-1,
+    .px-md-1 {
+        padding-right: 0.25rem !important;
+    }
+    .pb-md-1,
+    .py-md-1 {
+        padding-bottom: 0.25rem !important;
+    }
+    .pl-md-1,
+    .px-md-1 {
+        padding-left: 0.25rem !important;
+    }
+    .p-md-2 {
+        padding: 0.5rem !important;
+    }
+    .pt-md-2,
+    .py-md-2 {
+        padding-top: 0.5rem !important;
+    }
+    .pr-md-2,
+    .px-md-2 {
+        padding-right: 0.5rem !important;
+    }
+    .pb-md-2,
+    .py-md-2 {
+        padding-bottom: 0.5rem !important;
+    }
+    .pl-md-2,
+    .px-md-2 {
+        padding-left: 0.5rem !important;
+    }
+    .p-md-3 {
+        padding: 1rem !important;
+    }
+    .pt-md-3,
+    .py-md-3 {
+        padding-top: 1rem !important;
+    }
+    .pr-md-3,
+    .px-md-3 {
+        padding-right: 1rem !important;
+    }
+    .pb-md-3,
+    .py-md-3 {
+        padding-bottom: 1rem !important;
+    }
+    .pl-md-3,
+    .px-md-3 {
+        padding-left: 1rem !important;
+    }
+    .p-md-4 {
+        padding: 1.5rem !important;
+    }
+    .pt-md-4,
+    .py-md-4 {
+        padding-top: 1.5rem !important;
+    }
+    .pr-md-4,
+    .px-md-4 {
+        padding-right: 1.5rem !important;
+    }
+    .pb-md-4,
+    .py-md-4 {
+        padding-bottom: 1.5rem !important;
+    }
+    .pl-md-4,
+    .px-md-4 {
+        padding-left: 1.5rem !important;
+    }
+    .p-md-5 {
+        padding: 3rem !important;
+    }
+    .pt-md-5,
+    .py-md-5 {
+        padding-top: 3rem !important;
+    }
+    .pr-md-5,
+    .px-md-5 {
+        padding-right: 3rem !important;
+    }
+    .pb-md-5,
+    .py-md-5 {
+        padding-bottom: 3rem !important;
+    }
+    .pl-md-5,
+    .px-md-5 {
+        padding-left: 3rem !important;
+    }
+    .m-md-auto {
+        margin: auto !important;
+    }
+    .mt-md-auto,
+    .my-md-auto {
+        margin-top: auto !important;
+    }
+    .mr-md-auto,
+    .mx-md-auto {
+        margin-right: auto !important;
+    }
+    .mb-md-auto,
+    .my-md-auto {
+        margin-bottom: auto !important;
+    }
+    .ml-md-auto,
+    .mx-md-auto {
+        margin-left: auto !important;
+    }
+}
+
+@media (min-width: 992px) {
+    .m-lg-0 {
+        margin: 0 !important;
+    }
+    .mt-lg-0,
+    .my-lg-0 {
+        margin-top: 0 !important;
+    }
+    .mr-lg-0,
+    .mx-lg-0 {
+        margin-right: 0 !important;
+    }
+    .mb-lg-0,
+    .my-lg-0 {
+        margin-bottom: 0 !important;
+    }
+    .ml-lg-0,
+    .mx-lg-0 {
+        margin-left: 0 !important;
+    }
+    .m-lg-1 {
+        margin: 0.25rem !important;
+    }
+    .mt-lg-1,
+    .my-lg-1 {
+        margin-top: 0.25rem !important;
+    }
+    .mr-lg-1,
+    .mx-lg-1 {
+        margin-right: 0.25rem !important;
+    }
+    .mb-lg-1,
+    .my-lg-1 {
+        margin-bottom: 0.25rem !important;
+    }
+    .ml-lg-1,
+    .mx-lg-1 {
+        margin-left: 0.25rem !important;
+    }
+    .m-lg-2 {
+        margin: 0.5rem !important;
+    }
+    .mt-lg-2,
+    .my-lg-2 {
+        margin-top: 0.5rem !important;
+    }
+    .mr-lg-2,
+    .mx-lg-2 {
+        margin-right: 0.5rem !important;
+    }
+    .mb-lg-2,
+    .my-lg-2 {
+        margin-bottom: 0.5rem !important;
+    }
+    .ml-lg-2,
+    .mx-lg-2 {
+        margin-left: 0.5rem !important;
+    }
+    .m-lg-3 {
+        margin: 1rem !important;
+    }
+    .mt-lg-3,
+    .my-lg-3 {
+        margin-top: 1rem !important;
+    }
+    .mr-lg-3,
+    .mx-lg-3 {
+        margin-right: 1rem !important;
+    }
+    .mb-lg-3,
+    .my-lg-3 {
+        margin-bottom: 1rem !important;
+    }
+    .ml-lg-3,
+    .mx-lg-3 {
+        margin-left: 1rem !important;
+    }
+    .m-lg-4 {
+        margin: 1.5rem !important;
+    }
+    .mt-lg-4,
+    .my-lg-4 {
+        margin-top: 1.5rem !important;
+    }
+    .mr-lg-4,
+    .mx-lg-4 {
+        margin-right: 1.5rem !important;
+    }
+    .mb-lg-4,
+    .my-lg-4 {
+        margin-bottom: 1.5rem !important;
+    }
+    .ml-lg-4,
+    .mx-lg-4 {
+        margin-left: 1.5rem !important;
+    }
+    .m-lg-5 {
+        margin: 3rem !important;
+    }
+    .mt-lg-5,
+    .my-lg-5 {
+        margin-top: 3rem !important;
+    }
+    .mr-lg-5,
+    .mx-lg-5 {
+        margin-right: 3rem !important;
+    }
+    .mb-lg-5,
+    .my-lg-5 {
+        margin-bottom: 3rem !important;
+    }
+    .ml-lg-5,
+    .mx-lg-5 {
+        margin-left: 3rem !important;
+    }
+    .p-lg-0 {
+        padding: 0 !important;
+    }
+    .pt-lg-0,
+    .py-lg-0 {
+        padding-top: 0 !important;
+    }
+    .pr-lg-0,
+    .px-lg-0 {
+        padding-right: 0 !important;
+    }
+    .pb-lg-0,
+    .py-lg-0 {
+        padding-bottom: 0 !important;
+    }
+    .pl-lg-0,
+    .px-lg-0 {
+        padding-left: 0 !important;
+    }
+    .p-lg-1 {
+        padding: 0.25rem !important;
+    }
+    .pt-lg-1,
+    .py-lg-1 {
+        padding-top: 0.25rem !important;
+    }
+    .pr-lg-1,
+    .px-lg-1 {
+        padding-right: 0.25rem !important;
+    }
+    .pb-lg-1,
+    .py-lg-1 {
+        padding-bottom: 0.25rem !important;
+    }
+    .pl-lg-1,
+    .px-lg-1 {
+        padding-left: 0.25rem !important;
+    }
+    .p-lg-2 {
+        padding: 0.5rem !important;
+    }
+    .pt-lg-2,
+    .py-lg-2 {
+        padding-top: 0.5rem !important;
+    }
+    .pr-lg-2,
+    .px-lg-2 {
+        padding-right: 0.5rem !important;
+    }
+    .pb-lg-2,
+    .py-lg-2 {
+        padding-bottom: 0.5rem !important;
+    }
+    .pl-lg-2,
+    .px-lg-2 {
+        padding-left: 0.5rem !important;
+    }
+    .p-lg-3 {
+        padding: 1rem !important;
+    }
+    .pt-lg-3,
+    .py-lg-3 {
+        padding-top: 1rem !important;
+    }
+    .pr-lg-3,
+    .px-lg-3 {
+        padding-right: 1rem !important;
+    }
+    .pb-lg-3,
+    .py-lg-3 {
+        padding-bottom: 1rem !important;
+    }
+    .pl-lg-3,
+    .px-lg-3 {
+        padding-left: 1rem !important;
+    }
+    .p-lg-4 {
+        padding: 1.5rem !important;
+    }
+    .pt-lg-4,
+    .py-lg-4 {
+        padding-top: 1.5rem !important;
+    }
+    .pr-lg-4,
+    .px-lg-4 {
+        padding-right: 1.5rem !important;
+    }
+    .pb-lg-4,
+    .py-lg-4 {
+        padding-bottom: 1.5rem !important;
+    }
+    .pl-lg-4,
+    .px-lg-4 {
+        padding-left: 1.5rem !important;
+    }
+    .p-lg-5 {
+        padding: 3rem !important;
+    }
+    .pt-lg-5,
+    .py-lg-5 {
+        padding-top: 3rem !important;
+    }
+    .pr-lg-5,
+    .px-lg-5 {
+        padding-right: 3rem !important;
+    }
+    .pb-lg-5,
+    .py-lg-5 {
+        padding-bottom: 3rem !important;
+    }
+    .pl-lg-5,
+    .px-lg-5 {
+        padding-left: 3rem !important;
+    }
+    .m-lg-auto {
+        margin: auto !important;
+    }
+    .mt-lg-auto,
+    .my-lg-auto {
+        margin-top: auto !important;
+    }
+    .mr-lg-auto,
+    .mx-lg-auto {
+        margin-right: auto !important;
+    }
+    .mb-lg-auto,
+    .my-lg-auto {
+        margin-bottom: auto !important;
+    }
+    .ml-lg-auto,
+    .mx-lg-auto {
+        margin-left: auto !important;
+    }
+}
+
+@media (min-width: 1200px) {
+    .m-xl-0 {
+        margin: 0 !important;
+    }
+    .mt-xl-0,
+    .my-xl-0 {
+        margin-top: 0 !important;
+    }
+    .mr-xl-0,
+    .mx-xl-0 {
+        margin-right: 0 !important;
+    }
+    .mb-xl-0,
+    .my-xl-0 {
+        margin-bottom: 0 !important;
+    }
+    .ml-xl-0,
+    .mx-xl-0 {
+        margin-left: 0 !important;
+    }
+    .m-xl-1 {
+        margin: 0.25rem !important;
+    }
+    .mt-xl-1,
+    .my-xl-1 {
+        margin-top: 0.25rem !important;
+    }
+    .mr-xl-1,
+    .mx-xl-1 {
+        margin-right: 0.25rem !important;
+    }
+    .mb-xl-1,
+    .my-xl-1 {
+        margin-bottom: 0.25rem !important;
+    }
+    .ml-xl-1,
+    .mx-xl-1 {
+        margin-left: 0.25rem !important;
+    }
+    .m-xl-2 {
+        margin: 0.5rem !important;
+    }
+    .mt-xl-2,
+    .my-xl-2 {
+        margin-top: 0.5rem !important;
+    }
+    .mr-xl-2,
+    .mx-xl-2 {
+        margin-right: 0.5rem !important;
+    }
+    .mb-xl-2,
+    .my-xl-2 {
+        margin-bottom: 0.5rem !important;
+    }
+    .ml-xl-2,
+    .mx-xl-2 {
+        margin-left: 0.5rem !important;
+    }
+    .m-xl-3 {
+        margin: 1rem !important;
+    }
+    .mt-xl-3,
+    .my-xl-3 {
+        margin-top: 1rem !important;
+    }
+    .mr-xl-3,
+    .mx-xl-3 {
+        margin-right: 1rem !important;
+    }
+    .mb-xl-3,
+    .my-xl-3 {
+        margin-bottom: 1rem !important;
+    }
+    .ml-xl-3,
+    .mx-xl-3 {
+        margin-left: 1rem !important;
+    }
+    .m-xl-4 {
+        margin: 1.5rem !important;
+    }
+    .mt-xl-4,
+    .my-xl-4 {
+        margin-top: 1.5rem !important;
+    }
+    .mr-xl-4,
+    .mx-xl-4 {
+        margin-right: 1.5rem !important;
+    }
+    .mb-xl-4,
+    .my-xl-4 {
+        margin-bottom: 1.5rem !important;
+    }
+    .ml-xl-4,
+    .mx-xl-4 {
+        margin-left: 1.5rem !important;
+    }
+    .m-xl-5 {
+        margin: 3rem !important;
+    }
+    .mt-xl-5,
+    .my-xl-5 {
+        margin-top: 3rem !important;
+    }
+    .mr-xl-5,
+    .mx-xl-5 {
+        margin-right: 3rem !important;
+    }
+    .mb-xl-5,
+    .my-xl-5 {
+        margin-bottom: 3rem !important;
+    }
+    .ml-xl-5,
+    .mx-xl-5 {
+        margin-left: 3rem !important;
+    }
+    .p-xl-0 {
+        padding: 0 !important;
+    }
+    .pt-xl-0,
+    .py-xl-0 {
+        padding-top: 0 !important;
+    }
+    .pr-xl-0,
+    .px-xl-0 {
+        padding-right: 0 !important;
+    }
+    .pb-xl-0,
+    .py-xl-0 {
+        padding-bottom: 0 !important;
+    }
+    .pl-xl-0,
+    .px-xl-0 {
+        padding-left: 0 !important;
+    }
+    .p-xl-1 {
+        padding: 0.25rem !important;
+    }
+    .pt-xl-1,
+    .py-xl-1 {
+        padding-top: 0.25rem !important;
+    }
+    .pr-xl-1,
+    .px-xl-1 {
+        padding-right: 0.25rem !important;
+    }
+    .pb-xl-1,
+    .py-xl-1 {
+        padding-bottom: 0.25rem !important;
+    }
+    .pl-xl-1,
+    .px-xl-1 {
+        padding-left: 0.25rem !important;
+    }
+    .p-xl-2 {
+        padding: 0.5rem !important;
+    }
+    .pt-xl-2,
+    .py-xl-2 {
+        padding-top: 0.5rem !important;
+    }
+    .pr-xl-2,
+    .px-xl-2 {
+        padding-right: 0.5rem !important;
+    }
+    .pb-xl-2,
+    .py-xl-2 {
+        padding-bottom: 0.5rem !important;
+    }
+    .pl-xl-2,
+    .px-xl-2 {
+        padding-left: 0.5rem !important;
+    }
+    .p-xl-3 {
+        padding: 1rem !important;
+    }
+    .pt-xl-3,
+    .py-xl-3 {
+        padding-top: 1rem !important;
+    }
+    .pr-xl-3,
+    .px-xl-3 {
+        padding-right: 1rem !important;
+    }
+    .pb-xl-3,
+    .py-xl-3 {
+        padding-bottom: 1rem !important;
+    }
+    .pl-xl-3,
+    .px-xl-3 {
+        padding-left: 1rem !important;
+    }
+    .p-xl-4 {
+        padding: 1.5rem !important;
+    }
+    .pt-xl-4,
+    .py-xl-4 {
+        padding-top: 1.5rem !important;
+    }
+    .pr-xl-4,
+    .px-xl-4 {
+        padding-right: 1.5rem !important;
+    }
+    .pb-xl-4,
+    .py-xl-4 {
+        padding-bottom: 1.5rem !important;
+    }
+    .pl-xl-4,
+    .px-xl-4 {
+        padding-left: 1.5rem !important;
+    }
+    .p-xl-5 {
+        padding: 3rem !important;
+    }
+    .pt-xl-5,
+    .py-xl-5 {
+        padding-top: 3rem !important;
+    }
+    .pr-xl-5,
+    .px-xl-5 {
+        padding-right: 3rem !important;
+    }
+    .pb-xl-5,
+    .py-xl-5 {
+        padding-bottom: 3rem !important;
+    }
+    .pl-xl-5,
+    .px-xl-5 {
+        padding-left: 3rem !important;
+    }
+    .m-xl-auto {
+        margin: auto !important;
+    }
+    .mt-xl-auto,
+    .my-xl-auto {
+        margin-top: auto !important;
+    }
+    .mr-xl-auto,
+    .mx-xl-auto {
+        margin-right: auto !important;
+    }
+    .mb-xl-auto,
+    .my-xl-auto {
+        margin-bottom: auto !important;
+    }
+    .ml-xl-auto,
+    .mx-xl-auto {
+        margin-left: auto !important;
+    }
+}
+
+.text-justify {
+    text-align: justify !important;
+}
+
+.text-nowrap {
+    white-space: nowrap !important;
+}
+
+.text-truncate {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.text-left {
+    text-align: left !important;
+}
+
+.text-right {
+    text-align: right !important;
+}
+
+.text-center {
+    text-align: center !important;
+}
+
+@media (min-width: 576px) {
+    .text-sm-left {
+        text-align: left !important;
+    }
+    .text-sm-right {
+        text-align: right !important;
+    }
+    .text-sm-center {
+        text-align: center !important;
+    }
+}
+
+@media (min-width: 768px) {
+    .text-md-left {
+        text-align: left !important;
+    }
+    .text-md-right {
+        text-align: right !important;
+    }
+    .text-md-center {
+        text-align: center !important;
+    }
+}
+
+@media (min-width: 992px) {
+    .text-lg-left {
+        text-align: left !important;
+    }
+    .text-lg-right {
+        text-align: right !important;
+    }
+    .text-lg-center {
+        text-align: center !important;
+    }
+}
+
+@media (min-width: 1200px) {
+    .text-xl-left {
+        text-align: left !important;
+    }
+    .text-xl-right {
+        text-align: right !important;
+    }
+    .text-xl-center {
+        text-align: center !important;
+    }
+}
+
+.text-lowercase {
+    text-transform: lowercase !important;
+}
+
+.text-uppercase {
+    text-transform: uppercase !important;
+}
+
+.text-capitalize {
+    text-transform: capitalize !important;
+}
+
+.font-weight-light {
+    font-weight: 300 !important;
+}
+
+.font-weight-normal {
+    font-weight: 400 !important;
+}
+
+.font-weight-bold {
+    font-weight: 500 !important;
+}
+
+.font-italic {
+    font-style: italic !important;
+}
+
+.text-white {
+    color: #fff !important;
+}
+
+.text-primary {
+    color: #2196f3 !important;
+}
+
+a.text-primary:hover,
+a.text-primary:focus {
+    color: #0c7cd5 !important;
+}
+
+.text-secondary {
+    color: #6c757d !important;
+}
+
+a.text-secondary:hover,
+a.text-secondary:focus {
+    color: #545b62 !important;
+}
+
+.text-success {
+    color: #4caf50 !important;
+}
+
+a.text-success:hover,
+a.text-success:focus {
+    color: #3d8b40 !important;
+}
+
+.text-info {
+    color: #00bcd4 !important;
+}
+
+a.text-info:hover,
+a.text-info:focus {
+    color: #008fa1 !important;
+}
+
+.text-warning {
+    color: #ffeb3b !important;
+}
+
+a.text-warning:hover,
+a.text-warning:focus {
+    color: #ffe608 !important;
+}
+
+.text-danger {
+    color: #f44336 !important;
+}
+
+a.text-danger:hover,
+a.text-danger:focus {
+    color: #ea1c0d !important;
+}
+
+.text-light {
+    color: #f8f9fa !important;
+}
+
+a.text-light:hover,
+a.text-light:focus {
+    color: #dae0e5 !important;
+}
+
+.text-dark {
+    color: #343a40 !important;
+}
+
+a.text-dark:hover,
+a.text-dark:focus {
+    color: #1d2124 !important;
+}
+
+.text-muted,
+.bmd-help {
+    color: #6c757d !important;
+}
+
+.text-hide {
+    font: 0/0 a;
+    color: transparent;
+    text-shadow: none;
+    background-color: transparent;
+    border: 0;
+}
+
+.visible {
+    visibility: visible !important;
+}
+
+.invisible {
+    visibility: hidden !important;
+}
+
+body {
+    background-color: #FFFFFF;
+}
+
+a:focus {
+    outline: none;
+}
+
+button:focus {
+    outline: none;
+}
+
+.bmd-layout-canvas {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+}
+
+.bmd-layout-container {
+    position: relative;
+    display: flex;
+    flex-direction: column;
+    width: 100%;
+    height: 100%;
+    overflow-x: hidden;
+    overflow-y: auto;
+    -webkit-overflow-scrolling: touch;
+}
+
+.bmd-layout-header {
+    z-index: 3;
+    display: flex;
+    flex-direction: column;
+    flex-wrap: nowrap;
+    flex-shrink: 0;
+    justify-content: flex-start;
+    width: 100%;
+    max-height: 1000px;
+    transform: translateZ(0);
+    transition-duration: 0.2s;
+    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.bmd-layout-content {
+    position: relative;
+    z-index: 1;
+    display: inline-block;
+    flex-grow: 1;
+    overflow-x: hidden;
+    overflow-y: auto;
+    -webkit-overflow-scrolling: touch;
+    transition-duration: 0.2s;
+    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.bmd-layout-spacer {
+    flex-grow: 1;
+}
+
+.bmd-layout-backdrop {
+    position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 4;
+    width: 100%;
+    height: 100%;
+    visibility: hidden;
+    background-color: transparent;
+    transition-property: background-color;
+    transition-duration: 0.2s;
+    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+@supports (pointer-events: auto) {
+    .bmd-layout-backdrop {
+        background-color: rgba(0, 0, 0, 0.5);
+        opacity: 0;
+        transition-property: opacity;
+        visibility: visible;
+        pointer-events: none;
+    }
+}
+
+.btn {
+    position: relative;
+    padding: 12px 30px;
+    margin: 0.3125rem 1px;
+    font-size: .75rem;
+    font-weight: 400;
+    line-height: 1.428571;
+    text-decoration: none;
+    text-transform: uppercase;
+    letter-spacing: 0;
+    cursor: pointer;
+    background-color: transparent;
+    border: 0;
+    border-radius: 0.2rem;
+    outline: 0;
+    transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
+    will-change: box-shadow, transform;
+}
+
+.btn:focus,
+.btn.focus,
+.btn:active:focus,
+.btn:active.focus,
+.btn.active:focus,
+.btn.active.focus {
+    outline: 0;
+}
+
+.btn.btn-primary {
+    color: #fff;
+    background-color: #9c27b0;
+    border-color: #9c27b0;
+    box-shadow: 0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12);
+}
+
+.btn.btn-primary:hover {
+    color: #fff;
+    background-color: #9124a3;
+    border-color: #701c7e;
+}
+
+.btn.btn-primary:focus,
+.btn.btn-primary.focus,
+.btn.btn-primary:hover {
+    color: #fff;
+    background-color: #9124a3;
+    border-color: #701c7e;
+}
+
+.btn.btn-primary:active,
+.btn.btn-primary.active,
+.open>.btn.btn-primary.dropdown-toggle,
+.show>.btn.btn-primary.dropdown-toggle {
+    color: #fff;
+    background-color: #9124a3;
+    border-color: #701c7e;
+    box-shadow: 0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12);
+}
+
+.btn.btn-primary:active:hover,
+.btn.btn-primary:active:focus,
+.btn.btn-primary:active.focus,
+.btn.btn-primary.active:hover,
+.btn.btn-primary.active:focus,
+.btn.btn-primary.active.focus,
+.open>.btn.btn-primary.dropdown-toggle:hover,
+.open>.btn.btn-primary.dropdown-toggle:focus,
+.open>.btn.btn-primary.dropdown-toggle.focus,
+.show>.btn.btn-primary.dropdown-toggle:hover,
+.show>.btn.btn-primary.dropdown-toggle:focus,
+.show>.btn.btn-primary.dropdown-toggle.focus {
+    color: #fff;
+    background-color: #9124a3;
+    border-color: #3f1048;
+}
+
+.open>.btn.btn-primary.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #9c27b0;
+}
+
+.open>.btn.btn-primary.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #9124a3;
+}
+
+.btn.btn-primary.disabled:focus,
+.btn.btn-primary.disabled.focus,
+.btn.btn-primary:disabled:focus,
+.btn.btn-primary:disabled.focus {
+    background-color: #9c27b0;
+    border-color: #9c27b0;
+}
+
+.btn.btn-primary.disabled:hover,
+.btn.btn-primary:disabled:hover {
+    background-color: #9c27b0;
+    border-color: #9c27b0;
+}
+
+.btn.btn-primary:focus,
+.btn.btn-primary:active,
+.btn.btn-primary:hover {
+    box-shadow: 0 14px 26px -12px rgba(156, 39, 176, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(156, 39, 176, 0.2);
+}
+
+.btn.btn-primary.btn-link {
+    background-color: transparent;
+    color: #9c27b0;
+    box-shadow: none;
+}
+
+.btn.btn-primary.btn-link:hover,
+.btn.btn-primary.btn-link:focus,
+.btn.btn-primary.btn-link:active {
+    background-color: transparent;
+    color: #9c27b0;
+}
+
+.btn.btn-secondary {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: #fafafa;
+    border-color: #ccc;
+    box-shadow: 0 2px 2px 0 rgba(250, 250, 250, 0.14), 0 3px 1px -2px rgba(250, 250, 250, 0.2), 0 1px 5px 0 rgba(250, 250, 250, 0.12);
+}
+
+.btn.btn-secondary:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: #f2f2f2;
+    border-color: #adadad;
+}
+
+.btn.btn-secondary:focus,
+.btn.btn-secondary.focus,
+.btn.btn-secondary:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: #f2f2f2;
+    border-color: #adadad;
+}
+
+.btn.btn-secondary:active,
+.btn.btn-secondary.active,
+.open>.btn.btn-secondary.dropdown-toggle,
+.show>.btn.btn-secondary.dropdown-toggle {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: #f2f2f2;
+    border-color: #adadad;
+    box-shadow: 0 2px 2px 0 rgba(250, 250, 250, 0.14), 0 3px 1px -2px rgba(250, 250, 250, 0.2), 0 1px 5px 0 rgba(250, 250, 250, 0.12);
+}
+
+.btn.btn-secondary:active:hover,
+.btn.btn-secondary:active:focus,
+.btn.btn-secondary:active.focus,
+.btn.btn-secondary.active:hover,
+.btn.btn-secondary.active:focus,
+.btn.btn-secondary.active.focus,
+.open>.btn.btn-secondary.dropdown-toggle:hover,
+.open>.btn.btn-secondary.dropdown-toggle:focus,
+.open>.btn.btn-secondary.dropdown-toggle.focus,
+.show>.btn.btn-secondary.dropdown-toggle:hover,
+.show>.btn.btn-secondary.dropdown-toggle:focus,
+.show>.btn.btn-secondary.dropdown-toggle.focus {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: #f2f2f2;
+    border-color: #8c8c8c;
+}
+
+.open>.btn.btn-secondary.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #fafafa;
+}
+
+.open>.btn.btn-secondary.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #f2f2f2;
+}
+
+.btn.btn-secondary.disabled:focus,
+.btn.btn-secondary.disabled.focus,
+.btn.btn-secondary:disabled:focus,
+.btn.btn-secondary:disabled.focus {
+    background-color: #fafafa;
+    border-color: #ccc;
+}
+
+.btn.btn-secondary.disabled:hover,
+.btn.btn-secondary:disabled:hover {
+    background-color: #fafafa;
+    border-color: #ccc;
+}
+
+.btn.btn-secondary:focus,
+.btn.btn-secondary:active,
+.btn.btn-secondary:hover {
+    box-shadow: 0 14px 26px -12px rgba(250, 250, 250, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(250, 250, 250, 0.2);
+}
+
+.btn.btn-secondary.btn-link {
+    background-color: transparent;
+    color: #fafafa;
+    box-shadow: none;
+}
+
+.btn.btn-secondary.btn-link:hover,
+.btn.btn-secondary.btn-link:focus,
+.btn.btn-secondary.btn-link:active {
+    background-color: transparent;
+    color: #fafafa;
+}
+
+.btn.btn-info {
+    color: #fff;
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+    box-shadow: 0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12);
+}
+
+.btn.btn-info:hover {
+    color: #fff;
+    background-color: #00aec5;
+    border-color: #008697;
+}
+
+.btn.btn-info:focus,
+.btn.btn-info.focus,
+.btn.btn-info:hover {
+    color: #fff;
+    background-color: #00aec5;
+    border-color: #008697;
+}
+
+.btn.btn-info:active,
+.btn.btn-info.active,
+.open>.btn.btn-info.dropdown-toggle,
+.show>.btn.btn-info.dropdown-toggle {
+    color: #fff;
+    background-color: #00aec5;
+    border-color: #008697;
+    box-shadow: 0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12);
+}
+
+.btn.btn-info:active:hover,
+.btn.btn-info:active:focus,
+.btn.btn-info:active.focus,
+.btn.btn-info.active:hover,
+.btn.btn-info.active:focus,
+.btn.btn-info.active.focus,
+.open>.btn.btn-info.dropdown-toggle:hover,
+.open>.btn.btn-info.dropdown-toggle:focus,
+.open>.btn.btn-info.dropdown-toggle.focus,
+.show>.btn.btn-info.dropdown-toggle:hover,
+.show>.btn.btn-info.dropdown-toggle:focus,
+.show>.btn.btn-info.dropdown-toggle.focus {
+    color: #fff;
+    background-color: #00aec5;
+    border-color: #004b55;
+}
+
+.open>.btn.btn-info.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #00bcd4;
+}
+
+.open>.btn.btn-info.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #00aec5;
+}
+
+.btn.btn-info.disabled:focus,
+.btn.btn-info.disabled.focus,
+.btn.btn-info:disabled:focus,
+.btn.btn-info:disabled.focus {
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+}
+
+.btn.btn-info.disabled:hover,
+.btn.btn-info:disabled:hover {
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+}
+
+.btn.btn-info:focus,
+.btn.btn-info:active,
+.btn.btn-info:hover {
+    box-shadow: 0 14px 26px -12px rgba(0, 188, 212, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 188, 212, 0.2);
+}
+
+.btn.btn-info.btn-link {
+    background-color: transparent;
+    color: #00bcd4;
+    box-shadow: none;
+}
+
+.btn.btn-info.btn-link:hover,
+.btn.btn-info.btn-link:focus,
+.btn.btn-info.btn-link:active {
+    background-color: transparent;
+    color: #00bcd4;
+}
+
+.btn.btn-success {
+    color: #fff;
+    background-color: #4caf50;
+    border-color: #4caf50;
+    box-shadow: 0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12);
+}
+
+.btn.btn-success:hover {
+    color: #fff;
+    background-color: #47a44b;
+    border-color: #39843c;
+}
+
+.btn.btn-success:focus,
+.btn.btn-success.focus,
+.btn.btn-success:hover {
+    color: #fff;
+    background-color: #47a44b;
+    border-color: #39843c;
+}
+
+.btn.btn-success:active,
+.btn.btn-success.active,
+.open>.btn.btn-success.dropdown-toggle,
+.show>.btn.btn-success.dropdown-toggle {
+    color: #fff;
+    background-color: #47a44b;
+    border-color: #39843c;
+    box-shadow: 0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12);
+}
+
+.btn.btn-success:active:hover,
+.btn.btn-success:active:focus,
+.btn.btn-success:active.focus,
+.btn.btn-success.active:hover,
+.btn.btn-success.active:focus,
+.btn.btn-success.active.focus,
+.open>.btn.btn-success.dropdown-toggle:hover,
+.open>.btn.btn-success.dropdown-toggle:focus,
+.open>.btn.btn-success.dropdown-toggle.focus,
+.show>.btn.btn-success.dropdown-toggle:hover,
+.show>.btn.btn-success.dropdown-toggle:focus,
+.show>.btn.btn-success.dropdown-toggle.focus {
+    color: #fff;
+    background-color: #47a44b;
+    border-color: #255627;
+}
+
+.open>.btn.btn-success.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #4caf50;
+}
+
+.open>.btn.btn-success.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #47a44b;
+}
+
+.btn.btn-success.disabled:focus,
+.btn.btn-success.disabled.focus,
+.btn.btn-success:disabled:focus,
+.btn.btn-success:disabled.focus {
+    background-color: #4caf50;
+    border-color: #4caf50;
+}
+
+.btn.btn-success.disabled:hover,
+.btn.btn-success:disabled:hover {
+    background-color: #4caf50;
+    border-color: #4caf50;
+}
+
+.btn.btn-success:focus,
+.btn.btn-success:active,
+.btn.btn-success:hover {
+    box-shadow: 0 14px 26px -12px rgba(76, 175, 80, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(76, 175, 80, 0.2);
+}
+
+.btn.btn-success.btn-link {
+    background-color: transparent;
+    color: #4caf50;
+    box-shadow: none;
+}
+
+.btn.btn-success.btn-link:hover,
+.btn.btn-success.btn-link:focus,
+.btn.btn-success.btn-link:active {
+    background-color: transparent;
+    color: #4caf50;
+}
+
+.btn.btn-warning {
+    color: #fff;
+    background-color: #ff9800;
+    border-color: #ff9800;
+    box-shadow: 0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12);
+}
+
+.btn.btn-warning:hover {
+    color: #fff;
+    background-color: #f08f00;
+    border-color: #c27400;
+}
+
+.btn.btn-warning:focus,
+.btn.btn-warning.focus,
+.btn.btn-warning:hover {
+    color: #fff;
+    background-color: #f08f00;
+    border-color: #c27400;
+}
+
+.btn.btn-warning:active,
+.btn.btn-warning.active,
+.open>.btn.btn-warning.dropdown-toggle,
+.show>.btn.btn-warning.dropdown-toggle {
+    color: #fff;
+    background-color: #f08f00;
+    border-color: #c27400;
+    box-shadow: 0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12);
+}
+
+.btn.btn-warning:active:hover,
+.btn.btn-warning:active:focus,
+.btn.btn-warning:active.focus,
+.btn.btn-warning.active:hover,
+.btn.btn-warning.active:focus,
+.btn.btn-warning.active.focus,
+.open>.btn.btn-warning.dropdown-toggle:hover,
+.open>.btn.btn-warning.dropdown-toggle:focus,
+.open>.btn.btn-warning.dropdown-toggle.focus,
+.show>.btn.btn-warning.dropdown-toggle:hover,
+.show>.btn.btn-warning.dropdown-toggle:focus,
+.show>.btn.btn-warning.dropdown-toggle.focus {
+    color: #fff;
+    background-color: #f08f00;
+    border-color: #804c00;
+}
+
+.open>.btn.btn-warning.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #ff9800;
+}
+
+.open>.btn.btn-warning.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #f08f00;
+}
+
+.btn.btn-warning.disabled:focus,
+.btn.btn-warning.disabled.focus,
+.btn.btn-warning:disabled:focus,
+.btn.btn-warning:disabled.focus {
+    background-color: #ff9800;
+    border-color: #ff9800;
+}
+
+.btn.btn-warning.disabled:hover,
+.btn.btn-warning:disabled:hover {
+    background-color: #ff9800;
+    border-color: #ff9800;
+}
+
+.btn.btn-warning:focus,
+.btn.btn-warning:active,
+.btn.btn-warning:hover {
+    box-shadow: 0 14px 26px -12px rgba(255, 152, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 152, 0, 0.2);
+}
+
+.btn.btn-warning.btn-link {
+    background-color: transparent;
+    color: #ff9800;
+    box-shadow: none;
+}
+
+.btn.btn-warning.btn-link:hover,
+.btn.btn-warning.btn-link:focus,
+.btn.btn-warning.btn-link:active {
+    background-color: transparent;
+    color: #ff9800;
+}
+
+.btn.btn-danger {
+    color: #fff;
+    background-color: #f44336;
+    border-color: #f44336;
+    box-shadow: 0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12);
+}
+
+.btn.btn-danger:hover {
+    color: #fff;
+    background-color: #f33527;
+    border-color: #e11b0c;
+}
+
+.btn.btn-danger:focus,
+.btn.btn-danger.focus,
+.btn.btn-danger:hover {
+    color: #fff;
+    background-color: #f33527;
+    border-color: #e11b0c;
+}
+
+.btn.btn-danger:active,
+.btn.btn-danger.active,
+.open>.btn.btn-danger.dropdown-toggle,
+.show>.btn.btn-danger.dropdown-toggle {
+    color: #fff;
+    background-color: #f33527;
+    border-color: #e11b0c;
+    box-shadow: 0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12);
+}
+
+.btn.btn-danger:active:hover,
+.btn.btn-danger:active:focus,
+.btn.btn-danger:active.focus,
+.btn.btn-danger.active:hover,
+.btn.btn-danger.active:focus,
+.btn.btn-danger.active.focus,
+.open>.btn.btn-danger.dropdown-toggle:hover,
+.open>.btn.btn-danger.dropdown-toggle:focus,
+.open>.btn.btn-danger.dropdown-toggle.focus,
+.show>.btn.btn-danger.dropdown-toggle:hover,
+.show>.btn.btn-danger.dropdown-toggle:focus,
+.show>.btn.btn-danger.dropdown-toggle.focus {
+    color: #fff;
+    background-color: #f33527;
+    border-color: #a21309;
+}
+
+.open>.btn.btn-danger.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #f44336;
+}
+
+.open>.btn.btn-danger.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #f33527;
+}
+
+.btn.btn-danger.disabled:focus,
+.btn.btn-danger.disabled.focus,
+.btn.btn-danger:disabled:focus,
+.btn.btn-danger:disabled.focus {
+    background-color: #f44336;
+    border-color: #f44336;
+}
+
+.btn.btn-danger.disabled:hover,
+.btn.btn-danger:disabled:hover {
+    background-color: #f44336;
+    border-color: #f44336;
+}
+
+.btn.btn-danger:focus,
+.btn.btn-danger:active,
+.btn.btn-danger:hover {
+    box-shadow: 0 14px 26px -12px rgba(244, 67, 54, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(244, 67, 54, 0.2);
+}
+
+.btn.btn-danger.btn-link {
+    background-color: transparent;
+    color: #f44336;
+    box-shadow: none;
+}
+
+.btn.btn-danger.btn-link:hover,
+.btn.btn-danger.btn-link:focus,
+.btn.btn-danger.btn-link:active {
+    background-color: transparent;
+    color: #f44336;
+}
+
+.btn.btn-rose {
+    color: #fff;
+    background-color: #e91e63;
+    border-color: #e91e63;
+    box-shadow: 0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12);
+}
+
+.btn.btn-rose:hover {
+    color: #fff;
+    background-color: #ea2c6d;
+    border-color: #b8124a;
+}
+
+.btn.btn-rose:focus,
+.btn.btn-rose.focus,
+.btn.btn-rose:hover {
+    color: #fff;
+    background-color: #ea2c6d;
+    border-color: #b8124a;
+}
+
+.btn.btn-rose:active,
+.btn.btn-rose.active,
+.open>.btn.btn-rose.dropdown-toggle,
+.show>.btn.btn-rose.dropdown-toggle {
+    color: #fff;
+    background-color: #ea2c6d;
+    border-color: #b8124a;
+    box-shadow: 0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12);
+}
+
+.btn.btn-rose:active:hover,
+.btn.btn-rose:active:focus,
+.btn.btn-rose:active.focus,
+.btn.btn-rose.active:hover,
+.btn.btn-rose.active:focus,
+.btn.btn-rose.active.focus,
+.open>.btn.btn-rose.dropdown-toggle:hover,
+.open>.btn.btn-rose.dropdown-toggle:focus,
+.open>.btn.btn-rose.dropdown-toggle.focus,
+.show>.btn.btn-rose.dropdown-toggle:hover,
+.show>.btn.btn-rose.dropdown-toggle:focus,
+.show>.btn.btn-rose.dropdown-toggle.focus {
+    color: #fff;
+    background-color: #ea2c6d;
+    border-color: #7b0c32;
+}
+
+.open>.btn.btn-rose.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #e91e63;
+}
+
+.open>.btn.btn-rose.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #ea2c6d;
+}
+
+.btn.btn-rose.disabled:focus,
+.btn.btn-rose.disabled.focus,
+.btn.btn-rose:disabled:focus,
+.btn.btn-rose:disabled.focus {
+    background-color: #e91e63;
+    border-color: #e91e63;
+}
+
+.btn.btn-rose.disabled:hover,
+.btn.btn-rose:disabled:hover {
+    background-color: #e91e63;
+    border-color: #e91e63;
+}
+
+.btn.btn-rose:focus,
+.btn.btn-rose:active,
+.btn.btn-rose:hover {
+    box-shadow: 0 14px 26px -12px rgba(233, 30, 99, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(233, 30, 99, 0.2);
+}
+
+.btn.btn-rose.btn-link {
+    background-color: transparent;
+    color: #e91e63;
+    box-shadow: none;
+}
+
+.btn.btn-rose.btn-link:hover,
+.btn.btn-rose.btn-link:focus,
+.btn.btn-rose.btn-link:active {
+    background-color: transparent;
+    color: #e91e63;
+}
+
+.btn,
+.btn.btn-default {
+    color: #fff;
+    background-color: #999999;
+    border-color: #999999;
+    box-shadow: 0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12);
+}
+
+.btn:hover,
+.btn.btn-default:hover {
+    color: #fff;
+    background-color: #919191;
+    border-color: #7a7a7a;
+}
+
+.btn:focus,
+.btn.focus,
+.btn:hover,
+.btn.btn-default:focus,
+.btn.btn-default.focus,
+.btn.btn-default:hover {
+    color: #fff;
+    background-color: #919191;
+    border-color: #7a7a7a;
+}
+
+.btn:active,
+.btn.active,
+.open>.btn.dropdown-toggle,
+.show>.btn.dropdown-toggle,
+.btn.btn-default:active,
+.btn.btn-default.active,
+.open>.btn.btn-default.dropdown-toggle,
+.show>.btn.btn-default.dropdown-toggle {
+    color: #fff;
+    background-color: #919191;
+    border-color: #7a7a7a;
+    box-shadow: 0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12);
+}
+
+.btn:active:hover,
+.btn:active:focus,
+.btn:active.focus,
+.btn.active:hover,
+.btn.active:focus,
+.btn.active.focus,
+.open>.btn.dropdown-toggle:hover,
+.open>.btn.dropdown-toggle:focus,
+.open>.btn.dropdown-toggle.focus,
+.show>.btn.dropdown-toggle:hover,
+.show>.btn.dropdown-toggle:focus,
+.show>.btn.dropdown-toggle.focus,
+.btn.btn-default:active:hover,
+.btn.btn-default:active:focus,
+.btn.btn-default:active.focus,
+.btn.btn-default.active:hover,
+.btn.btn-default.active:focus,
+.btn.btn-default.active.focus,
+.open>.btn.btn-default.dropdown-toggle:hover,
+.open>.btn.btn-default.dropdown-toggle:focus,
+.open>.btn.btn-default.dropdown-toggle.focus,
+.show>.btn.btn-default.dropdown-toggle:hover,
+.show>.btn.btn-default.dropdown-toggle:focus,
+.show>.btn.btn-default.dropdown-toggle.focus {
+    color: #fff;
+    background-color: #919191;
+    border-color: #595959;
+}
+
+.open>.btn.dropdown-toggle.bmd-btn-icon,
+.open>.btn.btn-default.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: #999999;
+}
+
+.open>.btn.dropdown-toggle.bmd-btn-icon:hover,
+.open>.btn.btn-default.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: #919191;
+}
+
+.btn.disabled:focus,
+.btn.disabled.focus,
+.btn:disabled:focus,
+.btn:disabled.focus,
+.btn.btn-default.disabled:focus,
+.btn.btn-default.disabled.focus,
+.btn.btn-default:disabled:focus,
+.btn.btn-default:disabled.focus {
+    background-color: #999999;
+    border-color: #999999;
+}
+
+.btn.disabled:hover,
+.btn:disabled:hover,
+.btn.btn-default.disabled:hover,
+.btn.btn-default:disabled:hover {
+    background-color: #999999;
+    border-color: #999999;
+}
+
+.btn:focus,
+.btn:active,
+.btn:hover,
+.btn.btn-default:focus,
+.btn.btn-default:active,
+.btn.btn-default:hover {
+    box-shadow: 0 14px 26px -12px rgba(153, 153, 153, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-link,
+.btn.btn-default.btn-link {
+    background-color: transparent;
+    color: #999999;
+    box-shadow: none;
+}
+
+.btn.btn-link:hover,
+.btn.btn-link:focus,
+.btn.btn-link:active,
+.btn.btn-default.btn-link:hover,
+.btn.btn-default.btn-link:focus,
+.btn.btn-default.btn-link:active {
+    background-color: transparent;
+    color: #999999;
+}
+
+.btn.btn-white,
+.btn.btn-white:focus,
+.btn.btn-white:hover {
+    background-color: #fff;
+    color: #999999;
+}
+
+.btn.btn-white.btn-link {
+    color: #fff;
+    background: transparent;
+    box-shadow: none;
+}
+
+.btn.btn-link:hover,
+.btn.btn-link:focus,
+.btn.btn-link:active {
+    text-decoration: none !important;
+}
+
+.btn.btn-raised.btn-link,
+.btn-group-raised .btn.btn-link {
+    box-shadow: none;
+}
+
+.btn.btn-raised.btn-link.active,
+.btn-group-raised .btn.btn-link.active {
+    box-shadow: none;
+}
+
+.btn.btn-raised.btn-link:hover,
+.btn.btn-raised.btn-link:focus,
+.btn.btn-raised.btn-link:active,
+.btn-group-raised .btn.btn-link:hover,
+.btn-group-raised .btn.btn-link:focus,
+.btn-group-raised .btn.btn-link:active {
+    box-shadow: none;
+}
+
+fieldset[disabled][disabled] .btn.btn-raised,
+.btn.btn-raised.disabled,
+.btn.btn-raised:disabled,
+.btn.btn-raised[disabled],
+fieldset[disabled][disabled] .btn-group-raised .btn,
+.btn-group-raised .btn.disabled,
+.btn-group-raised .btn:disabled,
+.btn-group-raised .btn[disabled] {
+    box-shadow: none;
+}
+
+.btn.btn-outline,
+.btn.btn-outline-primary,
+.btn.btn-outline-secondary,
+.btn.btn-outline-info,
+.btn.btn-outline-success,
+.btn.btn-outline-warning,
+.btn.btn-outline-danger {
+    border-color: currentColor;
+    border-style: solid;
+    border-width: 1px;
+}
+
+.btn.btn-outline {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline:focus,
+.btn.btn-outline.focus,
+.btn.btn-outline:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline:active,
+.btn.btn-outline.active,
+.open>.btn.btn-outline.dropdown-toggle,
+.show>.btn.btn-outline.dropdown-toggle {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: rgba(0, 0, 0, 0.87);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn.btn-outline:active:hover,
+.btn.btn-outline:active:focus,
+.btn.btn-outline:active.focus,
+.btn.btn-outline.active:hover,
+.btn.btn-outline.active:focus,
+.btn.btn-outline.active.focus,
+.open>.btn.btn-outline.dropdown-toggle:hover,
+.open>.btn.btn-outline.dropdown-toggle:focus,
+.open>.btn.btn-outline.dropdown-toggle.focus,
+.show>.btn.btn-outline.dropdown-toggle:hover,
+.show>.btn.btn-outline.dropdown-toggle:focus,
+.show>.btn.btn-outline.dropdown-toggle.focus {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.4);
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.open>.btn.btn-outline.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.btn.btn-outline.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-outline.disabled:focus,
+.btn.btn-outline.disabled.focus,
+.btn.btn-outline:disabled:focus,
+.btn.btn-outline:disabled.focus {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline.disabled:hover,
+.btn.btn-outline:disabled:hover {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.bg-inverse .btn.btn-outline {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.bg-inverse .btn.btn-outline:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline:focus,
+.bg-inverse .btn.btn-outline.focus,
+.bg-inverse .btn.btn-outline:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline:active,
+.bg-inverse .btn.btn-outline.active,
+.open>.bg-inverse .btn.btn-outline.dropdown-toggle,
+.show>.bg-inverse .btn.btn-outline.dropdown-toggle {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.bg-inverse .btn.btn-outline:active:hover,
+.bg-inverse .btn.btn-outline:active:focus,
+.bg-inverse .btn.btn-outline:active.focus,
+.bg-inverse .btn.btn-outline.active:hover,
+.bg-inverse .btn.btn-outline.active:focus,
+.bg-inverse .btn.btn-outline.active.focus,
+.open>.bg-inverse .btn.btn-outline.dropdown-toggle:hover,
+.open>.bg-inverse .btn.btn-outline.dropdown-toggle:focus,
+.open>.bg-inverse .btn.btn-outline.dropdown-toggle.focus,
+.show>.bg-inverse .btn.btn-outline.dropdown-toggle:hover,
+.show>.bg-inverse .btn.btn-outline.dropdown-toggle:focus,
+.show>.bg-inverse .btn.btn-outline.dropdown-toggle.focus {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.25);
+    border-color: rgba(204, 204, 204, 0.25);
+}
+
+.open>.bg-inverse .btn.btn-outline.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.bg-inverse .btn.btn-outline.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline.disabled:focus,
+.bg-inverse .btn.btn-outline.disabled.focus,
+.bg-inverse .btn.btn-outline:disabled:focus,
+.bg-inverse .btn.btn-outline:disabled.focus {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.bg-inverse .btn.btn-outline.disabled:hover,
+.bg-inverse .btn.btn-outline:disabled:hover {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline.btn-link {
+    background-color: transparent;
+}
+
+.btn.btn-outline-primary {
+    color: #9c27b0;
+    background-color: transparent;
+    border-color: #9c27b0;
+}
+
+.btn.btn-outline-primary:hover {
+    color: #9c27b0;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #9c27b0;
+}
+
+.btn.btn-outline-primary:focus,
+.btn.btn-outline-primary.focus,
+.btn.btn-outline-primary:hover {
+    color: #9c27b0;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #9c27b0;
+}
+
+.btn.btn-outline-primary:active,
+.btn.btn-outline-primary.active,
+.open>.btn.btn-outline-primary.dropdown-toggle,
+.show>.btn.btn-outline-primary.dropdown-toggle {
+    color: #9c27b0;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #9c27b0;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn.btn-outline-primary:active:hover,
+.btn.btn-outline-primary:active:focus,
+.btn.btn-outline-primary:active.focus,
+.btn.btn-outline-primary.active:hover,
+.btn.btn-outline-primary.active:focus,
+.btn.btn-outline-primary.active.focus,
+.open>.btn.btn-outline-primary.dropdown-toggle:hover,
+.open>.btn.btn-outline-primary.dropdown-toggle:focus,
+.open>.btn.btn-outline-primary.dropdown-toggle.focus,
+.show>.btn.btn-outline-primary.dropdown-toggle:hover,
+.show>.btn.btn-outline-primary.dropdown-toggle:focus,
+.show>.btn.btn-outline-primary.dropdown-toggle.focus {
+    color: #9c27b0;
+    background-color: rgba(153, 153, 153, 0.4);
+    border-color: #9c27b0;
+}
+
+.open>.btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-outline-primary.disabled:focus,
+.btn.btn-outline-primary.disabled.focus,
+.btn.btn-outline-primary:disabled:focus,
+.btn.btn-outline-primary:disabled.focus {
+    background-color: transparent;
+    border-color: #9c27b0;
+}
+
+.btn.btn-outline-primary.disabled:hover,
+.btn.btn-outline-primary:disabled:hover {
+    background-color: transparent;
+    border-color: #9c27b0;
+}
+
+.bg-inverse .btn.btn-outline-primary {
+    color: #9c27b0;
+    background-color: transparent;
+    border-color: #9c27b0;
+}
+
+.bg-inverse .btn.btn-outline-primary:hover {
+    color: #9c27b0;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-primary:focus,
+.bg-inverse .btn.btn-outline-primary.focus,
+.bg-inverse .btn.btn-outline-primary:hover {
+    color: #9c27b0;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-primary:active,
+.bg-inverse .btn.btn-outline-primary.active,
+.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle,
+.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle {
+    color: #9c27b0;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.bg-inverse .btn.btn-outline-primary:active:hover,
+.bg-inverse .btn.btn-outline-primary:active:focus,
+.bg-inverse .btn.btn-outline-primary:active.focus,
+.bg-inverse .btn.btn-outline-primary.active:hover,
+.bg-inverse .btn.btn-outline-primary.active:focus,
+.bg-inverse .btn.btn-outline-primary.active.focus,
+.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:hover,
+.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:focus,
+.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.focus,
+.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:hover,
+.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle:focus,
+.show>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.focus {
+    color: #9c27b0;
+    background-color: rgba(204, 204, 204, 0.25);
+    border-color: rgba(204, 204, 204, 0.25);
+}
+
+.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.bg-inverse .btn.btn-outline-primary.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-primary.disabled:focus,
+.bg-inverse .btn.btn-outline-primary.disabled.focus,
+.bg-inverse .btn.btn-outline-primary:disabled:focus,
+.bg-inverse .btn.btn-outline-primary:disabled.focus {
+    background-color: transparent;
+    border-color: #9c27b0;
+}
+
+.bg-inverse .btn.btn-outline-primary.disabled:hover,
+.bg-inverse .btn.btn-outline-primary:disabled:hover {
+    background-color: transparent;
+    border-color: #9c27b0;
+}
+
+.btn.btn-outline-primary.btn-link {
+    background-color: transparent;
+}
+
+.btn.btn-outline-secondary {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline-secondary:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline-secondary:focus,
+.btn.btn-outline-secondary.focus,
+.btn.btn-outline-secondary:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline-secondary:active,
+.btn.btn-outline-secondary.active,
+.open>.btn.btn-outline-secondary.dropdown-toggle,
+.show>.btn.btn-outline-secondary.dropdown-toggle {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: rgba(0, 0, 0, 0.87);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn.btn-outline-secondary:active:hover,
+.btn.btn-outline-secondary:active:focus,
+.btn.btn-outline-secondary:active.focus,
+.btn.btn-outline-secondary.active:hover,
+.btn.btn-outline-secondary.active:focus,
+.btn.btn-outline-secondary.active.focus,
+.open>.btn.btn-outline-secondary.dropdown-toggle:hover,
+.open>.btn.btn-outline-secondary.dropdown-toggle:focus,
+.open>.btn.btn-outline-secondary.dropdown-toggle.focus,
+.show>.btn.btn-outline-secondary.dropdown-toggle:hover,
+.show>.btn.btn-outline-secondary.dropdown-toggle:focus,
+.show>.btn.btn-outline-secondary.dropdown-toggle.focus {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(153, 153, 153, 0.4);
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.open>.btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-outline-secondary.disabled:focus,
+.btn.btn-outline-secondary.disabled.focus,
+.btn.btn-outline-secondary:disabled:focus,
+.btn.btn-outline-secondary:disabled.focus {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline-secondary.disabled:hover,
+.btn.btn-outline-secondary:disabled:hover {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.bg-inverse .btn.btn-outline-secondary {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.bg-inverse .btn.btn-outline-secondary:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-secondary:focus,
+.bg-inverse .btn.btn-outline-secondary.focus,
+.bg-inverse .btn.btn-outline-secondary:hover {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-secondary:active,
+.bg-inverse .btn.btn-outline-secondary.active,
+.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle,
+.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.bg-inverse .btn.btn-outline-secondary:active:hover,
+.bg-inverse .btn.btn-outline-secondary:active:focus,
+.bg-inverse .btn.btn-outline-secondary:active.focus,
+.bg-inverse .btn.btn-outline-secondary.active:hover,
+.bg-inverse .btn.btn-outline-secondary.active:focus,
+.bg-inverse .btn.btn-outline-secondary.active.focus,
+.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:hover,
+.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:focus,
+.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.focus,
+.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:hover,
+.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle:focus,
+.show>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.focus {
+    color: rgba(0, 0, 0, 0.87);
+    background-color: rgba(204, 204, 204, 0.25);
+    border-color: rgba(204, 204, 204, 0.25);
+}
+
+.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.bg-inverse .btn.btn-outline-secondary.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-secondary.disabled:focus,
+.bg-inverse .btn.btn-outline-secondary.disabled.focus,
+.bg-inverse .btn.btn-outline-secondary:disabled:focus,
+.bg-inverse .btn.btn-outline-secondary:disabled.focus {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.bg-inverse .btn.btn-outline-secondary.disabled:hover,
+.bg-inverse .btn.btn-outline-secondary:disabled:hover {
+    background-color: transparent;
+    border-color: rgba(0, 0, 0, 0.87);
+}
+
+.btn.btn-outline-secondary.btn-link {
+    background-color: transparent;
+}
+
+.btn.btn-outline-info {
+    color: #00bcd4;
+    background-color: transparent;
+    border-color: #00bcd4;
+}
+
+.btn.btn-outline-info:hover {
+    color: #00bcd4;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #00bcd4;
+}
+
+.btn.btn-outline-info:focus,
+.btn.btn-outline-info.focus,
+.btn.btn-outline-info:hover {
+    color: #00bcd4;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #00bcd4;
+}
+
+.btn.btn-outline-info:active,
+.btn.btn-outline-info.active,
+.open>.btn.btn-outline-info.dropdown-toggle,
+.show>.btn.btn-outline-info.dropdown-toggle {
+    color: #00bcd4;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #00bcd4;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn.btn-outline-info:active:hover,
+.btn.btn-outline-info:active:focus,
+.btn.btn-outline-info:active.focus,
+.btn.btn-outline-info.active:hover,
+.btn.btn-outline-info.active:focus,
+.btn.btn-outline-info.active.focus,
+.open>.btn.btn-outline-info.dropdown-toggle:hover,
+.open>.btn.btn-outline-info.dropdown-toggle:focus,
+.open>.btn.btn-outline-info.dropdown-toggle.focus,
+.show>.btn.btn-outline-info.dropdown-toggle:hover,
+.show>.btn.btn-outline-info.dropdown-toggle:focus,
+.show>.btn.btn-outline-info.dropdown-toggle.focus {
+    color: #00bcd4;
+    background-color: rgba(153, 153, 153, 0.4);
+    border-color: #00bcd4;
+}
+
+.open>.btn.btn-outline-info.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.btn.btn-outline-info.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-outline-info.disabled:focus,
+.btn.btn-outline-info.disabled.focus,
+.btn.btn-outline-info:disabled:focus,
+.btn.btn-outline-info:disabled.focus {
+    background-color: transparent;
+    border-color: #00bcd4;
+}
+
+.btn.btn-outline-info.disabled:hover,
+.btn.btn-outline-info:disabled:hover {
+    background-color: transparent;
+    border-color: #00bcd4;
+}
+
+.bg-inverse .btn.btn-outline-info {
+    color: #00bcd4;
+    background-color: transparent;
+    border-color: #00bcd4;
+}
+
+.bg-inverse .btn.btn-outline-info:hover {
+    color: #00bcd4;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-info:focus,
+.bg-inverse .btn.btn-outline-info.focus,
+.bg-inverse .btn.btn-outline-info:hover {
+    color: #00bcd4;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-info:active,
+.bg-inverse .btn.btn-outline-info.active,
+.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle,
+.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle {
+    color: #00bcd4;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.bg-inverse .btn.btn-outline-info:active:hover,
+.bg-inverse .btn.btn-outline-info:active:focus,
+.bg-inverse .btn.btn-outline-info:active.focus,
+.bg-inverse .btn.btn-outline-info.active:hover,
+.bg-inverse .btn.btn-outline-info.active:focus,
+.bg-inverse .btn.btn-outline-info.active.focus,
+.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle:hover,
+.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle:focus,
+.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle.focus,
+.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle:hover,
+.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle:focus,
+.show>.bg-inverse .btn.btn-outline-info.dropdown-toggle.focus {
+    color: #00bcd4;
+    background-color: rgba(204, 204, 204, 0.25);
+    border-color: rgba(204, 204, 204, 0.25);
+}
+
+.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.bg-inverse .btn.btn-outline-info.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-info.disabled:focus,
+.bg-inverse .btn.btn-outline-info.disabled.focus,
+.bg-inverse .btn.btn-outline-info:disabled:focus,
+.bg-inverse .btn.btn-outline-info:disabled.focus {
+    background-color: transparent;
+    border-color: #00bcd4;
+}
+
+.bg-inverse .btn.btn-outline-info.disabled:hover,
+.bg-inverse .btn.btn-outline-info:disabled:hover {
+    background-color: transparent;
+    border-color: #00bcd4;
+}
+
+.btn.btn-outline-info.btn-link {
+    background-color: transparent;
+}
+
+.btn.btn-outline-success {
+    color: #4caf50;
+    background-color: transparent;
+    border-color: #4caf50;
+}
+
+.btn.btn-outline-success:hover {
+    color: #4caf50;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #4caf50;
+}
+
+.btn.btn-outline-success:focus,
+.btn.btn-outline-success.focus,
+.btn.btn-outline-success:hover {
+    color: #4caf50;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #4caf50;
+}
+
+.btn.btn-outline-success:active,
+.btn.btn-outline-success.active,
+.open>.btn.btn-outline-success.dropdown-toggle,
+.show>.btn.btn-outline-success.dropdown-toggle {
+    color: #4caf50;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #4caf50;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn.btn-outline-success:active:hover,
+.btn.btn-outline-success:active:focus,
+.btn.btn-outline-success:active.focus,
+.btn.btn-outline-success.active:hover,
+.btn.btn-outline-success.active:focus,
+.btn.btn-outline-success.active.focus,
+.open>.btn.btn-outline-success.dropdown-toggle:hover,
+.open>.btn.btn-outline-success.dropdown-toggle:focus,
+.open>.btn.btn-outline-success.dropdown-toggle.focus,
+.show>.btn.btn-outline-success.dropdown-toggle:hover,
+.show>.btn.btn-outline-success.dropdown-toggle:focus,
+.show>.btn.btn-outline-success.dropdown-toggle.focus {
+    color: #4caf50;
+    background-color: rgba(153, 153, 153, 0.4);
+    border-color: #4caf50;
+}
+
+.open>.btn.btn-outline-success.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.btn.btn-outline-success.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-outline-success.disabled:focus,
+.btn.btn-outline-success.disabled.focus,
+.btn.btn-outline-success:disabled:focus,
+.btn.btn-outline-success:disabled.focus {
+    background-color: transparent;
+    border-color: #4caf50;
+}
+
+.btn.btn-outline-success.disabled:hover,
+.btn.btn-outline-success:disabled:hover {
+    background-color: transparent;
+    border-color: #4caf50;
+}
+
+.bg-inverse .btn.btn-outline-success {
+    color: #4caf50;
+    background-color: transparent;
+    border-color: #4caf50;
+}
+
+.bg-inverse .btn.btn-outline-success:hover {
+    color: #4caf50;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-success:focus,
+.bg-inverse .btn.btn-outline-success.focus,
+.bg-inverse .btn.btn-outline-success:hover {
+    color: #4caf50;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-success:active,
+.bg-inverse .btn.btn-outline-success.active,
+.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle,
+.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle {
+    color: #4caf50;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.bg-inverse .btn.btn-outline-success:active:hover,
+.bg-inverse .btn.btn-outline-success:active:focus,
+.bg-inverse .btn.btn-outline-success:active.focus,
+.bg-inverse .btn.btn-outline-success.active:hover,
+.bg-inverse .btn.btn-outline-success.active:focus,
+.bg-inverse .btn.btn-outline-success.active.focus,
+.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle:hover,
+.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle:focus,
+.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle.focus,
+.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle:hover,
+.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle:focus,
+.show>.bg-inverse .btn.btn-outline-success.dropdown-toggle.focus {
+    color: #4caf50;
+    background-color: rgba(204, 204, 204, 0.25);
+    border-color: rgba(204, 204, 204, 0.25);
+}
+
+.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.bg-inverse .btn.btn-outline-success.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-success.disabled:focus,
+.bg-inverse .btn.btn-outline-success.disabled.focus,
+.bg-inverse .btn.btn-outline-success:disabled:focus,
+.bg-inverse .btn.btn-outline-success:disabled.focus {
+    background-color: transparent;
+    border-color: #4caf50;
+}
+
+.bg-inverse .btn.btn-outline-success.disabled:hover,
+.bg-inverse .btn.btn-outline-success:disabled:hover {
+    background-color: transparent;
+    border-color: #4caf50;
+}
+
+.btn.btn-outline-success.btn-link {
+    background-color: transparent;
+}
+
+.btn.btn-outline-warning {
+    color: #ff9800;
+    background-color: transparent;
+    border-color: #ff9800;
+}
+
+.btn.btn-outline-warning:hover {
+    color: #ff9800;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #ff9800;
+}
+
+.btn.btn-outline-warning:focus,
+.btn.btn-outline-warning.focus,
+.btn.btn-outline-warning:hover {
+    color: #ff9800;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #ff9800;
+}
+
+.btn.btn-outline-warning:active,
+.btn.btn-outline-warning.active,
+.open>.btn.btn-outline-warning.dropdown-toggle,
+.show>.btn.btn-outline-warning.dropdown-toggle {
+    color: #ff9800;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #ff9800;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn.btn-outline-warning:active:hover,
+.btn.btn-outline-warning:active:focus,
+.btn.btn-outline-warning:active.focus,
+.btn.btn-outline-warning.active:hover,
+.btn.btn-outline-warning.active:focus,
+.btn.btn-outline-warning.active.focus,
+.open>.btn.btn-outline-warning.dropdown-toggle:hover,
+.open>.btn.btn-outline-warning.dropdown-toggle:focus,
+.open>.btn.btn-outline-warning.dropdown-toggle.focus,
+.show>.btn.btn-outline-warning.dropdown-toggle:hover,
+.show>.btn.btn-outline-warning.dropdown-toggle:focus,
+.show>.btn.btn-outline-warning.dropdown-toggle.focus {
+    color: #ff9800;
+    background-color: rgba(153, 153, 153, 0.4);
+    border-color: #ff9800;
+}
+
+.open>.btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-outline-warning.disabled:focus,
+.btn.btn-outline-warning.disabled.focus,
+.btn.btn-outline-warning:disabled:focus,
+.btn.btn-outline-warning:disabled.focus {
+    background-color: transparent;
+    border-color: #ff9800;
+}
+
+.btn.btn-outline-warning.disabled:hover,
+.btn.btn-outline-warning:disabled:hover {
+    background-color: transparent;
+    border-color: #ff9800;
+}
+
+.bg-inverse .btn.btn-outline-warning {
+    color: #ff9800;
+    background-color: transparent;
+    border-color: #ff9800;
+}
+
+.bg-inverse .btn.btn-outline-warning:hover {
+    color: #ff9800;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-warning:focus,
+.bg-inverse .btn.btn-outline-warning.focus,
+.bg-inverse .btn.btn-outline-warning:hover {
+    color: #ff9800;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-warning:active,
+.bg-inverse .btn.btn-outline-warning.active,
+.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle,
+.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle {
+    color: #ff9800;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.bg-inverse .btn.btn-outline-warning:active:hover,
+.bg-inverse .btn.btn-outline-warning:active:focus,
+.bg-inverse .btn.btn-outline-warning:active.focus,
+.bg-inverse .btn.btn-outline-warning.active:hover,
+.bg-inverse .btn.btn-outline-warning.active:focus,
+.bg-inverse .btn.btn-outline-warning.active.focus,
+.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:hover,
+.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:focus,
+.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.focus,
+.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:hover,
+.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle:focus,
+.show>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.focus {
+    color: #ff9800;
+    background-color: rgba(204, 204, 204, 0.25);
+    border-color: rgba(204, 204, 204, 0.25);
+}
+
+.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.bg-inverse .btn.btn-outline-warning.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-warning.disabled:focus,
+.bg-inverse .btn.btn-outline-warning.disabled.focus,
+.bg-inverse .btn.btn-outline-warning:disabled:focus,
+.bg-inverse .btn.btn-outline-warning:disabled.focus {
+    background-color: transparent;
+    border-color: #ff9800;
+}
+
+.bg-inverse .btn.btn-outline-warning.disabled:hover,
+.bg-inverse .btn.btn-outline-warning:disabled:hover {
+    background-color: transparent;
+    border-color: #ff9800;
+}
+
+.btn.btn-outline-warning.btn-link {
+    background-color: transparent;
+}
+
+.btn.btn-outline-danger {
+    color: #f44336;
+    background-color: transparent;
+    border-color: #f44336;
+}
+
+.btn.btn-outline-danger:hover {
+    color: #f44336;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #f44336;
+}
+
+.btn.btn-outline-danger:focus,
+.btn.btn-outline-danger.focus,
+.btn.btn-outline-danger:hover {
+    color: #f44336;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #f44336;
+}
+
+.btn.btn-outline-danger:active,
+.btn.btn-outline-danger.active,
+.open>.btn.btn-outline-danger.dropdown-toggle,
+.show>.btn.btn-outline-danger.dropdown-toggle {
+    color: #f44336;
+    background-color: rgba(153, 153, 153, 0.2);
+    border-color: #f44336;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn.btn-outline-danger:active:hover,
+.btn.btn-outline-danger:active:focus,
+.btn.btn-outline-danger:active.focus,
+.btn.btn-outline-danger.active:hover,
+.btn.btn-outline-danger.active:focus,
+.btn.btn-outline-danger.active.focus,
+.open>.btn.btn-outline-danger.dropdown-toggle:hover,
+.open>.btn.btn-outline-danger.dropdown-toggle:focus,
+.open>.btn.btn-outline-danger.dropdown-toggle.focus,
+.show>.btn.btn-outline-danger.dropdown-toggle:hover,
+.show>.btn.btn-outline-danger.dropdown-toggle:focus,
+.show>.btn.btn-outline-danger.dropdown-toggle.focus {
+    color: #f44336;
+    background-color: rgba(153, 153, 153, 0.4);
+    border-color: #f44336;
+}
+
+.open>.btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(153, 153, 153, 0.2);
+}
+
+.btn.btn-outline-danger.disabled:focus,
+.btn.btn-outline-danger.disabled.focus,
+.btn.btn-outline-danger:disabled:focus,
+.btn.btn-outline-danger:disabled.focus {
+    background-color: transparent;
+    border-color: #f44336;
+}
+
+.btn.btn-outline-danger.disabled:hover,
+.btn.btn-outline-danger:disabled:hover {
+    background-color: transparent;
+    border-color: #f44336;
+}
+
+.bg-inverse .btn.btn-outline-danger {
+    color: #f44336;
+    background-color: transparent;
+    border-color: #f44336;
+}
+
+.bg-inverse .btn.btn-outline-danger:hover {
+    color: #f44336;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-danger:focus,
+.bg-inverse .btn.btn-outline-danger.focus,
+.bg-inverse .btn.btn-outline-danger:hover {
+    color: #f44336;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-danger:active,
+.bg-inverse .btn.btn-outline-danger.active,
+.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle,
+.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle {
+    color: #f44336;
+    background-color: rgba(204, 204, 204, 0.15);
+    border-color: rgba(204, 204, 204, 0.15);
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.bg-inverse .btn.btn-outline-danger:active:hover,
+.bg-inverse .btn.btn-outline-danger:active:focus,
+.bg-inverse .btn.btn-outline-danger:active.focus,
+.bg-inverse .btn.btn-outline-danger.active:hover,
+.bg-inverse .btn.btn-outline-danger.active:focus,
+.bg-inverse .btn.btn-outline-danger.active.focus,
+.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:hover,
+.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:focus,
+.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.focus,
+.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:hover,
+.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle:focus,
+.show>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.focus {
+    color: #f44336;
+    background-color: rgba(204, 204, 204, 0.25);
+    border-color: rgba(204, 204, 204, 0.25);
+}
+
+.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon {
+    color: inherit;
+    background-color: transparent;
+}
+
+.open>.bg-inverse .btn.btn-outline-danger.dropdown-toggle.bmd-btn-icon:hover {
+    background-color: rgba(204, 204, 204, 0.15);
+}
+
+.bg-inverse .btn.btn-outline-danger.disabled:focus,
+.bg-inverse .btn.btn-outline-danger.disabled.focus,
+.bg-inverse .btn.btn-outline-danger:disabled:focus,
+.bg-inverse .btn.btn-outline-danger:disabled.focus {
+    background-color: transparent;
+    border-color: #f44336;
+}
+
+.bg-inverse .btn.btn-outline-danger.disabled:hover,
+.bg-inverse .btn.btn-outline-danger:disabled:hover {
+    background-color: transparent;
+    border-color: #f44336;
+}
+
+.btn.btn-outline-danger.btn-link {
+    background-color: transparent;
+}
+
+.btn.btn-lg,
+.btn-group-lg>.btn,
+.btn-group-lg .btn {
+    padding: 1.125rem 2.25rem;
+    font-size: 0.875rem;
+    line-height: 1.333333;
+    border-radius: 0.2rem;
+}
+
+.btn.btn-sm,
+.btn-group-sm>.btn,
+.btn-group-sm .btn {
+    padding: 0.40625rem 1.25rem;
+    font-size: 0.6875rem;
+    line-height: 1.5;
+    border-radius: 0.2rem;
+}
+
+.btn.btn-round {
+    border-radius: 30px;
+}
+
+.btn.btn-fab,
+.btn.btn-just-icon {
+    font-size: 24px;
+    height: 41px;
+    min-width: 41px;
+    width: 41px;
+    padding: 0;
+    overflow: hidden;
+    position: relative;
+    line-height: 41px;
+}
+
+.btn.btn-fab.btn-round,
+.btn.btn-just-icon.btn-round {
+    border-radius: 50%;
+}
+
+.btn-group-sm .btn.btn-fab,
+.btn.btn-fab.btn-sm,
+.btn-group-sm>.btn.btn-fab,
+.btn.btn-fab.btn-fab-mini,
+.btn-group-sm .btn.btn-just-icon,
+.btn.btn-just-icon.btn-sm,
+.btn-group-sm>.btn.btn-just-icon,
+.btn.btn-just-icon.btn-fab-mini {
+    height: 30px;
+    min-width: 30px;
+    width: 30px;
+}
+
+.btn-group-sm .btn.btn-fab .material-icons,
+.btn-group-sm .btn.btn-fab .fa,
+.btn.btn-fab.btn-sm .material-icons,
+.btn-group-sm>.btn.btn-fab .material-icons,
+.btn.btn-fab.btn-sm .fa,
+.btn-group-sm>.btn.btn-fab .fa,
+.btn.btn-fab.btn-fab-mini .material-icons,
+.btn.btn-fab.btn-fab-mini .fa,
+.btn-group-sm .btn.btn-just-icon .material-icons,
+.btn-group-sm .btn.btn-just-icon .fa,
+.btn.btn-just-icon.btn-sm .material-icons,
+.btn-group-sm>.btn.btn-just-icon .material-icons,
+.btn.btn-just-icon.btn-sm .fa,
+.btn-group-sm>.btn.btn-just-icon .fa,
+.btn.btn-just-icon.btn-fab-mini .material-icons,
+.btn.btn-just-icon.btn-fab-mini .fa {
+    font-size: 17px;
+    line-height: 29px;
+}
+
+.btn-group-lg .btn.btn-fab,
+.btn.btn-fab.btn-lg,
+.btn-group-lg>.btn.btn-fab,
+.btn-group-lg .btn.btn-just-icon,
+.btn.btn-just-icon.btn-lg,
+.btn-group-lg>.btn.btn-just-icon {
+    height: 57px;
+    min-width: 57px;
+    width: 57px;
+    line-height: 56px;
+}
+
+.btn-group-lg .btn.btn-fab .material-icons,
+.btn-group-lg .btn.btn-fab .fa,
+.btn.btn-fab.btn-lg .material-icons,
+.btn-group-lg>.btn.btn-fab .material-icons,
+.btn.btn-fab.btn-lg .fa,
+.btn-group-lg>.btn.btn-fab .fa,
+.btn-group-lg .btn.btn-just-icon .material-icons,
+.btn-group-lg .btn.btn-just-icon .fa,
+.btn.btn-just-icon.btn-lg .material-icons,
+.btn-group-lg>.btn.btn-just-icon .material-icons,
+.btn.btn-just-icon.btn-lg .fa,
+.btn-group-lg>.btn.btn-just-icon .fa {
+    font-size: 32px;
+    line-height: 56px;
+}
+
+.btn.btn-fab .material-icons,
+.btn.btn-fab .fa,
+.btn.btn-just-icon .material-icons,
+.btn.btn-just-icon .fa {
+    margin-top: 0;
+    position: absolute;
+    width: 100%;
+    transform: none;
+    left: 0;
+    top: 0;
+    height: 100%;
+    line-height: 41px;
+    font-size: 20px;
+}
+
+.btn-just-icon.btn-lg,
+.btn-group-lg>.btn-just-icon.btn {
+    font-size: 24px;
+    height: 41px;
+    min-width: 41px;
+    width: 41px;
+}
+
+.input-group-btn>.btn {
+    border: 0;
+}
+
+.btn .material-icons,
+.btn:not(.btn-just-icon):not(.btn-fab) .fa {
+    position: relative;
+    display: inline-block;
+    top: 0;
+    margin-top: -1em;
+    margin-bottom: -1em;
+    font-size: 1.1rem;
+    vertical-align: middle;
+}
+
+.bg-inverse fieldset[disabled][disabled] .btn,
+.bg-inverse .btn.disabled,
+.bg-inverse .btn:disabled,
+.bg-inverse .btn[disabled],
+.bg-inverse fieldset[disabled][disabled] .input-group-btn .btn,
+.bg-inverse .input-group-btn .btn.disabled,
+.bg-inverse .input-group-btn .btn:disabled,
+.bg-inverse .input-group-btn .btn[disabled],
+.bg-inverse fieldset[disabled][disabled] .btn-group,
+.bg-inverse .btn-group.disabled,
+.bg-inverse .btn-group:disabled,
+.bg-inverse .btn-group[disabled],
+.bg-inverse fieldset[disabled][disabled] .btn-group-vertical,
+.bg-inverse .btn-group-vertical.disabled,
+.bg-inverse .btn-group-vertical:disabled,
+.bg-inverse .btn-group-vertical[disabled] {
+    color: rgba(255, 255, 255, 0.3);
+}
+
+.btn-group,
+.btn-group-vertical {
+    position: relative;
+    margin: 10px 1px;
+}
+
+.btn-group .dropdown-menu,
+.btn-group-vertical .dropdown-menu {
+    border-radius: 0 0 0.25rem 0.25rem;
+}
+
+.btn-group.btn-group-raised,
+.btn-group-vertical.btn-group-raised {
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.btn-group .btn+.btn,
+.btn-group .btn,
+.btn-group .btn:active,
+.btn-group .btn-group,
+.btn-group-vertical .btn+.btn,
+.btn-group-vertical .btn,
+.btn-group-vertical .btn:active,
+.btn-group-vertical .btn-group {
+    margin: 0;
+}
+
+.btn-group>.btn-group,
+.btn-group-vertical>.btn-group {
+    margin: 0;
+}
+
+body {
+    background-color: #E5E5E5;
+    color: #3C4858;
+}
+
+legend {
+    border-bottom: 0;
+}
+
+.serif-font {
+    font-family: "Roboto Slab", "Times New Roman", serif;
+}
+
+* {
+    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
+    -webkit-tap-highlight-color: transparent;
+}
+
+*:focus {
+    outline: 0;
+}
+
+a {
+    color: #9c27b0;
+}
+
+a:hover,
+a:focus {
+    color: #89229b;
+    text-decoration: none;
+}
+
+a.text-info:hover,
+a.text-info:focus {
+    color: #00a5bb;
+}
+
+a .material-icons {
+    vertical-align: middle;
+}
+
+.main {
+    background: #FFFFFF;
+    position: relative;
+    z-index: 3;
+}
+
+.form-check,
+label {
+    font-size: 14px;
+    line-height: 1.42857;
+    color: #AAAAAA;
+    font-weight: 400;
+}
+
+.main-raised {
+    margin: -60px 30px 0px;
+    border-radius: 6px;
+    box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+}
+
+/*           Animations              */
+
+.animation-transition-general,
+.carousel .carousel-indicators li {
+    -webkit-transition: all 300ms linear;
+    -moz-transition: all 300ms linear;
+    -o-transition: all 300ms linear;
+    -ms-transition: all 300ms linear;
+    transition: all 300ms linear;
+}
+
+.animation-transition-slow {
+    -webkit-transition: all 370ms linear;
+    -moz-transition: all 370ms linear;
+    -o-transition: all 370ms linear;
+    -ms-transition: all 370ms linear;
+    transition: all 370ms linear;
+}
+
+.animation-transition-fast,
+.bootstrap-datetimepicker-widget table td>div,
+.bootstrap-datetimepicker-widget table th>div,
+.bootstrap-datetimepicker-widget table th,
+.bootstrap-datetimepicker-widget table td span,
+.navbar,
+.bootstrap-tagsinput .tag,
+.bootstrap-tagsinput [data-role="remove"],
+.card-collapse .card-header a i {
+    -webkit-transition: all 150ms ease 0s;
+    -moz-transition: all 150ms ease 0s;
+    -o-transition: all 150ms ease 0s;
+    -ms-transition: all 150ms ease 0s;
+    transition: all 150ms ease 0s;
+}
+
+.signup-page .card-signup form .form-check {
+    padding-left: 20px;
+}
+
+.signup-page .card-signup form .form-check .form-check-label {
+    padding-left: 35px;
+}
+
+.section-signup .card-signup .card-header {
+    width: auto;
+}
+
+.section-signup .card-signup .card-body .input-group {
+    padding-bottom: 7px;
+    margin: 27px 0 0 0;
+}
+
+.offline-doc .page-header,
+.offline-free-doc .page-header {
+    height: 100vh !important;
+}
+
+.offline-doc .footer,
+.offline-free-doc .footer {
+    position: absolute;
+    width: 100%;
+    background: transparent;
+    bottom: 0;
+    color: #fff;
+    z-index: 1;
+}
+
+.offline-doc .footer .copyright a,
+.offline-free-doc .footer .copyright a {
+    color: #fff;
+}
+
+.form-check {
+    margin-bottom: .5rem;
+    padding-left: 0;
+}
+
+.form-check .form-check-label {
+    cursor: pointer;
+    padding-left: 0;
+}
+
+.form-group.is-focused .form-check .form-check-label {
+    color: rgba(0, 0, 0, 0.26);
+}
+
+.form-group.is-focused .form-check .form-check-label:hover,
+.form-group.is-focused .form-check .form-check-label:focus {
+    color: rgba(0, 0, 0, .54);
+}
+
+fieldset[disabled] .form-group.is-focused .form-check .form-check-label {
+    color: rgba(0, 0, 0, 0.26);
+}
+
+.form-check .form-check-input {
+    opacity: 0;
+    position: absolute;
+    margin: 0;
+    z-index: -1;
+    width: 0;
+    height: 0;
+    overflow: hidden;
+    left: 0;
+    pointer-events: none;
+}
+
+.form-check .form-check-sign {
+    vertical-align: middle;
+    position: relative;
+    top: -2px;
+    float: left;
+    padding-right: 10px;
+    display: inline-block;
+}
+
+.form-check .form-check-sign:before {
+    display: block;
+    position: absolute;
+    left: 0;
+    content: "";
+    background-color: rgba(0, 0, 0, 0.84);
+    height: 20px;
+    width: 20px;
+    border-radius: 100%;
+    z-index: 1;
+    opacity: 0;
+    margin: 0;
+    top: 0;
+    -webkit-transform: scale3d(2.3, 2.3, 1);
+    -moz-transform: scale3d(2.3, 2.3, 1);
+    -o-transform: scale3d(2.3, 2.3, 1);
+    -ms-transform: scale3d(2.3, 2.3, 1);
+    transform: scale3d(2.3, 2.3, 1);
+}
+
+.form-check .form-check-sign .check {
+    position: relative;
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    border: 1px solid rgba(0, 0, 0, .54);
+    overflow: hidden;
+    z-index: 1;
+    border-radius: 3px;
+}
+
+.form-check .form-check-sign .check:before {
+    position: absolute;
+    content: "";
+    transform: rotate(45deg);
+    display: block;
+    margin-top: -3px;
+    margin-left: 7px;
+    width: 0;
+    color: #fff;
+    height: 0;
+    box-shadow: 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 inset;
+    -webkit-animation: checkbox-off 0.3s forwards;
+    -moz-animation: checkbox-off 0.3s forwards;
+    -o-animation: checkbox-off 0.3s forwards;
+    -ms-animation: checkbox-off 0.3s forwards;
+    animation: checkbox-off 0.3s forwards;
+}
+
+.form-check .form-check-input:focus+.form-check-sign .check:after {
+    opacity: 0.2;
+}
+
+.form-check .form-check-input:checked+.form-check-sign .check {
+    background: #9c27b0;
+}
+
+.form-check .form-check-input:checked+.form-check-sign .check:before {
+    color: #FFFFFF;
+    box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px;
+    -webkit-animation: checkbox-on 0.3s forwards;
+    -moz-animation: checkbox-on 0.3s forwards;
+    -o-animation: checkbox-on 0.3s forwards;
+    -ms-animation: checkbox-on 0.3s forwards;
+    animation: checkbox-on 0.3s forwards;
+}
+
+.form-check .form-check-input:checked+.form-check-sign:before {
+    -webkit-animation: rippleOn 500ms;
+    -moz-animation: rippleOn 500ms;
+    -o-animation: rippleOn 500ms;
+    -ms-animation: rippleOn 500ms;
+    animation: rippleOn 500ms;
+}
+
+.form-check .form-check-input:checked+.form-check-sign .check:after {
+    -webkit-animation: rippleOn 500ms forwards;
+    -moz-animation: rippleOn 500ms forwards;
+    -o-animation: rippleOn 500ms forwards;
+    -ms-animation: rippleOn 500ms forwards;
+    animation: rippleOn 500ms forwards;
+}
+
+.form-check .form-check-input:not(:checked)+.form-check-sign:before {
+    -webkit-animation: rippleOff 500ms;
+    -moz-animation: rippleOff 500ms;
+    -o-animation: rippleOff 500ms;
+    -ms-animation: rippleOff 500ms;
+    animation: rippleOff 500ms;
+}
+
+.form-check .form-check-input:not(:checked)+.form-check-sign .check:after {
+    -webkit-animation: rippleOff 500ms;
+    -moz-animation: rippleOff 500ms;
+    -o-animation: rippleOff 500ms;
+    -ms-animation: rippleOff 500ms;
+    animation: rippleOff 500ms;
+}
+
+fieldset[disabled] .form-check,
+fieldset[disabled] .form-check .form-check-input,
+.form-check .form-check-input[disabled]~.form-check-sign .check,
+.form-check .form-check-input[disabled]+.circle {
+    opacity: 0.5;
+}
+
+.form-check .form-check-input[disabled]~.form-check-sign .check {
+    border-color: #000000;
+    opacity: .26;
+}
+
+.form-check .form-check-input[disabled]+.form-check-sign .check:after {
+    background-color: rgba(0, 0, 0, 0.87);
+    transform: rotate(-45deg);
+}
+
+.form-check .form-check-input[disabled][checked]+.form-check-sign .check {
+    background-color: #000000;
+}
+
+@keyframes checkbox-on {
+    0% {
+        box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px;
+    }
+    50% {
+        box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px 2px 0 11px;
+    }
+    100% {
+        box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px;
+    }
+}
+
+@keyframes rippleOn {
+    0% {
+        opacity: 0;
+    }
+    50% {
+        opacity: 0.2;
+    }
+    100% {
+        opacity: 0;
+    }
+}
+
+@keyframes rippleOff {
+    0% {
+        opacity: 0;
+    }
+    50% {
+        opacity: 0.2;
+    }
+    100% {
+        opacity: 0;
+    }
+}
+
+.card {
+    border: 0;
+    margin-bottom: 30px;
+    margin-top: 30px;
+    border-radius: 6px;
+    color: rgba(0, 0, 0, 0.87);
+    background: #fff;
+    width: 100%;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+
+.card .card-category:not([class*="text-"]) {
+    color: #999999;
+}
+
+.card .card-category {
+    margin-top: 10px;
+}
+
+.card .card-category .material-icons {
+    position: relative;
+    top: 8px;
+    line-height: 0;
+}
+
+.card .form-check {
+    margin-top: 15px;
+}
+
+.card .card-title {
+    margin-top: 0.625rem;
+}
+
+.card .card-title:last-child {
+    margin-bottom: 0;
+}
+
+.card.no-shadow .card-header-image,
+.card.no-shadow .card-header-image img {
+    box-shadow: none !important;
+}
+
+.card .card-body,
+.card .card-footer {
+    padding: 0.9375rem 1.875rem;
+}
+
+.card .card-body+.card-footer {
+    padding-top: 0rem;
+    border: 0;
+    border-radius: 6px;
+}
+
+.card .card-footer {
+    display: flex;
+    align-items: center;
+    background-color: transparent;
+    border: 0;
+}
+
+.card .card-footer .author,
+.card .card-footer .stats {
+    display: inline-flex;
+}
+
+.card .card-footer .stats {
+    color: #999999;
+}
+
+.card .card-footer .stats .material-icons {
+    position: relative;
+    top: -10px;
+    margin-right: 3px;
+    margin-left: 3px;
+    font-size: 18px;
+}
+
+.card.bmd-card-raised {
+    box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
+}
+
+@media (min-width: 992px) {
+    .card.bmd-card-flat {
+        box-shadow: none;
+    }
+}
+
+.card .card-header {
+    border-radius: 3px;
+    padding: 1rem 15px;
+    margin-left: 15px;
+    margin-right: 15px;
+    margin-top: -30px;
+    border: 0;
+    background: linear-gradient(60deg, #eee, #bdbdbd);
+}
+
+.card .card-header .title {
+    color: #fff;
+}
+
+.card .card-header:not([class*="header-"]) {
+    box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+}
+
+.card .card-header .nav-tabs {
+    padding: 0;
+}
+
+.card .card-header.card-header-image {
+    position: relative;
+    padding: 0;
+    z-index: 1;
+    margin-left: 15px;
+    margin-right: 15px;
+    margin-top: -30px;
+    border-radius: 6px;
+}
+
+.card .card-header.card-header-image img {
+    width: 100%;
+    border-radius: 6px;
+    pointer-events: none;
+    box-shadow: 0 5px 15px -8px rgba(0, 0, 0, 0.24), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+}
+
+.card .card-header.card-header-image .card-title {
+    position: absolute;
+    bottom: 15px;
+    left: 15px;
+    color: #fff;
+    font-size: 1.125rem;
+    text-shadow: 0 2px 5px rgba(33, 33, 33, 0.5);
+}
+
+.card .card-header.card-header-image .colored-shadow {
+    transform: scale(0.94);
+    top: 12px;
+    filter: blur(12px);
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    background-size: cover;
+    z-index: -1;
+    transition: opacity .45s;
+    opacity: 0;
+}
+
+.card .card-header.card-header-image.no-shadow {
+    box-shadow: none;
+}
+
+.card .card-header.card-header-image.no-shadow.shadow-normal {
+    box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+}
+
+.card .card-header.card-header-image.no-shadow .colored-shadow {
+    display: none !important;
+}
+
+.card .card-header-primary,
+.card.bg-primary,
+.card.card-rotate.bg-primary .front,
+.card.card-rotate.bg-primary .back {
+    background: linear-gradient(60deg, #ab47bc, #7b1fa2);
+}
+
+.card .card-header-info,
+.card.bg-info,
+.card.card-rotate.bg-info .front,
+.card.card-rotate.bg-info .back {
+    background: linear-gradient(60deg, #26c6da, #0097a7);
+}
+
+.card .card-header-success,
+.card.bg-success,
+.card.card-rotate.bg-success .front,
+.card.card-rotate.bg-success .back {
+    background: linear-gradient(60deg, #66bb6a, #388e3c);
+}
+
+.card .card-header-warning,
+.card.bg-warning,
+.card.card-rotate.bg-warning .front,
+.card.card-rotate.bg-warning .back {
+    background: linear-gradient(60deg, #ffa726, #f57c00);
+}
+
+.card .card-header-danger,
+.card.bg-danger,
+.card.card-rotate.bg-danger .front,
+.card.card-rotate.bg-danger .back {
+    background: linear-gradient(60deg, #ef5350, #d32f2f);
+}
+
+.card .card-header-rose,
+.card.bg-rose,
+.card.card-rotate.bg-rose .front,
+.card.card-rotate.bg-rose .back {
+    background: linear-gradient(60deg, #ec407a, #c2185b);
+}
+
+.card .card-header-primary {
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(156, 39, 176, 0.6);
+}
+
+.card .card-header-danger {
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(244, 67, 54, 0.6);
+}
+
+.card .card-header-rose {
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(233, 30, 99, 0.6);
+}
+
+.card .card-header-warning {
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(255, 152, 0, 0.6);
+}
+
+.card .card-header-info {
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(0, 188, 212, 0.6);
+}
+
+.card .card-header-success {
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(76, 175, 80, 0.6);
+}
+
+.card [class*="header-"],
+.card[class*="bg-"] {
+    color: #fff;
+}
+
+.card [class*="header-"] .card-title a,
+.card [class*="header-"] .card-title,
+.card [class*="header-"] .icon i,
+.card[class*="bg-"] .card-title a,
+.card[class*="bg-"] .card-title,
+.card[class*="bg-"] .icon i {
+    color: #fff;
+}
+
+.card [class*="header-"] .icon i,
+.card[class*="bg-"] .icon i {
+    border-color: rgba(255, 255, 255, 0.25);
+}
+
+.card [class*="header-"] .author a,
+.card [class*="header-"] .stats,
+.card [class*="header-"] .card-category,
+.card [class*="header-"] .card-description,
+.card[class*="bg-"] .author a,
+.card[class*="bg-"] .stats,
+.card[class*="bg-"] .card-category,
+.card[class*="bg-"] .card-description {
+    color: rgba(255, 255, 255, 0.8);
+}
+
+.card [class*="header-"] .author a:hover,
+.card [class*="header-"] .author a:focus,
+.card [class*="header-"] .author a:active,
+.card[class*="bg-"] .author a:hover,
+.card[class*="bg-"] .author a:focus,
+.card[class*="bg-"] .author a:active {
+    color: #fff;
+}
+
+.card .author .avatar {
+    width: 30px;
+    height: 30px;
+    overflow: hidden;
+    border-radius: 50%;
+    margin-right: 5px;
+}
+
+.card .author a {
+    color: #3C4858;
+    text-decoration: none;
+}
+
+.card .author a .ripple-container {
+    display: none;
+}
+
+.card .card-category-social .fa {
+    font-size: 24px;
+    position: relative;
+    margin-top: -4px;
+    top: 2px;
+    margin-right: 5px;
+}
+
+.card .card-category-social .material-icons {
+    position: relative;
+    top: 5px;
+}
+
+.card[class*="bg-"],
+.card[class*="bg-"] .card-body {
+    border-radius: 6px;
+}
+
+.card[class*="bg-"] h1 small,
+.card[class*="bg-"] h2 small,
+.card[class*="bg-"] h3 small,
+.card[class*="bg-"] .card-body h1 small,
+.card[class*="bg-"] .card-body h2 small,
+.card[class*="bg-"] .card-body h3 small {
+    color: rgba(255, 255, 255, 0.8);
+}
+
+.card .card-stats {
+    background: transparent;
+    display: flex;
+}
+
+.card .card-stats .author,
+.card .card-stats .stats {
+    display: inline-flex;
+}
+
+.card-plain {
+    background: transparent;
+    box-shadow: none;
+}
+
+.card-plain .card-header:not(.card-avatar) {
+    margin-left: 0;
+    margin-right: 0;
+}
+
+.card-plain .card-body {
+    padding-left: 5px;
+    padding-right: 5px;
+}
+
+.card-plain .card-header-image {
+    margin: 0 !important;
+    border-radius: 6px;
+}
+
+.card-plain .card-header-image img {
+    border-radius: 6px;
+}
+
+.card-plain .card-footer {
+    padding-left: 5px;
+    padding-right: 5px;
+    background-color: transparent;
+}
+
+.switch label {
+    position: relative;
+    padding-left: 2.4375rem;
+}
+
+.switch label .bmd-switch-track {
+    position: absolute;
+    top: 0.3125rem;
+    left: 0;
+    display: inline-block;
+    width: 2.125rem;
+    height: 0.875rem;
+    cursor: pointer;
+    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.12) 50%, #c49bcb 50%, #c49bcb 100%);
+    background-position: 0%;
+    background-size: 4.25rem 0.875rem;
+    border-radius: 2.125rem;
+    transition: background-position 0.2s ease-in;
+}
+
+.switch label .bmd-switch-track::after {
+    position: absolute;
+    top: 50%;
+    left: 0;
+    display: block;
+    align-self: center;
+    width: 1.25rem;
+    height: 1.25rem;
+    content: "";
+    background: #f1f1f1;
+    border-radius: 100%;
+    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
+    transition: left 0.2s ease-in, background-color 0.2s ease-in, transform 0.3s ease;
+    transform: translateY(-50%);
+}
+
+.switch label .bmd-switch-track:active::after {
+    transform: translateY(-50%) scale3d(1.15, 0.85, 1);
+}
+
+.switch label input {
+    position: absolute;
+    display: block;
+    width: 0;
+    height: 0;
+    opacity: 0;
+}
+
+.switch label input:checked+.bmd-switch-track {
+    background-position: -100%;
+}
+
+.switch label input:checked+.bmd-switch-track::after {
+    left: calc(100% - 1.25rem);
+    background-color: #9c27b0;
+}
+
+.switch label input:disabled+.bmd-switch-track:active::after {
+    transform: translateY(-50%);
+}
+
+.switch label input:disabled+.bmd-switch-track {
+    cursor: default;
+    background: rgba(0, 0, 0, 0.12);
+}
+
+.switch label input:disabled+.bmd-switch-track::after {
+    background: #bdbdbd;
+}
+
+.form-check .form-check-label {
+    cursor: pointer;
+    padding-left: 25px;
+    position: relative;
+}
+
+.form-group.is-focused .form-check .form-check-label {
+    color: rgba(0, 0, 0, 0.26);
+}
+
+.form-group.is-focused .form-check .form-check-label:hover,
+.form-group.is-focused .form-check .form-check-label:focus {
+    color: rgba(0, 0, 0, .54);
+}
+
+fieldset[disabled] .form-group.is-focused .form-check .form-check-label {
+    color: rgba(0, 0, 0, 0.26);
+}
+
+.form-check .form-check-label span {
+    display: block;
+    position: absolute;
+    left: -1px;
+    top: -1px;
+    transition-duration: 0.2s;
+}
+
+.form-check .form-check-label .circle {
+    border: 1px solid rgba(0, 0, 0, .54);
+    height: 15px;
+    width: 15px;
+    border-radius: 100%;
+    top: 1px;
+}
+
+.form-check .form-check-label .circle .check {
+    height: 15px;
+    width: 15px;
+    border-radius: 100%;
+    background-color: #9c27b0;
+    -webkit-transform: scale3d(0, 0, 0);
+    -moz-transform: scale3d(0, 0, 0);
+    -o-transform: scale3d(0, 0, 0);
+    -ms-transform: scale3d(0, 0, 0);
+    transform: scale3d(0, 0, 0);
+}
+
+.form-check .form-check-label .form-check-input:not(:checked)~.check:after {
+    -webkit-animation: rippleOff 500ms;
+    -moz-animation: rippleOff 500ms;
+    -o-animation: rippleOff 500ms;
+    -ms-animation: rippleOff 500ms;
+    animation: rippleOff 500ms;
+}
+
+.form-check .form-check-label .form-check-input:checked~.check:after {
+    -webkit-animation: rippleOff 500ms;
+    -moz-animation: rippleOff 500ms;
+    -o-animation: rippleOff 500ms;
+    -ms-animation: rippleOff 500ms;
+    animation: rippleOff 500ms;
+}
+
+.form-check .form-check-input {
+    opacity: 0;
+    height: 0;
+    width: 0;
+    overflow: hidden;
+}
+
+.form-check .form-check-input:checked~.check,
+.form-check .form-check-input:checked~.circle {
+    opacity: 1;
+}
+
+.form-check .form-check-input:checked~.check {
+    background-color: #9c27b0;
+}
+
+.form-check .form-check-input:checked~.circle {
+    border-color: #9c27b0;
+}
+
+.form-check .form-check-input:checked~.circle .check {
+    -webkit-transform: scale3d(0.65, 0.65, 1);
+    -moz-transform: scale3d(0.65, 0.65, 1);
+    -o-transform: scale3d(0.65, 0.65, 1);
+    -ms-transform: scale3d(0.65, 0.65, 1);
+    transform: scale3d(0.65, 0.65, 1);
+}
+
+.form-check .form-check-input[disabled]~.check,
+.form-check .form-check-input[disabled]~.circle {
+    opacity: 0.26;
+}
+
+.form-check .form-check-input[disabled]~.check {
+    background-color: #000000;
+}
+
+.form-check .form-check-input[disabled]~.circle {
+    border-color: #000000;
+}
+
+.form-check .form-check-input[disabled]+.circle .check {
+    background-color: #000000;
+}
+
+.form-check .form-check-sign {
+    vertical-align: middle;
+    position: relative;
+    top: -2px;
+    float: left;
+    padding-right: 10px;
+    display: inline-block;
+}
+
+.form-check+.form-check {
+    margin-top: 0;
+}
+
+.carousel .carousel-control.left,
+.carousel .carousel-control.right {
+    background-image: none;
+}
+
+.carousel .carousel-control.right i {
+    right: 0;
+}
+
+.carousel .card {
+    margin-top: 0;
+}
+
+.carousel .item {
+    text-align: center;
+}
+
+.carousel.carousel-full-nagivation .carousel-control {
+    width: 50%;
+}
+
+.carousel.carousel-full-nagivation .carousel-control.left,
+.carousel.carousel-full-nagivation .carousel-control.right {
+    background-image: none;
+}
+
+.carousel.carousel-full-nagivation .carousel-control .material-icons,
+.carousel.carousel-full-nagivation .carousel-control .fa {
+    display: none;
+}
+
+.carousel.carousel-full-nagivation .left {
+    cursor: url("../img/arrow-left.png"), url("../img/arrow-left.cur"), default !important;
+}
+
+.carousel.carousel-full-nagivation .right {
+    cursor: url("../img/arrow-right.png"), url("../img/arrow-right.cur"), default !important;
+}
+
+.carousel .carousel-control {
+    height: 15%;
+    margin: auto;
+}
+
+.carousel .carousel-control-prev .material-icons,
+.carousel .carousel-control-next .material-icons {
+    z-index: 5;
+    display: inline-block;
+    font-size: 50px;
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    height: 50px;
+    margin: auto;
+}
+
+.carousel .carousel-indicators {
+    bottom: 5px;
+}
+
+.carousel .carousel-indicators li,
+.carousel .carousel-indicators .active {
+    margin: 11px 10px;
+}
+
+.carousel .carousel-indicators li {
+    display: inline-block;
+    width: 10px;
+    height: 10px;
+    text-indent: -999px;
+    cursor: pointer;
+    border: 1px solid #fff;
+    border-radius: 10px;
+    background: #FFFFFF;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
+    border-radius: 2px;
+}
+
+.carousel .carousel-indicators .active {
+    margin-top: 10px;
+    -webkit-transform: scale(1.5);
+    -moz-transform: scale(1.5);
+    -o-transform: scale(1.5);
+    -ms-transform: scale(1.5);
+    transform: scale(1.5);
+    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
+}
+
+.carousel .carousel-caption {
+    padding-bottom: 45px;
+}
+
+.carousel .carousel-caption .material-icons {
+    position: relative;
+    top: 5px;
+}
+
+form {
+    margin-bottom: 1.125rem;
+}
+
+.card form {
+    margin: 0;
+}
+
+.navbar form {
+    margin-bottom: 0;
+}
+
+.navbar form .bmd-form-group {
+    display: inline-block;
+    padding-top: 0;
+}
+
+.navbar form .btn {
+    margin-bottom: 0;
+}
+
+.form-control {
+    background: no-repeat center bottom, center calc(100% - 1px);
+    background-size: 0 100%, 100% 100%;
+    border: 0;
+    height: 36px;
+    transition: background 0s ease-out;
+    padding-left: 0;
+    padding-right: 0;
+    border-radius: 0;
+    font-size: 14px;
+}
+
+.form-control:focus,
+.bmd-form-group.is-focused .form-control {
+    background-size: 100% 100%, 100% 100%;
+    transition-duration: 0.3s;
+}
+
+.form-control::-moz-placeholder {
+    color: #AAAAAA;
+    font-weight: 400;
+    font-size: 14px;
+}
+
+.form-control:-ms-input-placeholder {
+    color: #AAAAAA;
+    font-weight: 400;
+    font-size: 14px;
+}
+
+.form-control::-webkit-input-placeholder {
+    color: #AAAAAA;
+    font-weight: 400;
+    font-size: 14px;
+}
+
+.has-white .form-control::-moz-placeholder {
+    color: #fff;
+}
+
+.has-white .form-control:-ms-input-placeholder {
+    color: #fff;
+}
+
+.has-white .form-control::-webkit-input-placeholder {
+    color: #fff;
+}
+
+.bmd-help {
+    position: absolute;
+    display: none;
+    font-size: .8rem;
+    font-weight: normal;
+}
+
+.bmd-form-group.is-focused .bmd-help {
+    display: block;
+}
+
+.bmd-help:nth-of-type(2) {
+    padding-top: 1rem;
+}
+
+.bmd-help+.bmd-help {
+    position: relative;
+    margin-bottom: 0;
+}
+
+.radio label,
+.is-focused .radio label,
+.radio-inline,
+.is-focused .radio-inline,
+.checkbox label,
+.is-focused .checkbox label,
+.checkbox-inline,
+.is-focused .checkbox-inline,
+.switch label,
+.is-focused .switch label {
+    color: #999999;
+}
+
+.radio label label:has(input[type=radio][disabled]),
+.radio label label:has(input[type=radio][disabled]):hover,
+.radio label label:has(input[type=radio][disabled]):focus,
+.radio label label:has(input[type=checkbox][disabled]),
+.radio label label:has(input[type=checkbox][disabled]):hover,
+.radio label label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .radio label,
+fieldset[disabled] .radio label:hover,
+fieldset[disabled] .radio label:focus,
+.is-focused .radio label label:has(input[type=radio][disabled]),
+.is-focused .radio label label:has(input[type=radio][disabled]):hover,
+.is-focused .radio label label:has(input[type=radio][disabled]):focus,
+.is-focused .radio label label:has(input[type=checkbox][disabled]),
+.is-focused .radio label label:has(input[type=checkbox][disabled]):hover,
+.is-focused .radio label label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .is-focused .radio label,
+fieldset[disabled] .is-focused .radio label:hover,
+fieldset[disabled] .is-focused .radio label:focus,
+.radio-inline label:has(input[type=radio][disabled]),
+.radio-inline label:has(input[type=radio][disabled]):hover,
+.radio-inline label:has(input[type=radio][disabled]):focus,
+.radio-inline label:has(input[type=checkbox][disabled]),
+.radio-inline label:has(input[type=checkbox][disabled]):hover,
+.radio-inline label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .radio-inline,
+fieldset[disabled] .radio-inline:hover,
+fieldset[disabled] .radio-inline:focus,
+.is-focused .radio-inline label:has(input[type=radio][disabled]),
+.is-focused .radio-inline label:has(input[type=radio][disabled]):hover,
+.is-focused .radio-inline label:has(input[type=radio][disabled]):focus,
+.is-focused .radio-inline label:has(input[type=checkbox][disabled]),
+.is-focused .radio-inline label:has(input[type=checkbox][disabled]):hover,
+.is-focused .radio-inline label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .is-focused .radio-inline,
+fieldset[disabled] .is-focused .radio-inline:hover,
+fieldset[disabled] .is-focused .radio-inline:focus,
+.checkbox label label:has(input[type=radio][disabled]),
+.checkbox label label:has(input[type=radio][disabled]):hover,
+.checkbox label label:has(input[type=radio][disabled]):focus,
+.checkbox label label:has(input[type=checkbox][disabled]),
+.checkbox label label:has(input[type=checkbox][disabled]):hover,
+.checkbox label label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .checkbox label,
+fieldset[disabled] .checkbox label:hover,
+fieldset[disabled] .checkbox label:focus,
+.is-focused .checkbox label label:has(input[type=radio][disabled]),
+.is-focused .checkbox label label:has(input[type=radio][disabled]):hover,
+.is-focused .checkbox label label:has(input[type=radio][disabled]):focus,
+.is-focused .checkbox label label:has(input[type=checkbox][disabled]),
+.is-focused .checkbox label label:has(input[type=checkbox][disabled]):hover,
+.is-focused .checkbox label label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .is-focused .checkbox label,
+fieldset[disabled] .is-focused .checkbox label:hover,
+fieldset[disabled] .is-focused .checkbox label:focus,
+.checkbox-inline label:has(input[type=radio][disabled]),
+.checkbox-inline label:has(input[type=radio][disabled]):hover,
+.checkbox-inline label:has(input[type=radio][disabled]):focus,
+.checkbox-inline label:has(input[type=checkbox][disabled]),
+.checkbox-inline label:has(input[type=checkbox][disabled]):hover,
+.checkbox-inline label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .checkbox-inline,
+fieldset[disabled] .checkbox-inline:hover,
+fieldset[disabled] .checkbox-inline:focus,
+.is-focused .checkbox-inline label:has(input[type=radio][disabled]),
+.is-focused .checkbox-inline label:has(input[type=radio][disabled]):hover,
+.is-focused .checkbox-inline label:has(input[type=radio][disabled]):focus,
+.is-focused .checkbox-inline label:has(input[type=checkbox][disabled]),
+.is-focused .checkbox-inline label:has(input[type=checkbox][disabled]):hover,
+.is-focused .checkbox-inline label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .is-focused .checkbox-inline,
+fieldset[disabled] .is-focused .checkbox-inline:hover,
+fieldset[disabled] .is-focused .checkbox-inline:focus,
+.switch label label:has(input[type=radio][disabled]),
+.switch label label:has(input[type=radio][disabled]):hover,
+.switch label label:has(input[type=radio][disabled]):focus,
+.switch label label:has(input[type=checkbox][disabled]),
+.switch label label:has(input[type=checkbox][disabled]):hover,
+.switch label label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .switch label,
+fieldset[disabled] .switch label:hover,
+fieldset[disabled] .switch label:focus,
+.is-focused .switch label label:has(input[type=radio][disabled]),
+.is-focused .switch label label:has(input[type=radio][disabled]):hover,
+.is-focused .switch label label:has(input[type=radio][disabled]):focus,
+.is-focused .switch label label:has(input[type=checkbox][disabled]),
+.is-focused .switch label label:has(input[type=checkbox][disabled]):hover,
+.is-focused .switch label label:has(input[type=checkbox][disabled]):focus,
+fieldset[disabled] .is-focused .switch label,
+fieldset[disabled] .is-focused .switch label:hover,
+fieldset[disabled] .is-focused .switch label:focus {
+    color: #999999;
+}
+
+[class^='bmd-label'],
+[class*=' bmd-label'] {
+    color: #999999;
+}
+
+.form-control,
+.is-focused .form-control {
+    background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.form-control:invalid {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.form-control:read-only {
+    background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+fieldset[disabled][disabled] .form-control,
+.form-control.disabled,
+.form-control:disabled,
+.form-control[disabled] {
+    background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%);
+    background-repeat: repeat-x;
+    background-size: 3px 1px;
+}
+
+.form-control.form-control-success,
+.is-focused .form-control.form-control-success {
+    background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==";
+}
+
+.form-control.form-control-warning,
+.is-focused .form-control.form-control-warning {
+    background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+";
+}
+
+.form-control.form-control-danger,
+.is-focused .form-control.form-control-danger {
+    background-image: linear-gradient(to top, #9c27b0 2px, rgba(156, 39, 176, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=";
+}
+
+.is-focused .valid-feedback,
+.is-focused .valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #999999;
+}
+
+.is-focused .valid-tooltip,
+.is-focused .valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(153, 153, 153, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .is-focused .form-control:valid,
+.is-focused .form-control.is-valid,
+.was-validated .is-focused .custom-select:valid,
+.is-focused .custom-select.is-valid,
+.was-validated .is-focused .form-control:valid,
+.is-focused .form-control.is-valid,
+.was-validated .is-focused .custom-select:valid,
+.is-focused .custom-select.is-valid {
+    border-color: #999999;
+}
+
+.was-validated .is-focused .form-control:valid:focus,
+.is-focused .form-control.is-valid:focus,
+.was-validated .is-focused .custom-select:valid:focus,
+.is-focused .custom-select.is-valid:focus,
+.was-validated .is-focused .form-control:valid:focus,
+.is-focused .form-control.is-valid:focus,
+.was-validated .is-focused .custom-select:valid:focus,
+.is-focused .custom-select.is-valid:focus {
+    border-color: #999999;
+    box-shadow: 0 0 0 0.2rem rgba(153, 153, 153, 0.25);
+}
+
+.was-validated .is-focused .form-control:valid~.valid-feedback,
+.was-validated .is-focused .form-control:valid~.valid-tooltip,
+.is-focused .form-control.is-valid~.valid-feedback,
+.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .is-focused .custom-select:valid~.valid-tooltip,
+.is-focused .custom-select.is-valid~.valid-feedback,
+.is-focused .custom-select.is-valid~.valid-tooltip,
+.was-validated .is-focused .form-control:valid~.valid-feedback,
+.was-validated .is-focused .form-control:valid~.valid-tooltip,
+.is-focused .form-control.is-valid~.valid-feedback,
+.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .is-focused .custom-select:valid~.valid-tooltip,
+.is-focused .custom-select.is-valid~.valid-feedback,
+.is-focused .custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .is-focused .form-check-input:valid~.form-check-label,
+.is-focused .form-check-input.is-valid~.form-check-label,
+.was-validated .is-focused .form-check-input:valid~.form-check-label,
+.is-focused .form-check-input.is-valid~.form-check-label {
+    color: #999999;
+}
+
+.was-validated .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .is-focused .form-check-input:valid~.valid-tooltip,
+.is-focused .form-check-input.is-valid~.valid-feedback,
+.is-focused .form-check-input.is-valid~.valid-tooltip,
+.was-validated .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .is-focused .form-check-input:valid~.valid-tooltip,
+.is-focused .form-check-input.is-valid~.valid-feedback,
+.is-focused .form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .is-focused .custom-control-input:valid~.custom-control-label,
+.is-focused .custom-control-input.is-valid~.custom-control-label,
+.was-validated .is-focused .custom-control-input:valid~.custom-control-label,
+.is-focused .custom-control-input.is-valid~.custom-control-label {
+    color: #999999;
+}
+
+.was-validated .is-focused .custom-control-input:valid~.custom-control-label::before,
+.is-focused .custom-control-input.is-valid~.custom-control-label::before,
+.was-validated .is-focused .custom-control-input:valid~.custom-control-label::before,
+.is-focused .custom-control-input.is-valid~.custom-control-label::before {
+    background-color: #d9d9d9;
+}
+
+.was-validated .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .is-focused .custom-control-input:valid~.valid-tooltip,
+.is-focused .custom-control-input.is-valid~.valid-feedback,
+.is-focused .custom-control-input.is-valid~.valid-tooltip,
+.was-validated .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .is-focused .custom-control-input:valid~.valid-tooltip,
+.is-focused .custom-control-input.is-valid~.valid-feedback,
+.is-focused .custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before,
+.was-validated .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: #b3b3b3;
+}
+
+.was-validated .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before,
+.was-validated .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(153, 153, 153, 0.25);
+}
+
+.was-validated .is-focused .custom-file-input:valid~.custom-file-label,
+.is-focused .custom-file-input.is-valid~.custom-file-label,
+.was-validated .is-focused .custom-file-input:valid~.custom-file-label,
+.is-focused .custom-file-input.is-valid~.custom-file-label {
+    border-color: #999999;
+}
+
+.was-validated .is-focused .custom-file-input:valid~.custom-file-label::before,
+.is-focused .custom-file-input.is-valid~.custom-file-label::before,
+.was-validated .is-focused .custom-file-input:valid~.custom-file-label::before,
+.is-focused .custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .is-focused .custom-file-input:valid~.valid-tooltip,
+.is-focused .custom-file-input.is-valid~.valid-feedback,
+.is-focused .custom-file-input.is-valid~.valid-tooltip,
+.was-validated .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .is-focused .custom-file-input:valid~.valid-tooltip,
+.is-focused .custom-file-input.is-valid~.valid-feedback,
+.is-focused .custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.is-focused .custom-file-input.is-valid:focus~.custom-file-label,
+.was-validated .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.is-focused .custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(153, 153, 153, 0.25);
+}
+
+.is-focused [class^='bmd-label'],
+.is-focused [class*=' bmd-label'],
+.is-focused [class^='bmd-label'],
+.is-focused [class*=' bmd-label'] {
+    color: #9c27b0;
+}
+
+.is-focused .bmd-label-placeholder,
+.is-focused .bmd-label-placeholder {
+    color: #999999;
+}
+
+.is-focused .form-control,
+.is-focused .form-control {
+    border-color: #d2d2d2;
+}
+
+.is-focused .bmd-help,
+.is-focused .bmd-help {
+    color: #555;
+}
+
+.has-success [class^='bmd-label'],
+.has-success [class*=' bmd-label'] {
+    color: #4caf50;
+}
+
+.has-success .form-control,
+.is-focused .has-success .form-control {
+    background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-success .form-control:invalid {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-success .form-control:read-only {
+    background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+fieldset[disabled][disabled] .has-success .form-control,
+.has-success .form-control.disabled,
+.has-success .form-control:disabled,
+.has-success .form-control[disabled] {
+    background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%);
+    background-repeat: repeat-x;
+    background-size: 3px 1px;
+}
+
+.has-success .form-control.form-control-success,
+.is-focused .has-success .form-control.form-control-success {
+    background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==";
+}
+
+.has-success .form-control.form-control-warning,
+.is-focused .has-success .form-control.form-control-warning {
+    background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+";
+}
+
+.has-success .form-control.form-control-danger,
+.is-focused .has-success .form-control.form-control-danger {
+    background-image: linear-gradient(to top, #4caf50 2px, rgba(76, 175, 80, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=";
+}
+
+.has-success .is-focused .valid-feedback,
+.has-success.is-focused .valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #4caf50;
+}
+
+.has-success .is-focused .valid-tooltip,
+.has-success.is-focused .valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(76, 175, 80, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .has-success .is-focused .form-control:valid,
+.has-success .is-focused .form-control.is-valid,
+.was-validated .has-success .is-focused .custom-select:valid,
+.has-success .is-focused .custom-select.is-valid,
+.was-validated .has-success.is-focused .form-control:valid,
+.has-success.is-focused .form-control.is-valid,
+.was-validated .has-success.is-focused .custom-select:valid,
+.has-success.is-focused .custom-select.is-valid {
+    border-color: #4caf50;
+}
+
+.was-validated .has-success .is-focused .form-control:valid:focus,
+.has-success .is-focused .form-control.is-valid:focus,
+.was-validated .has-success .is-focused .custom-select:valid:focus,
+.has-success .is-focused .custom-select.is-valid:focus,
+.was-validated .has-success.is-focused .form-control:valid:focus,
+.has-success.is-focused .form-control.is-valid:focus,
+.was-validated .has-success.is-focused .custom-select:valid:focus,
+.has-success.is-focused .custom-select.is-valid:focus {
+    border-color: #4caf50;
+    box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25);
+}
+
+.was-validated .has-success .is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-success .is-focused .form-control:valid~.valid-tooltip,
+.has-success .is-focused .form-control.is-valid~.valid-feedback,
+.has-success .is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-success .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-success .is-focused .custom-select:valid~.valid-tooltip,
+.has-success .is-focused .custom-select.is-valid~.valid-feedback,
+.has-success .is-focused .custom-select.is-valid~.valid-tooltip,
+.was-validated .has-success.is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-success.is-focused .form-control:valid~.valid-tooltip,
+.has-success.is-focused .form-control.is-valid~.valid-feedback,
+.has-success.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-success.is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-success.is-focused .custom-select:valid~.valid-tooltip,
+.has-success.is-focused .custom-select.is-valid~.valid-feedback,
+.has-success.is-focused .custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-success .is-focused .form-check-input:valid~.form-check-label,
+.has-success .is-focused .form-check-input.is-valid~.form-check-label,
+.was-validated .has-success.is-focused .form-check-input:valid~.form-check-label,
+.has-success.is-focused .form-check-input.is-valid~.form-check-label {
+    color: #4caf50;
+}
+
+.was-validated .has-success .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-success .is-focused .form-check-input:valid~.valid-tooltip,
+.has-success .is-focused .form-check-input.is-valid~.valid-feedback,
+.has-success .is-focused .form-check-input.is-valid~.valid-tooltip,
+.was-validated .has-success.is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-success.is-focused .form-check-input:valid~.valid-tooltip,
+.has-success.is-focused .form-check-input.is-valid~.valid-feedback,
+.has-success.is-focused .form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-success .is-focused .custom-control-input:valid~.custom-control-label,
+.has-success .is-focused .custom-control-input.is-valid~.custom-control-label,
+.was-validated .has-success.is-focused .custom-control-input:valid~.custom-control-label,
+.has-success.is-focused .custom-control-input.is-valid~.custom-control-label {
+    color: #4caf50;
+}
+
+.was-validated .has-success .is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-success .is-focused .custom-control-input.is-valid~.custom-control-label::before,
+.was-validated .has-success.is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-success.is-focused .custom-control-input.is-valid~.custom-control-label::before {
+    background-color: #a3d7a5;
+}
+
+.was-validated .has-success .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-success .is-focused .custom-control-input:valid~.valid-tooltip,
+.has-success .is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-success .is-focused .custom-control-input.is-valid~.valid-tooltip,
+.was-validated .has-success.is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-success.is-focused .custom-control-input:valid~.valid-tooltip,
+.has-success.is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-success.is-focused .custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-success .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-success .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before,
+.was-validated .has-success.is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-success.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: #6ec071;
+}
+
+.was-validated .has-success .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-success .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before,
+.was-validated .has-success.is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-success.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(76, 175, 80, 0.25);
+}
+
+.was-validated .has-success .is-focused .custom-file-input:valid~.custom-file-label,
+.has-success .is-focused .custom-file-input.is-valid~.custom-file-label,
+.was-validated .has-success.is-focused .custom-file-input:valid~.custom-file-label,
+.has-success.is-focused .custom-file-input.is-valid~.custom-file-label {
+    border-color: #4caf50;
+}
+
+.was-validated .has-success .is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-success .is-focused .custom-file-input.is-valid~.custom-file-label::before,
+.was-validated .has-success.is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-success.is-focused .custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .has-success .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-success .is-focused .custom-file-input:valid~.valid-tooltip,
+.has-success .is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-success .is-focused .custom-file-input.is-valid~.valid-tooltip,
+.was-validated .has-success.is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-success.is-focused .custom-file-input:valid~.valid-tooltip,
+.has-success.is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-success.is-focused .custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-success .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-success .is-focused .custom-file-input.is-valid:focus~.custom-file-label,
+.was-validated .has-success.is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-success.is-focused .custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(76, 175, 80, 0.25);
+}
+
+.has-success .is-focused [class^='bmd-label'],
+.has-success .is-focused [class*=' bmd-label'],
+.has-success.is-focused [class^='bmd-label'],
+.has-success.is-focused [class*=' bmd-label'] {
+    color: #4caf50;
+}
+
+.has-success .is-focused .bmd-label-placeholder,
+.has-success.is-focused .bmd-label-placeholder {
+    color: #4caf50;
+}
+
+.has-success .is-focused .form-control,
+.has-success.is-focused .form-control {
+    border-color: #4caf50;
+}
+
+.has-success .is-focused .bmd-help,
+.has-success.is-focused .bmd-help {
+    color: #555;
+}
+
+.has-info [class^='bmd-label'],
+.has-info [class*=' bmd-label'] {
+    color: #00bcd4;
+}
+
+.has-info .form-control,
+.is-focused .has-info .form-control {
+    background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-info .form-control:invalid {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-info .form-control:read-only {
+    background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+fieldset[disabled][disabled] .has-info .form-control,
+.has-info .form-control.disabled,
+.has-info .form-control:disabled,
+.has-info .form-control[disabled] {
+    background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%);
+    background-repeat: repeat-x;
+    background-size: 3px 1px;
+}
+
+.has-info .form-control.form-control-success,
+.is-focused .has-info .form-control.form-control-success {
+    background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==";
+}
+
+.has-info .form-control.form-control-warning,
+.is-focused .has-info .form-control.form-control-warning {
+    background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+";
+}
+
+.has-info .form-control.form-control-danger,
+.is-focused .has-info .form-control.form-control-danger {
+    background-image: linear-gradient(to top, #00bcd4 2px, rgba(0, 188, 212, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=";
+}
+
+.has-info .is-focused .valid-feedback,
+.has-info.is-focused .valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #00bcd4;
+}
+
+.has-info .is-focused .valid-tooltip,
+.has-info.is-focused .valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(0, 188, 212, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .has-info .is-focused .form-control:valid,
+.has-info .is-focused .form-control.is-valid,
+.was-validated .has-info .is-focused .custom-select:valid,
+.has-info .is-focused .custom-select.is-valid,
+.was-validated .has-info.is-focused .form-control:valid,
+.has-info.is-focused .form-control.is-valid,
+.was-validated .has-info.is-focused .custom-select:valid,
+.has-info.is-focused .custom-select.is-valid {
+    border-color: #00bcd4;
+}
+
+.was-validated .has-info .is-focused .form-control:valid:focus,
+.has-info .is-focused .form-control.is-valid:focus,
+.was-validated .has-info .is-focused .custom-select:valid:focus,
+.has-info .is-focused .custom-select.is-valid:focus,
+.was-validated .has-info.is-focused .form-control:valid:focus,
+.has-info.is-focused .form-control.is-valid:focus,
+.was-validated .has-info.is-focused .custom-select:valid:focus,
+.has-info.is-focused .custom-select.is-valid:focus {
+    border-color: #00bcd4;
+    box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.25);
+}
+
+.was-validated .has-info .is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-info .is-focused .form-control:valid~.valid-tooltip,
+.has-info .is-focused .form-control.is-valid~.valid-feedback,
+.has-info .is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-info .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-info .is-focused .custom-select:valid~.valid-tooltip,
+.has-info .is-focused .custom-select.is-valid~.valid-feedback,
+.has-info .is-focused .custom-select.is-valid~.valid-tooltip,
+.was-validated .has-info.is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-info.is-focused .form-control:valid~.valid-tooltip,
+.has-info.is-focused .form-control.is-valid~.valid-feedback,
+.has-info.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-info.is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-info.is-focused .custom-select:valid~.valid-tooltip,
+.has-info.is-focused .custom-select.is-valid~.valid-feedback,
+.has-info.is-focused .custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-info .is-focused .form-check-input:valid~.form-check-label,
+.has-info .is-focused .form-check-input.is-valid~.form-check-label,
+.was-validated .has-info.is-focused .form-check-input:valid~.form-check-label,
+.has-info.is-focused .form-check-input.is-valid~.form-check-label {
+    color: #00bcd4;
+}
+
+.was-validated .has-info .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-info .is-focused .form-check-input:valid~.valid-tooltip,
+.has-info .is-focused .form-check-input.is-valid~.valid-feedback,
+.has-info .is-focused .form-check-input.is-valid~.valid-tooltip,
+.was-validated .has-info.is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-info.is-focused .form-check-input:valid~.valid-tooltip,
+.has-info.is-focused .form-check-input.is-valid~.valid-feedback,
+.has-info.is-focused .form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-info .is-focused .custom-control-input:valid~.custom-control-label,
+.has-info .is-focused .custom-control-input.is-valid~.custom-control-label,
+.was-validated .has-info.is-focused .custom-control-input:valid~.custom-control-label,
+.has-info.is-focused .custom-control-input.is-valid~.custom-control-label {
+    color: #00bcd4;
+}
+
+.was-validated .has-info .is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-info .is-focused .custom-control-input.is-valid~.custom-control-label::before,
+.was-validated .has-info.is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-info.is-focused .custom-control-input.is-valid~.custom-control-label::before {
+    background-color: #55ecff;
+}
+
+.was-validated .has-info .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-info .is-focused .custom-control-input:valid~.valid-tooltip,
+.has-info .is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-info .is-focused .custom-control-input.is-valid~.valid-tooltip,
+.was-validated .has-info.is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-info.is-focused .custom-control-input:valid~.valid-tooltip,
+.has-info.is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-info.is-focused .custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-info .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-info .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before,
+.was-validated .has-info.is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-info.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: #08e3ff;
+}
+
+.was-validated .has-info .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-info .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before,
+.was-validated .has-info.is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-info.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(0, 188, 212, 0.25);
+}
+
+.was-validated .has-info .is-focused .custom-file-input:valid~.custom-file-label,
+.has-info .is-focused .custom-file-input.is-valid~.custom-file-label,
+.was-validated .has-info.is-focused .custom-file-input:valid~.custom-file-label,
+.has-info.is-focused .custom-file-input.is-valid~.custom-file-label {
+    border-color: #00bcd4;
+}
+
+.was-validated .has-info .is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-info .is-focused .custom-file-input.is-valid~.custom-file-label::before,
+.was-validated .has-info.is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-info.is-focused .custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .has-info .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-info .is-focused .custom-file-input:valid~.valid-tooltip,
+.has-info .is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-info .is-focused .custom-file-input.is-valid~.valid-tooltip,
+.was-validated .has-info.is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-info.is-focused .custom-file-input:valid~.valid-tooltip,
+.has-info.is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-info.is-focused .custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-info .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-info .is-focused .custom-file-input.is-valid:focus~.custom-file-label,
+.was-validated .has-info.is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-info.is-focused .custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(0, 188, 212, 0.25);
+}
+
+.has-info .is-focused [class^='bmd-label'],
+.has-info .is-focused [class*=' bmd-label'],
+.has-info.is-focused [class^='bmd-label'],
+.has-info.is-focused [class*=' bmd-label'] {
+    color: #00bcd4;
+}
+
+.has-info .is-focused .bmd-label-placeholder,
+.has-info.is-focused .bmd-label-placeholder {
+    color: #00bcd4;
+}
+
+.has-info .is-focused .form-control,
+.has-info.is-focused .form-control {
+    border-color: #00bcd4;
+}
+
+.has-info .is-focused .bmd-help,
+.has-info.is-focused .bmd-help {
+    color: #555;
+}
+
+.has-white [class^='bmd-label'],
+.has-white [class*=' bmd-label'] {
+    color: #fff;
+}
+
+.has-white .form-control,
+.is-focused .has-white .form-control {
+    background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px);
+}
+
+.has-white .form-control:invalid {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px);
+}
+
+.has-white .form-control:read-only {
+    background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px);
+}
+
+fieldset[disabled][disabled] .has-white .form-control,
+.has-white .form-control.disabled,
+.has-white .form-control:disabled,
+.has-white .form-control[disabled] {
+    background-image: linear-gradient(to right, #FFFFFF 0%, #FFFFFF 30%, transparent 30%, transparent 100%);
+    background-repeat: repeat-x;
+    background-size: 3px 1px;
+}
+
+.has-white .form-control.form-control-success,
+.is-focused .has-white .form-control.form-control-success {
+    background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==";
+}
+
+.has-white .form-control.form-control-warning,
+.is-focused .has-white .form-control.form-control-warning {
+    background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+";
+}
+
+.has-white .form-control.form-control-danger,
+.is-focused .has-white .form-control.form-control-danger {
+    background-image: linear-gradient(to top, #fff 2px, rgba(255, 255, 255, 0) 2px), linear-gradient(to top, #FFFFFF 1px, rgba(255, 255, 255, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=";
+}
+
+.has-white .is-focused .valid-feedback,
+.has-white.is-focused .valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #fff;
+}
+
+.has-white .is-focused .valid-tooltip,
+.has-white.is-focused .valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(255, 255, 255, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .has-white .is-focused .form-control:valid,
+.has-white .is-focused .form-control.is-valid,
+.was-validated .has-white .is-focused .custom-select:valid,
+.has-white .is-focused .custom-select.is-valid,
+.was-validated .has-white.is-focused .form-control:valid,
+.has-white.is-focused .form-control.is-valid,
+.was-validated .has-white.is-focused .custom-select:valid,
+.has-white.is-focused .custom-select.is-valid {
+    border-color: #fff;
+}
+
+.was-validated .has-white .is-focused .form-control:valid:focus,
+.has-white .is-focused .form-control.is-valid:focus,
+.was-validated .has-white .is-focused .custom-select:valid:focus,
+.has-white .is-focused .custom-select.is-valid:focus,
+.was-validated .has-white.is-focused .form-control:valid:focus,
+.has-white.is-focused .form-control.is-valid:focus,
+.was-validated .has-white.is-focused .custom-select:valid:focus,
+.has-white.is-focused .custom-select.is-valid:focus {
+    border-color: #fff;
+    box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25);
+}
+
+.was-validated .has-white .is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-white .is-focused .form-control:valid~.valid-tooltip,
+.has-white .is-focused .form-control.is-valid~.valid-feedback,
+.has-white .is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-white .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-white .is-focused .custom-select:valid~.valid-tooltip,
+.has-white .is-focused .custom-select.is-valid~.valid-feedback,
+.has-white .is-focused .custom-select.is-valid~.valid-tooltip,
+.was-validated .has-white.is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-white.is-focused .form-control:valid~.valid-tooltip,
+.has-white.is-focused .form-control.is-valid~.valid-feedback,
+.has-white.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-white.is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-white.is-focused .custom-select:valid~.valid-tooltip,
+.has-white.is-focused .custom-select.is-valid~.valid-feedback,
+.has-white.is-focused .custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-white .is-focused .form-check-input:valid~.form-check-label,
+.has-white .is-focused .form-check-input.is-valid~.form-check-label,
+.was-validated .has-white.is-focused .form-check-input:valid~.form-check-label,
+.has-white.is-focused .form-check-input.is-valid~.form-check-label {
+    color: #fff;
+}
+
+.was-validated .has-white .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-white .is-focused .form-check-input:valid~.valid-tooltip,
+.has-white .is-focused .form-check-input.is-valid~.valid-feedback,
+.has-white .is-focused .form-check-input.is-valid~.valid-tooltip,
+.was-validated .has-white.is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-white.is-focused .form-check-input:valid~.valid-tooltip,
+.has-white.is-focused .form-check-input.is-valid~.valid-feedback,
+.has-white.is-focused .form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-white .is-focused .custom-control-input:valid~.custom-control-label,
+.has-white .is-focused .custom-control-input.is-valid~.custom-control-label,
+.was-validated .has-white.is-focused .custom-control-input:valid~.custom-control-label,
+.has-white.is-focused .custom-control-input.is-valid~.custom-control-label {
+    color: #fff;
+}
+
+.was-validated .has-white .is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-white .is-focused .custom-control-input.is-valid~.custom-control-label::before,
+.was-validated .has-white.is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-white.is-focused .custom-control-input.is-valid~.custom-control-label::before {
+    background-color: white;
+}
+
+.was-validated .has-white .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-white .is-focused .custom-control-input:valid~.valid-tooltip,
+.has-white .is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-white .is-focused .custom-control-input.is-valid~.valid-tooltip,
+.was-validated .has-white.is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-white.is-focused .custom-control-input:valid~.valid-tooltip,
+.has-white.is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-white.is-focused .custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-white .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-white .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before,
+.was-validated .has-white.is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-white.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: white;
+}
+
+.was-validated .has-white .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-white .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before,
+.was-validated .has-white.is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-white.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(255, 255, 255, 0.25);
+}
+
+.was-validated .has-white .is-focused .custom-file-input:valid~.custom-file-label,
+.has-white .is-focused .custom-file-input.is-valid~.custom-file-label,
+.was-validated .has-white.is-focused .custom-file-input:valid~.custom-file-label,
+.has-white.is-focused .custom-file-input.is-valid~.custom-file-label {
+    border-color: #fff;
+}
+
+.was-validated .has-white .is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-white .is-focused .custom-file-input.is-valid~.custom-file-label::before,
+.was-validated .has-white.is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-white.is-focused .custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .has-white .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-white .is-focused .custom-file-input:valid~.valid-tooltip,
+.has-white .is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-white .is-focused .custom-file-input.is-valid~.valid-tooltip,
+.was-validated .has-white.is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-white.is-focused .custom-file-input:valid~.valid-tooltip,
+.has-white.is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-white.is-focused .custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-white .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-white .is-focused .custom-file-input.is-valid:focus~.custom-file-label,
+.was-validated .has-white.is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-white.is-focused .custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25);
+}
+
+.has-white .is-focused [class^='bmd-label'],
+.has-white .is-focused [class*=' bmd-label'],
+.has-white.is-focused [class^='bmd-label'],
+.has-white.is-focused [class*=' bmd-label'] {
+    color: #fff;
+}
+
+.has-white .is-focused .bmd-label-placeholder,
+.has-white.is-focused .bmd-label-placeholder {
+    color: #fff;
+}
+
+.has-white .is-focused .form-control,
+.has-white.is-focused .form-control {
+    border-color: #fff;
+}
+
+.has-white .is-focused .bmd-help,
+.has-white.is-focused .bmd-help {
+    color: #555;
+}
+
+.has-white .form-control:focus {
+    color: #fff;
+}
+
+.has-warning [class^='bmd-label'],
+.has-warning [class*=' bmd-label'] {
+    color: #ff9800;
+}
+
+.has-warning .form-control,
+.is-focused .has-warning .form-control {
+    background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-warning .form-control:invalid {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-warning .form-control:read-only {
+    background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+fieldset[disabled][disabled] .has-warning .form-control,
+.has-warning .form-control.disabled,
+.has-warning .form-control:disabled,
+.has-warning .form-control[disabled] {
+    background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%);
+    background-repeat: repeat-x;
+    background-size: 3px 1px;
+}
+
+.has-warning .form-control.form-control-success,
+.is-focused .has-warning .form-control.form-control-success {
+    background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==";
+}
+
+.has-warning .form-control.form-control-warning,
+.is-focused .has-warning .form-control.form-control-warning {
+    background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+";
+}
+
+.has-warning .form-control.form-control-danger,
+.is-focused .has-warning .form-control.form-control-danger {
+    background-image: linear-gradient(to top, #ff9800 2px, rgba(255, 152, 0, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=";
+}
+
+.has-warning .is-focused .valid-feedback,
+.has-warning.is-focused .valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #ff9800;
+}
+
+.has-warning .is-focused .valid-tooltip,
+.has-warning.is-focused .valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(255, 152, 0, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .has-warning .is-focused .form-control:valid,
+.has-warning .is-focused .form-control.is-valid,
+.was-validated .has-warning .is-focused .custom-select:valid,
+.has-warning .is-focused .custom-select.is-valid,
+.was-validated .has-warning.is-focused .form-control:valid,
+.has-warning.is-focused .form-control.is-valid,
+.was-validated .has-warning.is-focused .custom-select:valid,
+.has-warning.is-focused .custom-select.is-valid {
+    border-color: #ff9800;
+}
+
+.was-validated .has-warning .is-focused .form-control:valid:focus,
+.has-warning .is-focused .form-control.is-valid:focus,
+.was-validated .has-warning .is-focused .custom-select:valid:focus,
+.has-warning .is-focused .custom-select.is-valid:focus,
+.was-validated .has-warning.is-focused .form-control:valid:focus,
+.has-warning.is-focused .form-control.is-valid:focus,
+.was-validated .has-warning.is-focused .custom-select:valid:focus,
+.has-warning.is-focused .custom-select.is-valid:focus {
+    border-color: #ff9800;
+    box-shadow: 0 0 0 0.2rem rgba(255, 152, 0, 0.25);
+}
+
+.was-validated .has-warning .is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-warning .is-focused .form-control:valid~.valid-tooltip,
+.has-warning .is-focused .form-control.is-valid~.valid-feedback,
+.has-warning .is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-warning .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-warning .is-focused .custom-select:valid~.valid-tooltip,
+.has-warning .is-focused .custom-select.is-valid~.valid-feedback,
+.has-warning .is-focused .custom-select.is-valid~.valid-tooltip,
+.was-validated .has-warning.is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-warning.is-focused .form-control:valid~.valid-tooltip,
+.has-warning.is-focused .form-control.is-valid~.valid-feedback,
+.has-warning.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-warning.is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-warning.is-focused .custom-select:valid~.valid-tooltip,
+.has-warning.is-focused .custom-select.is-valid~.valid-feedback,
+.has-warning.is-focused .custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-warning .is-focused .form-check-input:valid~.form-check-label,
+.has-warning .is-focused .form-check-input.is-valid~.form-check-label,
+.was-validated .has-warning.is-focused .form-check-input:valid~.form-check-label,
+.has-warning.is-focused .form-check-input.is-valid~.form-check-label {
+    color: #ff9800;
+}
+
+.was-validated .has-warning .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-warning .is-focused .form-check-input:valid~.valid-tooltip,
+.has-warning .is-focused .form-check-input.is-valid~.valid-feedback,
+.has-warning .is-focused .form-check-input.is-valid~.valid-tooltip,
+.was-validated .has-warning.is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-warning.is-focused .form-check-input:valid~.valid-tooltip,
+.has-warning.is-focused .form-check-input.is-valid~.valid-feedback,
+.has-warning.is-focused .form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-warning .is-focused .custom-control-input:valid~.custom-control-label,
+.has-warning .is-focused .custom-control-input.is-valid~.custom-control-label,
+.was-validated .has-warning.is-focused .custom-control-input:valid~.custom-control-label,
+.has-warning.is-focused .custom-control-input.is-valid~.custom-control-label {
+    color: #ff9800;
+}
+
+.was-validated .has-warning .is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-warning .is-focused .custom-control-input.is-valid~.custom-control-label::before,
+.was-validated .has-warning.is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-warning.is-focused .custom-control-input.is-valid~.custom-control-label::before {
+    background-color: #ffcc80;
+}
+
+.was-validated .has-warning .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-warning .is-focused .custom-control-input:valid~.valid-tooltip,
+.has-warning .is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-warning .is-focused .custom-control-input.is-valid~.valid-tooltip,
+.was-validated .has-warning.is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-warning.is-focused .custom-control-input:valid~.valid-tooltip,
+.has-warning.is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-warning.is-focused .custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-warning .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-warning .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before,
+.was-validated .has-warning.is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-warning.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: #ffad33;
+}
+
+.was-validated .has-warning .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-warning .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before,
+.was-validated .has-warning.is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-warning.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(255, 152, 0, 0.25);
+}
+
+.was-validated .has-warning .is-focused .custom-file-input:valid~.custom-file-label,
+.has-warning .is-focused .custom-file-input.is-valid~.custom-file-label,
+.was-validated .has-warning.is-focused .custom-file-input:valid~.custom-file-label,
+.has-warning.is-focused .custom-file-input.is-valid~.custom-file-label {
+    border-color: #ff9800;
+}
+
+.was-validated .has-warning .is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-warning .is-focused .custom-file-input.is-valid~.custom-file-label::before,
+.was-validated .has-warning.is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-warning.is-focused .custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .has-warning .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-warning .is-focused .custom-file-input:valid~.valid-tooltip,
+.has-warning .is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-warning .is-focused .custom-file-input.is-valid~.valid-tooltip,
+.was-validated .has-warning.is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-warning.is-focused .custom-file-input:valid~.valid-tooltip,
+.has-warning.is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-warning.is-focused .custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-warning .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-warning .is-focused .custom-file-input.is-valid:focus~.custom-file-label,
+.was-validated .has-warning.is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-warning.is-focused .custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(255, 152, 0, 0.25);
+}
+
+.has-warning .is-focused [class^='bmd-label'],
+.has-warning .is-focused [class*=' bmd-label'],
+.has-warning.is-focused [class^='bmd-label'],
+.has-warning.is-focused [class*=' bmd-label'] {
+    color: #ff9800;
+}
+
+.has-warning .is-focused .bmd-label-placeholder,
+.has-warning.is-focused .bmd-label-placeholder {
+    color: #ff9800;
+}
+
+.has-warning .is-focused .form-control,
+.has-warning.is-focused .form-control {
+    border-color: #ff9800;
+}
+
+.has-warning .is-focused .bmd-help,
+.has-warning.is-focused .bmd-help {
+    color: #555;
+}
+
+.has-danger [class^='bmd-label'],
+.has-danger [class*=' bmd-label'] {
+    color: #f44336;
+}
+
+.has-danger .form-control,
+.is-focused .has-danger .form-control {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-danger .form-control:invalid {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-danger .form-control:read-only {
+    background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+fieldset[disabled][disabled] .has-danger .form-control,
+.has-danger .form-control.disabled,
+.has-danger .form-control:disabled,
+.has-danger .form-control[disabled] {
+    background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%);
+    background-repeat: repeat-x;
+    background-size: 3px 1px;
+}
+
+.has-danger .form-control.form-control-success,
+.is-focused .has-danger .form-control.form-control-success {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==";
+}
+
+.has-danger .form-control.form-control-warning,
+.is-focused .has-danger .form-control.form-control-warning {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+";
+}
+
+.has-danger .form-control.form-control-danger,
+.is-focused .has-danger .form-control.form-control-danger {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=";
+}
+
+.has-danger .is-focused .valid-feedback,
+.has-danger.is-focused .valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #f44336;
+}
+
+.has-danger .is-focused .valid-tooltip,
+.has-danger.is-focused .valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(244, 67, 54, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .has-danger .is-focused .form-control:valid,
+.has-danger .is-focused .form-control.is-valid,
+.was-validated .has-danger .is-focused .custom-select:valid,
+.has-danger .is-focused .custom-select.is-valid,
+.was-validated .has-danger.is-focused .form-control:valid,
+.has-danger.is-focused .form-control.is-valid,
+.was-validated .has-danger.is-focused .custom-select:valid,
+.has-danger.is-focused .custom-select.is-valid {
+    border-color: #f44336;
+}
+
+.was-validated .has-danger .is-focused .form-control:valid:focus,
+.has-danger .is-focused .form-control.is-valid:focus,
+.was-validated .has-danger .is-focused .custom-select:valid:focus,
+.has-danger .is-focused .custom-select.is-valid:focus,
+.was-validated .has-danger.is-focused .form-control:valid:focus,
+.has-danger.is-focused .form-control.is-valid:focus,
+.was-validated .has-danger.is-focused .custom-select:valid:focus,
+.has-danger.is-focused .custom-select.is-valid:focus {
+    border-color: #f44336;
+    box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25);
+}
+
+.was-validated .has-danger .is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-danger .is-focused .form-control:valid~.valid-tooltip,
+.has-danger .is-focused .form-control.is-valid~.valid-feedback,
+.has-danger .is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-danger .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-danger .is-focused .custom-select:valid~.valid-tooltip,
+.has-danger .is-focused .custom-select.is-valid~.valid-feedback,
+.has-danger .is-focused .custom-select.is-valid~.valid-tooltip,
+.was-validated .has-danger.is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-danger.is-focused .form-control:valid~.valid-tooltip,
+.has-danger.is-focused .form-control.is-valid~.valid-feedback,
+.has-danger.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-danger.is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-danger.is-focused .custom-select:valid~.valid-tooltip,
+.has-danger.is-focused .custom-select.is-valid~.valid-feedback,
+.has-danger.is-focused .custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-danger .is-focused .form-check-input:valid~.form-check-label,
+.has-danger .is-focused .form-check-input.is-valid~.form-check-label,
+.was-validated .has-danger.is-focused .form-check-input:valid~.form-check-label,
+.has-danger.is-focused .form-check-input.is-valid~.form-check-label {
+    color: #f44336;
+}
+
+.was-validated .has-danger .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-danger .is-focused .form-check-input:valid~.valid-tooltip,
+.has-danger .is-focused .form-check-input.is-valid~.valid-feedback,
+.has-danger .is-focused .form-check-input.is-valid~.valid-tooltip,
+.was-validated .has-danger.is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-danger.is-focused .form-check-input:valid~.valid-tooltip,
+.has-danger.is-focused .form-check-input.is-valid~.valid-feedback,
+.has-danger.is-focused .form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-danger .is-focused .custom-control-input:valid~.custom-control-label,
+.has-danger .is-focused .custom-control-input.is-valid~.custom-control-label,
+.was-validated .has-danger.is-focused .custom-control-input:valid~.custom-control-label,
+.has-danger.is-focused .custom-control-input.is-valid~.custom-control-label {
+    color: #f44336;
+}
+
+.was-validated .has-danger .is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-danger .is-focused .custom-control-input.is-valid~.custom-control-label::before,
+.was-validated .has-danger.is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-danger.is-focused .custom-control-input.is-valid~.custom-control-label::before {
+    background-color: #fbb4af;
+}
+
+.was-validated .has-danger .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-danger .is-focused .custom-control-input:valid~.valid-tooltip,
+.has-danger .is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-danger .is-focused .custom-control-input.is-valid~.valid-tooltip,
+.was-validated .has-danger.is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-danger.is-focused .custom-control-input:valid~.valid-tooltip,
+.has-danger.is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-danger.is-focused .custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-danger .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-danger .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before,
+.was-validated .has-danger.is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-danger.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: #f77066;
+}
+
+.was-validated .has-danger .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-danger .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before,
+.was-validated .has-danger.is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-danger.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(244, 67, 54, 0.25);
+}
+
+.was-validated .has-danger .is-focused .custom-file-input:valid~.custom-file-label,
+.has-danger .is-focused .custom-file-input.is-valid~.custom-file-label,
+.was-validated .has-danger.is-focused .custom-file-input:valid~.custom-file-label,
+.has-danger.is-focused .custom-file-input.is-valid~.custom-file-label {
+    border-color: #f44336;
+}
+
+.was-validated .has-danger .is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-danger .is-focused .custom-file-input.is-valid~.custom-file-label::before,
+.was-validated .has-danger.is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-danger.is-focused .custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .has-danger .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-danger .is-focused .custom-file-input:valid~.valid-tooltip,
+.has-danger .is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-danger .is-focused .custom-file-input.is-valid~.valid-tooltip,
+.was-validated .has-danger.is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-danger.is-focused .custom-file-input:valid~.valid-tooltip,
+.has-danger.is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-danger.is-focused .custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-danger .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-danger .is-focused .custom-file-input.is-valid:focus~.custom-file-label,
+.was-validated .has-danger.is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-danger.is-focused .custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(244, 67, 54, 0.25);
+}
+
+.has-danger .is-focused [class^='bmd-label'],
+.has-danger .is-focused [class*=' bmd-label'],
+.has-danger.is-focused [class^='bmd-label'],
+.has-danger.is-focused [class*=' bmd-label'] {
+    color: #f44336;
+}
+
+.has-danger .is-focused .bmd-label-placeholder,
+.has-danger.is-focused .bmd-label-placeholder {
+    color: #f44336;
+}
+
+.has-danger .is-focused .form-control,
+.has-danger.is-focused .form-control {
+    border-color: #f44336;
+}
+
+.has-danger .is-focused .bmd-help,
+.has-danger.is-focused .bmd-help {
+    color: #555;
+}
+
+.has-rose [class^='bmd-label'],
+.has-rose [class*=' bmd-label'] {
+    color: #e91e63;
+}
+
+.has-rose .form-control,
+.is-focused .has-rose .form-control {
+    background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-rose .form-control:invalid {
+    background-image: linear-gradient(to top, #f44336 2px, rgba(244, 67, 54, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+.has-rose .form-control:read-only {
+    background-image: linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px);
+}
+
+fieldset[disabled][disabled] .has-rose .form-control,
+.has-rose .form-control.disabled,
+.has-rose .form-control:disabled,
+.has-rose .form-control[disabled] {
+    background-image: linear-gradient(to right, #d2d2d2 0%, #d2d2d2 30%, transparent 30%, transparent 100%);
+    background-repeat: repeat-x;
+    background-size: 3px 1px;
+}
+
+.has-rose .form-control.form-control-success,
+.is-focused .has-rose .form-control.form-control-success {
+    background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==";
+}
+
+.has-rose .form-control.form-control-warning,
+.is-focused .has-rose .form-control.form-control-warning {
+    background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+";
+}
+
+.has-rose .form-control.form-control-danger,
+.is-focused .has-rose .form-control.form-control-danger {
+    background-image: linear-gradient(to top, #e91e63 2px, rgba(233, 30, 99, 0) 2px), linear-gradient(to top, #d2d2d2 1px, rgba(210, 210, 210, 0) 1px), "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=";
+}
+
+.has-rose .is-focused .valid-feedback,
+.has-rose.is-focused .valid-feedback {
+    display: none;
+    width: 100%;
+    margin-top: 0.25rem;
+    font-size: 80%;
+    color: #e91e63;
+}
+
+.has-rose .is-focused .valid-tooltip,
+.has-rose.is-focused .valid-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%;
+    padding: .5rem;
+    margin-top: .1rem;
+    font-size: .875rem;
+    line-height: 1;
+    color: #fff;
+    background-color: rgba(233, 30, 99, 0.8);
+    border-radius: .2rem;
+}
+
+.was-validated .has-rose .is-focused .form-control:valid,
+.has-rose .is-focused .form-control.is-valid,
+.was-validated .has-rose .is-focused .custom-select:valid,
+.has-rose .is-focused .custom-select.is-valid,
+.was-validated .has-rose.is-focused .form-control:valid,
+.has-rose.is-focused .form-control.is-valid,
+.was-validated .has-rose.is-focused .custom-select:valid,
+.has-rose.is-focused .custom-select.is-valid {
+    border-color: #e91e63;
+}
+
+.was-validated .has-rose .is-focused .form-control:valid:focus,
+.has-rose .is-focused .form-control.is-valid:focus,
+.was-validated .has-rose .is-focused .custom-select:valid:focus,
+.has-rose .is-focused .custom-select.is-valid:focus,
+.was-validated .has-rose.is-focused .form-control:valid:focus,
+.has-rose.is-focused .form-control.is-valid:focus,
+.was-validated .has-rose.is-focused .custom-select:valid:focus,
+.has-rose.is-focused .custom-select.is-valid:focus {
+    border-color: #e91e63;
+    box-shadow: 0 0 0 0.2rem rgba(233, 30, 99, 0.25);
+}
+
+.was-validated .has-rose .is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-rose .is-focused .form-control:valid~.valid-tooltip,
+.has-rose .is-focused .form-control.is-valid~.valid-feedback,
+.has-rose .is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-rose .is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-rose .is-focused .custom-select:valid~.valid-tooltip,
+.has-rose .is-focused .custom-select.is-valid~.valid-feedback,
+.has-rose .is-focused .custom-select.is-valid~.valid-tooltip,
+.was-validated .has-rose.is-focused .form-control:valid~.valid-feedback,
+.was-validated .has-rose.is-focused .form-control:valid~.valid-tooltip,
+.has-rose.is-focused .form-control.is-valid~.valid-feedback,
+.has-rose.is-focused .form-control.is-valid~.valid-tooltip,
+.was-validated .has-rose.is-focused .custom-select:valid~.valid-feedback,
+.was-validated .has-rose.is-focused .custom-select:valid~.valid-tooltip,
+.has-rose.is-focused .custom-select.is-valid~.valid-feedback,
+.has-rose.is-focused .custom-select.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-rose .is-focused .form-check-input:valid~.form-check-label,
+.has-rose .is-focused .form-check-input.is-valid~.form-check-label,
+.was-validated .has-rose.is-focused .form-check-input:valid~.form-check-label,
+.has-rose.is-focused .form-check-input.is-valid~.form-check-label {
+    color: #e91e63;
+}
+
+.was-validated .has-rose .is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-rose .is-focused .form-check-input:valid~.valid-tooltip,
+.has-rose .is-focused .form-check-input.is-valid~.valid-feedback,
+.has-rose .is-focused .form-check-input.is-valid~.valid-tooltip,
+.was-validated .has-rose.is-focused .form-check-input:valid~.valid-feedback,
+.was-validated .has-rose.is-focused .form-check-input:valid~.valid-tooltip,
+.has-rose.is-focused .form-check-input.is-valid~.valid-feedback,
+.has-rose.is-focused .form-check-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-rose .is-focused .custom-control-input:valid~.custom-control-label,
+.has-rose .is-focused .custom-control-input.is-valid~.custom-control-label,
+.was-validated .has-rose.is-focused .custom-control-input:valid~.custom-control-label,
+.has-rose.is-focused .custom-control-input.is-valid~.custom-control-label {
+    color: #e91e63;
+}
+
+.was-validated .has-rose .is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-rose .is-focused .custom-control-input.is-valid~.custom-control-label::before,
+.was-validated .has-rose.is-focused .custom-control-input:valid~.custom-control-label::before,
+.has-rose.is-focused .custom-control-input.is-valid~.custom-control-label::before {
+    background-color: #f492b4;
+}
+
+.was-validated .has-rose .is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-rose .is-focused .custom-control-input:valid~.valid-tooltip,
+.has-rose .is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-rose .is-focused .custom-control-input.is-valid~.valid-tooltip,
+.was-validated .has-rose.is-focused .custom-control-input:valid~.valid-feedback,
+.was-validated .has-rose.is-focused .custom-control-input:valid~.valid-tooltip,
+.has-rose.is-focused .custom-control-input.is-valid~.valid-feedback,
+.has-rose.is-focused .custom-control-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-rose .is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-rose .is-focused .custom-control-input.is-valid:checked~.custom-control-label::before,
+.was-validated .has-rose.is-focused .custom-control-input:valid:checked~.custom-control-label::before,
+.has-rose.is-focused .custom-control-input.is-valid:checked~.custom-control-label::before {
+    background-color: #ee4c83;
+}
+
+.was-validated .has-rose .is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-rose .is-focused .custom-control-input.is-valid:focus~.custom-control-label::before,
+.was-validated .has-rose.is-focused .custom-control-input:valid:focus~.custom-control-label::before,
+.has-rose.is-focused .custom-control-input.is-valid:focus~.custom-control-label::before {
+    box-shadow: 0 0 0 1px #fafafa, 0 0 0 0.2rem rgba(233, 30, 99, 0.25);
+}
+
+.was-validated .has-rose .is-focused .custom-file-input:valid~.custom-file-label,
+.has-rose .is-focused .custom-file-input.is-valid~.custom-file-label,
+.was-validated .has-rose.is-focused .custom-file-input:valid~.custom-file-label,
+.has-rose.is-focused .custom-file-input.is-valid~.custom-file-label {
+    border-color: #e91e63;
+}
+
+.was-validated .has-rose .is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-rose .is-focused .custom-file-input.is-valid~.custom-file-label::before,
+.was-validated .has-rose.is-focused .custom-file-input:valid~.custom-file-label::before,
+.has-rose.is-focused .custom-file-input.is-valid~.custom-file-label::before {
+    border-color: inherit;
+}
+
+.was-validated .has-rose .is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-rose .is-focused .custom-file-input:valid~.valid-tooltip,
+.has-rose .is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-rose .is-focused .custom-file-input.is-valid~.valid-tooltip,
+.was-validated .has-rose.is-focused .custom-file-input:valid~.valid-feedback,
+.was-validated .has-rose.is-focused .custom-file-input:valid~.valid-tooltip,
+.has-rose.is-focused .custom-file-input.is-valid~.valid-feedback,
+.has-rose.is-focused .custom-file-input.is-valid~.valid-tooltip {
+    display: block;
+}
+
+.was-validated .has-rose .is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-rose .is-focused .custom-file-input.is-valid:focus~.custom-file-label,
+.was-validated .has-rose.is-focused .custom-file-input:valid:focus~.custom-file-label,
+.has-rose.is-focused .custom-file-input.is-valid:focus~.custom-file-label {
+    box-shadow: 0 0 0 0.2rem rgba(233, 30, 99, 0.25);
+}
+
+.has-rose .is-focused [class^='bmd-label'],
+.has-rose .is-focused [class*=' bmd-label'],
+.has-rose.is-focused [class^='bmd-label'],
+.has-rose.is-focused [class*=' bmd-label'] {
+    color: #e91e63;
+}
+
+.has-rose .is-focused .bmd-label-placeholder,
+.has-rose.is-focused .bmd-label-placeholder {
+    color: #e91e63;
+}
+
+.has-rose .is-focused .form-control,
+.has-rose.is-focused .form-control {
+    border-color: #e91e63;
+}
+
+.has-rose .is-focused .bmd-help,
+.has-rose.is-focused .bmd-help {
+    color: #555;
+}
+
+.bmd-form-group {
+    position: relative;
+    padding-top: 27px;
+}
+
+.bmd-form-group:not(.has-success):not(.has-danger) [class^='bmd-label'].bmd-label-floating,
+.bmd-form-group:not(.has-success):not(.has-danger) [class*=' bmd-label'].bmd-label-floating {
+    color: #AAAAAA;
+}
+
+.bmd-form-group [class^='bmd-label'],
+.bmd-form-group [class*=' bmd-label'] {
+    position: absolute;
+    pointer-events: none;
+    transition: 0.3s ease all;
+}
+
+.bmd-form-group [class^='bmd-label'].bmd-label-floating,
+.bmd-form-group [class*=' bmd-label'].bmd-label-floating {
+    will-change: left, top, contents;
+    margin: 0;
+    line-height: 1.4;
+    font-weight: 400;
+}
+
+.bmd-form-group.is-filled .bmd-label-placeholder {
+    display: none;
+}
+
+.bmd-form-group.bmd-collapse-inline {
+    display: flex;
+    align-items: center;
+    padding: 0;
+    min-height: 2.1em;
+}
+
+.bmd-form-group.bmd-collapse-inline .collapse {
+    flex: 1;
+    display: none;
+}
+
+.bmd-form-group.bmd-collapse-inline .collapse.show {
+    max-width: 1200px;
+}
+
+.bmd-form-group.bmd-collapse-inline .collapsing,
+.bmd-form-group.bmd-collapse-inline .width:not(.collapse),
+.bmd-form-group.bmd-collapse-inline .collapse.show {
+    display: block;
+}
+
+.bmd-form-group.bmd-collapse-inline .collapsing {
+    transition-duration: 0.2s;
+    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.bmd-form-group .form-control,
+.bmd-form-group label,
+.bmd-form-group input::placeholder {
+    line-height: 1.1;
+}
+
+.bmd-form-group label {
+    color: #AAAAAA;
+}
+
+.bmd-form-group .radio label,
+.bmd-form-group label.radio-inline,
+.bmd-form-group .checkbox label,
+.bmd-form-group label.checkbox-inline,
+.bmd-form-group .switch label {
+    line-height: 1.5;
+}
+
+.bmd-form-group .checkbox label,
+.bmd-form-group .radio label,
+.bmd-form-group label {
+    font-size: 0.875rem;
+}
+
+.bmd-form-group .bmd-label-floating,
+.bmd-form-group .bmd-label-placeholder {
+    top: 2.3125rem;
+}
+
+.bmd-form-group.is-focused .bmd-label-floating,
+.bmd-form-group .is-focused .bmd-label-floating,
+.bmd-form-group.is-filled .bmd-label-floating,
+.bmd-form-group .is-filled .bmd-label-floating {
+    top: 1rem;
+    left: 0;
+    font-size: 0.6875rem;
+}
+
+.bmd-form-group .bmd-label-static {
+    top: 0.35rem;
+    left: 0;
+    font-size: 0.875rem;
+}
+
+.bmd-form-group .bmd-help {
+    margin-top: 0;
+    font-size: 0.75rem;
+}
+
+.bmd-form-group .form-control.form-control-success,
+.bmd-form-group .form-control.form-control-warning,
+.bmd-form-group .form-control.form-control-danger {
+    background-size: 0 100%, 100% 100%, 0.9375rem 0.9375rem;
+}
+
+.bmd-form-group .form-control.form-control-success,
+.bmd-form-group .form-control.form-control-success:focus,
+.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-success,
+.bmd-form-group .form-control.form-control-warning,
+.bmd-form-group .form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-warning,
+.bmd-form-group .form-control.form-control-danger,
+.bmd-form-group .form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-danger {
+    padding-right: 0;
+    background-repeat: no-repeat, no-repeat;
+    background-position: center bottom, center calc(100% - 1px), center right 0.46875rem;
+}
+
+.bmd-form-group .form-control.form-control-success:focus,
+.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-success,
+.bmd-form-group .form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-warning,
+.bmd-form-group .form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .bmd-form-group .form-control.form-control-danger {
+    background-size: 100% 100%, 100% 100%, 0.9375rem 0.9375rem;
+}
+
+.bmd-form-group.bmd-form-group-sm .form-control,
+.bmd-form-group.bmd-form-group-sm label,
+.bmd-form-group.bmd-form-group-sm input::placeholder {
+    line-height: 1.1;
+}
+
+.bmd-form-group.bmd-form-group-sm label {
+    color: #AAAAAA;
+}
+
+.bmd-form-group.bmd-form-group-sm .radio label,
+.bmd-form-group.bmd-form-group-sm label.radio-inline,
+.bmd-form-group.bmd-form-group-sm .checkbox label,
+.bmd-form-group.bmd-form-group-sm label.checkbox-inline,
+.bmd-form-group.bmd-form-group-sm .switch label {
+    line-height: 1.5;
+}
+
+.bmd-form-group.bmd-form-group-sm .checkbox label,
+.bmd-form-group.bmd-form-group-sm .radio label,
+.bmd-form-group.bmd-form-group-sm label {
+    font-size: 0.875rem;
+}
+
+.bmd-form-group.bmd-form-group-sm .bmd-label-floating,
+.bmd-form-group.bmd-form-group-sm .bmd-label-placeholder {
+    top: 1.875rem;
+}
+
+.bmd-form-group.bmd-form-group-sm.is-focused .bmd-label-floating,
+.bmd-form-group.bmd-form-group-sm .is-focused .bmd-label-floating,
+.bmd-form-group.bmd-form-group-sm.is-filled .bmd-label-floating,
+.bmd-form-group.bmd-form-group-sm .is-filled .bmd-label-floating {
+    top: 0.75rem;
+    left: 0;
+    font-size: 0.6875rem;
+}
+
+.bmd-form-group.bmd-form-group-sm .bmd-label-static {
+    top: 0.1rem;
+    left: 0;
+    font-size: 0.875rem;
+}
+
+.bmd-form-group.bmd-form-group-sm .bmd-help {
+    margin-top: 0;
+    font-size: 0.65625rem;
+}
+
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger {
+    background-size: 0 100%, 100% 100%, 0.6875rem 0.6875rem;
+}
+
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-success:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-danger {
+    padding-right: 0;
+    background-repeat: no-repeat, no-repeat;
+    background-position: center bottom, center calc(100% - 1px), center right 0.34375rem;
+}
+
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-success:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-sm .form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-sm .form-control.form-control-danger {
+    background-size: 100% 100%, 100% 100%, 0.6875rem 0.6875rem;
+}
+
+.bmd-form-group.bmd-form-group-lg .form-control,
+.bmd-form-group.bmd-form-group-lg label,
+.bmd-form-group.bmd-form-group-lg input::placeholder {
+    line-height: 1.1;
+}
+
+.bmd-form-group.bmd-form-group-lg label {
+    color: #AAAAAA;
+}
+
+.bmd-form-group.bmd-form-group-lg .radio label,
+.bmd-form-group.bmd-form-group-lg label.radio-inline,
+.bmd-form-group.bmd-form-group-lg .checkbox label,
+.bmd-form-group.bmd-form-group-lg label.checkbox-inline,
+.bmd-form-group.bmd-form-group-lg .switch label {
+    line-height: 1.5;
+}
+
+.bmd-form-group.bmd-form-group-lg .checkbox label,
+.bmd-form-group.bmd-form-group-lg .radio label,
+.bmd-form-group.bmd-form-group-lg label {
+    font-size: 0.875rem;
+}
+
+.bmd-form-group.bmd-form-group-lg .bmd-label-floating,
+.bmd-form-group.bmd-form-group-lg .bmd-label-placeholder {
+    top: 2.4375rem;
+}
+
+.bmd-form-group.bmd-form-group-lg.is-focused .bmd-label-floating,
+.bmd-form-group.bmd-form-group-lg .is-focused .bmd-label-floating,
+.bmd-form-group.bmd-form-group-lg.is-filled .bmd-label-floating,
+.bmd-form-group.bmd-form-group-lg .is-filled .bmd-label-floating {
+    top: 1rem;
+    left: 0;
+    font-size: 0.6875rem;
+}
+
+.bmd-form-group.bmd-form-group-lg .bmd-label-static {
+    top: 0.35rem;
+    left: 0;
+    font-size: 0.875rem;
+}
+
+.bmd-form-group.bmd-form-group-lg .bmd-help {
+    margin-top: 0;
+    font-size: 0.9375rem;
+}
+
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger {
+    background-size: 0 100%, 100% 100%, 1.1875rem 1.1875rem;
+}
+
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-success:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-danger {
+    padding-right: 0;
+    background-repeat: no-repeat, no-repeat;
+    background-position: center bottom, center calc(100% - 1px), center right 0.59375rem;
+}
+
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-success:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-success,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-warning,
+.bmd-form-group.bmd-form-group-lg .form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .bmd-form-group.bmd-form-group-lg .form-control.form-control-danger {
+    background-size: 100% 100%, 100% 100%, 1.1875rem 1.1875rem;
+}
+
+.form-control,
+label,
+input::placeholder {
+    line-height: 1.1;
+}
+
+label {
+    color: #AAAAAA;
+}
+
+.radio label,
+label.radio-inline,
+.checkbox label,
+label.checkbox-inline,
+.switch label {
+    line-height: 1.5;
+}
+
+.checkbox label,
+.radio label,
+label {
+    font-size: 0.875rem;
+}
+
+.bmd-label-floating,
+.bmd-label-placeholder {
+    top: 2.3125rem;
+}
+
+.is-focused .bmd-label-floating,
+.is-focused .bmd-label-floating,
+.is-filled .bmd-label-floating,
+.is-filled .bmd-label-floating {
+    top: 1rem;
+    left: 0;
+    font-size: 0.6875rem;
+}
+
+.bmd-label-static {
+    top: 0.35rem;
+    left: 0;
+    font-size: 0.875rem;
+}
+
+.bmd-help {
+    margin-top: 0;
+    font-size: 0.75rem;
+}
+
+.form-control.form-control-success,
+.form-control.form-control-warning,
+.form-control.form-control-danger {
+    background-size: 0 100%, 100% 100%, 0.9375rem 0.9375rem;
+}
+
+.form-control.form-control-success,
+.form-control.form-control-success:focus,
+.bmd-form-group.is-focused .form-control.form-control-success,
+.form-control.form-control-warning,
+.form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .form-control.form-control-warning,
+.form-control.form-control-danger,
+.form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .form-control.form-control-danger {
+    padding-right: 0;
+    background-repeat: no-repeat, no-repeat;
+    background-position: center bottom, center calc(100% - 1px), center right 0.46875rem;
+}
+
+.form-control.form-control-success:focus,
+.bmd-form-group.is-focused .form-control.form-control-success,
+.form-control.form-control-warning:focus,
+.bmd-form-group.is-focused .form-control.form-control-warning,
+.form-control.form-control-danger:focus,
+.bmd-form-group.is-focused .form-control.form-control-danger {
+    background-size: 100% 100%, 100% 100%, 0.9375rem 0.9375rem;
+}
+
+select,
+select.form-control {
+    -moz-appearance: none;
+    -webkit-appearance: none;
+}
+
+@media (min-width: 576px) {
+    .form-inline .input-group {
+        display: inline-flex;
+        align-items: center;
+    }
+}
+
+.form-control-feedback {
+    position: absolute;
+    top: 33px;
+    right: 0;
+    z-index: 2;
+    display: block;
+    width: 34px;
+    height: 34px;
+    line-height: 34px;
+    text-align: center;
+    pointer-events: none;
+    opacity: 0;
+}
+
+.has-success .form-control-feedback {
+    color: #4caf50;
+    opacity: 1;
+}
+
+.has-danger .form-control-feedback {
+    color: #f44336;
+    opacity: 1;
+}
+
+.form-group {
+    margin-bottom: 17px;
+    position: relative;
+}
+
+textarea {
+    height: auto !important;
+    resize: none;
+    line-height: 1.428571 !important;
+}
+
+.form-group input[type=file] {
+    opacity: 0;
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    z-index: -1;
+}
+
+.form-newsletter .input-group,
+.form-newsletter .form-group {
+    float: left;
+    width: 78%;
+    margin-right: 2%;
+    margin-top: 9px;
+    padding-top: 5px;
+}
+
+.form-newsletter .btn {
+    float: left;
+    width: 20%;
+    margin: 9px 0 0;
+}
+
+.form-file-upload .input-group-btn:last-child>.btn-round {
+    border-radius: 30px;
+}
+
+.form-file-upload .input-group-btn .btn {
+    margin: 0;
+}
+
+.form-file-upload .input-group {
+    width: 100%;
+}
+
+.input-group .input-group-btn {
+    padding: 0 12px;
+}
+
+.input-group .input-group-text {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 0 15px 0 15px;
+    background-color: transparent;
+    border-color: transparent;
+}
+
+.list-group {
+    display: flex;
+    flex-direction: column;
+    flex-grow: 1;
+    padding: .5rem 0;
+}
+
+.list-group.bmd-list-group-sm {
+    padding: .25rem 0;
+}
+
+.list-group.bmd-list-group-sm .list-group-item {
+    padding: .5rem 1rem;
+}
+
+.bmd-list-group-col {
+    display: flex;
+    flex-direction: column;
+    min-width: 0;
+}
+
+.list-group-item {
+    display: flex;
+    flex-flow: row wrap;
+    align-items: center;
+    padding: 1rem;
+    line-height: 1;
+}
+
+.list-group-item .list-group-item-text {
+    min-width: 0;
+    max-height: 2.188rem;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.list-group-item :first-child {
+    margin-right: 2rem;
+}
+
+.list-group-item>.pull-xs-right,
+.list-group-item>.pull-sm-right,
+.list-group-item>.pull-md-right,
+.list-group-item>.pull-lg-right,
+.list-group-item>.pull-xl-right,
+.list-group-item>*~.label:last-child,
+.list-group-item>*~.material-icons:last-child {
+    margin-right: 0;
+    margin-left: auto;
+}
+
+.list-group-item .material-icons.pull-xs-right,
+.list-group-item .material-icons.pull-sm-right,
+.list-group-item .material-icons.pull-md-right,
+.list-group-item .material-icons.pull-lg-right,
+.list-group-item .material-icons.pull-xl-right,
+.list-group-item .material-icons~.material-icons:last-child {
+    padding-left: 1rem;
+}
+
+.list-group-item .list-group-item-text {
+    font-size: .875rem;
+    color: #555;
+}
+
+.nav-link {
+    text-transform: uppercase;
+}
+
+.navbar-nav .nav-link {
+    padding: 0.5321rem;
+    font-size: 0.875rem;
+    font-weight: 400;
+}
+
+.nav-tabs,
+.nav-pills {
+    border: 0;
+    border-radius: 3px;
+    padding: 0 15px;
+}
+
+.nav-tabs .nav-link,
+.nav-pills .nav-link {
+    padding: 1.4286em 0.8575em;
+    font-size: 0.875rem;
+    font-weight: 500;
+    border: 0;
+}
+
+.nav .nav-item {
+    position: relative;
+}
+
+.img-thumbnail {
+    border-radius: 16px;
+}
+
+.img-raised {
+    box-shadow: 0 5px 15px -8px rgba(0, 0, 0, 0.24), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+}
+
+.rounded {
+    border-radius: 6px !important;
+}
+
+.navbar {
+    border: 0;
+    border-radius: 3px;
+    padding: 0.625rem 0;
+    margin-bottom: 20px;
+    color: #555;
+    background-color: #fff !important;
+    box-shadow: 0 4px 18px 0px rgba(0, 0, 0, 0.12), 0 7px 10px -5px rgba(0, 0, 0, 0.15);
+}
+
+.navbar .dropdown-item:hover,
+.navbar .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 255, 255, 0.4);
+    background-color: #fff;
+    color: #555;
+}
+
+.navbar .navbar-toggler .navbar-toggler-icon {
+    background-color: #555;
+}
+
+.navbar.fixed-top {
+    border-radius: 0;
+}
+
+.navbar .navbar-nav .nav-item .nav-link {
+    position: relative;
+    color: inherit;
+    padding: 0.9375rem;
+    font-weight: 400;
+    font-size: 12px;
+    text-transform: uppercase;
+    border-radius: 3px;
+    line-height: 20px;
+}
+
+.navbar .navbar-nav .nav-item .nav-link:not(.btn-just-icon) .fa {
+    position: relative;
+    top: 2px;
+    margin-top: -4px;
+    margin-right: 4px;
+}
+
+.navbar .navbar-nav .nav-item .nav-link .material-icons,
+.navbar .navbar-nav .nav-item .nav-link .fa {
+    font-size: 1.25rem;
+    max-width: 24px;
+    margin-top: -1.1em;
+}
+
+.navbar .navbar-nav .nav-item .nav-link:not(.btn) .material-icons {
+    margin-top: -7px;
+    top: 3px;
+    position: relative;
+    margin-right: 3px;
+}
+
+.navbar .navbar-nav .nav-item .nav-link.profile-photo {
+    padding: 0;
+    margin: 0 3px;
+}
+
+.navbar .navbar-nav .nav-item .nav-link.profile-photo:after {
+    display: none;
+}
+
+.navbar .navbar-nav .nav-item .nav-link.profile-photo .profile-photo-small {
+    height: 40px;
+    width: 40px;
+}
+
+.navbar .navbar-nav .nav-item .nav-link.profile-photo .ripple-container {
+    border-radius: 50%;
+}
+
+.navbar .navbar-nav .dropdown-menu-right {
+    transform-origin: 100% 0;
+}
+
+.navbar .navbar-nav .nav-item.active .nav-link,
+.navbar .navbar-nav .nav-item.active .nav-link:hover,
+.navbar .navbar-nav .nav-item.active .nav-link:focus {
+    color: inherit;
+    background-color: rgba(255, 255, 255, 0.1);
+}
+
+.navbar .btn,
+.navbar .navbar-nav .nav-item .btn {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+.navbar .navbar-toggler {
+    cursor: pointer;
+}
+
+.navbar .navbar-toggler .navbar-toggler-icon {
+    width: 22px;
+    height: 2px;
+    vertical-align: middle;
+    outline: 0;
+    display: block;
+    border-radius: 1px;
+}
+
+.navbar .navbar-toggler .navbar-toggler-icon+.navbar-toggler-icon {
+    margin-top: 4px;
+}
+
+.navbar.navbar-absolute {
+    position: absolute;
+    width: 100%;
+    padding-top: 10px;
+    z-index: 1029;
+}
+
+.navbar .navbar-wrapper {
+    display: inline-flex;
+    align-items: center;
+}
+
+.navbar .navbar-brand {
+    position: relative;
+    color: inherit;
+    height: 50px;
+    font-size: 1.125rem;
+    line-height: 30px;
+    padding: 0.625rem 0;
+}
+
+.navbar>.container {
+    flex: 1;
+}
+
+.navbar.bg-primary {
+    color: #fff;
+    background-color: #9c27b0 !important;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(156, 39, 176, 0.46);
+}
+
+.navbar.bg-primary .dropdown-item:hover,
+.navbar.bg-primary .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4);
+    background-color: #9c27b0;
+    color: #fff;
+}
+
+.navbar.bg-primary .navbar-toggler .navbar-toggler-icon {
+    background-color: #fff;
+}
+
+.navbar.bg-info {
+    color: #fff;
+    background-color: #00bcd4 !important;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(0, 188, 212, 0.46);
+}
+
+.navbar.bg-info .dropdown-item:hover,
+.navbar.bg-info .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 188, 212, 0.4);
+    background-color: #00bcd4;
+    color: #fff;
+}
+
+.navbar.bg-info .navbar-toggler .navbar-toggler-icon {
+    background-color: #fff;
+}
+
+.navbar.bg-warning {
+    color: #fff;
+    background-color: #ff9800 !important;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(255, 152, 0, 0.46);
+}
+
+.navbar.bg-warning .dropdown-item:hover,
+.navbar.bg-warning .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4);
+    background-color: #ff9800;
+    color: #fff;
+}
+
+.navbar.bg-warning .navbar-toggler .navbar-toggler-icon {
+    background-color: #fff;
+}
+
+.navbar.bg-rose {
+    color: #fff;
+    background-color: #e91e63 !important;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(233, 30, 99, 0.46);
+}
+
+.navbar.bg-rose .dropdown-item:hover,
+.navbar.bg-rose .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4);
+    background-color: #e91e63;
+    color: #fff;
+}
+
+.navbar.bg-rose .navbar-toggler .navbar-toggler-icon {
+    background-color: #fff;
+}
+
+.navbar.bg-danger {
+    color: #fff;
+    background-color: #f44336 !important;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(244, 67, 54, 0.46);
+}
+
+.navbar.bg-danger .dropdown-item:hover,
+.navbar.bg-danger .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(244, 67, 54, 0.4);
+    background-color: #f44336;
+    color: #fff;
+}
+
+.navbar.bg-danger .navbar-toggler .navbar-toggler-icon {
+    background-color: #fff;
+}
+
+.navbar.bg-success {
+    color: #fff;
+    background-color: #4caf50 !important;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(76, 175, 80, 0.46);
+}
+
+.navbar.bg-success .dropdown-item:hover,
+.navbar.bg-success .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4);
+    background-color: #4caf50;
+    color: #fff;
+}
+
+.navbar.bg-success .navbar-toggler .navbar-toggler-icon {
+    background-color: #fff;
+}
+
+.navbar.bg-dark {
+    color: #fff;
+    background-color: #212121 !important;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 12px -5px rgba(33, 33, 33, 0.46);
+}
+
+.navbar.bg-dark .dropdown-item:hover,
+.navbar.bg-dark .dropdown-item:focus {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(33, 33, 33, 0.4);
+    background-color: #212121;
+    color: #fff;
+}
+
+.navbar.bg-dark .navbar-toggler .navbar-toggler-icon {
+    background-color: #fff;
+}
+
+.navbar.navbar-transparent {
+    background-color: transparent !important;
+    box-shadow: none;
+    padding-top: 25px;
+    color: #fff;
+}
+
+#navbar .navbar {
+    border-radius: 0;
+}
+
+.badge {
+    border-radius: 12px;
+    padding: 5px 12px;
+    text-transform: uppercase;
+    font-size: 10px;
+    color: #fff;
+}
+
+.badge.badge-primary {
+    background-color: #9c27b0;
+}
+
+.badge.badge-info {
+    background-color: #00bcd4;
+}
+
+.badge.badge-success {
+    background-color: #4caf50;
+}
+
+.badge.badge-warning {
+    background-color: #ff9800;
+}
+
+.badge.badge-danger {
+    background-color: #f44336;
+}
+
+.badge.badge-rose {
+    background-color: #e91e63;
+}
+
+.badge.badge-default {
+    background-color: #999;
+}
+
+.alert {
+    border: 0;
+    border-radius: 0;
+    padding: 20px 15px;
+    line-height: 20px;
+}
+
+.alert b {
+    font-weight: 500;
+    text-transform: uppercase;
+    font-size: 12px;
+}
+
+.alert,
+.alert.alert-default {
+    background-color: white;
+    color: #555;
+}
+
+.alert a,
+.alert .alert-link,
+.alert.alert-default a,
+.alert.alert-default .alert-link {
+    color: #555;
+}
+
+.alert.alert-inverse {
+    background-color: #292929;
+    color: #fff;
+}
+
+.alert.alert-inverse a,
+.alert.alert-inverse .alert-link {
+    color: #fff;
+}
+
+.alert.alert-primary {
+    background-color: #a72abd;
+    color: #ffffff;
+}
+
+.alert.alert-primary a,
+.alert.alert-primary .alert-link {
+    color: #ffffff;
+}
+
+.alert.alert-success {
+    background-color: #55b559;
+    color: #ffffff;
+}
+
+.alert.alert-success a,
+.alert.alert-success .alert-link {
+    color: #ffffff;
+}
+
+.alert.alert-info {
+    background-color: #00cae3;
+    color: #ffffff;
+}
+
+.alert.alert-info a,
+.alert.alert-info .alert-link {
+    color: #ffffff;
+}
+
+.alert.alert-warning {
+    background-color: #ff9e0f;
+    color: #ffffff;
+}
+
+.alert.alert-warning a,
+.alert.alert-warning .alert-link {
+    color: #ffffff;
+}
+
+.alert.alert-danger {
+    background-color: #f55145;
+    color: #ffffff;
+}
+
+.alert.alert-danger a,
+.alert.alert-danger .alert-link {
+    color: #ffffff;
+}
+
+.alert.alert-rose {
+    background-color: #ea2c6d;
+    color: #ffffff;
+}
+
+.alert.alert-rose a,
+.alert.alert-rose .alert-link {
+    color: #ffffff;
+}
+
+.alert-info,
+.alert-danger,
+.alert-warning,
+.alert-success {
+    color: #ffffff;
+}
+
+.alert-default a,
+.alert-default .alert-link {
+    color: rgba(0, 0, 0, 0.87);
+}
+
+.alert .alert-icon {
+    display: block;
+    float: left;
+    margin-right: 1.071rem;
+}
+
+.alert .alert-icon i {
+    margin-top: -7px;
+    top: 5px;
+    position: relative;
+}
+
+.alert .close {
+    color: #fff;
+    text-shadow: none;
+    opacity: .9;
+}
+
+.alert .close i {
+    font-size: 20px;
+}
+
+.alert .close:hover,
+.alert .close:focus {
+    opacity: 1;
+}
+
+.pagination>.page-item>.page-link,
+.pagination>.page-item>span {
+    border: 0;
+    border-radius: 30px !important;
+    transition: all .3s;
+    padding: 0px 11px;
+    margin: 0 3px;
+    min-width: 30px;
+    height: 30px;
+    line-height: 30px;
+    color: #999999;
+    font-weight: 400;
+    font-size: 12px;
+    text-transform: uppercase;
+    background: transparent;
+    text-align: center;
+}
+
+.pagination>.page-item>.page-link:hover,
+.pagination>.page-item>.page-link:focus,
+.pagination>.page-item>span:hover,
+.pagination>.page-item>span:focus {
+    color: #999999;
+}
+
+.pagination>.page-item.active>a,
+.pagination>.page-item.active>span {
+    color: #999999;
+}
+
+.pagination>.page-item.active>a,
+.pagination>.page-item.active>a:focus,
+.pagination>.page-item.active>a:hover,
+.pagination>.page-item.active>span,
+.pagination>.page-item.active>span:focus,
+.pagination>.page-item.active>span:hover {
+    background-color: #9c27b0;
+    border-color: #9c27b0;
+    color: #fff;
+    box-shadow: 0 4px 5px 0 rgba(156, 39, 176, 0.14), 0 1px 10px 0 rgba(156, 39, 176, 0.12), 0 2px 4px -1px rgba(156, 39, 176, 0.2);
+}
+
+.pagination.pagination-info>.page-item.active>a,
+.pagination.pagination-info>.page-item.active>a:focus,
+.pagination.pagination-info>.page-item.active>a:hover,
+.pagination.pagination-info>.page-item.active>span,
+.pagination.pagination-info>.page-item.active>span:focus,
+.pagination.pagination-info>.page-item.active>span:hover {
+    background-color: #00bcd4;
+    border-color: #00bcd4;
+    box-shadow: 0 4px 5px 0 rgba(0, 188, 212, 0.14), 0 1px 10px 0 rgba(0, 188, 212, 0.12), 0 2px 4px -1px rgba(0, 188, 212, 0.2);
+}
+
+.pagination.pagination-success>.page-item.active>a,
+.pagination.pagination-success>.page-item.active>a:focus,
+.pagination.pagination-success>.page-item.active>a:hover,
+.pagination.pagination-success>.page-item.active>span,
+.pagination.pagination-success>.page-item.active>span:focus,
+.pagination.pagination-success>.page-item.active>span:hover {
+    background-color: #4caf50;
+    border-color: #4caf50;
+    box-shadow: 0 4px 5px 0 rgba(76, 175, 80, 0.14), 0 1px 10px 0 rgba(76, 175, 80, 0.12), 0 2px 4px -1px rgba(76, 175, 80, 0.2);
+}
+
+.pagination.pagination-warning>.page-item.active>a,
+.pagination.pagination-warning>.page-item.active>a:focus,
+.pagination.pagination-warning>.page-item.active>a:hover,
+.pagination.pagination-warning>.page-item.active>span,
+.pagination.pagination-warning>.page-item.active>span:focus,
+.pagination.pagination-warning>.page-item.active>span:hover {
+    background-color: #ff9800;
+    border-color: #ff9800;
+    box-shadow: 0 4px 5px 0 rgba(255, 152, 0, 0.14), 0 1px 10px 0 rgba(255, 152, 0, 0.12), 0 2px 4px -1px rgba(255, 152, 0, 0.2);
+}
+
+.pagination.pagination-danger>.page-item.active>a,
+.pagination.pagination-danger>.page-item.active>a:focus,
+.pagination.pagination-danger>.page-item.active>a:hover,
+.pagination.pagination-danger>.page-item.active>span,
+.pagination.pagination-danger>.page-item.active>span:focus,
+.pagination.pagination-danger>.page-item.active>span:hover {
+    background-color: #f44336;
+    border-color: #f44336;
+    box-shadow: 0 4px 5px 0 rgba(244, 67, 54, 0.14), 0 1px 10px 0 rgba(244, 67, 54, 0.12), 0 2px 4px -1px rgba(244, 67, 54, 0.2);
+}
+
+.nav-pills:not(.flex-column) .nav-item+.nav-item:not(:first-child) {
+    margin-left: 5px;
+}
+
+.nav-pills.flex-column .nav-item+.nav-item {
+    margin-top: 5px;
+}
+
+.nav-pills .nav-item .nav-link {
+    line-height: 24px;
+    text-transform: uppercase;
+    font-size: 12px;
+    font-weight: 500;
+    min-width: 100px;
+    text-align: center;
+    color: #555;
+    transition: all .3s;
+    border-radius: 30px;
+    padding: 10px 15px;
+}
+
+.nav-pills .nav-item .nav-link:hover {
+    background-color: rgba(200, 200, 200, 0.2);
+}
+
+.nav-pills .nav-item .nav-link.active {
+    color: #fff;
+    background-color: #9c27b0;
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(156, 39, 176, 0.6);
+}
+
+.nav-pills .nav-item i {
+    display: block;
+    font-size: 30px;
+    padding: 15px 0;
+}
+
+.nav-pills.nav-pills-info .nav-item .nav-link.active,
+.nav-pills.nav-pills-info .nav-item .nav-link.active:focus,
+.nav-pills.nav-pills-info .nav-item .nav-link.active:hover {
+    background-color: #00bcd4;
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(0, 188, 212, 0.6);
+    color: #fff;
+}
+
+.nav-pills.nav-pills-rose .nav-item .nav-link.active,
+.nav-pills.nav-pills-rose .nav-item .nav-link.active:focus,
+.nav-pills.nav-pills-rose .nav-item .nav-link.active:hover {
+    background-color: #e91e63;
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(233, 30, 99, 0.6);
+    color: #fff;
+}
+
+.nav-pills.nav-pills-success .nav-item .nav-link.active,
+.nav-pills.nav-pills-success .nav-item .nav-link.active:focus,
+.nav-pills.nav-pills-success .nav-item .nav-link.active:hover {
+    background-color: #4caf50;
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(76, 175, 80, 0.6);
+    color: #fff;
+}
+
+.nav-pills.nav-pills-warning .nav-item .nav-link.active,
+.nav-pills.nav-pills-warning .nav-item .nav-link.active:focus,
+.nav-pills.nav-pills-warning .nav-item .nav-link.active:hover {
+    background-color: #ff9800;
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(255, 152, 0, 0.6);
+    color: #fff;
+}
+
+.nav-pills.nav-pills-danger .nav-item .nav-link.active,
+.nav-pills.nav-pills-danger .nav-item .nav-link.active:focus,
+.nav-pills.nav-pills-danger .nav-item .nav-link.active:hover {
+    background-color: #f44336;
+    box-shadow: 0 5px 20px 0px rgba(0, 0, 0, 0.2), 0 13px 24px -11px rgba(244, 67, 54, 0.6);
+    color: #fff;
+}
+
+.nav-pills.nav-pills-icons .nav-item .nav-link {
+    border-radius: 4px;
+}
+
+.tab-space {
+    padding: 20px 0 50px 0px;
+}
+
+.info {
+    max-width: 360px;
+    margin: 0 auto;
+    padding: 70px 0 30px;
+}
+
+.info .icon {
+    color: #999999;
+}
+
+.info .icon>i {
+    font-size: 3.85rem;
+}
+
+.info .info-title {
+    color: #3C4858;
+    margin: 1.75rem 0 0.875rem;
+}
+
+.info p {
+    color: #999999;
+}
+
+.info-horizontal .icon {
+    float: left;
+    margin-top: 24px;
+    margin-right: 10px;
+}
+
+.info-horizontal .icon>i {
+    font-size: 2.25rem;
+}
+
+.info-horizontal .description {
+    overflow: hidden;
+}
+
+.icon.icon-primary {
+    color: #9c27b0;
+}
+
+.icon.icon-info {
+    color: #00bcd4;
+}
+
+.icon.icon-success {
+    color: #4caf50;
+}
+
+.icon.icon-warning {
+    color: #ff9800;
+}
+
+.icon.icon-danger {
+    color: #f44336;
+}
+
+.icon.icon-rose {
+    color: #e91e63;
+}
+
+body,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4 {
+    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+    font-weight: 300;
+    line-height: 1.5em;
+}
+
+h1,
+h2,
+h3,
+.h1,
+.h2,
+.h3 {
+    margin-top: 20px;
+    margin-bottom: 10px;
+}
+
+h4,
+h5,
+h6,
+.h4,
+.h5,
+.h6 {
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+
+html * {
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+}
+
+h1,
+.h1 {
+    font-size: 3.3125rem;
+    line-height: 1.15em;
+}
+
+h2,
+.h2 {
+    font-size: 2.25rem;
+    line-height: 1.5em;
+}
+
+h3,
+.h3 {
+    font-size: 1.5625rem;
+    line-height: 1.4em;
+}
+
+h4,
+.h4 {
+    font-size: 1.125rem;
+    line-height: 1.5em;
+}
+
+h5,
+.h5 {
+    font-size: 1.0625rem;
+    line-height: 1.55em;
+    margin-bottom: 15px;
+}
+
+h6,
+.h6 {
+    font-size: 0.75rem;
+    text-transform: uppercase;
+    font-weight: 500;
+}
+
+p {
+    font-size: 14px;
+    margin: 0 0 10px;
+}
+
+b {
+    font-weight: 700;
+}
+
+small,
+.small {
+    font-size: 75%;
+    color: #777;
+}
+
+.title,
+.card-title,
+.info-title,
+.footer-brand,
+.footer-big h5,
+.footer-big h4,
+.media .media-heading {
+    font-weight: 700;
+    font-family: "Roboto Slab", "Times New Roman", serif;
+}
+
+.title,
+.title a,
+.card-title,
+.card-title a,
+.info-title,
+.info-title a,
+.footer-brand,
+.footer-brand a,
+.footer-big h5,
+.footer-big h5 a,
+.footer-big h4,
+.footer-big h4 a,
+.media .media-heading,
+.media .media-heading a {
+    color: #3C4858;
+    text-decoration: none;
+}
+
+h2.title {
+    margin-bottom: 1rem;
+}
+
+.description,
+.card-description,
+.footer-big p {
+    color: #999;
+}
+
+.text-warning {
+    color: #ff9800 !important;
+}
+
+.text-primary {
+    color: #9c27b0 !important;
+}
+
+.text-danger {
+    color: #f44336 !important;
+}
+
+.text-success {
+    color: #4caf50 !important;
+}
+
+.text-info {
+    color: #00bcd4 !important;
+}
+
+.text-rose {
+    color: #e91e63 !important;
+}
+
+.text-gray {
+    color: #999999 !important;
+}
+
+.space {
+    height: 130px;
+    display: block;
+}
+
+.space-110 {
+    height: 110px;
+    display: block;
+}
+
+.space-50 {
+    height: 50px;
+    display: block;
+}
+
+.space-70 {
+    height: 70px;
+    display: block;
+}
+
+.blockquote {
+    padding: 10px 20px;
+    margin: 0 0 20px;
+    border-left: 5px solid #eee;
+}
+
+.blockquote p {
+    font-size: 1.063rem;
+    font-style: italic;
+}
+
+.blockquote small {
+    display: block;
+    font-size: 80%;
+    line-height: 1.42857143;
+    color: #777;
+}
+
+.nav-tabs {
+    border: 0;
+    border-radius: 3px;
+    padding: 0 15px;
+}
+
+.nav-tabs .nav-item .nav-link {
+    color: #fff;
+    border: 0;
+    margin: 0;
+    border-radius: 3px;
+    line-height: 24px;
+    text-transform: uppercase;
+    font-size: 12px;
+    padding: 10px 15px;
+    background-color: transparent;
+    transition: 0.3s background-color 0s;
+}
+
+.nav-tabs .nav-item .nav-link:hover {
+    border: 0;
+}
+
+.nav-tabs .nav-item .nav-link,
+.nav-tabs .nav-item .nav-link:hover,
+.nav-tabs .nav-item .nav-link:focus {
+    border: 0 !important;
+    color: #fff !important;
+    font-weight: 500;
+}
+
+.nav-tabs .nav-item.disabled .nav-link,
+.nav-tabs .nav-item.disabled .nav-link:hover {
+    color: rgba(255, 255, 255, 0.5);
+}
+
+.nav-tabs .nav-item .material-icons {
+    margin: -1px 5px 0 0;
+}
+
+.nav-tabs .nav-item .nav-link.active {
+    background-color: rgba(255, 255, 255, 0.2);
+    transition: 0.3s background-color 0.2s;
+}
+
+.nav-tabs .nav-link {
+    border-bottom: 0.214rem solid transparent;
+}
+
+.nav-tabs .nav-link {
+    color: #555;
+}
+
+.nav-tabs .nav-link.active {
+    color: rgba(0, 0, 0, 0.87);
+    border-color: #9c27b0;
+}
+
+.nav-tabs .nav-link.active:hover,
+.nav-tabs .nav-link.active:focus {
+    border-color: #9c27b0;
+}
+
+.nav-tabs .nav-link.disabled {
+    color: #999;
+}
+
+.nav-tabs .nav-link.disabled,
+.nav-tabs .nav-link.disabled:hover,
+.nav-tabs .nav-link.disabled:focus {
+    color: #999;
+}
+
+.nav-tabs.header-primary .nav-link {
+    color: white;
+}
+
+.nav-tabs.header-primary .nav-link.active {
+    color: #fff;
+    border-color: #fff;
+}
+
+.nav-tabs.header-primary .nav-link.active:hover,
+.nav-tabs.header-primary .nav-link.active:focus {
+    border-color: #fff;
+}
+
+.nav-tabs.header-primary .nav-link.disabled {
+    color: rgba(255, 255, 255, 0.84);
+}
+
+.nav-tabs.header-primary .nav-link.disabled,
+.nav-tabs.header-primary .nav-link.disabled:hover,
+.nav-tabs.header-primary .nav-link.disabled:focus {
+    color: rgba(255, 255, 255, 0.84);
+}
+
+.nav-tabs.bg-inverse .nav-link {
+    color: white;
+}
+
+.nav-tabs.bg-inverse .nav-link.active {
+    color: #fff;
+    border-color: #fff;
+}
+
+.nav-tabs.bg-inverse .nav-link.active:hover,
+.nav-tabs.bg-inverse .nav-link.active:focus {
+    border-color: #fff;
+}
+
+.nav-tabs.bg-inverse .nav-link.disabled {
+    color: rgba(255, 255, 255, 0.84);
+}
+
+.nav-tabs.bg-inverse .nav-link.disabled,
+.nav-tabs.bg-inverse .nav-link.disabled:hover,
+.nav-tabs.bg-inverse .nav-link.disabled:focus {
+    color: rgba(255, 255, 255, 0.84);
+}
+
+.card-nav-tabs {
+    margin-top: 45px;
+}
+
+.card-nav-tabs .card-header {
+    margin-top: -30px !important;
+}
+
+.tooltip-arrow {
+    display: none;
+}
+
+.tooltip.show {
+    opacity: 1;
+    -webkit-transform: translate3d(0, 0px, 0);
+    -moz-transform: translate3d(0, 0px, 0);
+    -o-transform: translate3d(0, 0px, 0);
+    -ms-transform: translate3d(0, 0px, 0);
+    transform: translate3d(0, 0px, 0);
+}
+
+.tooltip {
+    opacity: 0;
+    transition: opacity, transform .2s ease;
+    -webkit-transform: translate3d(0, 5px, 0);
+    -moz-transform: translate3d(0, 5px, 0);
+    -o-transform: translate3d(0, 5px, 0);
+    -ms-transform: translate3d(0, 5px, 0);
+    transform: translate3d(0, 5px, 0);
+    font-size: 0.875rem;
+}
+
+.tooltip.bs-tooltip-top .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before {
+    border-top-color: #fff;
+}
+
+.tooltip.bs-tooltip-right .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before {
+    border-right-color: #fff;
+}
+
+.tooltip.bs-tooltip-left .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before {
+    border-left-color: #fff;
+}
+
+.tooltip.bs-tooltip-bottom .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before,
+.tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
+    border-bottom-color: #fff;
+}
+
+.tooltip-inner {
+    padding: 10px 15px;
+    min-width: 130px;
+}
+
+.popover,
+.tooltip-inner {
+    line-height: 1.5em;
+    background: #fff;
+    border: none;
+    border-radius: 3px;
+    box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
+    color: #555;
+}
+
+.popover {
+    padding: 0;
+    box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+}
+
+.popover.left>.arrow,
+.popover.right>.arrow,
+.popover.top>.arrow,
+.popover.bottom>.arrow {
+    border: none;
+}
+
+.popover.bs-popover-top .arrow::before,
+.popover.bs-popover-auto[x-placement^="top"] .arrow::before,
+.popover.bs-popover-auto[x-placement^="top"] .arrow::before,
+.popover.bs-popover-bottom .arrow::before,
+.popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,
+.popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,
+.popover.bs-popover-right .arrow::before,
+.popover.bs-popover-auto[x-placement^="right"] .arrow::before,
+.popover.bs-popover-auto[x-placement^="right"] .arrow::before,
+.popover.bs-popover-left .arrow::before,
+.popover.bs-popover-auto[x-placement^="left"] .arrow::before,
+.popover.bs-popover-auto[x-placement^="left"] .arrow::before {
+    border: 0;
+}
+
+.popover-header {
+    background-color: #fff;
+    border: none;
+    padding: 15px 15px 5px;
+    font-size: 1.125rem;
+    margin: 0;
+    color: #555;
+}
+
+.popover-body {
+    padding: 10px 15px 15px;
+    line-height: 1.4;
+    color: #555;
+}
+
+.modal-dialog .modal-content {
+    box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22);
+    border-radius: 6px;
+    border: none;
+}
+
+.modal-dialog .modal-content .card-signup {
+    margin: 0;
+}
+
+.modal-dialog .modal-content .card-signup .modal-header {
+    padding-top: 0;
+}
+
+.modal-dialog .modal-header {
+    border-bottom: none;
+    padding-top: 24px;
+    padding-right: 24px;
+    padding-bottom: 0;
+    padding-left: 24px;
+}
+
+.modal-dialog .modal-body {
+    padding-top: 24px;
+    padding-right: 24px;
+    padding-bottom: 16px;
+    padding-left: 24px;
+}
+
+.modal-dialog .modal-footer {
+    border-top: none;
+    padding: 24px;
+}
+
+.modal-dialog .modal-footer.text-center {
+    text-align: center;
+}
+
+.modal-dialog .modal-footer button {
+    margin: 0;
+    padding-left: 16px;
+    padding-right: 16px;
+    width: auto;
+}
+
+.modal-dialog .modal-footer button.pull-left {
+    padding-left: 5px;
+    padding-right: 5px;
+    position: relative;
+    left: -5px;
+}
+
+.modal-dialog .modal-body+.modal-footer {
+    padding-top: 0;
+}
+
+.modal-backdrop {
+    background: rgba(0, 0, 0, 0.3);
+}
+
+.modal .modal-dialog {
+    margin-top: 100px;
+}
+
+.modal .modal-dialog.modal-login {
+    width: 360px;
+}
+
+.modal .modal-dialog.modal-login .modal-header .close {
+    color: #fff;
+    top: -14px;
+    right: 10px;
+    text-shadow: none;
+    position: relative;
+}
+
+.modal .modal-dialog.modal-login .modal-footer {
+    padding-bottom: 0;
+    padding-top: 0;
+}
+
+.modal .modal-dialog.modal-login .modal-body {
+    padding-left: 4px;
+    padding-bottom: 0;
+    padding-top: 0;
+}
+
+.modal .modal-dialog.modal-login .card-signup {
+    margin-bottom: 0;
+}
+
+.modal .modal-dialog.modal-signup {
+    max-width: 900px;
+}
+
+.modal .modal-dialog.modal-signup .info-horizontal {
+    padding: 0px 0px 20px;
+}
+
+.modal .modal-dialog.modal-signup .modal-title {
+    text-align: center;
+    width: 100%;
+}
+
+.modal .modal-dialog.modal-signup .modal-footer {
+    padding: 0 5px;
+}
+
+.modal .modal-dialog.modal-signup .modal-header {
+    padding-top: 0;
+}
+
+.modal .modal-dialog.modal-signup .card-signup {
+    padding: 40px 0;
+    margin-bottom: 0;
+}
+
+.modal .modal-dialog.modal-signup .modal-body {
+    padding-bottom: 0;
+    padding-top: 0;
+}
+
+.modal .modal-header .close {
+    color: #999;
+}
+
+.modal .modal-header .close:hover,
+.modal .modal-header .close:focus {
+    opacity: 1;
+}
+
+.modal .modal-header .close i {
+    font-size: 16px;
+}
+
+.modal-notice .instruction {
+    margin-bottom: 25px;
+}
+
+.modal-notice .picture {
+    max-width: 150px;
+}
+
+.modal-notice .modal-content .btn-raised {
+    margin-bottom: 15px;
+}
+
+.modal-small {
+    width: 300px;
+    margin: 0 auto;
+}
+
+.modal-small .modal-body {
+    margin-top: 20px;
+}
+
+.dropdown-menu {
+    display: none;
+    padding: 0.3125rem 0;
+    border: 0;
+    opacity: 0;
+    transform: scale(0);
+    transform-origin: 0 0;
+    will-change: transform, opacity;
+    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
+    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
+}
+
+.dropdown-menu.showing {
+    animation-name: bmd-dropdown-animation;
+    animation-duration: 0.3s;
+    animation-fill-mode: forwards;
+    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.open>.dropdown-menu,
+.dropdown-menu.show {
+    display: block;
+    opacity: 1;
+    transform: scale(1);
+}
+
+.dropdown-menu.hiding {
+    display: block;
+    opacity: 0;
+    transform: scale(0);
+}
+
+.dropdown-menu[x-placement="bottom-start"] {
+    transform-origin: 0 0;
+}
+
+.dropdown-menu[x-placement="bottom-end"] {
+    transform-origin: 100% 0;
+}
+
+.dropdown-menu[x-placement="top-start"] {
+    transform-origin: 0 100%;
+}
+
+.dropdown-menu[x-placement="top-end"] {
+    transform-origin: 100% 100%;
+}
+
+.dropdown-menu .disabled>a {
+    color: #777;
+}
+
+.dropdown-menu .disabled>a:focus,
+.dropdown-menu .disabled>a:hover {
+    text-decoration: none;
+    background-color: transparent;
+    background-image: none;
+    color: #777;
+}
+
+.dropdown-menu.dropdown-with-icons .dropdown-item {
+    padding: 0.75rem 1.25rem 0.75rem 0.75rem;
+}
+
+.dropdown-menu.dropdown-with-icons .dropdown-item .material-icons {
+    vertical-align: middle;
+    font-size: 24px;
+    position: relative;
+    margin-top: -4px;
+    top: 1px;
+    margin-right: 12px;
+    opacity: .5;
+}
+
+.dropdown-menu .dropdown-item,
+.dropdown-menu li>a {
+    position: relative;
+    width: auto;
+    display: flex;
+    flex-flow: nowrap;
+    align-items: center;
+    color: #333;
+    font-weight: normal;
+    text-decoration: none;
+    font-size: .8125rem;
+    border-radius: 0.125rem;
+    margin: 0 0.3125rem;
+    -webkit-transition: all 150ms linear;
+    -moz-transition: all 150ms linear;
+    -o-transition: all 150ms linear;
+    -ms-transition: all 150ms linear;
+    transition: all 150ms linear;
+    min-width: 7rem;
+    padding: 0.625rem 1.25rem;
+    overflow: hidden;
+    line-height: 1.428571;
+    text-overflow: ellipsis;
+    word-wrap: break-word;
+}
+
+@media (min-width: 768px) {
+    .dropdown-menu .dropdown-item,
+    .dropdown-menu li>a {
+        padding-right: 1.5rem;
+        padding-left: 1.5rem;
+    }
+}
+
+.dropdown-menu .dropdown-item:hover,
+.dropdown-menu .dropdown-item:focus,
+.dropdown-menu a:hover,
+.dropdown-menu a:focus,
+.dropdown-menu a:active {
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4);
+    background-color: #9c27b0;
+    color: #FFFFFF;
+}
+
+.dropdown-toggle.bmd-btn-icon::after,
+.dropdown-toggle.bmd-btn-fab::after {
+    display: none;
+}
+
+.dropdown-toggle.bmd-btn-icon~.dropdown-menu.dropdown-menu-top-left,
+.dropdown-toggle.bmd-btn-icon~.dropdown-menu.dropdown-menu-top-right,
+.dropdown-toggle.bmd-btn-fab~.dropdown-menu.dropdown-menu-top-left,
+.dropdown-toggle.bmd-btn-fab~.dropdown-menu.dropdown-menu-top-right {
+    bottom: 2rem;
+}
+
+.dropdown-toggle:after {
+    will-change: transform;
+    transition: transform 150ms linear;
+}
+
+.show .dropdown-toggle:after {
+    -webkit-transform: rotate(180deg);
+    -moz-transform: rotate(180deg);
+    -o-transform: rotate(180deg);
+    -ms-transform: rotate(180deg);
+    transform: rotate(180deg);
+}
+
+.dropdown-toggle.bmd-btn-fab-sm~.dropdown-menu.dropdown-menu-top-left,
+.dropdown-toggle.bmd-btn-fab-sm~.dropdown-menu.dropdown-menu-top-right {
+    bottom: 2.5rem;
+}
+
+.dropdown-toggle.bmd-btn-icon~.dropdown-menu {
+    margin: 0;
+}
+
+.dropdown-header {
+    font-size: 0.75rem;
+    padding-top: 0.1875rem;
+    padding-bottom: 0.1875rem;
+    text-transform: none;
+    color: #777;
+    line-height: 1.428571;
+    font-weight: inherit;
+}
+
+@keyframes bmd-dropdown-animation {
+    from {
+        opacity: 0;
+        transform: scale(0);
+    }
+    to {
+        opacity: 1;
+        transform: scale(1);
+    }
+}
+
+.dropdown-menu.bootstrap-datetimepicker-widget {
+    opacity: 0;
+    transform: scale(0);
+    transition-duration: 0.3s;
+    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+    transform-origin: 0 0;
+    will-change: transform, opacity;
+    top: 0;
+}
+
+.dropdown-menu.bootstrap-datetimepicker-widget.top {
+    transform-origin: 0 100%;
+}
+
+.dropdown-menu.bootstrap-datetimepicker-widget.open {
+    opacity: 1;
+    transform: scale(1);
+    top: 0;
+}
+
+.bmd-layout-drawer {
+    position: absolute;
+    z-index: 5;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    flex-wrap: nowrap;
+    max-height: 100%;
+    overflow: visible;
+    overflow-y: auto;
+    font-size: .875rem;
+    transition: transform;
+    will-change: transform;
+    transform-style: preserve-3d;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+    transition-duration: 0.2s;
+    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.bmd-layout-drawer>* {
+    flex-shrink: 0;
+}
+
+.bmd-layout-drawer>header {
+    display: flex;
+    flex-direction: column;
+    justify-content: flex-end;
+    padding: 1rem;
+}
+
+.bmd-layout-drawer>header .navbar-brand {
+    padding-left: 1.5rem;
+    font-size: 1.25rem;
+}
+
+.bmd-layout-drawer>.list-group {
+    padding-top: 1rem;
+}
+
+.bmd-layout-drawer>.list-group .list-group-item {
+    padding-right: 2.5rem;
+    padding-left: 2.5rem;
+    font-size: .8125rem;
+    font-weight: 500;
+}
+
+.bmd-drawer-f-l>.bmd-layout-drawer {
+    top: 0;
+    left: 0;
+    width: 240px;
+    height: 100%;
+    transform: translateX(-250px);
+}
+
+.bmd-drawer-f-l>.bmd-layout-header,
+.bmd-drawer-f-l>.bmd-layout-content {
+    margin-left: 0;
+}
+
+.bmd-drawer-f-r>.bmd-layout-drawer {
+    top: 0;
+    right: 0;
+    width: 240px;
+    height: 100%;
+    transform: translateX(250px);
+}
+
+.bmd-drawer-f-r>.bmd-layout-header,
+.bmd-drawer-f-r>.bmd-layout-content {
+    margin-right: 0;
+}
+
+.bmd-drawer-f-t>.bmd-layout-drawer {
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100px;
+    transform: translateY(-110px);
+}
+
+.bmd-drawer-f-t>.bmd-layout-content {
+    margin-top: 0;
+}
+
+.bmd-drawer-f-b>.bmd-layout-drawer {
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    height: 100px;
+    transform: translateY(110px);
+}
+
+.bmd-drawer-f-b>.bmd-layout-content {
+    margin-bottom: 0;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-l>.bmd-layout-header {
+    width: calc(100% - 240px);
+    margin-left: 240px;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-l>.bmd-layout-drawer {
+    transform: translateX(0);
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-l>.bmd-layout-content {
+    margin-left: 240px;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-r>.bmd-layout-header {
+    width: calc(100% - 240px);
+    margin-right: 240px;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-r>.bmd-layout-drawer {
+    transform: translateX(0);
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-r>.bmd-layout-content {
+    margin-right: 240px;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-t>.bmd-layout-header {
+    margin-top: 100px;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-t>.bmd-layout-drawer {
+    transform: translateY(0);
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-b>.bmd-layout-drawer {
+    transform: translateY(0);
+}
+
+:not(.bmd-drawer-out).bmd-drawer-in.bmd-drawer-f-b>.bmd-layout-content {
+    margin-bottom: 100px;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay>.bmd-layout-backdrop .in {
+    visibility: visible;
+    background-color: rgba(0, 0, 0, 0.5);
+}
+
+@supports (pointer-events: auto) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay>.bmd-layout-backdrop.in {
+        pointer-events: auto;
+        opacity: 1;
+    }
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay.bmd-drawer-f-l>.bmd-layout-header,
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay.bmd-drawer-f-l>.bmd-layout-content {
+    width: 100%;
+    margin-left: 0;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay.bmd-drawer-f-r>.bmd-layout-header,
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay.bmd-drawer-f-r>.bmd-layout-content {
+    width: 100%;
+    margin-right: 0;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay>.bmd-layout-backdrop .in {
+    visibility: visible;
+    background-color: rgba(0, 0, 0, 0.5);
+}
+
+@supports (pointer-events: auto) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay>.bmd-layout-backdrop.in {
+        pointer-events: auto;
+        opacity: 1;
+    }
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay.bmd-drawer-f-t>.bmd-layout-header {
+    margin-top: 0;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay.bmd-drawer-overlay.bmd-drawer-f-b>.bmd-layout-content {
+    margin-bottom: 0;
+}
+
+@media (min-width: 576px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-l>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-l>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-l>.bmd-layout-content {
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-r>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-right: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-r>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-r>.bmd-layout-content {
+        margin-right: 240px;
+    }
+}
+
+@media (min-width: 576px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-t>.bmd-layout-header {
+        margin-top: 100px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-t>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-b>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-sm-up.bmd-drawer-f-b>.bmd-layout-content {
+        margin-bottom: 100px;
+    }
+}
+
+@media (max-width: 767.98px) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down>.bmd-layout-backdrop .in {
+        visibility: visible;
+        background-color: rgba(0, 0, 0, 0.5);
+    }
+    @supports (pointer-events: auto) {
+        :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down>.bmd-layout-backdrop.in {
+            pointer-events: auto;
+            opacity: 1;
+        }
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down.bmd-drawer-f-l>.bmd-layout-header,
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down.bmd-drawer-f-l>.bmd-layout-content {
+        width: 100%;
+        margin-left: 0;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down.bmd-drawer-f-r>.bmd-layout-header,
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down.bmd-drawer-f-r>.bmd-layout-content {
+        width: 100%;
+        margin-right: 0;
+    }
+}
+
+@media (max-width: 767.98px) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down>.bmd-layout-backdrop .in {
+        visibility: visible;
+        background-color: rgba(0, 0, 0, 0.5);
+    }
+    @supports (pointer-events: auto) {
+        :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down>.bmd-layout-backdrop.in {
+            pointer-events: auto;
+            opacity: 1;
+        }
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down.bmd-drawer-f-t>.bmd-layout-header {
+        margin-top: 0;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-sm-down.bmd-drawer-f-b>.bmd-layout-content {
+        margin-bottom: 0;
+    }
+}
+
+@media (min-width: 768px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-l>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-l>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-l>.bmd-layout-content {
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-r>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-right: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-r>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-r>.bmd-layout-content {
+        margin-right: 240px;
+    }
+}
+
+@media (min-width: 768px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-t>.bmd-layout-header {
+        margin-top: 100px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-t>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-b>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-md-up.bmd-drawer-f-b>.bmd-layout-content {
+        margin-bottom: 100px;
+    }
+}
+
+@media (max-width: 991.98px) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down>.bmd-layout-backdrop .in {
+        visibility: visible;
+        background-color: rgba(0, 0, 0, 0.5);
+    }
+    @supports (pointer-events: auto) {
+        :not(.bmd-drawer-out).bmd-drawer-overlay-md-down>.bmd-layout-backdrop.in {
+            pointer-events: auto;
+            opacity: 1;
+        }
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down.bmd-drawer-f-l>.bmd-layout-header,
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down.bmd-drawer-f-l>.bmd-layout-content {
+        width: 100%;
+        margin-left: 0;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down.bmd-drawer-f-r>.bmd-layout-header,
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down.bmd-drawer-f-r>.bmd-layout-content {
+        width: 100%;
+        margin-right: 0;
+    }
+}
+
+@media (max-width: 991.98px) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down>.bmd-layout-backdrop .in {
+        visibility: visible;
+        background-color: rgba(0, 0, 0, 0.5);
+    }
+    @supports (pointer-events: auto) {
+        :not(.bmd-drawer-out).bmd-drawer-overlay-md-down>.bmd-layout-backdrop.in {
+            pointer-events: auto;
+            opacity: 1;
+        }
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down.bmd-drawer-f-t>.bmd-layout-header {
+        margin-top: 0;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-md-down.bmd-drawer-f-b>.bmd-layout-content {
+        margin-bottom: 0;
+    }
+}
+
+@media (min-width: 992px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-l>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-l>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-l>.bmd-layout-content {
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-r>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-right: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-r>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-r>.bmd-layout-content {
+        margin-right: 240px;
+    }
+}
+
+@media (min-width: 992px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-t>.bmd-layout-header {
+        margin-top: 100px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-t>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-b>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-lg-up.bmd-drawer-f-b>.bmd-layout-content {
+        margin-bottom: 100px;
+    }
+}
+
+@media (max-width: 1199.98px) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down>.bmd-layout-backdrop .in {
+        visibility: visible;
+        background-color: rgba(0, 0, 0, 0.5);
+    }
+    @supports (pointer-events: auto) {
+        :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down>.bmd-layout-backdrop.in {
+            pointer-events: auto;
+            opacity: 1;
+        }
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down.bmd-drawer-f-l>.bmd-layout-header,
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down.bmd-drawer-f-l>.bmd-layout-content {
+        width: 100%;
+        margin-left: 0;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down.bmd-drawer-f-r>.bmd-layout-header,
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down.bmd-drawer-f-r>.bmd-layout-content {
+        width: 100%;
+        margin-right: 0;
+    }
+}
+
+@media (max-width: 1199.98px) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down>.bmd-layout-backdrop .in {
+        visibility: visible;
+        background-color: rgba(0, 0, 0, 0.5);
+    }
+    @supports (pointer-events: auto) {
+        :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down>.bmd-layout-backdrop.in {
+            pointer-events: auto;
+            opacity: 1;
+        }
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down.bmd-drawer-f-t>.bmd-layout-header {
+        margin-top: 0;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-overlay-lg-down.bmd-drawer-f-b>.bmd-layout-content {
+        margin-bottom: 0;
+    }
+}
+
+@media (min-width: 1200px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-l>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-l>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-l>.bmd-layout-content {
+        margin-left: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-r>.bmd-layout-header {
+        width: calc(100% - 240px);
+        margin-right: 240px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-r>.bmd-layout-drawer {
+        transform: translateX(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-r>.bmd-layout-content {
+        margin-right: 240px;
+    }
+}
+
+@media (min-width: 1200px) {
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-t>.bmd-layout-header {
+        margin-top: 100px;
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-t>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-b>.bmd-layout-drawer {
+        transform: translateY(0);
+    }
+    :not(.bmd-drawer-out).bmd-drawer-in-xl-up.bmd-drawer-f-b>.bmd-layout-content {
+        margin-bottom: 100px;
+    }
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down>.bmd-layout-backdrop .in {
+    visibility: visible;
+    background-color: rgba(0, 0, 0, 0.5);
+}
+
+@supports (pointer-events: auto) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-xl-down>.bmd-layout-backdrop.in {
+        pointer-events: auto;
+        opacity: 1;
+    }
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down.bmd-drawer-f-l>.bmd-layout-header,
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down.bmd-drawer-f-l>.bmd-layout-content {
+    width: 100%;
+    margin-left: 0;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down.bmd-drawer-f-r>.bmd-layout-header,
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down.bmd-drawer-f-r>.bmd-layout-content {
+    width: 100%;
+    margin-right: 0;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down>.bmd-layout-backdrop .in {
+    visibility: visible;
+    background-color: rgba(0, 0, 0, 0.5);
+}
+
+@supports (pointer-events: auto) {
+    :not(.bmd-drawer-out).bmd-drawer-overlay-xl-down>.bmd-layout-backdrop.in {
+        pointer-events: auto;
+        opacity: 1;
+    }
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down.bmd-drawer-f-t>.bmd-layout-header {
+    margin-top: 0;
+}
+
+:not(.bmd-drawer-out).bmd-drawer-overlay-xl-down.bmd-drawer-f-b>.bmd-layout-content {
+    margin-bottom: 0;
+}
+
+.progress {
+    height: 4px;
+    border-radius: 0;
+    box-shadow: none;
+    background: #DDDDDD;
+    margin-bottom: 20px;
+}
+
+.progress .progress-bar {
+    box-shadow: none;
+}
+
+.progress .progress-bar.progress-bar-primary {
+    background: #9c27b0 !important;
+}
+
+.progress .progress-bar.progress-bar-info {
+    background: #00bcd4;
+}
+
+.progress .progress-bar.progress-bar-success {
+    background: #4caf50;
+}
+
+.progress .progress-bar.progress-bar-warning {
+    background: #ff9800;
+}
+
+.progress .progress-bar.progress-bar-danger {
+    background: #f44336;
+}
+
+.progress.progress-line-primary {
+    background: rgba(156, 39, 176, 0.2);
+}
+
+.progress.progress-line-info {
+    background: rgba(0, 188, 212, 0.2);
+}
+
+.progress.progress-line-success {
+    background: rgba(76, 175, 80, 0.2);
+}
+
+.progress.progress-line-warning {
+    background: rgba(255, 152, 0, 0.2);
+}
+
+.progress.progress-line-danger {
+    background: rgba(244, 67, 54, 0.2);
+}
+
+.togglebutton {
+    vertical-align: middle;
+}
+
+.togglebutton,
+.togglebutton label,
+.togglebutton input,
+.togglebutton .toggle {
+    user-select: none;
+}
+
+.togglebutton label {
+    cursor: pointer;
+    color: rgba(0, 0, 0, 0.26);
+}
+
+.form-group.is-focused .togglebutton label {
+    color: rgba(0, 0, 0, 0.26);
+}
+
+.form-group.is-focused .togglebutton label:hover,
+.form-group.is-focused .togglebutton label:focus {
+    color: rgba(0, 0, 0, .54);
+}
+
+fieldset[disabled] .form-group.is-focused .togglebutton label {
+    color: rgba(0, 0, 0, 0.26);
+}
+
+.togglebutton label input[type=checkbox] {
+    opacity: 0;
+    width: 0;
+    height: 0;
+}
+
+.togglebutton label .toggle {
+    text-align: left;
+    margin-left: 5px;
+}
+
+.togglebutton label .toggle,
+.togglebutton label input[type=checkbox][disabled]+.toggle {
+    content: "";
+    display: inline-block;
+    width: 30px;
+    height: 15px;
+    background-color: rgba(80, 80, 80, 0.7);
+    border-radius: 15px;
+    margin-right: 15px;
+    transition: background 0.3s ease;
+    vertical-align: middle;
+}
+
+.togglebutton label .toggle:after {
+    content: "";
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    background-color: #FFFFFF;
+    border-radius: 20px;
+    position: relative;
+    box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
+    left: -5px;
+    top: -2.5px;
+    border: 1px solid rgba(0, 0, 0, .54);
+    transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease;
+}
+
+.togglebutton label input[type=checkbox][disabled]+.toggle:after,
+.togglebutton label input[type=checkbox][disabled]:checked+.toggle:after {
+    background-color: #BDBDBD;
+}
+
+.togglebutton label input[type=checkbox]+.toggle:active:after,
+.togglebutton label input[type=checkbox][disabled]+.toggle:active:after {
+    box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1);
+}
+
+.togglebutton label input[type=checkbox]:checked+.toggle:after {
+    left: 15px;
+}
+
+.togglebutton label input[type=checkbox]:checked+.toggle {
+    background-color: rgba(156, 39, 176, 0.7);
+}
+
+.togglebutton label input[type=checkbox]:checked+.toggle:after {
+    border-color: #9c27b0;
+}
+
+.togglebutton label input[type=checkbox]:checked+.toggle:active:after {
+    box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(156, 39, 176, 0.1);
+}
+
+.ripple {
+    position: relative;
+}
+
+.ripple-container {
+    position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 1;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    pointer-events: none;
+    border-radius: inherit;
+}
+
+.ripple-container .ripple-decorator {
+    position: absolute;
+    width: 20px;
+    height: 20px;
+    margin-top: -10px;
+    margin-left: -10px;
+    pointer-events: none;
+    background-color: rgba(0, 0, 0, 0.05);
+    border-radius: 100%;
+    opacity: 0;
+    transform: scale(1);
+    transform-origin: 50%;
+}
+
+.ripple-container .ripple-decorator.ripple-on {
+    opacity: 0.1;
+    transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s;
+}
+
+.ripple-container .ripple-decorator.ripple-out {
+    opacity: 0;
+    transition: opacity 0.1s linear 0s !important;
+}
+
+.page-header {
+    height: 100vh;
+    background-position: center center;
+    background-size: cover;
+    margin: 0;
+    padding: 0;
+    border: 0;
+    display: flex;
+    align-items: center;
+}
+
+.page-header .carousel .carousel-indicators {
+    bottom: 60px;
+}
+
+.page-header>.container {
+    color: #fff;
+}
+
+.page-header .title {
+    color: #fff;
+}
+
+.page-header.header-small {
+    height: 65vh;
+    min-height: 65vh;
+}
+
+.page-header .iframe-container iframe {
+    width: 100%;
+    box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+}
+
+.header-filter {
+    position: relative;
+}
+
+.header-filter:before,
+.header-filter:after {
+    position: absolute;
+    z-index: 1;
+    width: 100%;
+    height: 100%;
+    display: block;
+    left: 0;
+    top: 0;
+    content: "";
+}
+
+.header-filter::before {
+    background: rgba(0, 0, 0, 0.5);
+}
+
+.header-filter .container {
+    z-index: 2;
+    position: relative;
+}
+
+.clear-filter::before {
+    background: none;
+}
+
+.purple-filter:after {
+    background: rgba(101, 47, 142, 0.64);
+    background: linear-gradient(45deg, rgba(101, 47, 142, 0.88) 0%, rgba(125, 46, 185, 0.45) 100%);
+    background: -moz-linear-gradient(135deg, rgba(101, 47, 142, 0.88) 0%, rgba(125, 46, 185, 0.45) 100%);
+    background: -webkit-linear-gradient(135deg, rgba(101, 47, 142, 0.88) 0%, rgba(125, 46, 185, 0.45) 100%);
+}
+
+footer {
+    padding: 0.9375rem 0;
+    text-align: center;
+    display: -webkit-flex;
+    /* Safari */
+    /* Safari 6.1+ */
+    display: flex;
+}
+
+footer ul {
+    margin-bottom: 0;
+    padding: 0;
+    list-style: none;
+}
+
+footer ul li {
+    display: inline-block;
+}
+
+footer ul li a {
+    color: inherit;
+    padding: 0.9375rem;
+    font-weight: 500;
+    font-size: 12px;
+    text-transform: uppercase;
+    border-radius: 3px;
+    text-decoration: none;
+    position: relative;
+    display: block;
+}
+
+footer ul li a:hover {
+    text-decoration: none;
+}
+
+footer ul li .btn {
+    margin: 0;
+}
+
+footer ul.links-horizontal:first-child a {
+    padding-left: 0;
+}
+
+footer ul.links-horizontal:last-child a {
+    padding-right: 0;
+}
+
+footer ul.links-vertical li {
+    display: block;
+    margin-left: -5px;
+    margin-right: -5px;
+}
+
+footer ul.links-vertical li a {
+    padding: 5px;
+}
+
+footer .social-buttons a,
+footer .social-buttons .btn {
+    margin-top: 5px;
+    margin-bottom: 5px;
+}
+
+footer .footer-brand {
+    float: left;
+    height: 50px;
+    padding: 15px 15px;
+    font-size: 18px;
+    line-height: 20px;
+    margin-left: -15px;
+}
+
+footer .footer-brand:hover,
+footer .footer-brand:focus {
+    color: #3C4858;
+}
+
+footer .copyright {
+    padding: 15px 0;
+}
+
+footer .copyright .material-icons {
+    font-size: 18px;
+    position: relative;
+    top: 3px;
+}
+
+footer .pull-center {
+    display: inline-block;
+    float: none;
+}
+
+/*!
+ * Datetimepicker for Bootstrap 3
+ * ! version : 4.17.37
+ * https://github.com/Eonasdan/bootstrap-datetimepicker/
+ */
+
+.sr-only,
+.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after,
+.bootstrap-datetimepicker-widget .btn[data-action="today"]::after,
+.bootstrap-datetimepicker-widget .picker-switch::after,
+.bootstrap-datetimepicker-widget table th.prev::after,
+.bootstrap-datetimepicker-widget table th.next::after {
+    position: absolute;
+    width: 1px;
+    height: 1px;
+    margin: -1px;
+    padding: 0;
+    overflow: hidden;
+    clip: rect(0, 0, 0, 0);
+    border: 0;
+}
+
+.bootstrap-datetimepicker-widget {
+    list-style: none;
+}
+
+.bootstrap-datetimepicker-widget a:hover {
+    box-shadow: none !important;
+}
+
+.bootstrap-datetimepicker-widget a .btn:hover {
+    background-color: transparent;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu {
+    padding: 4px;
+    width: 19em;
+}
+
+@media (min-width: 768px) {
+    .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
+        width: 38em;
+    }
+}
+
+@media (min-width: 991px) {
+    .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
+        width: 38em;
+    }
+}
+
+@media (min-width: 1200px) {
+    .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
+        width: 38em;
+    }
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before,
+.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
+    right: auto;
+    left: 12px;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.top {
+    margin-top: auto;
+    margin-bottom: 27px;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.top.open {
+    margin-top: auto;
+    margin-bottom: 27px;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
+    left: auto;
+    right: 6px;
+}
+
+.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
+    left: auto;
+    right: 7px;
+}
+
+.bootstrap-datetimepicker-widget .list-unstyled {
+    margin: 0;
+}
+
+.bootstrap-datetimepicker-widget a[data-action] {
+    padding: 0;
+    margin: 0;
+    border-width: 0;
+    background-color: transparent;
+    color: #9c27b0;
+    box-shadow: none;
+}
+
+.bootstrap-datetimepicker-widget a[data-action]:hover {
+    background-color: transparent;
+}
+
+.bootstrap-datetimepicker-widget a[data-action]:hover span {
+    background-color: #eee;
+    color: #9c27b0;
+}
+
+.bootstrap-datetimepicker-widget a[data-action]:active {
+    box-shadow: none;
+}
+
+.bootstrap-datetimepicker-widget .timepicker-hour,
+.bootstrap-datetimepicker-widget .timepicker-minute,
+.bootstrap-datetimepicker-widget .timepicker-second {
+    width: 40px;
+    height: 40px;
+    line-height: 40px;
+    font-weight: 300;
+    font-size: 1.125rem;
+    margin: 0;
+    border-radius: 50%;
+}
+
+.bootstrap-datetimepicker-widget button[data-action] {
+    width: 38px;
+    height: 38px;
+    margin-right: 3px;
+    padding: 0;
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
+    content: "Increment Hours";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
+    content: "Increment Minutes";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
+    content: "Decrement Hours";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
+    content: "Decrement Minutes";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
+    content: "Show Hours";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
+    content: "Show Minutes";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
+    content: "Toggle AM/PM";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
+    content: "Clear the picker";
+}
+
+.bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
+    content: "Set the date to today";
+}
+
+.bootstrap-datetimepicker-widget .picker-switch {
+    text-align: center;
+    border-radius: 3px;
+    font-size: 0.875rem;
+}
+
+.bootstrap-datetimepicker-widget .picker-switch::after {
+    content: "Toggle Date and Time Screens";
+}
+
+.bootstrap-datetimepicker-widget .picker-switch td {
+    padding: 0;
+    margin: 0;
+    height: auto;
+    width: auto;
+    line-height: inherit;
+}
+
+.bootstrap-datetimepicker-widget .picker-switch td span {
+    line-height: 2.5;
+    height: 2.5em;
+    width: 100%;
+    border-radius: 3px;
+    margin: 2px 0px !important;
+}
+
+.bootstrap-datetimepicker-widget table {
+    width: 100%;
+    margin: 0;
+}
+
+.bootstrap-datetimepicker-widget table.table-condensed tr>td {
+    text-align: center;
+}
+
+.bootstrap-datetimepicker-widget table td>div,
+.bootstrap-datetimepicker-widget table th>div {
+    text-align: center;
+}
+
+.bootstrap-datetimepicker-widget table th {
+    height: 20px;
+    line-height: 20px;
+    width: 20px;
+    font-weight: 500;
+}
+
+.bootstrap-datetimepicker-widget table th.picker-switch {
+    width: 145px;
+}
+
+.bootstrap-datetimepicker-widget table th.disabled,
+.bootstrap-datetimepicker-widget table th.disabled:hover {
+    background: none;
+    color: rgba(0, 0, 0, 0.12);
+    cursor: not-allowed;
+}
+
+.bootstrap-datetimepicker-widget table th.prev span,
+.bootstrap-datetimepicker-widget table th.next span {
+    border-radius: 3px;
+    height: 27px;
+    width: 27px;
+    line-height: 28px;
+    font-size: 12px;
+    border-radius: 50%;
+    text-align: center;
+}
+
+.bootstrap-datetimepicker-widget table th.prev::after {
+    content: "Previous Month";
+}
+
+.bootstrap-datetimepicker-widget table th.next::after {
+    content: "Next Month";
+}
+
+.bootstrap-datetimepicker-widget table th.dow {
+    text-align: center;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+    font-size: 12px;
+    text-transform: uppercase;
+    color: rgba(0, 0, 0, 0.87);
+    font-weight: 400;
+    padding-bottom: 5px;
+    padding-top: 10px;
+}
+
+.bootstrap-datetimepicker-widget table thead tr:first-child th {
+    cursor: pointer;
+}
+
+.bootstrap-datetimepicker-widget table thead tr:first-child th:hover span,
+.bootstrap-datetimepicker-widget table thead tr:first-child th.picker-switch:hover {
+    background: #eee;
+}
+
+.bootstrap-datetimepicker-widget table td>div {
+    border-radius: 3px;
+    height: 54px;
+    line-height: 54px;
+    width: 54px;
+    text-align: center;
+}
+
+.bootstrap-datetimepicker-widget table td.cw>div {
+    font-size: .8em;
+    height: 20px;
+    line-height: 20px;
+    color: #999;
+}
+
+.bootstrap-datetimepicker-widget table td.day>div {
+    height: 30px;
+    line-height: 30px;
+    width: 30px;
+    text-align: center;
+    padding: 0px;
+    border-radius: 50%;
+    position: relative;
+    z-index: -1;
+    color: #3C4858;
+    font-size: 0.875rem;
+}
+
+.bootstrap-datetimepicker-widget table td.minute>div,
+.bootstrap-datetimepicker-widget table td.hour>div {
+    border-radius: 50%;
+}
+
+.bootstrap-datetimepicker-widget table td.day:hover>div,
+.bootstrap-datetimepicker-widget table td.hour:hover>div,
+.bootstrap-datetimepicker-widget table td.minute:hover>div,
+.bootstrap-datetimepicker-widget table td.second:hover>div {
+    background: #eee;
+    cursor: pointer;
+}
+
+.bootstrap-datetimepicker-widget table td.old>div,
+.bootstrap-datetimepicker-widget table td.new>div {
+    color: #999;
+}
+
+.bootstrap-datetimepicker-widget table td.today>div {
+    position: relative;
+}
+
+.bootstrap-datetimepicker-widget table td.today>div:before {
+    content: '';
+    display: inline-block;
+    border: 0 0 7px 7px solid transparent;
+    border-bottom-color: #9c27b0;
+    border-top-color: rgba(0, 0, 0, 0.2);
+    position: absolute;
+    bottom: 4px;
+    right: 4px;
+}
+
+.bootstrap-datetimepicker-widget table td.active>div,
+.bootstrap-datetimepicker-widget table td.active:hover>div {
+    background-color: #9c27b0;
+    color: #fff;
+    box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4);
+}
+
+.bootstrap-datetimepicker-widget table td.active.today:before>div {
+    border-bottom-color: #fff;
+}
+
+.bootstrap-datetimepicker-widget table td.disabled>div,
+.bootstrap-datetimepicker-widget table td.disabled:hover>div {
+    background: none;
+    color: rgba(0, 0, 0, 0.12);
+    cursor: not-allowed;
+}
+
+.bootstrap-datetimepicker-widget table td span {
+    display: inline-block;
+    width: 40px;
+    height: 40px;
+    line-height: 40px;
+    margin: 3px 3px;
+    cursor: pointer;
+    border-radius: 50%;
+    text-align: center;
+}
+
+.bootstrap-datetimepicker-widget table td span:hover {
+    background: #eee;
+}
+
+.bootstrap-datetimepicker-widget table td span.active {
+    background-color: #9c27b0;
+    color: #fff;
+}
+
+.bootstrap-datetimepicker-widget table td span.old {
+    color: #999;
+}
+
+.bootstrap-datetimepicker-widget table td span.disabled,
+.bootstrap-datetimepicker-widget table td span.disabled:hover {
+    background: none;
+    color: rgba(0, 0, 0, 0.12);
+    cursor: not-allowed;
+}
+
+.bootstrap-datetimepicker-widget .timepicker-picker span,
+.bootstrap-datetimepicker-widget .timepicker-hours span,
+.bootstrap-datetimepicker-widget .timepicker-minutes span {
+    border-radius: 50% !important;
+}
+
+.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
+    height: 27px;
+    line-height: 27px;
+}
+
+.input-group.date .input-group-addon {
+    cursor: pointer;
+}
+
+.table-condensed>tbody>tr>td,
+.table-condensed>tbody>tr>th,
+.table-condensed>tfoot>tr>td,
+.table-condensed>tfoot>tr>th,
+.table-condensed>thead>tr>td,
+.table-condensed>thead>tr>th {
+    padding: 1px;
+    text-align: center;
+    z-index: 1;
+    cursor: pointer;
+}
+
+/* Functional styling;
+ * These styles are required for noUiSlider to function.
+ * You don't need to change these rules to apply your design.
+ */
+
+.noUi-target,
+.noUi-target * {
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -ms-touch-action: none;
+    touch-action: none;
+    -ms-user-select: none;
+    -moz-user-select: none;
+    user-select: none;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+}
+
+.noUi-target {
+    position: relative;
+    direction: ltr;
+}
+
+.noUi-base {
+    width: 100%;
+    height: 100%;
+    position: relative;
+    z-index: 1;
+    /* Fix 401 */
+}
+
+.noUi-connect {
+    position: absolute;
+    right: 0;
+    top: 0;
+    left: 0;
+    bottom: 0;
+}
+
+.noUi-origin {
+    position: absolute;
+    height: 0;
+    width: 0;
+    margin: 0;
+    border-radius: 0;
+    height: 2px;
+    background: #c8c8c8;
+}
+
+.noUi-origin[style^="left: 0"] .noUi-handle {
+    background-color: #fff;
+    border: 2px solid #c8c8c8;
+}
+
+.noUi-origin[style^="left: 0"] .noUi-handle.noUi-active {
+    border-width: 1px;
+}
+
+.noUi-handle {
+    position: relative;
+    z-index: 1;
+}
+
+.noUi-state-tap .noUi-connect,
+.noUi-state-tap .noUi-origin {
+    -webkit-transition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;
+    transition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;
+}
+
+.noUi-state-drag * {
+    cursor: inherit !important;
+}
+
+/* Painting and performance;
+ * Browsers can paint handles in their own layer.
+ */
+
+.noUi-base,
+.noUi-handle {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+}
+
+/* Slider size and handle placement;
+ */
+
+.noUi-horizontal {
+    height: 2px;
+    margin: 15px 0;
+}
+
+.noUi-vertical {
+    width: 18px;
+}
+
+.noUi-vertical .noUi-handle {
+    width: 28px;
+    height: 34px;
+    left: -6px;
+    top: -17px;
+}
+
+/* Styling;
+ */
+
+.noUi-target {
+    background: #c8c8c8;
+    border-radius: 4px;
+}
+
+.noUi-connect {
+    background: #3FB8AF;
+    -webkit-transition: background 450ms;
+    transition: background 450ms;
+}
+
+/* Handles and cursors;
+ */
+
+.noUi-draggable {
+    cursor: w-resize;
+}
+
+.noUi-vertical .noUi-draggable {
+    cursor: n-resize;
+}
+
+.noUi-handle {
+    box-sizing: border-box;
+    width: 14px;
+    height: 14px;
+    left: -10px;
+    top: -6px;
+    cursor: pointer;
+    border-radius: 100%;
+    transition: all 0.2s ease-out;
+    border: 1px solid;
+    background: #fff;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
+}
+
+.noUi-handle.noUi-active {
+    transform: scale3d(1.5, 1.5, 1);
+}
+
+.noUi-vertical .noUi-handle:before,
+.noUi-vertical .noUi-handle:after {
+    width: 14px;
+    height: 1px;
+    left: 6px;
+    top: 14px;
+}
+
+.noUi-vertical .noUi-handle:after {
+    top: 17px;
+}
+
+/* Disabled state;
+ */
+
+[disabled] .noUi-connect {
+    background: #B8B8B8;
+}
+
+[disabled].noUi-target,
+[disabled].noUi-handle,
+[disabled] .noUi-handle {
+    cursor: not-allowed;
+}
+
+.slider {
+    background: #c8c8c8;
+}
+
+.slider .noUi-connect {
+    background-color: #9c27b0;
+    border-radius: 4px;
+}
+
+.slider .noUi-handle {
+    border-color: #9c27b0;
+}
+
+.slider.slider-info .noUi-connect {
+    background-color: #00bcd4;
+}
+
+.slider.slider-info .noUi-handle {
+    border-color: #00bcd4;
+}
+
+.slider.slider-success .noUi-connect {
+    background-color: #4caf50;
+}
+
+.slider.slider-success .noUi-handle {
+    border-color: #4caf50;
+}
+
+.slider.slider-warning .noUi-connect {
+    background-color: #ff9800;
+}
+
+.slider.slider-warning .noUi-handle {
+    border-color: #ff9800;
+}
+
+.slider.slider-danger .noUi-connect {
+    background-color: #f44336;
+}
+
+.slider.slider-danger .noUi-handle {
+    border-color: #f44336;
+}
+
+.slider.slider-rose .noUi-connect {
+    background-color: #e91e63;
+}
+
+.slider.slider-rose .noUi-handle {
+    border-color: #e91e63;
+}
+
+.index-page .section-components h6.description {
+    margin-top: 5px;
+    margin-bottom: 30px;
+}
+
+.index-page .page-header {
+    height: 90vh;
+    overflow: hidden;
+}
+
+.index-page .brand {
+    color: #fff;
+    text-align: center;
+}
+
+.index-page .brand h1 {
+    font-size: 4.2rem;
+    font-weight: 600;
+    display: inline-block;
+    position: relative;
+}
+
+.index-page .brand h3 {
+    font-size: 1.313rem;
+    max-width: 500px;
+    margin: 10px auto 0;
+}
+
+.index-page h4.description {
+    font-size: 1.5em;
+}
+
+.section {
+    padding: 70px 0;
+}
+
+.profile-page .page-header {
+    height: 380px;
+    background-position: top center;
+}
+
+.profile-page .profile {
+    text-align: center;
+}
+
+.profile-page .profile img {
+    max-width: 160px;
+    width: 100%;
+    margin: 0 auto;
+    -webkit-transform: translate3d(0, -50%, 0);
+    -moz-transform: translate3d(0, -50%, 0);
+    -o-transform: translate3d(0, -50%, 0);
+    -ms-transform: translate3d(0, -50%, 0);
+    transform: translate3d(0, -50%, 0);
+}
+
+.profile-page .profile .name {
+    margin-top: -80px;
+}
+
+.profile-page .follow {
+    position: absolute;
+    top: 0;
+    right: 0;
+}
+
+.profile-page .description {
+    margin: 1.071rem auto 0;
+    max-width: 600px;
+}
+
+.profile-page .profile-tabs {
+    margin-top: 4.284rem;
+}
+
+.profile-page .gallery {
+    margin-top: 3.213rem;
+    padding-bottom: 50px;
+}
+
+.profile-page .gallery img {
+    width: 100%;
+    margin-bottom: 2.142rem;
+}
+
+.profile-page .follow .btn-fab {
+    margin-top: -28px;
+}
+
+.profile-page .card-background .content {
+    padding: 30% 0;
+    min-width: 160px;
+}
+
+.profile-page .work {
+    padding: 40px 0px;
+}
+
+.profile-page .work .collections {
+    margin-top: 20px;
+}
+
+.profile-page .work .stats ul>li {
+    padding: 5px 0px;
+    font-size: 1em;
+}
+
+.profile-page .work .stats ul>li b {
+    font-size: 1.2em;
+}
+
+.profile-page .connections {
+    padding: 40px 0px;
+}
+
+.profile-page .connections .card-profile {
+    text-align: left;
+}
+
+.profile-page .tab-content .collections .card .card-body {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+}
+
+.profile-page .tab-content .collections .card .card-body .badge {
+    display: inline-table;
+    margin: 0 auto;
+}
+
+.card-signup .card-header .social-line .btn {
+    color: #fff;
+}
+
+.card-signup .text-divider {
+    margin-top: 30px;
+    margin-bottom: 0px;
+    text-align: center;
+}
+
+.signup-page .page-header {
+    min-height: 100vh;
+    height: auto;
+    display: inherit;
+}
+
+.signup-page .page-header .container {
+    padding-top: 20vh;
+}
+
+.signup-page .card-signup {
+    border-radius: 6px;
+    box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);
+    margin-bottom: 100px;
+    padding: 40px 0px;
+}
+
+.signup-page .info-horizontal {
+    padding: 0px 0px 20px;
+}
+
+.signup-page .social .btn {
+    margin: 5px;
+}
+
+.signup-page .social h4 {
+    margin-top: 20px;
+}
+
+.signup-page .footer .container {
+    padding: 0;
+}
+
+.signup-page .footer .copyright,
+.signup-page .footer a {
+    color: #fff;
+}
+
+@media all and (max-width: 991px) {
+    [class*="navbar-expand-"]>.container,
+    [class*="navbar-expand-"]>.container-fluid {
+        padding-left: 15px;
+        padding-right: 15px;
+    }
+    .navbar .navbar-collapse .navbar-nav>li.button-container {
+        padding: 15px;
+    }
+    .carousel .card .card-body {
+        max-width: 340px;
+        margin: 0 auto;
+        min-height: 400px;
+    }
+    .navbar-collapse {
+        position: fixed;
+        display: block;
+        top: 0px;
+        height: 100vh;
+        width: 230px;
+        right: 0;
+        margin-right: 0 !important;
+        z-index: 1032;
+        visibility: visible;
+        background-color: #999;
+        overflow-y: visible;
+        border-top: none;
+        text-align: left;
+        padding-right: 0;
+        padding-left: 0;
+        max-height: none !important;
+        -webkit-transform: translate3d(230px, 0, 0);
+        -moz-transform: translate3d(230px, 0, 0);
+        -o-transform: translate3d(230px, 0, 0);
+        -ms-transform: translate3d(230px, 0, 0);
+        transform: translate3d(230px, 0, 0);
+        -webkit-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        -moz-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        -o-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        -ms-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+    }
+    .navbar-collapse::after {
+        top: 0;
+        left: 0;
+        height: 100%;
+        width: 100%;
+        position: absolute;
+        background-color: #fff;
+        display: block;
+        content: "";
+        z-index: 1;
+    }
+    .navbar-collapse .dropdown-toggle:after {
+        position: absolute;
+        right: 16px;
+        margin-top: 8px;
+    }
+    .navbar-collapse .navbar-nav {
+        position: relative;
+        z-index: 3;
+    }
+    .navbar-collapse .navbar-nav .nav-item .nav-link {
+        color: #3C4858;
+        margin: 5px 15px;
+    }
+    .navbar-collapse .navbar-nav .nav-item.button-container .nav-link {
+        margin: 15px;
+    }
+    .navbar-collapse .navbar-nav .nav-item:after {
+        width: calc(100% - 30px);
+        content: "";
+        display: block;
+        height: 1px;
+        margin-left: 15px;
+        background-color: #e5e5e5;
+    }
+    .navbar-collapse .navbar-nav .nav-item:last-child:after {
+        display: none;
+    }
+    .nav-open .navbar-collapse {
+        -webkit-transform: translate3d(0px, 0, 0);
+        -moz-transform: translate3d(0px, 0, 0);
+        -o-transform: translate3d(0px, 0, 0);
+        -ms-transform: translate3d(0px, 0, 0);
+        transform: translate3d(0px, 0, 0);
+    }
+    .nav-open .navbar-translate {
+        -webkit-transform: translate3d(-230px, 0, 0);
+        -moz-transform: translate3d(-230px, 0, 0);
+        -o-transform: translate3d(-230px, 0, 0);
+        -ms-transform: translate3d(-230px, 0, 0);
+        transform: translate3d(-230px, 0, 0);
+    }
+    .navbar .navbar-translate {
+        width: 100%;
+        position: relative;
+        display: flex;
+        -ms-flex-pack: justify !important;
+        justify-content: space-between !important;
+        -ms-flex-align: center;
+        align-items: center;
+        -webkit-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        -moz-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        -o-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        -ms-transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+        transition: transform 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+    }
+    .navbar .dropdown.show .dropdown-menu {
+        display: block;
+    }
+    .navbar .dropdown .dropdown-menu {
+        display: none;
+    }
+    .navbar .dropdown-menu .dropdown-item {
+        margin-left: 1.5rem;
+        margin-right: 1.5rem;
+    }
+    .navbar .dropdown.show .dropdown-menu,
+    .navbar .dropdown .dropdown-menu {
+        background-color: transparent;
+        border: 0;
+        padding-bottom: 15px;
+        transition: none;
+        -webkit-box-shadow: none;
+        box-shadow: none;
+        transform: none !important;
+        width: auto;
+        margin-bottom: 15px;
+        padding-top: 0;
+        height: 300px;
+        animation: none;
+        opacity: 1;
+        overflow-y: scroll;
+    }
+    .navbar.navbar-transparent .navbar-toggler .navbar-toggler-icon {
+        background-color: #fff;
+    }
+    #bodyClick {
+        height: 100%;
+        width: 100%;
+        position: fixed;
+        opacity: 0;
+        top: 0;
+        left: auto;
+        right: 230px;
+        content: "";
+        z-index: 1029;
+        overflow-x: hidden;
+    }
+    #navbar .navbar-collapse,
+    #navigation .navbar-collapse {
+        display: none !important;
+    }
+}
+
+@media all and (min-width: 991px) {
+    .navbar .navbar-nav {
+        align-items: center;
+    }
+    .navbar .navbar-nav .button-container {
+        margin-left: 0.1875px;
+    }
+}
+
+@media screen and (max-width: 991px) {
+    .presentation-page .section-components .components-macbook {
+        max-width: 850px !important;
+        max-height: 480px !important;
+        margin-top: 12vh;
+        left: -12px;
+    }
+    .presentation-page .section-components .coloured-card-img,
+    .presentation-page .section-components .table-img {
+        display: none;
+    }
+    .presentation-page .section-components .social-img {
+        left: 47%;
+        top: 37%;
+    }
+    .presentation-page .section-components .pin-btn-img {
+        top: 54%;
+    }
+    .presentation-page .section-components .share-btn-img {
+        top: 12%;
+    }
+    .presentation-page .section-components .coloured-card-btn-img {
+        top: -2%;
+        left: 65%;
+    }
+    .presentation-page .section-content .area-img {
+        max-width: 130px;
+        max-height: 170px;
+    }
+    .presentation-page .section-content .info-img {
+        max-width: 170px;
+        max-height: 120px;
+    }
+}
+
+@media screen and (max-width: 767px) {
+    .presentation-page .section-components .components-macbook {
+        max-width: 350px !important;
+        max-height: 250px !important;
+        margin-top: 12vh;
+        left: -12px;
+    }
+    .presentation-page .section-components .coloured-card-img,
+    .presentation-page .section-components .table-img {
+        display: none;
+    }
+    .presentation-page .section-components .social-img {
+        left: -7%;
+        top: 37%;
+    }
+    .presentation-page .section-components .pin-btn-img {
+        top: 54%;
+    }
+    .presentation-page .section-components .share-btn-img {
+        top: 7%;
+    }
+    .presentation-page .section-components .coloured-card-btn-img {
+        top: -2%;
+    }
+    .presentation-page #cd-vertical-nav,
+    .index-page #cd-vertical-nav,
+    .section-page #cd-vertical-nav {
+        display: none;
+    }
+    .index-page .cd-section .tim-typo .tim-note {
+        width: 60px;
+    }
+}
+
+@media screen and (max-width: 400px) {
+    .pro-badge {
+        top: 90px !important;
+        right: 30px !important;
+    }
+    .cd-vertical-nav {
+        display: none !important;
+    }
+}

+ 354 - 0
css/style.css

@@ -0,0 +1,354 @@
+/*! =========================================================
+ *
+ *  BioThermSolutions.com
+ *
+ *  by: https://davidawindham.com
+ *
+ * 	Thanks: 
+ * 				https://material.io/
+ * 				https://getbootstrap.com/
+ * 				https://fezvrasta.github.io/bootstrap-material-design/
+ * 				https://demos.creative-tim.com/material-kit/index.html
+ *
+ *
+ * ========================================================= */
+
+
+/*! @import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:400,700'); */
+
+
+@font-face {
+  font-family: 'Roboto';
+  font-style: normal;
+  font-weight: 300;
+  src: local('Roboto Light'), local('Roboto-Light'),
+       url('../fonts/roboto-v18-latin-300.woff2') format('woff2'), 
+       url('../fonts/roboto-v18-latin-300.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Roboto';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Roboto'), local('Roboto-Regular'),
+       url('../fonts/roboto-v18-latin-regular.woff2') format('woff2'), 
+       url('../fonts/roboto-v18-latin-regular.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Roboto';
+  font-style: normal;
+  font-weight: 500;
+  src: local('Roboto Medium'), local('Roboto-Medium'),
+       url('../fonts/roboto-v18-latin-500.woff2') format('woff2'), 
+       url('../fonts/roboto-v18-latin-500.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Roboto';
+  font-style: normal;
+  font-weight: 700;
+  src: local('Roboto Bold'), local('Roboto-Bold'),
+       url('../fonts/roboto-v18-latin-700.woff2') format('woff2'), 
+       url('../fonts/roboto-v18-latin-700.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Roboto Slab';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Roboto Slab Regular'), local('RobotoSlab-Regular'),
+       url('../fonts/roboto-slab-v7-latin-regular.woff2') format('woff2'), 
+       url('../fonts/roboto-slab-v7-latin-regular.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Roboto Slab';
+  font-style: normal;
+  font-weight: 700;
+  src: local('Roboto Slab Bold'), local('RobotoSlab-Bold'),
+       url('../fonts/roboto-slab-v7-latin-700.woff2') format('woff2'), 
+       url('../fonts/roboto-slab-v7-latin-700.woff') format('woff');
+}
+
+p {
+	font-size: 16px;
+}
+a {
+	color:#1c8bed;
+}
+a:hover {
+	color:#16c462;
+}
+.row-deep {
+	margin-bottom:25px;
+}
+.form-control, .is-focused .form-control {
+    background-image: linear-gradient(to top, #16c462 2px, #9c27b000 2px), linear-gradient(to top, #d2d2d2 1px, #d2d2d200 1px);
+}
+
+.dark-primary-color    { background: #388E3C; }
+.default-primary-color { background: #4CAF50; }
+.light-primary-color   { background: #C8E6C9; }
+.text-primary-color    { color: #FFFFFF; }
+.accent-color          { background: #448AFF; }
+.primary-text-color    { color: #212121; }
+.secondary-text-color  { color: #757575; }
+.divider-color         { border-color: #BDBDBD; }
+
+
+.biotherm-heat-icon{
+	fill:#ec2024;
+	color:#ec2024 !important;
+}
+.biotherm-hydro-icon{
+	fill:#1c8bed;
+	color:#1c8bed !important;
+}
+.biotherm-tech-icon{
+	fill:#16c462;
+	color:#16c462 !important;
+}
+.btn.btn-hydro.signup {
+	margin:20px 0 0 0;
+}
+.btn.btn-hydro {
+    color: #fff;
+    background-color: #1c8bed;
+    border-color: #2b5580;
+    box-shadow: 0 2px 2px 0 rgba(18, 88, 150, 0.14), 0 3px 1px -2px rgba(18, 88, 150, 0.2), 0 1px 5px 0 rgba(18, 88, 150, 0.12);
+}
+.btn.btn-hydro:hover {
+    box-shadow: 0 14px 26px -12px rgba(28, 139, 237, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(28, 139, 237, 0.2);
+}
+.btn.btn-heat {
+    color: #fff;
+    background-color: #ed1c24;
+    border-color: #a91c14;
+    box-shadow: 0 2px 2px 0 rgba(169, 28, 20, 0.14), 0 3px 1px -2px rgba(169, 28, 20, 0.2), 0 1px 5px 0 rgba(169, 28, 20, 0.12);
+}
+.btn.btn-heat:hover {
+    box-shadow: 0 14px 26px -12px rgba(169, 28, 20, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(28, 139, 237, 0.2);
+}
+
+.text-info {
+    color: #1c8bed !important;
+}
+.icon.icon-info {
+    color: #4284c5;
+}
+
+.navbar-brand img {
+	padding:0 15px 20px 0;
+	margin: 0 0 0 -20px;
+}
+.navbar .navbar-nav .nav-item .nav-link {
+	font-size:15px;
+	font-weight: 800;
+}
+
+
+.dropdown-menu {
+    position: absolute;
+    top: 100%;
+    left: 0;
+    z-index: 1000;
+    display: none;
+    float: left;
+    min-width: 8.5rem;
+    padding: 0.5rem 0;
+    margin: 0.125rem 0 0;
+    font-size: 1rem;
+    color: #212529;
+    text-align: left;
+    list-style: none;
+    background-color: #fff;
+    background-clip: padding-box;
+    border: 1px solid #00000026;
+    border-radius: 0.55rem;
+    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
+}
+.dropdown-menu .dropdown-item:hover,
+.dropdown-menu .dropdown-item:focus,
+.dropdown-menu a:hover,
+.dropdown-menu a:focus,
+.dropdown-menu a:active {
+    box-shadow: none;
+    background-color: #525252;
+    color: #FFFFFF;
+	 border-radius:5px;
+}
+.dropdown-menu.columns-2 {
+	min-width: 300px;
+}
+
+.dropdown-menu li a {
+	padding: 5px 15px;
+	font-weight: 300;
+}
+
+@media (max-width: 767px) {
+	.dropdown-menu.multi-column {
+		min-width: 240px !important;
+		overflow-x: hidden;
+	}
+	.navbar-brand img {
+		padding:0 15px 20px 0;
+		margin: 0 0 0 0px;
+	}
+}
+
+
+
+.page-header.header-smaller {
+    height: 200px;
+    min-height: 200px;
+}
+.header-image-credit {
+	margin: 50px 0 -100px 0;
+	position: relative;
+	color: #fff;
+}
+.header-image-credit a {
+	color:#fff;
+}
+
+.footer-big h5, .footer-big h4, .media .media-heading {
+    font-weight: 500;
+    font-family: "Roboto Slab", "Times New Roman", serif;
+}
+footer .copyright {
+    padding: 45px 0;
+}
+
+.product-card-text {
+	min-height:160px;
+}
+
+.gallery-feed img {
+    width: 20%;
+    margin-right: 5%;
+    margin-bottom: 5%;
+    float: left;
+ }
+ .back-background, .card-background, .front-background {
+     background-position: 50%;
+     background-size: cover;
+     text-align: center;
+ }
+ .card .card-header-info,
+ .card.bg-info,
+ .card.card-rotate.bg-info .front,
+ .card.card-rotate.bg-info .back {
+     background: linear-gradient(60deg, #1c8bed, #65a4dc);
+ }
+
+
+.contactus-2 .map {
+    width: 100%;
+    height: 800px;
+    position: absolute;
+}
+
+.quote-container {
+	background:#cecece;
+	padding: 50px 0;
+}
+.quote {
+	background:#fff;
+	padding: 50px 0;
+	border-radius: 15px;
+}
+.section-gray {
+	background: #e5e5e5;
+}
+.instagram {
+	float:left;
+	max-width:150px;
+	padding: 0 1px;
+	border-radius: 10px;
+}
+.instagram:hover {
+   -webkit-filter: blur(2px);
+   filter: blur(2px);
+}
+
+ul.social-buttons li {
+	display: inline-block;
+}
+footer ul.links-vertical li a {
+	padding: 0px;
+}
+.footer a {
+	color:#999;
+}
+
+.footer-white {
+	margin: 100px 0;
+}
+footer ul li a {
+	color: inherit;
+	padding: 0.9375rem;
+	font-weight: 100;
+	font-size: 12px;
+	text-transform: uppercase;
+	border-radius: 3px;
+	text-decoration: none;
+	position: relative;
+	display: block;
+}
+.card .card-header.card-header-image {
+	position: relative;
+	padding: 0;
+	z-index: 1;
+	margin-left: 15px;
+	margin-right: 15px;
+	margin-top: -30px;
+	border-radius: 6px;
+}
+
+.card-raised {
+	-webkit-box-shadow: 0 16px 38px -12px rgba(0,0,0,0.56), 0 4px 25px 0 rgba(0,0,0,0.12), 0 8px 10px -5px rgba(0,0,0,0.2);
+	box-shadow: 0 16px 38px -12px rgba(0,0,0,0.56), 0 4px 25px 0 rgba(0,0,0,0.12), 0 8px 10px -5px rgba(0,0,0,0.2);
+}
+.card-background .card-description, .card-background small, .back-background .card-category, .back-background .card-description, .back-background small, .front-background .card-category, .front-background .card-description, .front-background small {
+	color: #ffffff !important;
+}
+.card-profile .card-avatar,
+.card-testimonial .card-avatar {
+	max-width: 130px;
+	max-height: 130px;
+	margin: -50px auto 0;
+
+	overflow: hidden;
+	padding: 0;
+	box-shadow: 0 16px 38px -12px rgba(0, 0, 0, .56), 0 4px 25px 0 rgba(0, 0, 0, .12), 0 8px 10px -5px rgba(0, 0, 0, .2)
+}
+.card-profile .card-avatar+.card-body,
+.card-testimonial .card-avatar+.card-body {
+	margin-top: 15px
+}
+.card-profile .card-avatar img,
+.card-testimonial .card-avatar img {
+	width: 100%;
+	height: auto
+}
+.card-profile .card-body+.card-footer,
+.card-testimonial .card-body+.card-footer {
+	margin-top: -15px
+}
+.card-profile .card-footer .btn.btn-just-icon,
+.card-testimonial .card-footer .btn.btn-just-icon {
+	font-size: 20px;
+	padding: 0 12px;
+	line-height: 1em
+}
+.card-profile.card-plain .card-avatar,
+.card-testimonial.card-plain .card-avatar {
+	margin-top: 0
+}
+
+
+
+
+.ekko-lightbox{display:-ms-flexbox!important;display:flex!important;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding-right:0!important}.ekko-lightbox-container{position:relative}.ekko-lightbox-container>div.ekko-lightbox-item{position:absolute;top:0;left:0;bottom:0;right:0;width:100%}.ekko-lightbox iframe{width:100%;height:100%}.ekko-lightbox-nav-overlay{z-index:1;position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex}.ekko-lightbox-nav-overlay a{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0;transition:opacity .5s;color:#fff;font-size:30px;z-index:1}.ekko-lightbox-nav-overlay a>*{-ms-flex-positive:1;flex-grow:1}.ekko-lightbox-nav-overlay a>:focus{outline:none}.ekko-lightbox-nav-overlay a span{padding:0 30px}.ekko-lightbox-nav-overlay a:last-child span{text-align:right}.ekko-lightbox-nav-overlay a:hover{text-decoration:none}.ekko-lightbox-nav-overlay a:focus{outline:none}.ekko-lightbox-nav-overlay a.disabled{cursor:default;visibility:hidden}.ekko-lightbox a:hover{opacity:1;text-decoration:none}.ekko-lightbox .modal-dialog{display:none}.ekko-lightbox .modal-footer{text-align:left}.ekko-lightbox-loader{position:absolute;top:0;left:0;bottom:0;right:0;width:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.ekko-lightbox-loader>div{width:40px;height:40px;position:relative;text-align:center}.ekko-lightbox-loader>div>div{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;animation:a 2s infinite ease-in-out}.ekko-lightbox-loader>div>div:last-child{animation-delay:-1s}.modal-dialog .ekko-lightbox-loader>div>div{background-color:#333}@keyframes a{0%,to{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}

File diff suppressed because it is too large
+ 30 - 0
heat.html


File diff suppressed because it is too large
+ 30 - 0
hydro-flood.html


File diff suppressed because it is too large
+ 30 - 0
hydro-toob.html


File diff suppressed because it is too large
+ 30 - 0
hydro.html


File diff suppressed because it is too large
+ 30 - 0
index.html


+ 1011 - 0
js/bootstrap-datetimepicker.min.js

@@ -0,0 +1,1011 @@
+/*! version : 4.17.47
+ =========================================================
+ bootstrap-datetimejs
+ https://github.com/Eonasdan/bootstrap-datetimepicker
+ Copyright (c) 2015 Jonathan Peterson
+ =========================================================
+ */
+/*
+ The MIT License (MIT)
+
+ Copyright (c) 2015 Jonathan Peterson
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+ */
+/*global define:false */
+/*global exports:false */
+/*global require:false */
+/*global jQuery:false */
+/*global moment:false */
+
+/*
+
+
+     Creative Tim Modifications
+
+     We added class btn-primary for custom styling button.
+
+
+*/
+
+! function(e) {
+    "use strict";
+    if ("function" == typeof define && define.amd) define(["jquery", "moment"], e);
+    else if ("object" == typeof exports) module.exports = e(require("jquery"), require("moment"));
+    else {
+        if ("undefined" == typeof jQuery) throw "bootstrap-datetimepicker requires jQuery to be loaded first";
+        if ("undefined" == typeof moment) throw "bootstrap-datetimepicker requires Moment.js to be loaded first";
+        e(jQuery, moment)
+    }
+}(function(e, t) {
+    "use strict";
+    if (!t) throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");
+    var n = function(n, a) {
+        var r, i, o, s, d, l, p, c = {},
+            u = !0,
+            f = !1,
+            h = !1,
+            m = 0,
+            y = [{
+                clsName: "days",
+                navFnc: "M",
+                navStep: 1
+            }, {
+                clsName: "months",
+                navFnc: "y",
+                navStep: 1
+            }, {
+                clsName: "years",
+                navFnc: "y",
+                navStep: 10
+            }, {
+                clsName: "decades",
+                navFnc: "y",
+                navStep: 100
+            }],
+            b = ["days", "months", "years", "decades"],
+            g = ["top", "bottom", "auto"],
+            w = ["left", "right", "auto"],
+            v = ["default", "top", "bottom"],
+            k = {
+                up: 38,
+                38: "up",
+                down: 40,
+                40: "down",
+                left: 37,
+                37: "left",
+                right: 39,
+                39: "right",
+                tab: 9,
+                9: "tab",
+                escape: 27,
+                27: "escape",
+                enter: 13,
+                13: "enter",
+                pageUp: 33,
+                33: "pageUp",
+                pageDown: 34,
+                34: "pageDown",
+                shift: 16,
+                16: "shift",
+                control: 17,
+                17: "control",
+                space: 32,
+                32: "space",
+                t: 84,
+                84: "t",
+                delete: 46,
+                46: "delete"
+            },
+            D = {},
+            C = function() {
+                return void 0 !== t.tz && void 0 !== a.timeZone && null !== a.timeZone && "" !== a.timeZone
+            },
+            x = function(e) {
+                var n;
+                return n = void 0 === e || null === e ? t() : t.isDate(e) || t.isMoment(e) ? t(e) : C() ? t.tz(e, l, a.useStrict, a.timeZone) : t(e, l, a.useStrict), C() && n.tz(a.timeZone), n
+            },
+            T = function(e) {
+                if ("string" != typeof e || e.length > 1) throw new TypeError("isEnabled expects a single character string parameter");
+                switch (e) {
+                    case "y":
+                        return -1 !== d.indexOf("Y");
+                    case "M":
+                        return -1 !== d.indexOf("M");
+                    case "d":
+                        return -1 !== d.toLowerCase().indexOf("d");
+                    case "h":
+                    case "H":
+                        return -1 !== d.toLowerCase().indexOf("h");
+                    case "m":
+                        return -1 !== d.indexOf("m");
+                    case "s":
+                        return -1 !== d.indexOf("s");
+                    default:
+                        return !1
+                }
+            },
+            M = function() {
+                return T("h") || T("m") || T("s")
+            },
+            S = function() {
+                return T("y") || T("M") || T("d")
+            },
+            O = function() {
+                var t = e("<thead>").append(e("<tr>").append(e("<th>").addClass("prev").attr("data-action", "previous").append(e("<span>").addClass(a.icons.previous))).append(e("<th>").addClass("picker-switch").attr("data-action", "pickerSwitch").attr("colspan", a.calendarWeeks ? "6" : "5")).append(e("<th>").addClass("next").attr("data-action", "next").append(e("<span>").addClass(a.icons.next)))),
+                    n = e("<tbody>").append(e("<tr>").append(e("<td>").attr("colspan", a.calendarWeeks ? "8" : "7")));
+                return [e("<div>").addClass("datepicker-days").append(e("<table>").addClass("table-condensed").append(t).append(e("<tbody>"))), e("<div>").addClass("datepicker-months").append(e("<table>").addClass("table-condensed").append(t.clone()).append(n.clone())), e("<div>").addClass("datepicker-years").append(e("<table>").addClass("table-condensed").append(t.clone()).append(n.clone())), e("<div>").addClass("datepicker-decades").append(e("<table>").addClass("table-condensed").append(t.clone()).append(n.clone()))]
+            },
+            P = function() {
+                var t = e("<tr>"),
+                    n = e("<tr>"),
+                    r = e("<tr>");
+                return T("h") && (t.append(e("<td>").append(e("<a>").attr({
+                    href: "#",
+                    tabindex: "-1",
+                    title: a.tooltips.incrementHour
+                }).addClass("btn").attr("data-action", "incrementHours").append(e("<span>").addClass(a.icons.up)))), n.append(e("<td>").append(e("<span>").addClass("timepicker-hour").attr({
+                    "data-time-component": "hours",
+                    title: a.tooltips.pickHour
+                }).attr("data-action", "showHours"))), r.append(e("<td>").append(e("<a>").attr({
+                    href: "#",
+                    tabindex: "-1",
+                    title: a.tooltips.decrementHour
+                }).addClass("btn").attr("data-action", "decrementHours").append(e("<span>").addClass(a.icons.down))))), T("m") && (T("h") && (t.append(e("<td>").addClass("separator")), n.append(e("<td>").addClass("separator").html(":")), r.append(e("<td>").addClass("separator"))), t.append(e("<td>").append(e("<a>").attr({
+                    href: "#",
+                    tabindex: "-1",
+                    title: a.tooltips.incrementMinute
+                }).addClass("btn").attr("data-action", "incrementMinutes").append(e("<span>").addClass(a.icons.up)))), n.append(e("<td>").append(e("<span>").addClass("timepicker-minute").attr({
+                    "data-time-component": "minutes",
+                    title: a.tooltips.pickMinute
+                }).attr("data-action", "showMinutes"))), r.append(e("<td>").append(e("<a>").attr({
+                    href: "#",
+                    tabindex: "-1",
+                    title: a.tooltips.decrementMinute
+                }).addClass("btn").attr("data-action", "decrementMinutes").append(e("<span>").addClass(a.icons.down))))), T("s") && (T("m") && (t.append(e("<td>").addClass("separator")), n.append(e("<td>").addClass("separator").html(":")), r.append(e("<td>").addClass("separator"))), t.append(e("<td>").append(e("<a>").attr({
+                    href: "#",
+                    tabindex: "-1",
+                    title: a.tooltips.incrementSecond
+                }).addClass("btn btn-link").attr("data-action", "incrementSeconds").append(e("<span>").addClass(a.icons.up)))), n.append(e("<td>").append(e("<span>").addClass("timepicker-second").attr({
+                    "data-time-component": "seconds",
+                    title: a.tooltips.pickSecond
+                }).attr("data-action", "showSeconds"))), r.append(e("<td>").append(e("<a>").attr({
+                    href: "#",
+                    tabindex: "-1",
+                    title: a.tooltips.decrementSecond
+                }).addClass("btn btn-link").attr("data-action", "decrementSeconds").append(e("<span>").addClass(a.icons.down))))), s || (t.append(e("<td>").addClass("separator")), n.append(e("<td>").append(e("<button>").addClass("btn btn-primary").attr({
+                    "data-action": "togglePeriod",
+                    tabindex: "-1",
+                    title: a.tooltips.togglePeriod
+                }))), r.append(e("<td>").addClass("separator"))), e("<div>").addClass("timepicker-picker").append(e("<table>").addClass("table-condensed").append([t, n, r]))
+            },
+            E = function() {
+                var t = e("<div>").addClass("timepicker-hours").append(e("<table>").addClass("table-condensed")),
+                    n = e("<div>").addClass("timepicker-minutes").append(e("<table>").addClass("table-condensed")),
+                    a = e("<div>").addClass("timepicker-seconds").append(e("<table>").addClass("table-condensed")),
+                    r = [P()];
+                return T("h") && r.push(t), T("m") && r.push(n), T("s") && r.push(a), r
+            },
+            H = function() {
+                var t = [];
+                return a.showTodayButton && t.push(e("<td>").append(e("<a>").attr({
+                    "data-action": "today",
+                    title: a.tooltips.today
+                }).append(e("<span>").addClass(a.icons.today)))), !a.sideBySide && S() && M() && t.push(e("<td>").append(e("<a>").attr({
+                    "data-action": "togglePicker",
+                    title: a.tooltips.selectTime
+                }).append(e("<span>").addClass(a.icons.time)))), a.showClear && t.push(e("<td>").append(e("<a>").attr({
+                    "data-action": "clear",
+                    title: a.tooltips.clear
+                }).append(e("<span>").addClass(a.icons.clear)))), a.showClose && t.push(e("<td>").append(e("<a>").attr({
+                    "data-action": "close",
+                    title: a.tooltips.close
+                }).append(e("<span>").addClass(a.icons.close)))), e("<table>").addClass("table-condensed").append(e("<tbody>").append(e("<tr>").append(t)))
+            },
+            I = function() {
+                var t = e("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),
+                    n = e("<div>").addClass("datepicker").append(O()),
+                    r = e("<div>").addClass("timepicker").append(E()),
+                    i = e("<ul>").addClass("list-unstyled"),
+                    o = e("<li>").addClass("picker-switch" + (a.collapse ? " accordion-toggle" : "")).append(H());
+                return a.inline && t.removeClass("dropdown-menu"), s && t.addClass("usetwentyfour"), T("s") && !s && t.addClass("wider"), a.sideBySide && S() && M() ? (t.addClass("timepicker-sbs"), "top" === a.toolbarPlacement && t.append(o), t.append(e("<div>").addClass("row").append(n.addClass("col-md-6")).append(r.addClass("col-md-6"))), "bottom" === a.toolbarPlacement && t.append(o), t) : ("top" === a.toolbarPlacement && i.append(o), S() && i.append(e("<li>").addClass(a.collapse && M() ? "collapse show" : "").append(n)), "default" === a.toolbarPlacement && i.append(o), M() && i.append(e("<li>").addClass(a.collapse && S() ? "collapse" : "").append(r)), "bottom" === a.toolbarPlacement && i.append(o), t.append(i))
+            },
+            Y = function() {
+                var t, r = (f || n).position(),
+                    i = (f || n).offset(),
+                    o = a.widgetPositioning.vertical,
+                    s = a.widgetPositioning.horizontal;
+                if (a.widgetParent) t = a.widgetParent.append(h);
+                else if (n.is("input")) t = n.after(h).parent();
+                else {
+                    if (a.inline) return void(t = n.append(h));
+                    t = n, n.children().first().after(h)
+                }
+                if ("auto" === o && (o = i.top + 1.5 * h.height() >= e(window).height() + e(window).scrollTop() && h.height() + n.outerHeight() < i.top ? "top" : "bottom"), "auto" === s && (s = t.width() < i.left + h.outerWidth() / 2 && i.left + h.outerWidth() > e(window).width() ? "right" : "left"), "top" === o ? h.addClass("top").removeClass("bottom") : h.addClass("bottom").removeClass("top"), "right" === s ? h.addClass("pull-right") : h.removeClass("pull-right"), "static" === t.css("position") && (t = t.parents().filter(function() {
+                        return "static" !== e(this).css("position")
+                    }).first()), 0 === t.length) throw new Error("datetimepicker component should be placed within a non-static positioned container");
+                h.css({
+                    top: "top" === o ? "auto" : r.top + n.outerHeight(),
+                    bottom: "top" === o ? t.outerHeight() - (t === n ? 0 : r.top) : "auto",
+                    left: "left" === s ? t === n ? 0 : r.left : "auto",
+                    right: "left" === s ? "auto" : t.outerWidth() - n.outerWidth() - (t === n ? 0 : r.left)
+                }), setTimeout(function() {
+                    h.addClass("open")
+                }, 180)
+            },
+            q = function(e) {
+                "dp.change" === e.type && (e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate) || n.trigger(e)
+            },
+            B = function(e) {
+                "y" === e && (e = "YYYY"), q({
+                    type: "dp.update",
+                    change: e,
+                    viewDate: i.clone()
+                })
+            },
+            j = function(e) {
+                h && (e && (p = Math.max(m, Math.min(3, p + e))), h.find(".datepicker > div").hide().filter(".datepicker-" + y[p].clsName).show())
+            },
+            A = function() {
+                var t = e("<tr>"),
+                    n = i.clone().startOf("w").startOf("d");
+                for (!0 === a.calendarWeeks && t.append(e("<th>").addClass("cw").text("#")); n.isBefore(i.clone().endOf("w"));) t.append(e("<th>").addClass("dow").text(n.format("dd"))), n.add(1, "d");
+                h.find(".datepicker-days thead").append(t)
+            },
+            F = function(e) {
+                return !0 === a.disabledDates[e.format("YYYY-MM-DD")]
+            },
+            L = function(e) {
+                return !0 === a.enabledDates[e.format("YYYY-MM-DD")]
+            },
+            W = function(e) {
+                return !0 === a.disabledHours[e.format("H")]
+            },
+            z = function(e) {
+                return !0 === a.enabledHours[e.format("H")]
+            },
+            N = function(t, n) {
+                if (!t.isValid()) return !1;
+                if (a.disabledDates && "d" === n && F(t)) return !1;
+                if (a.enabledDates && "d" === n && !L(t)) return !1;
+                if (a.minDate && t.isBefore(a.minDate, n)) return !1;
+                if (a.maxDate && t.isAfter(a.maxDate, n)) return !1;
+                if (a.daysOfWeekDisabled && "d" === n && -1 !== a.daysOfWeekDisabled.indexOf(t.day())) return !1;
+                if (a.disabledHours && ("h" === n || "m" === n || "s" === n) && W(t)) return !1;
+                if (a.enabledHours && ("h" === n || "m" === n || "s" === n) && !z(t)) return !1;
+                if (a.disabledTimeIntervals && ("h" === n || "m" === n || "s" === n)) {
+                    var r = !1;
+                    if (e.each(a.disabledTimeIntervals, function() {
+                            if (t.isBetween(this[0], this[1])) return r = !0, !1
+                        }), r) return !1
+                }
+                return !0
+            },
+            V = function() {
+                for (var t = [], n = i.clone().startOf("y").startOf("d"); n.isSame(i, "y");) t.push(e("<span>").attr("data-action", "selectMonth").addClass("month").text(n.format("MMM"))), n.add(1, "M");
+                h.find(".datepicker-months td").empty().append(t)
+            },
+            Z = function() {
+                var t = h.find(".datepicker-months"),
+                    n = t.find("th"),
+                    o = t.find("tbody").find("span");
+                n.eq(0).find("span").attr("title", a.tooltips.prevYear), n.eq(1).attr("title", a.tooltips.selectYear), n.eq(2).find("span").attr("title", a.tooltips.nextYear), t.find(".disabled").removeClass("disabled"), N(i.clone().subtract(1, "y"), "y") || n.eq(0).addClass("disabled"), n.eq(1).text(i.year()), N(i.clone().add(1, "y"), "y") || n.eq(2).addClass("disabled"), o.removeClass("active"), r.isSame(i, "y") && !u && o.eq(r.month()).addClass("active"), o.each(function(t) {
+                    N(i.clone().month(t), "M") || e(this).addClass("disabled")
+                })
+            },
+            R = function() {
+                var e = h.find(".datepicker-years"),
+                    t = e.find("th"),
+                    n = i.clone().subtract(5, "y"),
+                    o = i.clone().add(6, "y"),
+                    s = "";
+                for (t.eq(0).find("span").attr("title", a.tooltips.prevDecade), t.eq(1).attr("title", a.tooltips.selectDecade), t.eq(2).find("span").attr("title", a.tooltips.nextDecade), e.find(".disabled").removeClass("disabled"), a.minDate && a.minDate.isAfter(n, "y") && t.eq(0).addClass("disabled"), t.eq(1).text(n.year() + "-" + o.year()), a.maxDate && a.maxDate.isBefore(o, "y") && t.eq(2).addClass("disabled"); !n.isAfter(o, "y");) s += '<span data-action="selectYear" class="year' + (n.isSame(r, "y") && !u ? " active" : "") + (N(n, "y") ? "" : " disabled") + '">' + n.year() + "</span>", n.add(1, "y");
+                e.find("td").html(s)
+            },
+            Q = function() {
+                var e, n = h.find(".datepicker-decades"),
+                    o = n.find("th"),
+                    s = t({
+                        y: i.year() - i.year() % 100 - 1
+                    }),
+                    d = s.clone().add(100, "y"),
+                    l = s.clone(),
+                    p = !1,
+                    c = !1,
+                    u = "";
+                for (o.eq(0).find("span").attr("title", a.tooltips.prevCentury), o.eq(2).find("span").attr("title", a.tooltips.nextCentury), n.find(".disabled").removeClass("disabled"), (s.isSame(t({
+                        y: 1900
+                    })) || a.minDate && a.minDate.isAfter(s, "y")) && o.eq(0).addClass("disabled"), o.eq(1).text(s.year() + "-" + d.year()), (s.isSame(t({
+                        y: 2e3
+                    })) || a.maxDate && a.maxDate.isBefore(d, "y")) && o.eq(2).addClass("disabled"); !s.isAfter(d, "y");) e = s.year() + 12, p = a.minDate && a.minDate.isAfter(s, "y") && a.minDate.year() <= e, c = a.maxDate && a.maxDate.isAfter(s, "y") && a.maxDate.year() <= e, u += '<span data-action="selectDecade" class="decade' + (r.isAfter(s) && r.year() <= e ? " active" : "") + (N(s, "y") || p || c ? "" : " disabled") + '" data-selection="' + (s.year() + 6) + '">' + (s.year() + 1) + " - " + (s.year() + 12) + "</span>", s.add(12, "y");
+                u += "<span></span><span></span><span></span>", n.find("td").html(u), o.eq(1).text(l.year() + 1 + "-" + s.year())
+            },
+            U = function() {
+                var t, n, o, s = h.find(".datepicker-days"),
+                    d = s.find("th"),
+                    l = [],
+                    p = [];
+                if (S()) {
+                    for (d.eq(0).find("span").attr("title", a.tooltips.prevMonth), d.eq(1).attr("title", a.tooltips.selectMonth), d.eq(2).find("span").attr("title", a.tooltips.nextMonth), s.find(".disabled").removeClass("disabled"), d.eq(1).text(i.format(a.dayViewHeaderFormat)), N(i.clone().subtract(1, "M"), "M") || d.eq(0).addClass("disabled"), N(i.clone().add(1, "M"), "M") || d.eq(2).addClass("disabled"), t = i.clone().startOf("M").startOf("w").startOf("d"), o = 0; o < 42; o++) 0 === t.weekday() && (n = e("<tr>"), a.calendarWeeks && n.append('<td class="cw">' + t.week() + "</td>"), l.push(n)), p = ["day"], t.isBefore(i, "M") && p.push("old"), t.isAfter(i, "M") && p.push("new"), t.isSame(r, "d") && !u && p.push("active"), N(t, "d") || p.push("disabled"), t.isSame(x(), "d") && p.push("today"), 0 !== t.day() && 6 !== t.day() || p.push("weekend"), q({
+                        type: "dp.classify",
+                        date: t,
+                        classNames: p
+                    }), n.append('<td data-action="selectDay" data-day="' + t.format("L") + '" class="' + p.join(" ") + '"><div>' + t.date() + "</div></td>"), t.add(1, "d");
+                    s.find("tbody").empty().append(l), Z(), R(), Q()
+                }
+            },
+            G = function() {
+                var t = h.find(".timepicker-hours table"),
+                    n = i.clone().startOf("d"),
+                    a = [],
+                    r = e("<tr>");
+                for (i.hour() > 11 && !s && n.hour(12); n.isSame(i, "d") && (s || i.hour() < 12 && n.hour() < 12 || i.hour() > 11);) n.hour() % 4 == 0 && (r = e("<tr>"), a.push(r)), r.append('<td data-action="selectHour" class="hour' + (N(n, "h") ? "" : " disabled") + '"><div>' + n.format(s ? "HH" : "hh") + "</div></td>"), n.add(1, "h");
+                t.empty().append(a)
+            },
+            J = function() {
+                for (var t = h.find(".timepicker-minutes table"), n = i.clone().startOf("h"), r = [], o = e("<tr>"), s = 1 === a.stepping ? 5 : a.stepping; i.isSame(n, "h");) n.minute() % (4 * s) == 0 && (o = e("<tr>"), r.push(o)), o.append('<td data-action="selectMinute" class="minute' + (N(n, "m") ? "" : " disabled") + '"><div>' + n.format("mm") + "</div></td>"), n.add(s, "m");
+                t.empty().append(r)
+            },
+            K = function() {
+                for (var t = h.find(".timepicker-seconds table"), n = i.clone().startOf("m"), a = [], r = e("<tr>"); i.isSame(n, "m");) n.second() % 20 == 0 && (r = e("<tr>"), a.push(r)), r.append('<td data-action="selectSecond" class="second' + (N(n, "s") ? "" : " disabled") + '"><div>' + n.format("ss") + "</div></td>"), n.add(5, "s");
+                t.empty().append(a)
+            },
+            X = function() {
+                var e, t, n = h.find(".timepicker span[data-time-component]");
+                s || (e = h.find(".timepicker [data-action=togglePeriod]"), t = r.clone().add(r.hours() >= 12 ? -12 : 12, "h"), e.text(r.format("A")), N(t, "h") ? e.removeClass("disabled") : e.addClass("disabled")), n.filter("[data-time-component=hours]").text(r.format(s ? "HH" : "hh")), n.filter("[data-time-component=minutes]").text(r.format("mm")), n.filter("[data-time-component=seconds]").text(r.format("ss")), G(), J(), K()
+            },
+            $ = function() {
+                h && (U(), X())
+            },
+            _ = function(e) {
+                var t = u ? null : r;
+                if (!e) return u = !0, o.val(""), n.data("date", ""), q({
+                    type: "dp.change",
+                    date: !1,
+                    oldDate: t
+                }), void $();
+                if (e = e.clone().locale(a.locale), C() && e.tz(a.timeZone), 1 !== a.stepping)
+                    for (e.minutes(Math.round(e.minutes() / a.stepping) * a.stepping).seconds(0); a.minDate && e.isBefore(a.minDate);) e.add(a.stepping, "minutes");
+                N(e) ? (i = (r = e).clone(), o.val(r.format(d)), n.data("date", r.format(d)), u = !1, $(), q({
+                    type: "dp.change",
+                    date: r.clone(),
+                    oldDate: t
+                })) : (a.keepInvalid ? q({
+                    type: "dp.change",
+                    date: e,
+                    oldDate: t
+                }) : o.val(u ? "" : r.format(d)), q({
+                    type: "dp.error",
+                    date: e,
+                    oldDate: t
+                }))
+            },
+            ee = function() {
+                var t = !1;
+                return h ? (h.find(".collapse").each(function() {
+                    var n = e(this).data("collapse");
+                    return !n || !n.transitioning || (t = !0, !1)
+                }), t ? c : (f && f.hasClass("btn") && f.toggleClass("active"), e(window).off("resize", Y), h.off("click", "[data-action]"), h.off("mousedown", !1), h.removeClass("open"), void setTimeout(function() {
+                    return h.remove(), h.hide(), h = !1, q({
+                        type: "dp.hide",
+                        date: r.clone()
+                    }), o.blur(), p = 0, i = r.clone(), c
+                }, 400))) : c
+            },
+            te = function() {
+                _(null)
+            },
+            ne = function(e) {
+                return void 0 === a.parseInputDate ? (!t.isMoment(e) || e instanceof Date) && (e = x(e)) : e = a.parseInputDate(e), e
+            },
+            ae = {
+                next: function() {
+                    var e = y[p].navFnc;
+                    i.add(y[p].navStep, e), U(), B(e)
+                },
+                previous: function() {
+                    var e = y[p].navFnc;
+                    i.subtract(y[p].navStep, e), U(), B(e)
+                },
+                pickerSwitch: function() {
+                    j(1)
+                },
+                selectMonth: function(t) {
+                    var n = e(t.target).closest("tbody").find("span").index(e(t.target));
+                    i.month(n), p === m ? (_(r.clone().year(i.year()).month(i.month())), a.inline || ee()) : (j(-1), U()), B("M")
+                },
+                selectYear: function(t) {
+                    var n = parseInt(e(t.target).text(), 10) || 0;
+                    i.year(n), p === m ? (_(r.clone().year(i.year())), a.inline || ee()) : (j(-1), U()), B("YYYY")
+                },
+                selectDecade: function(t) {
+                    var n = parseInt(e(t.target).data("selection"), 10) || 0;
+                    i.year(n), p === m ? (_(r.clone().year(i.year())), a.inline || ee()) : (j(-1), U()), B("YYYY")
+                },
+                selectDay: function(t) {
+                    var n = i.clone();
+                    e(t.target).is(".old") && n.subtract(1, "M"), e(t.target).is(".new") && n.add(1, "M"), _(n.date(parseInt(e(t.target).text(), 10))), M() || a.keepOpen || a.inline || ee()
+                },
+                incrementHours: function() {
+                    var e = r.clone().add(1, "h");
+                    N(e, "h") && _(e)
+                },
+                incrementMinutes: function() {
+                    var e = r.clone().add(a.stepping, "m");
+                    N(e, "m") && _(e)
+                },
+                incrementSeconds: function() {
+                    var e = r.clone().add(1, "s");
+                    N(e, "s") && _(e)
+                },
+                decrementHours: function() {
+                    var e = r.clone().subtract(1, "h");
+                    N(e, "h") && _(e)
+                },
+                decrementMinutes: function() {
+                    var e = r.clone().subtract(a.stepping, "m");
+                    N(e, "m") && _(e)
+                },
+                decrementSeconds: function() {
+                    var e = r.clone().subtract(1, "s");
+                    N(e, "s") && _(e)
+                },
+                togglePeriod: function() {
+                    _(r.clone().add(r.hours() >= 12 ? -12 : 12, "h"))
+                },
+                togglePicker: function(t) {
+                    var n, r = e(t.target),
+                        i = r.closest("ul"),
+                        o = i.find(".show"),
+                        s = i.find(".collapse:not(.show)");
+                    if (o && o.length) {
+                        if ((n = o.data("collapse")) && n.transitioning) return;
+                        o.collapse ? (o.collapse("hide"), s.collapse("show")) : (o.removeClass("show"), s.addClass("show")), r.is("span") ? r.toggleClass(a.icons.time + " " + a.icons.date) : r.find("span").toggleClass(a.icons.time + " " + a.icons.date)
+                    }
+                },
+                showPicker: function() {
+                    h.find(".timepicker > div:not(.timepicker-picker)").hide(), h.find(".timepicker .timepicker-picker").show()
+                },
+                showHours: function() {
+                    h.find(".timepicker .timepicker-picker").hide(), h.find(".timepicker .timepicker-hours").show()
+                },
+                showMinutes: function() {
+                    h.find(".timepicker .timepicker-picker").hide(), h.find(".timepicker .timepicker-minutes").show()
+                },
+                showSeconds: function() {
+                    h.find(".timepicker .timepicker-picker").hide(), h.find(".timepicker .timepicker-seconds").show()
+                },
+                selectHour: function(t) {
+                    var n = parseInt(e(t.target).text(), 10);
+                    s || (r.hours() >= 12 ? 12 !== n && (n += 12) : 12 === n && (n = 0)), _(r.clone().hours(n)), ae.showPicker.call(c)
+                },
+                selectMinute: function(t) {
+                    _(r.clone().minutes(parseInt(e(t.target).text(), 10))), ae.showPicker.call(c)
+                },
+                selectSecond: function(t) {
+                    _(r.clone().seconds(parseInt(e(t.target).text(), 10))), ae.showPicker.call(c)
+                },
+                clear: te,
+                today: function() {
+                    var e = x();
+                    N(e, "d") && _(e)
+                },
+                close: ee
+            },
+            re = function(t) {
+                return !e(t.currentTarget).is(".disabled") && (ae[e(t.currentTarget).data("action")].apply(c, arguments), !1)
+            },
+            ie = function() {
+                var t, n = {
+                    year: function(e) {
+                        return e.month(0).date(1).hours(0).seconds(0).minutes(0)
+                    },
+                    month: function(e) {
+                        return e.date(1).hours(0).seconds(0).minutes(0)
+                    },
+                    day: function(e) {
+                        return e.hours(0).seconds(0).minutes(0)
+                    },
+                    hour: function(e) {
+                        return e.seconds(0).minutes(0)
+                    },
+                    minute: function(e) {
+                        return e.seconds(0)
+                    }
+                };
+                return o.prop("disabled") || !a.ignoreReadonly && o.prop("readonly") || h ? c : (void 0 !== o.val() && 0 !== o.val().trim().length ? _(ne(o.val().trim())) : u && a.useCurrent && (a.inline || o.is("input") && 0 === o.val().trim().length) && (t = x(), "string" == typeof a.useCurrent && (t = n[a.useCurrent](t)), _(t)), h = I(), A(), V(), h.find(".timepicker-hours").hide(), h.find(".timepicker-minutes").hide(), h.find(".timepicker-seconds").hide(), $(), j(), e(window).on("resize", Y), h.on("click", "[data-action]", re), h.on("mousedown", !1), f && f.hasClass("btn") && f.toggleClass("active"), Y(), h.show(), a.focusOnShow && !o.is(":focus") && o.focus(), q({
+                    type: "dp.show"
+                }), c)
+            },
+            oe = function() {
+                return h ? ee() : ie()
+            },
+            se = function(e) {
+                var t, n, r, i, o = null,
+                    s = [],
+                    d = {},
+                    l = e.which;
+                D[l] = "p";
+                for (t in D) D.hasOwnProperty(t) && "p" === D[t] && (s.push(t), parseInt(t, 10) !== l && (d[t] = !0));
+                for (t in a.keyBinds)
+                    if (a.keyBinds.hasOwnProperty(t) && "function" == typeof a.keyBinds[t] && (r = t.split(" ")).length === s.length && k[l] === r[r.length - 1]) {
+                        for (i = !0, n = r.length - 2; n >= 0; n--)
+                            if (!(k[r[n]] in d)) {
+                                i = !1;
+                                break
+                            }
+                        if (i) {
+                            o = a.keyBinds[t];
+                            break
+                        }
+                    }
+                o && (o.call(c, h), e.stopPropagation(), e.preventDefault())
+            },
+            de = function(e) {
+                D[e.which] = "r", e.stopPropagation(), e.preventDefault()
+            },
+            le = function(t) {
+                var n = e(t.target).val().trim(),
+                    a = n ? ne(n) : null;
+                return _(a), t.stopImmediatePropagation(), !1
+            },
+            pe = function() {
+                o.off({
+                    change: le,
+                    blur: blur,
+                    keydown: se,
+                    keyup: de,
+                    focus: a.allowInputToggle ? ee : ""
+                }), n.is("input") ? o.off({
+                    focus: ie
+                }) : f && (f.off("click", oe), f.off("mousedown", !1))
+            },
+            ce = function(t) {
+                var n = {};
+                return e.each(t, function() {
+                    var e = ne(this);
+                    e.isValid() && (n[e.format("YYYY-MM-DD")] = !0)
+                }), !!Object.keys(n).length && n
+            },
+            ue = function(t) {
+                var n = {};
+                return e.each(t, function() {
+                    n[this] = !0
+                }), !!Object.keys(n).length && n
+            },
+            fe = function() {
+                var e = a.format || "L LT";
+                d = e.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function(e) {
+                    return (r.localeData().longDateFormat(e) || e).replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function(e) {
+                        return r.localeData().longDateFormat(e) || e
+                    })
+                }), (l = a.extraFormats ? a.extraFormats.slice() : []).indexOf(e) < 0 && l.indexOf(d) < 0 && l.push(d), s = d.toLowerCase().indexOf("a") < 1 && d.replace(/\[.*?\]/g, "").indexOf("h") < 1, T("y") && (m = 2), T("M") && (m = 1), T("d") && (m = 0), p = Math.max(m, p), u || _(r)
+            };
+        if (c.destroy = function() {
+                ee(), pe(), n.removeData("DateTimePicker"), n.removeData("date")
+            }, c.toggle = oe, c.show = ie, c.hide = ee, c.disable = function() {
+                return ee(), f && f.hasClass("btn") && f.addClass("disabled"), o.prop("disabled", !0), c
+            }, c.enable = function() {
+                return f && f.hasClass("btn") && f.removeClass("disabled"), o.prop("disabled", !1), c
+            }, c.ignoreReadonly = function(e) {
+                if (0 === arguments.length) return a.ignoreReadonly;
+                if ("boolean" != typeof e) throw new TypeError("ignoreReadonly () expects a boolean parameter");
+                return a.ignoreReadonly = e, c
+            }, c.options = function(t) {
+                if (0 === arguments.length) return e.extend(!0, {}, a);
+                if (!(t instanceof Object)) throw new TypeError("options() options parameter should be an object");
+                return e.extend(!0, a, t), e.each(a, function(e, t) {
+                    if (void 0 === c[e]) throw new TypeError("option " + e + " is not recognized!");
+                    c[e](t)
+                }), c
+            }, c.date = function(e) {
+                if (0 === arguments.length) return u ? null : r.clone();
+                if (!(null === e || "string" == typeof e || t.isMoment(e) || e instanceof Date)) throw new TypeError("date() parameter must be one of [null, string, moment or Date]");
+                return _(null === e ? null : ne(e)), c
+            }, c.format = function(e) {
+                if (0 === arguments.length) return a.format;
+                if ("string" != typeof e && ("boolean" != typeof e || !1 !== e)) throw new TypeError("format() expects a string or boolean:false parameter " + e);
+                return a.format = e, d && fe(), c
+            }, c.timeZone = function(e) {
+                if (0 === arguments.length) return a.timeZone;
+                if ("string" != typeof e) throw new TypeError("newZone() expects a string parameter");
+                return a.timeZone = e, c
+            }, c.dayViewHeaderFormat = function(e) {
+                if (0 === arguments.length) return a.dayViewHeaderFormat;
+                if ("string" != typeof e) throw new TypeError("dayViewHeaderFormat() expects a string parameter");
+                return a.dayViewHeaderFormat = e, c
+            }, c.extraFormats = function(e) {
+                if (0 === arguments.length) return a.extraFormats;
+                if (!1 !== e && !(e instanceof Array)) throw new TypeError("extraFormats() expects an array or false parameter");
+                return a.extraFormats = e, l && fe(), c
+            }, c.disabledDates = function(t) {
+                if (0 === arguments.length) return a.disabledDates ? e.extend({}, a.disabledDates) : a.disabledDates;
+                if (!t) return a.disabledDates = !1, $(), c;
+                if (!(t instanceof Array)) throw new TypeError("disabledDates() expects an array parameter");
+                return a.disabledDates = ce(t), a.enabledDates = !1, $(), c
+            }, c.enabledDates = function(t) {
+                if (0 === arguments.length) return a.enabledDates ? e.extend({}, a.enabledDates) : a.enabledDates;
+                if (!t) return a.enabledDates = !1, $(), c;
+                if (!(t instanceof Array)) throw new TypeError("enabledDates() expects an array parameter");
+                return a.enabledDates = ce(t), a.disabledDates = !1, $(), c
+            }, c.daysOfWeekDisabled = function(e) {
+                if (0 === arguments.length) return a.daysOfWeekDisabled.splice(0);
+                if ("boolean" == typeof e && !e) return a.daysOfWeekDisabled = !1, $(), c;
+                if (!(e instanceof Array)) throw new TypeError("daysOfWeekDisabled() expects an array parameter");
+                if (a.daysOfWeekDisabled = e.reduce(function(e, t) {
+                        return (t = parseInt(t, 10)) > 6 || t < 0 || isNaN(t) ? e : (-1 === e.indexOf(t) && e.push(t), e)
+                    }, []).sort(), a.useCurrent && !a.keepInvalid) {
+                    for (var t = 0; !N(r, "d");) {
+                        if (r.add(1, "d"), 31 === t) throw "Tried 31 times to find a valid date";
+                        t++
+                    }
+                    _(r)
+                }
+                return $(), c
+            }, c.maxDate = function(e) {
+                if (0 === arguments.length) return a.maxDate ? a.maxDate.clone() : a.maxDate;
+                if ("boolean" == typeof e && !1 === e) return a.maxDate = !1, $(), c;
+                "string" == typeof e && ("now" !== e && "moment" !== e || (e = x()));
+                var t = ne(e);
+                if (!t.isValid()) throw new TypeError("maxDate() Could not parse date parameter: " + e);
+                if (a.minDate && t.isBefore(a.minDate)) throw new TypeError("maxDate() date parameter is before options.minDate: " + t.format(d));
+                return a.maxDate = t, a.useCurrent && !a.keepInvalid && r.isAfter(e) && _(a.maxDate), i.isAfter(t) && (i = t.clone().subtract(a.stepping, "m")), $(), c
+            }, c.minDate = function(e) {
+                if (0 === arguments.length) return a.minDate ? a.minDate.clone() : a.minDate;
+                if ("boolean" == typeof e && !1 === e) return a.minDate = !1, $(), c;
+                "string" == typeof e && ("now" !== e && "moment" !== e || (e = x()));
+                var t = ne(e);
+                if (!t.isValid()) throw new TypeError("minDate() Could not parse date parameter: " + e);
+                if (a.maxDate && t.isAfter(a.maxDate)) throw new TypeError("minDate() date parameter is after options.maxDate: " + t.format(d));
+                return a.minDate = t, a.useCurrent && !a.keepInvalid && r.isBefore(e) && _(a.minDate), i.isBefore(t) && (i = t.clone().add(a.stepping, "m")), $(), c
+            }, c.defaultDate = function(e) {
+                if (0 === arguments.length) return a.defaultDate ? a.defaultDate.clone() : a.defaultDate;
+                if (!e) return a.defaultDate = !1, c;
+                "string" == typeof e && (e = "now" === e || "moment" === e ? x() : x(e));
+                var t = ne(e);
+                if (!t.isValid()) throw new TypeError("defaultDate() Could not parse date parameter: " + e);
+                if (!N(t)) throw new TypeError("defaultDate() date passed is invalid according to component setup validations");
+                return a.defaultDate = t, (a.defaultDate && a.inline || "" === o.val().trim()) && _(a.defaultDate), c
+            }, c.locale = function(e) {
+                if (0 === arguments.length) return a.locale;
+                if (!t.localeData(e)) throw new TypeError("locale() locale " + e + " is not loaded from moment locales!");
+                return a.locale = e, r.locale(a.locale), i.locale(a.locale), d && fe(), h && (ee(), ie()), c
+            }, c.stepping = function(e) {
+                return 0 === arguments.length ? a.stepping : (e = parseInt(e, 10), (isNaN(e) || e < 1) && (e = 1), a.stepping = e, c)
+            }, c.useCurrent = function(e) {
+                var t = ["year", "month", "day", "hour", "minute"];
+                if (0 === arguments.length) return a.useCurrent;
+                if ("boolean" != typeof e && "string" != typeof e) throw new TypeError("useCurrent() expects a boolean or string parameter");
+                if ("string" == typeof e && -1 === t.indexOf(e.toLowerCase())) throw new TypeError("useCurrent() expects a string parameter of " + t.join(", "));
+                return a.useCurrent = e, c
+            }, c.collapse = function(e) {
+                if (0 === arguments.length) return a.collapse;
+                if ("boolean" != typeof e) throw new TypeError("collapse() expects a boolean parameter");
+                return a.collapse === e ? c : (a.collapse = e, h && (ee(), ie()), c)
+            }, c.icons = function(t) {
+                if (0 === arguments.length) return e.extend({}, a.icons);
+                if (!(t instanceof Object)) throw new TypeError("icons() expects parameter to be an Object");
+                return e.extend(a.icons, t), h && (ee(), ie()), c
+            }, c.tooltips = function(t) {
+                if (0 === arguments.length) return e.extend({}, a.tooltips);
+                if (!(t instanceof Object)) throw new TypeError("tooltips() expects parameter to be an Object");
+                return e.extend(a.tooltips, t), h && (ee(), ie()), c
+            }, c.useStrict = function(e) {
+                if (0 === arguments.length) return a.useStrict;
+                if ("boolean" != typeof e) throw new TypeError("useStrict() expects a boolean parameter");
+                return a.useStrict = e, c
+            }, c.sideBySide = function(e) {
+                if (0 === arguments.length) return a.sideBySide;
+                if ("boolean" != typeof e) throw new TypeError("sideBySide() expects a boolean parameter");
+                return a.sideBySide = e, h && (ee(), ie()), c
+            }, c.viewMode = function(e) {
+                if (0 === arguments.length) return a.viewMode;
+                if ("string" != typeof e) throw new TypeError("viewMode() expects a string parameter");
+                if (-1 === b.indexOf(e)) throw new TypeError("viewMode() parameter must be one of (" + b.join(", ") + ") value");
+                return a.viewMode = e, p = Math.max(b.indexOf(e), m), j(), c
+            }, c.toolbarPlacement = function(e) {
+                if (0 === arguments.length) return a.toolbarPlacement;
+                if ("string" != typeof e) throw new TypeError("toolbarPlacement() expects a string parameter");
+                if (-1 === v.indexOf(e)) throw new TypeError("toolbarPlacement() parameter must be one of (" + v.join(", ") + ") value");
+                return a.toolbarPlacement = e, h && (ee(), ie()), c
+            }, c.widgetPositioning = function(t) {
+                if (0 === arguments.length) return e.extend({}, a.widgetPositioning);
+                if ("[object Object]" !== {}.toString.call(t)) throw new TypeError("widgetPositioning() expects an object variable");
+                if (t.horizontal) {
+                    if ("string" != typeof t.horizontal) throw new TypeError("widgetPositioning() horizontal variable must be a string");
+                    if (t.horizontal = t.horizontal.toLowerCase(), -1 === w.indexOf(t.horizontal)) throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + w.join(", ") + ")");
+                    a.widgetPositioning.horizontal = t.horizontal
+                }
+                if (t.vertical) {
+                    if ("string" != typeof t.vertical) throw new TypeError("widgetPositioning() vertical variable must be a string");
+                    if (t.vertical = t.vertical.toLowerCase(), -1 === g.indexOf(t.vertical)) throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + g.join(", ") + ")");
+                    a.widgetPositioning.vertical = t.vertical
+                }
+                return $(), c
+            }, c.calendarWeeks = function(e) {
+                if (0 === arguments.length) return a.calendarWeeks;
+                if ("boolean" != typeof e) throw new TypeError("calendarWeeks() expects parameter to be a boolean value");
+                return a.calendarWeeks = e, $(), c
+            }, c.showTodayButton = function(e) {
+                if (0 === arguments.length) return a.showTodayButton;
+                if ("boolean" != typeof e) throw new TypeError("showTodayButton() expects a boolean parameter");
+                return a.showTodayButton = e, h && (ee(), ie()), c
+            }, c.showClear = function(e) {
+                if (0 === arguments.length) return a.showClear;
+                if ("boolean" != typeof e) throw new TypeError("showClear() expects a boolean parameter");
+                return a.showClear = e, h && (ee(), ie()), c
+            }, c.widgetParent = function(t) {
+                if (0 === arguments.length) return a.widgetParent;
+                if ("string" == typeof t && (t = e(t)), null !== t && "string" != typeof t && !(t instanceof e)) throw new TypeError("widgetParent() expects a string or a jQuery object parameter");
+                return a.widgetParent = t, h && (ee(), ie()), c
+            }, c.keepOpen = function(e) {
+                if (0 === arguments.length) return a.keepOpen;
+                if ("boolean" != typeof e) throw new TypeError("keepOpen() expects a boolean parameter");
+                return a.keepOpen = e, c
+            }, c.focusOnShow = function(e) {
+                if (0 === arguments.length) return a.focusOnShow;
+                if ("boolean" != typeof e) throw new TypeError("focusOnShow() expects a boolean parameter");
+                return a.focusOnShow = e, c
+            }, c.inline = function(e) {
+                if (0 === arguments.length) return a.inline;
+                if ("boolean" != typeof e) throw new TypeError("inline() expects a boolean parameter");
+                return a.inline = e, c
+            }, c.clear = function() {
+                return te(), c
+            }, c.keyBinds = function(e) {
+                return 0 === arguments.length ? a.keyBinds : (a.keyBinds = e, c)
+            }, c.getMoment = function(e) {
+                return x(e)
+            }, c.debug = function(e) {
+                if ("boolean" != typeof e) throw new TypeError("debug() expects a boolean parameter");
+                return a.debug = e, c
+            }, c.allowInputToggle = function(e) {
+                if (0 === arguments.length) return a.allowInputToggle;
+                if ("boolean" != typeof e) throw new TypeError("allowInputToggle() expects a boolean parameter");
+                return a.allowInputToggle = e, c
+            }, c.showClose = function(e) {
+                if (0 === arguments.length) return a.showClose;
+                if ("boolean" != typeof e) throw new TypeError("showClose() expects a boolean parameter");
+                return a.showClose = e, c
+            }, c.keepInvalid = function(e) {
+                if (0 === arguments.length) return a.keepInvalid;
+                if ("boolean" != typeof e) throw new TypeError("keepInvalid() expects a boolean parameter");
+                return a.keepInvalid = e, c
+            }, c.datepickerInput = function(e) {
+                if (0 === arguments.length) return a.datepickerInput;
+                if ("string" != typeof e) throw new TypeError("datepickerInput() expects a string parameter");
+                return a.datepickerInput = e, c
+            }, c.parseInputDate = function(e) {
+                if (0 === arguments.length) return a.parseInputDate;
+                if ("function" != typeof e) throw new TypeError("parseInputDate() sholud be as function");
+                return a.parseInputDate = e, c
+            }, c.disabledTimeIntervals = function(t) {
+                if (0 === arguments.length) return a.disabledTimeIntervals ? e.extend({}, a.disabledTimeIntervals) : a.disabledTimeIntervals;
+                if (!t) return a.disabledTimeIntervals = !1, $(), c;
+                if (!(t instanceof Array)) throw new TypeError("disabledTimeIntervals() expects an array parameter");
+                return a.disabledTimeIntervals = t, $(), c
+            }, c.disabledHours = function(t) {
+                if (0 === arguments.length) return a.disabledHours ? e.extend({}, a.disabledHours) : a.disabledHours;
+                if (!t) return a.disabledHours = !1, $(), c;
+                if (!(t instanceof Array)) throw new TypeError("disabledHours() expects an array parameter");
+                if (a.disabledHours = ue(t), a.enabledHours = !1, a.useCurrent && !a.keepInvalid) {
+                    for (var n = 0; !N(r, "h");) {
+                        if (r.add(1, "h"), 24 === n) throw "Tried 24 times to find a valid date";
+                        n++
+                    }
+                    _(r)
+                }
+                return $(), c
+            }, c.enabledHours = function(t) {
+                if (0 === arguments.length) return a.enabledHours ? e.extend({}, a.enabledHours) : a.enabledHours;
+                if (!t) return a.enabledHours = !1, $(), c;
+                if (!(t instanceof Array)) throw new TypeError("enabledHours() expects an array parameter");
+                if (a.enabledHours = ue(t), a.disabledHours = !1, a.useCurrent && !a.keepInvalid) {
+                    for (var n = 0; !N(r, "h");) {
+                        if (r.add(1, "h"), 24 === n) throw "Tried 24 times to find a valid date";
+                        n++
+                    }
+                    _(r)
+                }
+                return $(), c
+            }, c.viewDate = function(e) {
+                if (0 === arguments.length) return i.clone();
+                if (!e) return i = r.clone(), c;
+                if (!("string" == typeof e || t.isMoment(e) || e instanceof Date)) throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");
+                return i = ne(e), B(), c
+            }, n.is("input")) o = n;
+        else if (0 === (o = n.find(a.datepickerInput)).length) o = n.find("input");
+        else if (!o.is("input")) throw new Error('CSS class "' + a.datepickerInput + '" cannot be applied to non input element');
+        if (n.hasClass("input-group") && (f = 0 === n.find(".datepickerbutton").length ? n.find(".input-group-addon") : n.find(".datepickerbutton")), !a.inline && !o.is("input")) throw new Error("Could not initialize DateTimePicker without an input element");
+        return r = x(), i = r.clone(), e.extend(!0, a, function() {
+            var t, r = {};
+            return (t = n.is("input") || a.inline ? n.data() : n.find("input").data()).dateOptions && t.dateOptions instanceof Object && (r = e.extend(!0, r, t.dateOptions)), e.each(a, function(e) {
+                var n = "date" + e.charAt(0).toUpperCase() + e.slice(1);
+                void 0 !== t[n] && (r[e] = t[n])
+            }), r
+        }()), c.options(a), fe(), o.on({
+            change: le,
+            blur: a.debug ? "" : ee,
+            keydown: se,
+            keyup: de,
+            focus: a.allowInputToggle ? ie : ""
+        }), n.is("input") ? o.on({
+            focus: ie
+        }) : f && (f.on("click", oe), f.on("mousedown", !1)), o.prop("disabled") && c.disable(), o.is("input") && 0 !== o.val().trim().length ? _(ne(o.val().trim())) : a.defaultDate && void 0 === o.attr("placeholder") && _(a.defaultDate), a.inline && ie(), c
+    };
+    return e.fn.datetimepicker = function(t) {
+        t = t || {};
+        var a, r = Array.prototype.slice.call(arguments, 1),
+            i = !0,
+            o = ["destroy", "hide", "show", "toggle"];
+        if ("object" == typeof t) return this.each(function() {
+            var a, r = e(this);
+            r.data("DateTimePicker") || (a = e.extend(!0, {}, e.fn.datetimepicker.defaults, t), r.data("DateTimePicker", n(r, a)))
+        });
+        if ("string" == typeof t) return this.each(function() {
+            var n = e(this).data("DateTimePicker");
+            if (!n) throw new Error('bootstrap-datetimepicker("' + t + '") method was called on an element that is not using DateTimePicker');
+            a = n[t].apply(n, r), i = a === n
+        }), i || e.inArray(t, o) > -1 ? this : a;
+        throw new TypeError("Invalid arguments for DateTimePicker: " + t)
+    }, e.fn.datetimepicker.defaults = {
+        timeZone: "",
+        format: !1,
+        dayViewHeaderFormat: "MMMM YYYY",
+        extraFormats: !1,
+        stepping: 1,
+        minDate: !1,
+        maxDate: !1,
+        useCurrent: !0,
+        collapse: !0,
+        locale: t.locale(),
+        defaultDate: !1,
+        disabledDates: !1,
+        enabledDates: !1,
+        icons: {
+            time: "glyphicon glyphicon-time",
+            date: "glyphicon glyphicon-calendar",
+            up: "glyphicon glyphicon-chevron-up",
+            down: "glyphicon glyphicon-chevron-down",
+            previous: "glyphicon glyphicon-chevron-left",
+            next: "glyphicon glyphicon-chevron-right",
+            today: "glyphicon glyphicon-screenshot",
+            clear: "glyphicon glyphicon-trash",
+            close: "glyphicon glyphicon-remove"
+        },
+        tooltips: {
+            today: "Go to today",
+            clear: "Clear selection",
+            close: "Close the picker",
+            selectMonth: "Select Month",
+            prevMonth: "Previous Month",
+            nextMonth: "Next Month",
+            selectYear: "Select Year",
+            prevYear: "Previous Year",
+            nextYear: "Next Year",
+            selectDecade: "Select Decade",
+            prevDecade: "Previous Decade",
+            nextDecade: "Next Decade",
+            prevCentury: "Previous Century",
+            nextCentury: "Next Century",
+            pickHour: "Pick Hour",
+            incrementHour: "Increment Hour",
+            decrementHour: "Decrement Hour",
+            pickMinute: "Pick Minute",
+            incrementMinute: "Increment Minute",
+            decrementMinute: "Decrement Minute",
+            pickSecond: "Pick Second",
+            incrementSecond: "Increment Second",
+            decrementSecond: "Decrement Second",
+            togglePeriod: "Toggle Period",
+            selectTime: "Select Time"
+        },
+        useStrict: !1,
+        sideBySide: !1,
+        daysOfWeekDisabled: !1,
+        calendarWeeks: !1,
+        viewMode: "days",
+        toolbarPlacement: "default",
+        showTodayButton: !1,
+        showClear: !1,
+        showClose: !1,
+        widgetPositioning: {
+            horizontal: "auto",
+            vertical: "auto"
+        },
+        widgetParent: null,
+        ignoreReadonly: !1,
+        keepOpen: !1,
+        focusOnShow: !0,
+        inline: !1,
+        keepInvalid: !1,
+        datepickerInput: ".datepickerinput",
+        keyBinds: {
+            up: function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") ? this.date(t.clone().subtract(7, "d")) : this.date(t.clone().add(this.stepping(), "m"))
+                }
+            },
+            down: function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") ? this.date(t.clone().add(7, "d")) : this.date(t.clone().subtract(this.stepping(), "m"))
+                } else this.show()
+            },
+            "control up": function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") ? this.date(t.clone().subtract(1, "y")) : this.date(t.clone().add(1, "h"))
+                }
+            },
+            "control down": function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") ? this.date(t.clone().add(1, "y")) : this.date(t.clone().subtract(1, "h"))
+                }
+            },
+            left: function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") && this.date(t.clone().subtract(1, "d"))
+                }
+            },
+            right: function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") && this.date(t.clone().add(1, "d"))
+                }
+            },
+            pageUp: function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") && this.date(t.clone().subtract(1, "M"))
+                }
+            },
+            pageDown: function(e) {
+                if (e) {
+                    var t = this.date() || this.getMoment();
+                    e.find(".datepicker").is(":visible") && this.date(t.clone().add(1, "M"))
+                }
+            },
+            enter: function() {
+                this.hide()
+            },
+            escape: function() {
+                this.hide()
+            },
+            "control space": function(e) {
+                e && e.find(".timepicker").is(":visible") && e.find('.btn[data-action="togglePeriod"]').click()
+            },
+            t: function() {
+                this.date(this.getMoment())
+            },
+            delete: function() {
+                this.clear()
+            }
+        },
+        debug: !1,
+        allowInputToggle: !1,
+        disabledTimeIntervals: !1,
+        disabledHours: !1,
+        enabledHours: !1,
+        viewDate: !1
+    }, e.fn.datetimepicker
+});

+ 2640 - 0
js/bootstrap-material-design.min.js

@@ -0,0 +1,2640 @@
+(function(e, t) {
+    'object' == typeof exports && 'undefined' != typeof module ? t(require('jquery'), require('popper.js')) : 'function' == typeof define && define.amd ? define(['jquery', 'popper.js'], t) : t(e.jQuery, e.Popper)
+})(this, function(e, t) {
+    'use strict';
+
+    function n(e, t) {
+        for (var n, o = 0; o < t.length; o++) n = t[o], n.enumerable = n.enumerable || !1, n.configurable = !0, 'value' in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
+    }
+
+    function o(e, t, o) {
+        return t && n(e.prototype, t), o && n(e, o), e
+    }
+
+    function a() {
+        return a = Object.assign || function(e) {
+            for (var t, n = 1; n < arguments.length; n++)
+                for (var o in t = arguments[n], t) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
+            return e
+        }, a.apply(this, arguments)
+    }
+
+    function r(e, t) {
+        e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t
+    }
+    var i = Math.max;
+    e = e && e.hasOwnProperty('default') ? e['default'] : e, t = t && t.hasOwnProperty('default') ? t['default'] : t;
+    var l = function(e) {
+            function t(e) {
+                return {}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()
+            }
+
+            function n() {
+                return {
+                    bindType: r.end,
+                    delegateType: r.end,
+                    handle: function(t) {
+                        return e(t.target).is(this) ? t.handleObj.handler.apply(this, arguments) : void 0
+                    }
+                }
+            }
+
+            function o() {
+                return 'undefined' != typeof window && window.QUnit ? !1 : {
+                    end: 'transitionend'
+                }
+            }
+
+            function a(t) {
+                var n = this,
+                    o = !1;
+                return e(this).one(i.TRANSITION_END, function() {
+                    o = !0
+                }), setTimeout(function() {
+                    o || i.triggerTransitionEnd(n)
+                }, t), this
+            }
+            var r = !1,
+                i = {
+                    TRANSITION_END: 'bsTransitionEnd',
+                    getUID: function(e) {
+                        do e += ~~(Math.random() * 1e6); while (document.getElementById(e));
+                        return e
+                    },
+                    getSelectorFromElement: function(t) {
+                        var n = t.getAttribute('data-target');
+                        n && '#' !== n || (n = t.getAttribute('href') || '');
+                        try {
+                            var o = e(document).find(n);
+                            return 0 < o.length ? n : null
+                        } catch (e) {
+                            return null
+                        }
+                    },
+                    reflow: function(e) {
+                        return e.offsetHeight
+                    },
+                    triggerTransitionEnd: function(t) {
+                        e(t).trigger(r.end)
+                    },
+                    supportsTransitionEnd: function() {
+                        return !!r
+                    },
+                    isElement: function(e) {
+                        return (e[0] || e).nodeType
+                    },
+                    typeCheckConfig: function(e, n, o) {
+                        for (var a in o)
+                            if (Object.prototype.hasOwnProperty.call(o, a)) {
+                                var r = o[a],
+                                    l = n[a],
+                                    s = l && i.isElement(l) ? 'element' : t(l);
+                                if (!new RegExp(r).test(s)) throw new Error(e.toUpperCase() + ': ' + ('Option "' + a + '" provided type "' + s + '" ') + ('but expected type "' + r + '".'))
+                            }
+                    }
+                };
+            return function() {
+                r = o(), e.fn.emulateTransitionEnd = a, i.supportsTransitionEnd() && (e.event.special[i.TRANSITION_END] = n())
+            }(), i
+        }(e),
+        s = function(e) {
+            var t = 'alert',
+                n = 'bs.alert',
+                a = '.' + n,
+                r = e.fn[t],
+                i = {
+                    CLOSE: 'close' + a,
+                    CLOSED: 'closed' + a,
+                    CLICK_DATA_API: 'click' + a + '.data-api'
+                },
+                s = {
+                    ALERT: 'alert',
+                    FADE: 'fade',
+                    SHOW: 'show'
+                },
+                d = function() {
+                    function t(e) {
+                        this._element = e
+                    }
+                    var a = t.prototype;
+                    return a.close = function(e) {
+                        e = e || this._element;
+                        var t = this._getRootElement(e),
+                            n = this._triggerCloseEvent(t);
+                        n.isDefaultPrevented() || this._removeElement(t)
+                    }, a.dispose = function() {
+                        e.removeData(this._element, n), this._element = null
+                    }, a._getRootElement = function(t) {
+                        var n = l.getSelectorFromElement(t),
+                            o = !1;
+                        return n && (o = e(n)[0]), o || (o = e(t).closest('.' + s.ALERT)[0]), o
+                    }, a._triggerCloseEvent = function(t) {
+                        var n = e.Event(i.CLOSE);
+                        return e(t).trigger(n), n
+                    }, a._removeElement = function(t) {
+                        var n = this;
+                        return e(t).removeClass(s.SHOW), l.supportsTransitionEnd() && e(t).hasClass(s.FADE) ? void e(t).one(l.TRANSITION_END, function(e) {
+                            return n._destroyElement(t, e)
+                        }).emulateTransitionEnd(150) : void this._destroyElement(t)
+                    }, a._destroyElement = function(t) {
+                        e(t).detach().trigger(i.CLOSED).remove()
+                    }, t._jQueryInterface = function(o) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new t(this), a.data(n, r)), 'close' === o && r[o](this)
+                        })
+                    }, t._handleDismiss = function(e) {
+                        return function(t) {
+                            t && t.preventDefault(), e.close(this)
+                        }
+                    }, o(t, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }]), t
+                }();
+            return e(document).on(i.CLICK_DATA_API, {
+                DISMISS: '[data-dismiss="alert"]'
+            }.DISMISS, d._handleDismiss(new d)), e.fn[t] = d._jQueryInterface, e.fn[t].Constructor = d, e.fn[t].noConflict = function() {
+                return e.fn[t] = r, d._jQueryInterface
+            }, d
+        }(e),
+        d = function(e) {
+            var t = 'button',
+                n = 'bs.button',
+                a = '.' + n,
+                r = '.data-api',
+                i = e.fn[t],
+                l = {
+                    ACTIVE: 'active',
+                    BUTTON: 'btn',
+                    FOCUS: 'focus'
+                },
+                s = {
+                    DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+                    DATA_TOGGLE: '[data-toggle="buttons"]',
+                    INPUT: 'input',
+                    ACTIVE: '.active',
+                    BUTTON: '.btn'
+                },
+                d = {
+                    CLICK_DATA_API: 'click' + a + r,
+                    FOCUS_BLUR_DATA_API: 'focus' + a + r + ' ' + ('blur' + a + r)
+                },
+                c = function() {
+                    function t(e) {
+                        this._element = e
+                    }
+                    var a = t.prototype;
+                    return a.toggle = function() {
+                        var t = !0,
+                            n = !0,
+                            o = e(this._element).closest(s.DATA_TOGGLE)[0];
+                        if (o) {
+                            var a = e(this._element).find(s.INPUT)[0];
+                            if (a) {
+                                if ('radio' === a.type)
+                                    if (a.checked && e(this._element).hasClass(l.ACTIVE)) t = !1;
+                                    else {
+                                        var r = e(o).find(s.ACTIVE)[0];
+                                        r && e(r).removeClass(l.ACTIVE)
+                                    }
+                                if (t) {
+                                    if (a.hasAttribute('disabled') || o.hasAttribute('disabled') || a.classList.contains('disabled') || o.classList.contains('disabled')) return;
+                                    a.checked = !e(this._element).hasClass(l.ACTIVE), e(a).trigger('change')
+                                }
+                                a.focus(), n = !1
+                            }
+                        }
+                        n && this._element.setAttribute('aria-pressed', !e(this._element).hasClass(l.ACTIVE)), t && e(this._element).toggleClass(l.ACTIVE)
+                    }, a.dispose = function() {
+                        e.removeData(this._element, n), this._element = null
+                    }, t._jQueryInterface = function(o) {
+                        return this.each(function() {
+                            var a = e(this).data(n);
+                            a || (a = new t(this), e(this).data(n, a)), 'toggle' === o && a[o]()
+                        })
+                    }, o(t, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }]), t
+                }();
+            return e(document).on(d.CLICK_DATA_API, s.DATA_TOGGLE_CARROT, function(t) {
+                t.preventDefault();
+                var n = t.target;
+                e(n).hasClass(l.BUTTON) || (n = e(n).closest(s.BUTTON)), c._jQueryInterface.call(e(n), 'toggle')
+            }).on(d.FOCUS_BLUR_DATA_API, s.DATA_TOGGLE_CARROT, function(t) {
+                var n = e(t.target).closest(s.BUTTON)[0];
+                e(n).toggleClass(l.FOCUS, /^focus(in)?$/.test(t.type))
+            }), e.fn[t] = c._jQueryInterface, e.fn[t].Constructor = c, e.fn[t].noConflict = function() {
+                return e.fn[t] = i, c._jQueryInterface
+            }, c
+        }(e),
+        c = function(e) {
+            var t = 'carousel',
+                n = 'bs.carousel',
+                a = '.' + n,
+                r = '.data-api',
+                i = e.fn[t],
+                s = {
+                    interval: 5e3,
+                    keyboard: !0,
+                    slide: !1,
+                    pause: 'hover',
+                    wrap: !0
+                },
+                d = {
+                    interval: '(number|boolean)',
+                    keyboard: 'boolean',
+                    slide: '(boolean|string)',
+                    pause: '(string|boolean)',
+                    wrap: 'boolean'
+                },
+                c = {
+                    NEXT: 'next',
+                    PREV: 'prev',
+                    LEFT: 'left',
+                    RIGHT: 'right'
+                },
+                _ = {
+                    SLIDE: 'slide' + a,
+                    SLID: 'slid' + a,
+                    KEYDOWN: 'keydown' + a,
+                    MOUSEENTER: 'mouseenter' + a,
+                    MOUSELEAVE: 'mouseleave' + a,
+                    TOUCHEND: 'touchend' + a,
+                    LOAD_DATA_API: 'load' + a + r,
+                    CLICK_DATA_API: 'click' + a + r
+                },
+                p = {
+                    CAROUSEL: 'carousel',
+                    ACTIVE: 'active',
+                    SLIDE: 'slide',
+                    RIGHT: 'carousel-item-right',
+                    LEFT: 'carousel-item-left',
+                    NEXT: 'carousel-item-next',
+                    PREV: 'carousel-item-prev',
+                    ITEM: 'carousel-item'
+                },
+                m = {
+                    ACTIVE: '.active',
+                    ACTIVE_ITEM: '.active.carousel-item',
+                    ITEM: '.carousel-item',
+                    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
+                    INDICATORS: '.carousel-indicators',
+                    DATA_SLIDE: '[data-slide], [data-slide-to]',
+                    DATA_RIDE: '[data-ride="carousel"]'
+                },
+                g = function() {
+                    function r(t, n) {
+                        this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this._config = this._getConfig(n), this._element = e(t)[0], this._indicatorsElement = e(this._element).find(m.INDICATORS)[0], this._addEventListeners()
+                    }
+                    var i = r.prototype;
+                    return i.next = function() {
+                        this._isSliding || this._slide(c.NEXT)
+                    }, i.nextWhenVisible = function() {
+                        document.hidden || this.next()
+                    }, i.prev = function() {
+                        this._isSliding || this._slide(c.PREV)
+                    }, i.pause = function(t) {
+                        t || (this._isPaused = !0), e(this._element).find(m.NEXT_PREV)[0] && l.supportsTransitionEnd() && (l.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
+                    }, i.cycle = function(e) {
+                        e || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
+                    }, i.to = function(t) {
+                        var n = this;
+                        this._activeElement = e(this._element).find(m.ACTIVE_ITEM)[0];
+                        var o = this._getItemIndex(this._activeElement);
+                        if (!(t > this._items.length - 1 || 0 > t)) {
+                            if (this._isSliding) return void e(this._element).one(_.SLID, function() {
+                                return n.to(t)
+                            });
+                            if (o === t) return this.pause(), void this.cycle();
+                            var a = t > o ? c.NEXT : c.PREV;
+                            this._slide(a, this._items[t])
+                        }
+                    }, i.dispose = function() {
+                        e(this._element).off(a), e.removeData(this._element, n), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
+                    }, i._getConfig = function(n) {
+                        return n = e.extend({}, s, n), l.typeCheckConfig(t, n, d), n
+                    }, i._addEventListeners = function() {
+                        var t = this;
+                        this._config.keyboard && e(this._element).on(_.KEYDOWN, function(e) {
+                            return t._keydown(e)
+                        }), 'hover' === this._config.pause && (e(this._element).on(_.MOUSEENTER, function(e) {
+                            return t.pause(e)
+                        }).on(_.MOUSELEAVE, function(e) {
+                            return t.cycle(e)
+                        }), 'ontouchstart' in document.documentElement && e(this._element).on(_.TOUCHEND, function() {
+                            t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function(e) {
+                                return t.cycle(e)
+                            }, 500 + t._config.interval)
+                        }))
+                    }, i._keydown = function(e) {
+                        if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) {
+                            case 37:
+                                e.preventDefault(), this.prev();
+                                break;
+                            case 39:
+                                e.preventDefault(), this.next();
+                                break;
+                            default:
+                        }
+                    }, i._getItemIndex = function(t) {
+                        return this._items = e.makeArray(e(t).parent().find(m.ITEM)), this._items.indexOf(t)
+                    }, i._getItemByDirection = function(e, t) {
+                        var n = e === c.NEXT,
+                            o = e === c.PREV,
+                            a = this._getItemIndex(t),
+                            r = this._items.length - 1;
+                        if ((o && 0 === a || n && a === r) && !this._config.wrap) return t;
+                        var i = e === c.PREV ? -1 : 1,
+                            l = (a + i) % this._items.length;
+                        return -1 == l ? this._items[this._items.length - 1] : this._items[l]
+                    }, i._triggerSlideEvent = function(t, n) {
+                        var o = this._getItemIndex(t),
+                            a = this._getItemIndex(e(this._element).find(m.ACTIVE_ITEM)[0]),
+                            r = e.Event(_.SLIDE, {
+                                relatedTarget: t,
+                                direction: n,
+                                from: a,
+                                to: o
+                            });
+                        return e(this._element).trigger(r), r
+                    }, i._setActiveIndicatorElement = function(t) {
+                        if (this._indicatorsElement) {
+                            e(this._indicatorsElement).find(m.ACTIVE).removeClass(p.ACTIVE);
+                            var n = this._indicatorsElement.children[this._getItemIndex(t)];
+                            n && e(n).addClass(p.ACTIVE)
+                        }
+                    }, i._slide = function(t, n) {
+                        var o, a, r, i = this,
+                            s = e(this._element).find(m.ACTIVE_ITEM)[0],
+                            d = this._getItemIndex(s),
+                            g = n || s && this._getItemByDirection(t, s),
+                            f = this._getItemIndex(g),
+                            u = !!this._interval;
+                        if (t === c.NEXT ? (o = p.LEFT, a = p.NEXT, r = c.LEFT) : (o = p.RIGHT, a = p.PREV, r = c.RIGHT), g && e(g).hasClass(p.ACTIVE)) return void(this._isSliding = !1);
+                        var E = this._triggerSlideEvent(g, r);
+                        if (!E.isDefaultPrevented() && s && g) {
+                            this._isSliding = !0, u && this.pause(), this._setActiveIndicatorElement(g);
+                            var h = e.Event(_.SLID, {
+                                relatedTarget: g,
+                                direction: r,
+                                from: d,
+                                to: f
+                            });
+                            l.supportsTransitionEnd() && e(this._element).hasClass(p.SLIDE) ? (e(g).addClass(a), l.reflow(g), e(s).addClass(o), e(g).addClass(o), e(s).one(l.TRANSITION_END, function() {
+                                e(g).removeClass(o + ' ' + a).addClass(p.ACTIVE), e(s).removeClass(p.ACTIVE + ' ' + a + ' ' + o), i._isSliding = !1, setTimeout(function() {
+                                    return e(i._element).trigger(h)
+                                }, 0)
+                            }).emulateTransitionEnd(600)) : (e(s).removeClass(p.ACTIVE), e(g).addClass(p.ACTIVE), this._isSliding = !1, e(this._element).trigger(h)), u && this.cycle()
+                        }
+                    }, r._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var o = e(this).data(n),
+                                a = e.extend({}, s, e(this).data());
+                            'object' == typeof t && e.extend(a, t);
+                            var i = 'string' == typeof t ? t : a.slide;
+                            if (o || (o = new r(this, a), e(this).data(n, o)), 'number' == typeof t) o.to(t);
+                            else if ('string' == typeof i) {
+                                if (void 0 === o[i]) throw new Error('No method named "' + i + '"');
+                                o[i]()
+                            } else a.interval && (o.pause(), o.cycle())
+                        })
+                    }, r._dataApiClickHandler = function(t) {
+                        var o = l.getSelectorFromElement(this);
+                        if (o) {
+                            var a = e(o)[0];
+                            if (a && e(a).hasClass(p.CAROUSEL)) {
+                                var i = e.extend({}, e(a).data(), e(this).data()),
+                                    s = this.getAttribute('data-slide-to');
+                                s && (i.interval = !1), r._jQueryInterface.call(e(a), i), s && e(a).data(n).to(s), t.preventDefault()
+                            }
+                        }
+                    }, o(r, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0-beta'
+                        }
+                    }, {
+                        key: 'Default',
+                        get: function() {
+                            return s
+                        }
+                    }]), r
+                }();
+            return e(document).on(_.CLICK_DATA_API, m.DATA_SLIDE, g._dataApiClickHandler), e(window).on(_.LOAD_DATA_API, function() {
+                e(m.DATA_RIDE).each(function() {
+                    var t = e(this);
+                    g._jQueryInterface.call(t, t.data())
+                })
+            }), e.fn[t] = g._jQueryInterface, e.fn[t].Constructor = g, e.fn[t].noConflict = function() {
+                return e.fn[t] = i, g._jQueryInterface
+            }, g
+        }(jQuery),
+        _ = function(e) {
+            var t = 'collapse',
+                n = 'bs.collapse',
+                r = '.' + n,
+                i = e.fn[t],
+                s = 600,
+                d = {
+                    toggle: !0,
+                    parent: ''
+                },
+                c = {
+                    toggle: 'boolean',
+                    parent: '(string|element)'
+                },
+                _ = {
+                    SHOW: 'show' + r,
+                    SHOWN: 'shown' + r,
+                    HIDE: 'hide' + r,
+                    HIDDEN: 'hidden' + r,
+                    CLICK_DATA_API: 'click' + r + '.data-api'
+                },
+                p = {
+                    SHOW: 'show',
+                    COLLAPSE: 'collapse',
+                    COLLAPSING: 'collapsing',
+                    COLLAPSED: 'collapsed'
+                },
+                m = {
+                    WIDTH: 'width',
+                    HEIGHT: 'height'
+                },
+                g = {
+                    ACTIVES: '.show, .collapsing',
+                    DATA_TOGGLE: '[data-toggle="collapse"]'
+                },
+                f = function() {
+                    function r(t, n) {
+                        this._isTransitioning = !1, this._element = t, this._config = this._getConfig(n), this._triggerArray = e.makeArray(e('[data-toggle="collapse"][href="#' + t.id + '"],' + ('[data-toggle="collapse"][data-target="#' + t.id + '"]')));
+                        for (var o = e(g.DATA_TOGGLE), a = 0; a < o.length; a++) {
+                            var r = o[a],
+                                i = l.getSelectorFromElement(r);
+                            null !== i && 0 < e(i).filter(t).length && (this._selector = i, this._triggerArray.push(r))
+                        }
+                        this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
+                    }
+                    var i = r.prototype;
+                    return i.toggle = function() {
+                        e(this._element).hasClass(p.SHOW) ? this.hide() : this.show()
+                    }, i.show = function() {
+                        var t = this;
+                        if (!(this._isTransitioning || e(this._element).hasClass(p.SHOW))) {
+                            var o, a;
+                            if (this._parent && (o = e.makeArray(e(this._parent).find(g.ACTIVES).filter('[data-parent="' + this._config.parent + '"]')), 0 === o.length && (o = null)), !(o && (a = e(o).not(this._selector).data(n), a && a._isTransitioning))) {
+                                var i = e.Event(_.SHOW);
+                                if (e(this._element).trigger(i), !i.isDefaultPrevented()) {
+                                    o && (r._jQueryInterface.call(e(o).not(this._selector), 'hide'), !a && e(o).data(n, null));
+                                    var d = this._getDimension();
+                                    e(this._element).removeClass(p.COLLAPSE).addClass(p.COLLAPSING), this._element.style[d] = 0, 0 < this._triggerArray.length && e(this._triggerArray).removeClass(p.COLLAPSED).attr('aria-expanded', !0), this.setTransitioning(!0);
+                                    var c = function() {
+                                        e(t._element).removeClass(p.COLLAPSING).addClass(p.COLLAPSE).addClass(p.SHOW), t._element.style[d] = '', t.setTransitioning(!1), e(t._element).trigger(_.SHOWN)
+                                    };
+                                    if (!l.supportsTransitionEnd()) return void c();
+                                    var m = d[0].toUpperCase() + d.slice(1);
+                                    e(this._element).one(l.TRANSITION_END, c).emulateTransitionEnd(s), this._element.style[d] = this._element['scroll' + m] + 'px'
+                                }
+                            }
+                        }
+                    }, i.hide = function() {
+                        var t = this;
+                        if (!this._isTransitioning && e(this._element).hasClass(p.SHOW)) {
+                            var n = e.Event(_.HIDE);
+                            if (e(this._element).trigger(n), !n.isDefaultPrevented()) {
+                                var o = this._getDimension();
+                                if (this._element.style[o] = this._element.getBoundingClientRect()[o] + 'px', l.reflow(this._element), e(this._element).addClass(p.COLLAPSING).removeClass(p.COLLAPSE).removeClass(p.SHOW), 0 < this._triggerArray.length)
+                                    for (var a = 0; a < this._triggerArray.length; a++) {
+                                        var r = this._triggerArray[a],
+                                            i = l.getSelectorFromElement(r);
+                                        if (null !== i) {
+                                            var d = e(i);
+                                            d.hasClass(p.SHOW) || e(r).addClass(p.COLLAPSED).attr('aria-expanded', !1)
+                                        }
+                                    }
+                                this.setTransitioning(!0);
+                                var c = function() {
+                                    t.setTransitioning(!1), e(t._element).removeClass(p.COLLAPSING).addClass(p.COLLAPSE).trigger(_.HIDDEN)
+                                };
+                                return this._element.style[o] = '', l.supportsTransitionEnd() ? void e(this._element).one(l.TRANSITION_END, c).emulateTransitionEnd(s) : void c()
+                            }
+                        }
+                    }, i.setTransitioning = function(e) {
+                        this._isTransitioning = e
+                    }, i.dispose = function() {
+                        e.removeData(this._element, n), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
+                    }, i._getConfig = function(e) {
+                        return e = a({}, d, e), e.toggle = !!e.toggle, l.typeCheckConfig(t, e, c), e
+                    }, i._getDimension = function() {
+                        var t = e(this._element).hasClass(m.WIDTH);
+                        return t ? m.WIDTH : m.HEIGHT
+                    }, i._getParent = function() {
+                        var t = this,
+                            n = null;
+                        l.isElement(this._config.parent) ? (n = this._config.parent, 'undefined' != typeof this._config.parent.jquery && (n = this._config.parent[0])) : n = e(this._config.parent)[0];
+                        var o = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
+                        return e(n).find(o).each(function(e, n) {
+                            t._addAriaAndCollapsedClass(r._getTargetFromElement(n), [n])
+                        }), n
+                    }, i._addAriaAndCollapsedClass = function(t, n) {
+                        if (t) {
+                            var o = e(t).hasClass(p.SHOW);
+                            0 < n.length && e(n).toggleClass(p.COLLAPSED, !o).attr('aria-expanded', o)
+                        }
+                    }, r._getTargetFromElement = function(t) {
+                        var n = l.getSelectorFromElement(t);
+                        return n ? e(n)[0] : null
+                    }, r._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var o = e(this),
+                                i = o.data(n),
+                                l = a({}, d, o.data(), 'object' == typeof t && t);
+                            if (!i && l.toggle && /show|hide/.test(t) && (l.toggle = !1), i || (i = new r(this, l), o.data(n, i)), 'string' == typeof t) {
+                                if ('undefined' == typeof i[t]) throw new TypeError('No method named "' + t + '"');
+                                i[t]()
+                            }
+                        })
+                    }, o(r, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }, {
+                        key: 'Default',
+                        get: function() {
+                            return d
+                        }
+                    }]), r
+                }();
+            return e(document).on(_.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
+                'A' === t.currentTarget.tagName && t.preventDefault();
+                var o = e(this),
+                    a = l.getSelectorFromElement(this);
+                e(a).each(function() {
+                    var t = e(this),
+                        a = t.data(n),
+                        r = a ? 'toggle' : o.data();
+                    f._jQueryInterface.call(t, r)
+                })
+            }), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
+                return e.fn[t] = i, f._jQueryInterface
+            }, f
+        }(e),
+        p = function(e) {
+            var t = 'modal',
+                n = 'bs.modal',
+                r = '.' + n,
+                i = e.fn[t],
+                s = 300,
+                d = 150,
+                c = {
+                    backdrop: !0,
+                    keyboard: !0,
+                    focus: !0,
+                    show: !0
+                },
+                _ = {
+                    backdrop: '(boolean|string)',
+                    keyboard: 'boolean',
+                    focus: 'boolean',
+                    show: 'boolean'
+                },
+                p = {
+                    HIDE: 'hide' + r,
+                    HIDDEN: 'hidden' + r,
+                    SHOW: 'show' + r,
+                    SHOWN: 'shown' + r,
+                    FOCUSIN: 'focusin' + r,
+                    RESIZE: 'resize' + r,
+                    CLICK_DISMISS: 'click.dismiss' + r,
+                    KEYDOWN_DISMISS: 'keydown.dismiss' + r,
+                    MOUSEUP_DISMISS: 'mouseup.dismiss' + r,
+                    MOUSEDOWN_DISMISS: 'mousedown.dismiss' + r,
+                    CLICK_DATA_API: 'click' + r + '.data-api'
+                },
+                m = {
+                    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+                    BACKDROP: 'modal-backdrop',
+                    OPEN: 'modal-open',
+                    FADE: 'fade',
+                    SHOW: 'show'
+                },
+                g = {
+                    DIALOG: '.modal-dialog',
+                    DATA_TOGGLE: '[data-toggle="modal"]',
+                    DATA_DISMISS: '[data-dismiss="modal"]',
+                    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
+                    STICKY_CONTENT: '.sticky-top',
+                    NAVBAR_TOGGLER: '.navbar-toggler'
+                },
+                f = function() {
+                    function i(t, n) {
+                        this._config = this._getConfig(n), this._element = t, this._dialog = e(t).find(g.DIALOG)[0], this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._originalBodyPadding = 0, this._scrollbarWidth = 0
+                    }
+                    var f = i.prototype;
+                    return f.toggle = function(e) {
+                        return this._isShown ? this.hide() : this.show(e)
+                    }, f.show = function(t) {
+                        var n = this;
+                        if (!(this._isTransitioning || this._isShown)) {
+                            l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE) && (this._isTransitioning = !0);
+                            var o = e.Event(p.SHOW, {
+                                relatedTarget: t
+                            });
+                            e(this._element).trigger(o), this._isShown || o.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), e(document.body).addClass(m.OPEN), this._setEscapeEvent(), this._setResizeEvent(), e(this._element).on(p.CLICK_DISMISS, g.DATA_DISMISS, function(e) {
+                                return n.hide(e)
+                            }), e(this._dialog).on(p.MOUSEDOWN_DISMISS, function() {
+                                e(n._element).one(p.MOUSEUP_DISMISS, function(t) {
+                                    e(t.target).is(n._element) && (n._ignoreBackdropClick = !0)
+                                })
+                            }), this._showBackdrop(function() {
+                                return n._showElement(t)
+                            }))
+                        }
+                    }, f.hide = function(t) {
+                        var n = this;
+                        if (t && t.preventDefault(), !this._isTransitioning && this._isShown) {
+                            var o = e.Event(p.HIDE);
+                            if (e(this._element).trigger(o), this._isShown && !o.isDefaultPrevented()) {
+                                this._isShown = !1;
+                                var a = l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE);
+                                a && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), e(document).off(p.FOCUSIN), e(this._element).removeClass(m.SHOW), e(this._element).off(p.CLICK_DISMISS), e(this._dialog).off(p.MOUSEDOWN_DISMISS), a ? e(this._element).one(l.TRANSITION_END, function(e) {
+                                    return n._hideModal(e)
+                                }).emulateTransitionEnd(s) : this._hideModal()
+                            }
+                        }
+                    }, f.dispose = function() {
+                        e.removeData(this._element, n), e(window, document, this._element, this._backdrop).off(r), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._scrollbarWidth = null
+                    }, f.handleUpdate = function() {
+                        this._adjustDialog()
+                    }, f._getConfig = function(e) {
+                        return e = a({}, c, e), l.typeCheckConfig(t, e, _), e
+                    }, f._showElement = function(t) {
+                        var n = this,
+                            o = l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE);
+                        this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = 'block', this._element.removeAttribute('aria-hidden'), this._element.scrollTop = 0, o && l.reflow(this._element), e(this._element).addClass(m.SHOW), this._config.focus && this._enforceFocus();
+                        var a = e.Event(p.SHOWN, {
+                                relatedTarget: t
+                            }),
+                            r = function() {
+                                n._config.focus && n._element.focus(), n._isTransitioning = !1, e(n._element).trigger(a)
+                            };
+                        o ? e(this._dialog).one(l.TRANSITION_END, r).emulateTransitionEnd(s) : r()
+                    }, f._enforceFocus = function() {
+                        var t = this;
+                        e(document).off(p.FOCUSIN).on(p.FOCUSIN, function(n) {
+                            document !== n.target && t._element !== n.target && 0 === e(t._element).has(n.target).length && t._element.focus()
+                        })
+                    }, f._setEscapeEvent = function() {
+                        var t = this;
+                        this._isShown && this._config.keyboard ? e(this._element).on(p.KEYDOWN_DISMISS, function(e) {
+                            e.which === 27 && (e.preventDefault(), t.hide())
+                        }) : !this._isShown && e(this._element).off(p.KEYDOWN_DISMISS)
+                    }, f._setResizeEvent = function() {
+                        var t = this;
+                        this._isShown ? e(window).on(p.RESIZE, function(e) {
+                            return t.handleUpdate(e)
+                        }) : e(window).off(p.RESIZE)
+                    }, f._hideModal = function() {
+                        var t = this;
+                        this._element.style.display = 'none', this._element.setAttribute('aria-hidden', !0), this._isTransitioning = !1, this._showBackdrop(function() {
+                            e(document.body).removeClass(m.OPEN), t._resetAdjustments(), t._resetScrollbar(), e(t._element).trigger(p.HIDDEN)
+                        })
+                    }, f._removeBackdrop = function() {
+                        this._backdrop && (e(this._backdrop).remove(), this._backdrop = null)
+                    }, f._showBackdrop = function(t) {
+                        var n = this,
+                            o = e(this._element).hasClass(m.FADE) ? m.FADE : '';
+                        if (this._isShown && this._config.backdrop) {
+                            var a = l.supportsTransitionEnd() && o;
+                            if (this._backdrop = document.createElement('div'), this._backdrop.className = m.BACKDROP, o && e(this._backdrop).addClass(o), e(this._backdrop).appendTo(document.body), e(this._element).on(p.CLICK_DISMISS, function(e) {
+                                    return n._ignoreBackdropClick ? void(n._ignoreBackdropClick = !1) : void(e.target !== e.currentTarget || ('static' === n._config.backdrop ? n._element.focus() : n.hide()))
+                                }), a && l.reflow(this._backdrop), e(this._backdrop).addClass(m.SHOW), !t) return;
+                            if (!a) return void t();
+                            e(this._backdrop).one(l.TRANSITION_END, t).emulateTransitionEnd(d)
+                        } else if (!this._isShown && this._backdrop) {
+                            e(this._backdrop).removeClass(m.SHOW);
+                            var r = function() {
+                                n._removeBackdrop(), t && t()
+                            };
+                            l.supportsTransitionEnd() && e(this._element).hasClass(m.FADE) ? e(this._backdrop).one(l.TRANSITION_END, r).emulateTransitionEnd(d) : r()
+                        } else t && t()
+                    }, f._adjustDialog = function() {
+                        var e = this._element.scrollHeight > document.documentElement.clientHeight;
+                        !this._isBodyOverflowing && e && (this._element.style.paddingLeft = this._scrollbarWidth + 'px'), this._isBodyOverflowing && !e && (this._element.style.paddingRight = this._scrollbarWidth + 'px')
+                    }, f._resetAdjustments = function() {
+                        this._element.style.paddingLeft = '', this._element.style.paddingRight = ''
+                    }, f._checkScrollbar = function() {
+                        var e = document.body.getBoundingClientRect();
+                        this._isBodyOverflowing = e.left + e.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
+                    }, f._setScrollbar = function() {
+                        var t = this;
+                        if (this._isBodyOverflowing) {
+                            e(g.FIXED_CONTENT).each(function(n, o) {
+                                var a = e(o)[0].style.paddingRight,
+                                    r = e(o).css('padding-right');
+                                e(o).data('padding-right', a).css('padding-right', parseFloat(r) + t._scrollbarWidth + 'px')
+                            }), e(g.STICKY_CONTENT).each(function(n, o) {
+                                var a = e(o)[0].style.marginRight,
+                                    r = e(o).css('margin-right');
+                                e(o).data('margin-right', a).css('margin-right', parseFloat(r) - t._scrollbarWidth + 'px')
+                            }), e(g.NAVBAR_TOGGLER).each(function(n, o) {
+                                var a = e(o)[0].style.marginRight,
+                                    r = e(o).css('margin-right');
+                                e(o).data('margin-right', a).css('margin-right', parseFloat(r) + t._scrollbarWidth + 'px')
+                            });
+                            var n = document.body.style.paddingRight,
+                                o = e('body').css('padding-right');
+                            e('body').data('padding-right', n).css('padding-right', parseFloat(o) + this._scrollbarWidth + 'px')
+                        }
+                    }, f._resetScrollbar = function() {
+                        e(g.FIXED_CONTENT).each(function(t, n) {
+                            var o = e(n).data('padding-right');
+                            'undefined' != typeof o && e(n).css('padding-right', o).removeData('padding-right')
+                        }), e(g.STICKY_CONTENT + ', ' + g.NAVBAR_TOGGLER).each(function(t, n) {
+                            var o = e(n).data('margin-right');
+                            'undefined' != typeof o && e(n).css('margin-right', o).removeData('margin-right')
+                        });
+                        var t = e('body').data('padding-right');
+                        'undefined' != typeof t && e('body').css('padding-right', t).removeData('padding-right')
+                    }, f._getScrollbarWidth = function() {
+                        var e = document.createElement('div');
+                        e.className = m.SCROLLBAR_MEASURER, document.body.appendChild(e);
+                        var t = e.getBoundingClientRect().width - e.clientWidth;
+                        return document.body.removeChild(e), t
+                    }, i._jQueryInterface = function(t, o) {
+                        return this.each(function() {
+                            var r = e(this).data(n),
+                                l = a({}, i.Default, e(this).data(), 'object' == typeof t && t);
+                            if (r || (r = new i(this, l), e(this).data(n, r)), 'string' == typeof t) {
+                                if ('undefined' == typeof r[t]) throw new TypeError('No method named "' + t + '"');
+                                r[t](o)
+                            } else l.show && r.show(o)
+                        })
+                    }, o(i, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }, {
+                        key: 'Default',
+                        get: function() {
+                            return c
+                        }
+                    }]), i
+                }();
+            return e(document).on(p.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
+                var o, r = this,
+                    i = l.getSelectorFromElement(this);
+                i && (o = e(i)[0]);
+                var s = e(o).data(n) ? 'toggle' : a({}, e(o).data(), e(this).data());
+                ('A' === this.tagName || 'AREA' === this.tagName) && t.preventDefault();
+                var d = e(o).one(p.SHOW, function(t) {
+                    t.isDefaultPrevented() || d.one(p.HIDDEN, function() {
+                        e(r).is(':visible') && r.focus()
+                    })
+                });
+                f._jQueryInterface.call(e(o), s, this)
+            }), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
+                return e.fn[t] = i, f._jQueryInterface
+            }, f
+        }(e),
+        m = function(e) {
+            var n = 'tooltip',
+                r = 'bs.tooltip',
+                i = '.' + r,
+                s = e.fn[n],
+                d = /(^|\s)bs-tooltip\S+/g,
+                c = {
+                    animation: 'boolean',
+                    template: 'string',
+                    title: '(string|element|function)',
+                    trigger: 'string',
+                    delay: '(number|object)',
+                    html: 'boolean',
+                    selector: '(string|boolean)',
+                    placement: '(string|function)',
+                    offset: '(number|string)',
+                    container: '(string|element|boolean)',
+                    fallbackPlacement: '(string|array)',
+                    boundary: '(string|element)'
+                },
+                _ = {
+                    AUTO: 'auto',
+                    TOP: 'top',
+                    RIGHT: 'right',
+                    BOTTOM: 'bottom',
+                    LEFT: 'left'
+                },
+                p = {
+                    animation: !0,
+                    template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
+                    trigger: 'hover focus',
+                    title: '',
+                    delay: 0,
+                    html: !1,
+                    selector: !1,
+                    placement: 'top',
+                    offset: 0,
+                    container: !1,
+                    fallbackPlacement: 'flip',
+                    boundary: 'scrollParent'
+                },
+                m = {
+                    SHOW: 'show',
+                    OUT: 'out'
+                },
+                g = {
+                    HIDE: 'hide' + i,
+                    HIDDEN: 'hidden' + i,
+                    SHOW: 'show' + i,
+                    SHOWN: 'shown' + i,
+                    INSERTED: 'inserted' + i,
+                    CLICK: 'click' + i,
+                    FOCUSIN: 'focusin' + i,
+                    FOCUSOUT: 'focusout' + i,
+                    MOUSEENTER: 'mouseenter' + i,
+                    MOUSELEAVE: 'mouseleave' + i
+                },
+                f = {
+                    FADE: 'fade',
+                    SHOW: 'show'
+                },
+                u = {
+                    TOOLTIP: '.tooltip',
+                    TOOLTIP_INNER: '.tooltip-inner',
+                    ARROW: '.arrow'
+                },
+                E = {
+                    HOVER: 'hover',
+                    FOCUS: 'focus',
+                    CLICK: 'click',
+                    MANUAL: 'manual'
+                },
+                h = function() {
+                    function s(e, n) {
+                        if ('undefined' == typeof t) throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+                        this._isEnabled = !0, this._timeout = 0, this._hoverState = '', this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(n), this.tip = null, this._setListeners()
+                    }
+                    var h = s.prototype;
+                    return h.enable = function() {
+                        this._isEnabled = !0
+                    }, h.disable = function() {
+                        this._isEnabled = !1
+                    }, h.toggleEnabled = function() {
+                        this._isEnabled = !this._isEnabled
+                    }, h.toggle = function(t) {
+                        if (this._isEnabled)
+                            if (t) {
+                                var n = this.constructor.DATA_KEY,
+                                    o = e(t.currentTarget).data(n);
+                                o || (o = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(n, o)), o._activeTrigger.click = !o._activeTrigger.click, o._isWithActiveTrigger() ? o._enter(null, o) : o._leave(null, o)
+                            } else {
+                                if (e(this.getTipElement()).hasClass(f.SHOW)) return void this._leave(null, this);
+                                this._enter(null, this)
+                            }
+                    }, h.dispose = function() {
+                        clearTimeout(this._timeout), e.removeData(this.element, this.constructor.DATA_KEY), e(this.element).off(this.constructor.EVENT_KEY), e(this.element).closest('.modal').off('hide.bs.modal'), this.tip && e(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, null !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
+                    }, h.show = function() {
+                        var n = this;
+                        if ('none' === e(this.element).css('display')) throw new Error('Please use show on visible elements');
+                        var o = e.Event(this.constructor.Event.SHOW);
+                        if (this.isWithContent() && this._isEnabled) {
+                            e(this.element).trigger(o);
+                            var a = e.contains(this.element.ownerDocument.documentElement, this.element);
+                            if (o.isDefaultPrevented() || !a) return;
+                            var r = this.getTipElement(),
+                                i = l.getUID(this.constructor.NAME);
+                            r.setAttribute('id', i), this.element.setAttribute('aria-describedby', i), this.setContent(), this.config.animation && e(r).addClass(f.FADE);
+                            var d = 'function' == typeof this.config.placement ? this.config.placement.call(this, r, this.element) : this.config.placement,
+                                c = this._getAttachment(d);
+                            this.addAttachmentClass(c);
+                            var _ = !1 === this.config.container ? document.body : e(this.config.container);
+                            e(r).data(this.constructor.DATA_KEY, this), e.contains(this.element.ownerDocument.documentElement, this.tip) || e(r).appendTo(_), e(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new t(this.element, r, {
+                                placement: c,
+                                modifiers: {
+                                    offset: {
+                                        offset: this.config.offset
+                                    },
+                                    flip: {
+                                        behavior: this.config.fallbackPlacement
+                                    },
+                                    arrow: {
+                                        element: u.ARROW
+                                    },
+                                    preventOverflow: {
+                                        boundariesElement: this.config.boundary
+                                    }
+                                },
+                                onCreate: function(e) {
+                                    e.originalPlacement !== e.placement && n._handlePopperPlacementChange(e)
+                                },
+                                onUpdate: function(e) {
+                                    n._handlePopperPlacementChange(e)
+                                }
+                            }), e(r).addClass(f.SHOW), 'ontouchstart' in document.documentElement && e('body').children().on('mouseover', null, e.noop);
+                            var p = function() {
+                                n.config.animation && n._fixTransition();
+                                var t = n._hoverState;
+                                n._hoverState = null, e(n.element).trigger(n.constructor.Event.SHOWN), t === m.OUT && n._leave(null, n)
+                            };
+                            l.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) ? e(this.tip).one(l.TRANSITION_END, p).emulateTransitionEnd(s._TRANSITION_DURATION) : p()
+                        }
+                    }, h.hide = function(t) {
+                        var n = this,
+                            o = this.getTipElement(),
+                            a = e.Event(this.constructor.Event.HIDE),
+                            r = function() {
+                                n._hoverState !== m.SHOW && o.parentNode && o.parentNode.removeChild(o), n._cleanTipClass(), n.element.removeAttribute('aria-describedby'), e(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), t && t()
+                            };
+                        e(this.element).trigger(a), a.isDefaultPrevented() || (e(o).removeClass(f.SHOW), 'ontouchstart' in document.documentElement && e('body').children().off('mouseover', null, e.noop), this._activeTrigger[E.CLICK] = !1, this._activeTrigger[E.FOCUS] = !1, this._activeTrigger[E.HOVER] = !1, l.supportsTransitionEnd() && e(this.tip).hasClass(f.FADE) ? e(o).one(l.TRANSITION_END, r).emulateTransitionEnd(150) : r(), this._hoverState = '')
+                    }, h.update = function() {
+                        null !== this._popper && this._popper.scheduleUpdate()
+                    }, h.isWithContent = function() {
+                        return !!this.getTitle()
+                    }, h.addAttachmentClass = function(t) {
+                        e(this.getTipElement()).addClass('bs-tooltip' + '-' + t)
+                    }, h.getTipElement = function() {
+                        return this.tip = this.tip || e(this.config.template)[0], this.tip
+                    }, h.setContent = function() {
+                        var t = e(this.getTipElement());
+                        this.setElementContent(t.find(u.TOOLTIP_INNER), this.getTitle()), t.removeClass(f.FADE + ' ' + f.SHOW)
+                    }, h.setElementContent = function(t, n) {
+                        var o = this.config.html;
+                        'object' == typeof n && (n.nodeType || n.jquery) ? o ? !e(n).parent().is(t) && t.empty().append(n) : t.text(e(n).text()) : t[o ? 'html' : 'text'](n)
+                    }, h.getTitle = function() {
+                        var e = this.element.getAttribute('data-original-title');
+                        return e || (e = 'function' == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), e
+                    }, h._getAttachment = function(e) {
+                        return _[e.toUpperCase()]
+                    }, h._setListeners = function() {
+                        var t = this,
+                            n = this.config.trigger.split(' ');
+                        n.forEach(function(n) {
+                            if ('click' === n) e(t.element).on(t.constructor.Event.CLICK, t.config.selector, function(e) {
+                                return t.toggle(e)
+                            });
+                            else if (n !== E.MANUAL) {
+                                var o = n === E.HOVER ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN,
+                                    a = n === E.HOVER ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT;
+                                e(t.element).on(o, t.config.selector, function(e) {
+                                    return t._enter(e)
+                                }).on(a, t.config.selector, function(e) {
+                                    return t._leave(e)
+                                })
+                            }
+                            e(t.element).closest('.modal').on('hide.bs.modal', function() {
+                                return t.hide()
+                            })
+                        }), this.config.selector ? this.config = a({}, this.config, {
+                            trigger: 'manual',
+                            selector: ''
+                        }) : this._fixTitle()
+                    }, h._fixTitle = function() {
+                        var e = typeof this.element.getAttribute('data-original-title');
+                        (this.element.getAttribute('title') || 'string' != e) && (this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''), this.element.setAttribute('title', ''))
+                    }, h._enter = function(t, n) {
+                        var o = this.constructor.DATA_KEY;
+                        return (n = n || e(t.currentTarget).data(o), n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(o, n)), t && (n._activeTrigger['focusin' === t.type ? E.FOCUS : E.HOVER] = !0), e(n.getTipElement()).hasClass(f.SHOW) || n._hoverState === m.SHOW) ? void(n._hoverState = m.SHOW) : (clearTimeout(n._timeout), n._hoverState = m.SHOW, n.config.delay && n.config.delay.show ? void(n._timeout = setTimeout(function() {
+                            n._hoverState === m.SHOW && n.show()
+                        }, n.config.delay.show)) : void n.show())
+                    }, h._leave = function(t, n) {
+                        var o = this.constructor.DATA_KEY;
+                        if (n = n || e(t.currentTarget).data(o), n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), e(t.currentTarget).data(o, n)), t && (n._activeTrigger['focusout' === t.type ? E.FOCUS : E.HOVER] = !1), !n._isWithActiveTrigger()) return clearTimeout(n._timeout), n._hoverState = m.OUT, n.config.delay && n.config.delay.hide ? void(n._timeout = setTimeout(function() {
+                            n._hoverState === m.OUT && n.hide()
+                        }, n.config.delay.hide)) : void n.hide()
+                    }, h._isWithActiveTrigger = function() {
+                        for (var e in this._activeTrigger)
+                            if (this._activeTrigger[e]) return !0;
+                        return !1
+                    }, h._getConfig = function(t) {
+                        return t = a({}, this.constructor.Default, e(this.element).data(), t), 'number' == typeof t.delay && (t.delay = {
+                            show: t.delay,
+                            hide: t.delay
+                        }), 'number' == typeof t.title && (t.title = t.title.toString()), 'number' == typeof t.content && (t.content = t.content.toString()), l.typeCheckConfig(n, t, this.constructor.DefaultType), t
+                    }, h._getDelegateConfig = function() {
+                        var e = {};
+                        if (this.config)
+                            for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]);
+                        return e
+                    }, h._cleanTipClass = function() {
+                        var t = e(this.getTipElement()),
+                            n = t.attr('class').match(d);
+                        null !== n && 0 < n.length && t.removeClass(n.join(''))
+                    }, h._handlePopperPlacementChange = function(e) {
+                        this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(e.placement))
+                    }, h._fixTransition = function() {
+                        var t = this.getTipElement(),
+                            n = this.config.animation;
+                        null !== t.getAttribute('x-placement') || (e(t).removeClass(f.FADE), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n)
+                    }, s._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var n = e(this).data(r);
+                            if ((n || !/dispose|hide/.test(t)) && (n || (n = new s(this, 'object' == typeof t && t), e(this).data(r, n)), 'string' == typeof t)) {
+                                if ('undefined' == typeof n[t]) throw new TypeError('No method named "' + t + '"');
+                                n[t]()
+                            }
+                        })
+                    }, o(s, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }, {
+                        key: 'Default',
+                        get: function() {
+                            return p
+                        }
+                    }, {
+                        key: 'NAME',
+                        get: function() {
+                            return n
+                        }
+                    }, {
+                        key: 'DATA_KEY',
+                        get: function() {
+                            return r
+                        }
+                    }, {
+                        key: 'Event',
+                        get: function() {
+                            return g
+                        }
+                    }, {
+                        key: 'EVENT_KEY',
+                        get: function() {
+                            return i
+                        }
+                    }, {
+                        key: 'DefaultType',
+                        get: function() {
+                            return c
+                        }
+                    }]), s
+                }();
+            return e.fn[n] = h._jQueryInterface, e.fn[n].Constructor = h, e.fn[n].noConflict = function() {
+                return e.fn[n] = s, h._jQueryInterface
+            }, h
+        }(e, t),
+        g = function(e) {
+            var t = 'popover',
+                n = 'bs.popover',
+                i = '.' + n,
+                l = e.fn[t],
+                s = /(^|\s)bs-popover\S+/g,
+                d = a({}, m.Default, {
+                    placement: 'right',
+                    trigger: 'click',
+                    content: '',
+                    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
+                }),
+                c = a({}, m.DefaultType, {
+                    content: '(string|element|function)'
+                }),
+                _ = {
+                    FADE: 'fade',
+                    SHOW: 'show'
+                },
+                p = {
+                    TITLE: '.popover-header',
+                    CONTENT: '.popover-body'
+                },
+                g = {
+                    HIDE: 'hide' + i,
+                    HIDDEN: 'hidden' + i,
+                    SHOW: 'show' + i,
+                    SHOWN: 'shown' + i,
+                    INSERTED: 'inserted' + i,
+                    CLICK: 'click' + i,
+                    FOCUSIN: 'focusin' + i,
+                    FOCUSOUT: 'focusout' + i,
+                    MOUSEENTER: 'mouseenter' + i,
+                    MOUSELEAVE: 'mouseleave' + i
+                },
+                f = function(a) {
+                    function l() {
+                        return a.apply(this, arguments) || this
+                    }
+                    r(l, a);
+                    var m = l.prototype;
+                    return m.isWithContent = function() {
+                        return this.getTitle() || this._getContent()
+                    }, m.addAttachmentClass = function(t) {
+                        e(this.getTipElement()).addClass('bs-popover' + '-' + t)
+                    }, m.getTipElement = function() {
+                        return this.tip = this.tip || e(this.config.template)[0], this.tip
+                    }, m.setContent = function() {
+                        var t = e(this.getTipElement());
+                        this.setElementContent(t.find(p.TITLE), this.getTitle());
+                        var n = this._getContent();
+                        'function' == typeof n && (n = n.call(this.element)), this.setElementContent(t.find(p.CONTENT), n), t.removeClass(_.FADE + ' ' + _.SHOW)
+                    }, m._getContent = function() {
+                        return this.element.getAttribute('data-content') || this.config.content
+                    }, m._cleanTipClass = function() {
+                        var t = e(this.getTipElement()),
+                            n = t.attr('class').match(s);
+                        null !== n && 0 < n.length && t.removeClass(n.join(''))
+                    }, l._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var o = e(this).data(n),
+                                a = 'object' == typeof t ? t : null;
+                            if ((o || !/destroy|hide/.test(t)) && (o || (o = new l(this, a), e(this).data(n, o)), 'string' == typeof t)) {
+                                if ('undefined' == typeof o[t]) throw new TypeError('No method named "' + t + '"');
+                                o[t]()
+                            }
+                        })
+                    }, o(l, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }, {
+                        key: 'Default',
+                        get: function() {
+                            return d
+                        }
+                    }, {
+                        key: 'NAME',
+                        get: function() {
+                            return t
+                        }
+                    }, {
+                        key: 'DATA_KEY',
+                        get: function() {
+                            return n
+                        }
+                    }, {
+                        key: 'Event',
+                        get: function() {
+                            return g
+                        }
+                    }, {
+                        key: 'EVENT_KEY',
+                        get: function() {
+                            return i
+                        }
+                    }, {
+                        key: 'DefaultType',
+                        get: function() {
+                            return c
+                        }
+                    }]), l
+                }(m);
+            return e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
+                return e.fn[t] = l, f._jQueryInterface
+            }, f
+        }(e),
+        f = function(e) {
+            var t = 'scrollspy',
+                n = 'bs.scrollspy',
+                r = '.' + n,
+                s = e.fn[t],
+                d = {
+                    offset: 10,
+                    method: 'auto',
+                    target: ''
+                },
+                c = {
+                    offset: 'number',
+                    method: 'string',
+                    target: '(string|element)'
+                },
+                _ = {
+                    ACTIVATE: 'activate' + r,
+                    SCROLL: 'scroll' + r,
+                    LOAD_DATA_API: 'load' + r + '.data-api'
+                },
+                p = {
+                    DROPDOWN_ITEM: 'dropdown-item',
+                    DROPDOWN_MENU: 'dropdown-menu',
+                    ACTIVE: 'active'
+                },
+                m = {
+                    DATA_SPY: '[data-spy="scroll"]',
+                    ACTIVE: '.active',
+                    NAV_LIST_GROUP: '.nav, .list-group',
+                    NAV_LINKS: '.nav-link',
+                    NAV_ITEMS: '.nav-item',
+                    LIST_ITEMS: '.list-group-item',
+                    DROPDOWN: '.dropdown',
+                    DROPDOWN_ITEMS: '.dropdown-item',
+                    DROPDOWN_TOGGLE: '.dropdown-toggle'
+                },
+                g = {
+                    OFFSET: 'offset',
+                    POSITION: 'position'
+                },
+                f = function() {
+                    function s(t, n) {
+                        var o = this;
+                        this._element = t, this._scrollElement = 'BODY' === t.tagName ? window : t, this._config = this._getConfig(n), this._selector = this._config.target + ' ' + m.NAV_LINKS + ',' + (this._config.target + ' ' + m.LIST_ITEMS + ',') + (this._config.target + ' ' + m.DROPDOWN_ITEMS), this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, e(this._scrollElement).on(_.SCROLL, function(e) {
+                            return o._process(e)
+                        }), this.refresh(), this._process()
+                    }
+                    var f = s.prototype;
+                    return f.refresh = function() {
+                        var t = this,
+                            n = this._scrollElement === this._scrollElement.window ? g.OFFSET : g.POSITION,
+                            o = 'auto' === this._config.method ? n : this._config.method,
+                            a = o === g.POSITION ? this._getScrollTop() : 0;
+                        this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight();
+                        var r = e.makeArray(e(this._selector));
+                        r.map(function(t) {
+                            var n, r = l.getSelectorFromElement(t);
+                            if (r && (n = e(r)[0]), n) {
+                                var i = n.getBoundingClientRect();
+                                if (i.width || i.height) return [e(n)[o]().top + a, r]
+                            }
+                            return null
+                        }).filter(function(e) {
+                            return e
+                        }).sort(function(e, t) {
+                            return e[0] - t[0]
+                        }).forEach(function(e) {
+                            t._offsets.push(e[0]), t._targets.push(e[1])
+                        })
+                    }, f.dispose = function() {
+                        e.removeData(this._element, n), e(this._scrollElement).off(r), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
+                    }, f._getConfig = function(n) {
+                        if (n = a({}, d, n), 'string' != typeof n.target) {
+                            var o = e(n.target).attr('id');
+                            o || (o = l.getUID(t), e(n.target).attr('id', o)), n.target = '#' + o
+                        }
+                        return l.typeCheckConfig(t, n, c), n
+                    }, f._getScrollTop = function() {
+                        return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
+                    }, f._getScrollHeight = function() {
+                        return this._scrollElement.scrollHeight || i(document.body.scrollHeight, document.documentElement.scrollHeight)
+                    }, f._getOffsetHeight = function() {
+                        return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
+                    }, f._process = function() {
+                        var e = this._getScrollTop() + this._config.offset,
+                            t = this._getScrollHeight(),
+                            n = this._config.offset + t - this._getOffsetHeight();
+                        if (this._scrollHeight !== t && this.refresh(), e >= n) {
+                            var o = this._targets[this._targets.length - 1];
+                            return void(this._activeTarget !== o && this._activate(o))
+                        }
+                        if (this._activeTarget && e < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
+                        for (var a, r = this._offsets.length; r--;) a = this._activeTarget !== this._targets[r] && e >= this._offsets[r] && ('undefined' == typeof this._offsets[r + 1] || e < this._offsets[r + 1]), a && this._activate(this._targets[r])
+                    }, f._activate = function(t) {
+                        this._activeTarget = t, this._clear();
+                        var n = this._selector.split(',');
+                        n = n.map(function(e) {
+                            return e + '[data-target="' + t + '"],' + (e + '[href="' + t + '"]')
+                        });
+                        var o = e(n.join(','));
+                        o.hasClass(p.DROPDOWN_ITEM) ? (o.closest(m.DROPDOWN).find(m.DROPDOWN_TOGGLE).addClass(p.ACTIVE), o.addClass(p.ACTIVE)) : (o.addClass(p.ACTIVE), o.parents(m.NAV_LIST_GROUP).prev(m.NAV_LINKS + ', ' + m.LIST_ITEMS).addClass(p.ACTIVE), o.parents(m.NAV_LIST_GROUP).prev(m.NAV_ITEMS).children(m.NAV_LINKS).addClass(p.ACTIVE)), e(this._scrollElement).trigger(_.ACTIVATE, {
+                            relatedTarget: t
+                        })
+                    }, f._clear = function() {
+                        e(this._selector).filter(m.ACTIVE).removeClass(p.ACTIVE)
+                    }, s._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var o = e(this).data(n);
+                            if (o || (o = new s(this, 'object' == typeof t && t), e(this).data(n, o)), 'string' == typeof t) {
+                                if ('undefined' == typeof o[t]) throw new TypeError('No method named "' + t + '"');
+                                o[t]()
+                            }
+                        })
+                    }, o(s, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }, {
+                        key: 'Default',
+                        get: function() {
+                            return d
+                        }
+                    }]), s
+                }();
+            return e(window).on(_.LOAD_DATA_API, function() {
+                for (var t, n = e.makeArray(e(m.DATA_SPY)), o = n.length; o--;) t = e(n[o]), f._jQueryInterface.call(t, t.data())
+            }), e.fn[t] = f._jQueryInterface, e.fn[t].Constructor = f, e.fn[t].noConflict = function() {
+                return e.fn[t] = s, f._jQueryInterface
+            }, f
+        }(e),
+        u = function(e) {
+            var t = 'tab',
+                n = 'bs.tab',
+                a = '.' + n,
+                r = e.fn[t],
+                i = {
+                    HIDE: 'hide' + a,
+                    HIDDEN: 'hidden' + a,
+                    SHOW: 'show' + a,
+                    SHOWN: 'shown' + a,
+                    CLICK_DATA_API: 'click' + a + '.data-api'
+                },
+                s = {
+                    DROPDOWN_MENU: 'dropdown-menu',
+                    ACTIVE: 'active',
+                    DISABLED: 'disabled',
+                    FADE: 'fade',
+                    SHOW: 'show'
+                },
+                d = {
+                    DROPDOWN: '.dropdown',
+                    NAV_LIST_GROUP: '.nav, .list-group',
+                    ACTIVE: '.active',
+                    ACTIVE_UL: '> li > .active',
+                    DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
+                    DROPDOWN_TOGGLE: '.dropdown-toggle',
+                    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+                },
+                c = function() {
+                    function t(e) {
+                        this._element = e
+                    }
+                    var a = t.prototype;
+                    return a.show = function() {
+                        var t = this;
+                        if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && e(this._element).hasClass(s.ACTIVE) || e(this._element).hasClass(s.DISABLED))) {
+                            var n, o, a = e(this._element).closest(d.NAV_LIST_GROUP)[0],
+                                r = l.getSelectorFromElement(this._element);
+                            if (a) {
+                                var c = 'UL' === a.nodeName ? d.ACTIVE_UL : d.ACTIVE;
+                                o = e.makeArray(e(a).find(c)), o = o[o.length - 1]
+                            }
+                            var _ = e.Event(i.HIDE, {
+                                    relatedTarget: this._element
+                                }),
+                                p = e.Event(i.SHOW, {
+                                    relatedTarget: o
+                                });
+                            if (o && e(o).trigger(_), e(this._element).trigger(p), !(p.isDefaultPrevented() || _.isDefaultPrevented())) {
+                                r && (n = e(r)[0]), this._activate(this._element, a);
+                                var m = function() {
+                                    var n = e.Event(i.HIDDEN, {
+                                            relatedTarget: t._element
+                                        }),
+                                        a = e.Event(i.SHOWN, {
+                                            relatedTarget: o
+                                        });
+                                    e(o).trigger(n), e(t._element).trigger(a)
+                                };
+                                n ? this._activate(n, n.parentNode, m) : m()
+                            }
+                        }
+                    }, a.dispose = function() {
+                        e.removeData(this._element, n), this._element = null
+                    }, a._activate = function(t, n, o) {
+                        var a, r = this;
+                        a = 'UL' === n.nodeName ? e(n).find(d.ACTIVE_UL) : e(n).children(d.ACTIVE);
+                        var i = a[0],
+                            c = o && l.supportsTransitionEnd() && i && e(i).hasClass(s.FADE),
+                            _ = function() {
+                                return r._transitionComplete(t, i, o)
+                            };
+                        i && c ? e(i).one(l.TRANSITION_END, _).emulateTransitionEnd(150) : _()
+                    }, a._transitionComplete = function(t, n, o) {
+                        if (n) {
+                            e(n).removeClass(s.SHOW + ' ' + s.ACTIVE);
+                            var a = e(n.parentNode).find(d.DROPDOWN_ACTIVE_CHILD)[0];
+                            a && e(a).removeClass(s.ACTIVE), 'tab' === n.getAttribute('role') && n.setAttribute('aria-selected', !1)
+                        }
+                        if (e(t).addClass(s.ACTIVE), 'tab' === t.getAttribute('role') && t.setAttribute('aria-selected', !0), l.reflow(t), e(t).addClass(s.SHOW), t.parentNode && e(t.parentNode).hasClass(s.DROPDOWN_MENU)) {
+                            var r = e(t).closest(d.DROPDOWN)[0];
+                            r && e(r).find(d.DROPDOWN_TOGGLE).addClass(s.ACTIVE), t.setAttribute('aria-expanded', !0)
+                        }
+                        o && o()
+                    }, t._jQueryInterface = function(o) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            if (r || (r = new t(this), a.data(n, r)), 'string' == typeof o) {
+                                if ('undefined' == typeof r[o]) throw new TypeError('No method named "' + o + '"');
+                                r[o]()
+                            }
+                        })
+                    }, o(t, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0'
+                        }
+                    }]), t
+                }();
+            return e(document).on(i.CLICK_DATA_API, d.DATA_TOGGLE, function(t) {
+                t.preventDefault(), c._jQueryInterface.call(e(this), 'show')
+            }), e.fn[t] = c._jQueryInterface, e.fn[t].Constructor = c, e.fn[t].noConflict = function() {
+                return e.fn[t] = r, c._jQueryInterface
+            }, c
+        }(e),
+        E = function() {
+            function e() {
+                if (window.QUnit) return !1;
+                var e = document.createElement('bmd');
+                for (var t in o)
+                    if (void 0 !== e.style[t]) return o[t];
+                return !1
+            }
+            var t = !1,
+                n = '',
+                o = {
+                    WebkitTransition: 'webkitTransitionEnd',
+                    MozTransition: 'transitionend',
+                    OTransition: 'oTransitionEnd otransitionend',
+                    transition: 'transitionend'
+                };
+            return function() {
+                for (var a in t = e(), o) n += ' ' + o[a]
+            }(), {
+                transitionEndSupported: function() {
+                    return t
+                },
+                transitionEndSelector: function() {
+                    return n
+                },
+                isChar: function(e) {
+                    return !('undefined' != typeof e.which) || 'number' == typeof e.which && 0 < e.which && !e.ctrlKey && !e.metaKey && !e.altKey && 8 !== e.which && 9 !== e.which && 13 !== e.which && 16 !== e.which && 17 !== e.which && 20 !== e.which && 27 !== e.which
+                },
+                assert: function(e, t, n) {
+                    if (t) throw void 0 === !e && e.css('border', '1px solid red'), console.error(n, e), n
+                },
+                describe: function(e) {
+                    return void 0 === e ? 'undefined' : 0 === e.length ? '(no matching elements)' : e[0].outerHTML.split('>')[0] + '>'
+                }
+            }
+        }(jQuery),
+        h = function(e) {
+            var t = {
+                    BMD_FORM_GROUP: 'bmd-form-group',
+                    IS_FILLED: 'is-filled',
+                    IS_FOCUSED: 'is-focused'
+                },
+                n = {
+                    BMD_FORM_GROUP: '.' + t.BMD_FORM_GROUP
+                },
+                o = {},
+                a = function() {
+                    function a(t, n, a) {
+                        for (var r in void 0 === a && (a = {}), this.$element = t, this.config = e.extend(!0, {}, o, n), a) this[r] = a[r]
+                    }
+                    var r = a.prototype;
+                    return r.dispose = function(e) {
+                        this.$element.data(e, null), this.$element = null, this.config = null
+                    }, r.addFormGroupFocus = function() {
+                        this.$element.prop('disabled') || this.$bmdFormGroup.addClass(t.IS_FOCUSED)
+                    }, r.removeFormGroupFocus = function() {
+                        this.$bmdFormGroup.removeClass(t.IS_FOCUSED)
+                    }, r.removeIsFilled = function() {
+                        this.$bmdFormGroup.removeClass(t.IS_FILLED)
+                    }, r.addIsFilled = function() {
+                        this.$bmdFormGroup.addClass(t.IS_FILLED)
+                    }, r.findMdbFormGroup = function(t) {
+                        void 0 === t && (t = !0);
+                        var o = this.$element.closest(n.BMD_FORM_GROUP);
+                        return 0 === o.length && t && e.error('Failed to find ' + n.BMD_FORM_GROUP + ' for ' + E.describe(this.$element)), o
+                    }, a
+                }();
+            return a
+        }(jQuery),
+        A = function(e) {
+            var t = {
+                    FORM_GROUP: 'form-group',
+                    BMD_FORM_GROUP: 'bmd-form-group',
+                    BMD_LABEL: 'bmd-label',
+                    BMD_LABEL_STATIC: 'bmd-label-static',
+                    BMD_LABEL_PLACEHOLDER: 'bmd-label-placeholder',
+                    BMD_LABEL_FLOATING: 'bmd-label-floating',
+                    HAS_DANGER: 'has-danger',
+                    IS_FILLED: 'is-filled',
+                    IS_FOCUSED: 'is-focused',
+                    INPUT_GROUP: 'input-group'
+                },
+                n = {
+                    FORM_GROUP: '.' + t.FORM_GROUP,
+                    BMD_FORM_GROUP: '.' + t.BMD_FORM_GROUP,
+                    BMD_LABEL_WILDCARD: 'label[class^=\'' + t.BMD_LABEL + '\'], label[class*=\' ' + t.BMD_LABEL + '\']'
+                },
+                o = {
+                    validate: !1,
+                    formGroup: {
+                        required: !1
+                    },
+                    bmdFormGroup: {
+                        template: '<span class=\'' + t.BMD_FORM_GROUP + '\'></span>',
+                        create: !0,
+                        required: !0
+                    },
+                    label: {
+                        required: !1,
+                        selectors: ['.form-control-label', '> label'],
+                        className: t.BMD_LABEL_STATIC
+                    },
+                    requiredClasses: [],
+                    invalidComponentMatches: [],
+                    convertInputSizeVariations: !0
+                },
+                a = {
+                    "form-control-lg": 'bmd-form-group-lg',
+                    "form-control-sm": 'bmd-form-group-sm'
+                },
+                i = function(i) {
+                    function l(t, n, a) {
+                        var r;
+                        return void 0 === a && (a = {}), r = i.call(this, t, e.extend(!0, {}, o, n), a) || this, r._rejectInvalidComponentMatches(), r.rejectWithoutRequiredStructure(), r._rejectWithoutRequiredClasses(), r.$formGroup = r.findFormGroup(r.config.formGroup.required), r.$bmdFormGroup = r.resolveMdbFormGroup(), r.$bmdLabel = r.resolveMdbLabel(), r.resolveMdbFormGroupSizing(), r.addFocusListener(), r.addChangeListener(), '' != r.$element.val() && r.addIsFilled(), r
+                    }
+                    r(l, i);
+                    var s = l.prototype;
+                    return s.dispose = function(e) {
+                        i.prototype.dispose.call(this, e), this.$bmdFormGroup = null, this.$formGroup = null
+                    }, s.rejectWithoutRequiredStructure = function() {}, s.addFocusListener = function() {
+                        var e = this;
+                        this.$element.on('focus', function() {
+                            e.addFormGroupFocus()
+                        }).on('blur', function() {
+                            e.removeFormGroupFocus()
+                        })
+                    }, s.addChangeListener = function() {
+                        var e = this;
+                        this.$element.on('keydown paste', function(t) {
+                            E.isChar(t) && e.addIsFilled()
+                        }).on('keyup change', function() {
+                            if (e.isEmpty() ? e.removeIsFilled() : e.addIsFilled(), e.config.validate) {
+                                var t = 'undefined' == typeof e.$element[0].checkValidity || e.$element[0].checkValidity();
+                                t ? e.removeHasDanger() : e.addHasDanger()
+                            }
+                        })
+                    }, s.addHasDanger = function() {
+                        this.$bmdFormGroup.addClass(t.HAS_DANGER)
+                    }, s.removeHasDanger = function() {
+                        this.$bmdFormGroup.removeClass(t.HAS_DANGER)
+                    }, s.isEmpty = function() {
+                        return null === this.$element.val() || void 0 === this.$element.val() || '' === this.$element.val()
+                    }, s.resolveMdbFormGroup = function() {
+                        var e = this.findMdbFormGroup(!1);
+                        return (void 0 === e || 0 === e.length) && (this.config.bmdFormGroup.create && (void 0 === this.$formGroup || 0 === this.$formGroup.length) ? this.outerElement().parent().hasClass(t.INPUT_GROUP) ? this.outerElement().parent().wrap(this.config.bmdFormGroup.template) : this.outerElement().wrap(this.config.bmdFormGroup.template) : this.$formGroup.addClass(t.BMD_FORM_GROUP), e = this.findMdbFormGroup(this.config.bmdFormGroup.required)), e
+                    }, s.outerElement = function() {
+                        return this.$element
+                    }, s.resolveMdbLabel = function() {
+                        var e = this.$bmdFormGroup.find(n.BMD_LABEL_WILDCARD);
+                        return (void 0 === e || 0 === e.length) && (e = this.findMdbLabel(this.config.label.required), void 0 === e || 0 === e.length || e.addClass(this.config.label.className)), e
+                    }, s.findMdbLabel = function(t) {
+                        void 0 === t && (t = !0);
+                        for (var o = null, a = this.config.label.selectors, r = Array.isArray(a), i = 0, a = r ? a : a[Symbol.iterator]();;) {
+                            var l;
+                            if (r) {
+                                if (i >= a.length) break;
+                                l = a[i++]
+                            } else {
+                                if (i = a.next(), i.done) break;
+                                l = i.value
+                            }
+                            var s = l;
+                            if (o = e.isFunction(s) ? s(this) : this.$bmdFormGroup.find(s), void 0 !== o && 0 < o.length) break
+                        }
+                        return 0 === o.length && t && e.error('Failed to find ' + n.BMD_LABEL_WILDCARD + ' within form-group for ' + E.describe(this.$element)), o
+                    }, s.findFormGroup = function(t) {
+                        void 0 === t && (t = !0);
+                        var o = this.$element.closest(n.FORM_GROUP);
+                        return 0 === o.length && t && e.error('Failed to find ' + n.FORM_GROUP + ' for ' + E.describe(this.$element)), o
+                    }, s.resolveMdbFormGroupSizing = function() {
+                        if (this.config.convertInputSizeVariations)
+                            for (var e in a) this.$element.hasClass(e) && this.$bmdFormGroup.addClass(a[e])
+                    }, s._rejectInvalidComponentMatches = function() {
+                        for (var e = this.config.invalidComponentMatches, t = Array.isArray(e), n = 0, e = t ? e : e[Symbol.iterator]();;) {
+                            var o;
+                            if (t) {
+                                if (n >= e.length) break;
+                                o = e[n++]
+                            } else {
+                                if (n = e.next(), n.done) break;
+                                o = n.value
+                            }
+                            var a = o;
+                            a.rejectMatch(this.constructor.name, this.$element)
+                        }
+                    }, s._rejectWithoutRequiredClasses = function() {
+                        for (var t = this.config.requiredClasses, n = Array.isArray(t), o = 0, t = n ? t : t[Symbol.iterator]();;) {
+                            var a;
+                            if (n) {
+                                if (o >= t.length) break;
+                                a = t[o++]
+                            } else {
+                                if (o = t.next(), o.done) break;
+                                a = o.value
+                            }
+                            var r = a,
+                                i = !1;
+                            if (-1 !== r.indexOf('||'))
+                                for (var l = r.split('||'), s = l, d = Array.isArray(s), c = 0, s = d ? s : s[Symbol.iterator]();;) {
+                                    var _;
+                                    if (d) {
+                                        if (c >= s.length) break;
+                                        _ = s[c++]
+                                    } else {
+                                        if (c = s.next(), c.done) break;
+                                        _ = c.value
+                                    }
+                                    var p = _;
+                                    if (this.$element.hasClass(p)) {
+                                        i = !0;
+                                        break
+                                    }
+                                } else this.$element.hasClass(r) && (i = !0);
+                            i || e.error(this.constructor.name + ' element: ' + E.describe(this.$element) + ' requires class: ' + r)
+                        }
+                    }, l
+                }(h);
+            return i
+        }(jQuery),
+        C = function(e) {
+            var t = {
+                    label: {
+                        required: !1
+                    }
+                },
+                n = {
+                    LABEL: 'label'
+                },
+                o = function(o) {
+                    function a(n, a, r) {
+                        var i;
+                        return i = o.call(this, n, e.extend(!0, {}, t, a), r) || this, i.decorateMarkup(), i
+                    }
+                    r(a, o);
+                    var i = a.prototype;
+                    return i.decorateMarkup = function() {
+                        var t = e(this.config.template);
+                        this.$element.after(t), !1 !== this.config.ripples && t.bmdRipples()
+                    }, i.outerElement = function() {
+                        return this.$element.parent().closest('.' + this.outerClass)
+                    }, i.rejectWithoutRequiredStructure = function() {
+                        E.assert(this.$element, 'label' === !this.$element.parent().prop('tagName'), this.constructor.name + '\'s ' + E.describe(this.$element) + ' parent element should be <label>.'), E.assert(this.$element, !this.outerElement().hasClass(this.outerClass), this.constructor.name + '\'s ' + E.describe(this.$element) + ' outer element should have class ' + this.outerClass + '.')
+                    }, i.addFocusListener = function() {
+                        var e = this;
+                        this.$element.closest(n.LABEL).hover(function() {
+                            e.addFormGroupFocus()
+                        }, function() {
+                            e.removeFormGroupFocus()
+                        })
+                    }, i.addChangeListener = function() {
+                        var e = this;
+                        this.$element.change(function() {
+                            e.$element.blur()
+                        })
+                    }, a
+                }(A);
+            return o
+        }(jQuery),
+        I = function(e) {
+            var t = 'checkbox',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    template: '<span class=\'checkbox-decorator\'><span class=\'check\'></span></span>'
+                },
+                l = function(o) {
+                    function a(n, a, r) {
+                        return void 0 === r && (r = {
+                            inputType: t,
+                            outerClass: t
+                        }), o.call(this, n, e.extend(!0, i, a), r) || this
+                    }
+                    r(a, o);
+                    var l = a.prototype;
+                    return l.dispose = function(e) {
+                        void 0 === e && (e = n), o.prototype.dispose.call(this, e)
+                    }, a.matches = function(e) {
+                        return 'checkbox' === e.attr('type')
+                    }, a.rejectMatch = function(e, t) {
+                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'checkbox\'.')
+                    }, a._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var o = e(this),
+                                r = o.data(n);
+                            r || (r = new a(o, t), o.data(n, r))
+                        })
+                    }, a
+                }(C);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        T = function(e) {
+            var t = 'checkboxInline',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    bmdFormGroup: {
+                        create: !1,
+                        required: !1
+                    }
+                },
+                l = function(t) {
+                    function o(n, o, a) {
+                        return void 0 === a && (a = {
+                            inputType: 'checkbox',
+                            outerClass: 'checkbox-inline'
+                        }), t.call(this, n, e.extend(!0, {}, i, o), a) || this
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n)
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(I);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        N = function(e) {
+            var t = 'collapseInline',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    ANY_INPUT: 'input, select, textarea'
+                },
+                l = {
+                    IN: 'in',
+                    COLLAPSE: 'collapse',
+                    COLLAPSING: 'collapsing',
+                    COLLAPSED: 'collapsed',
+                    WIDTH: 'width'
+                },
+                s = {},
+                d = function(t) {
+                    function o(n, o) {
+                        var a;
+                        a = t.call(this, n, e.extend(!0, {}, s, o)) || this, a.$bmdFormGroup = a.findMdbFormGroup(!0);
+                        var r = n.data('target');
+                        a.$collapse = e(r), E.assert(n, 0 === a.$collapse.length, 'Cannot find collapse target for ' + E.describe(n)), E.assert(a.$collapse, !a.$collapse.hasClass(l.COLLAPSE), E.describe(a.$collapse) + ' is expected to have the \'' + l.COLLAPSE + '\' class.  It is being targeted by ' + E.describe(n));
+                        var d = a.$bmdFormGroup.find(i.ANY_INPUT);
+                        return 0 < d.length && (a.$input = d.first()), a.$collapse.hasClass(l.WIDTH) || a.$collapse.addClass(l.WIDTH), a.$input && (a.$collapse.on('shown.bs.collapse', function() {
+                            a.$input.focus()
+                        }), a.$input.blur(function() {
+                            a.$collapse.collapse('hide')
+                        })), a
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n), this.$bmdFormGroup = null, this.$collapse = null, this.$input = null
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(h);
+            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, d._jQueryInterface
+            }, d
+        }(jQuery),
+        b = function(e) {
+            var t = 'file',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {},
+                l = {
+                    FILE: t,
+                    IS_FILE: 'is-file'
+                },
+                s = {
+                    FILENAMES: 'input.form-control[readonly]'
+                },
+                d = function(t) {
+                    function o(n, o) {
+                        var a;
+                        return a = t.call(this, n, e.extend(!0, i, o)) || this, a.$bmdFormGroup.addClass(l.IS_FILE), a
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n)
+                    }, o.matches = function(e) {
+                        return 'file' === e.attr('type')
+                    }, o.rejectMatch = function(e, t) {
+                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'file\'.')
+                    }, a.outerElement = function() {
+                        return this.$element.parent().closest('.' + l.FILE)
+                    }, a.rejectWithoutRequiredStructure = function() {
+                        E.assert(this.$element, 'label' === !this.outerElement().prop('tagName'), this.constructor.name + '\'s ' + E.describe(this.$element) + ' parent element ' + E.describe(this.outerElement()) + ' should be <label>.'), E.assert(this.$element, !this.outerElement().hasClass(l.FILE), this.constructor.name + '\'s ' + E.describe(this.$element) + ' parent element ' + E.describe(this.outerElement()) + ' should have class .' + l.FILE + '.')
+                    }, a.addFocusListener = function() {
+                        var e = this;
+                        this.$bmdFormGroup.on('focus', function() {
+                            e.addFormGroupFocus()
+                        }).on('blur', function() {
+                            e.removeFormGroupFocus()
+                        })
+                    }, a.addChangeListener = function() {
+                        var t = this;
+                        this.$element.on('change', function() {
+                            var n = '';
+                            e.each(t.$element.files, function(e, t) {
+                                n += t.name + '  , '
+                            }), n = n.substring(0, n.length - 2), n ? t.addIsFilled() : t.removeIsFilled(), t.$bmdFormGroup.find(s.FILENAMES).val(n)
+                        })
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(A);
+            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, d._jQueryInterface
+            }, d
+        }(jQuery),
+        O = function(e) {
+            var t = 'radio',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    template: '<span class=\'bmd-radio\'></span>'
+                },
+                l = function(o) {
+                    function a(n, a, r) {
+                        return void 0 === r && (r = {
+                            inputType: t,
+                            outerClass: t
+                        }), o.call(this, n, e.extend(!0, i, a), r) || this
+                    }
+                    r(a, o);
+                    var l = a.prototype;
+                    return l.dispose = function(e) {
+                        void 0 === e && (e = n), o.prototype.dispose.call(this, e)
+                    }, a.matches = function(e) {
+                        return 'radio' === e.attr('type')
+                    }, a.rejectMatch = function(e, t) {
+                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'radio\'.')
+                    }, a._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var o = e(this),
+                                r = o.data(n);
+                            r || (r = new a(o, t), o.data(n, r))
+                        })
+                    }, a
+                }(C);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        D = function(e) {
+            var t = 'radioInline',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    bmdFormGroup: {
+                        create: !1,
+                        required: !1
+                    }
+                },
+                l = function(t) {
+                    function o(n, o, a) {
+                        return void 0 === a && (a = {
+                            inputType: 'radio',
+                            outerClass: 'radio-inline'
+                        }), t.call(this, n, e.extend(!0, {}, i, o), a) || this
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n)
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(O);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        y = function(e) {
+            var t = {
+                    requiredClasses: ['form-control']
+                },
+                n = function(n) {
+                    function o(o, a) {
+                        var r;
+                        return r = n.call(this, o, e.extend(!0, t, a)) || this, r.isEmpty() && r.removeIsFilled(), r
+                    }
+                    return r(o, n), o
+                }(A);
+            return n
+        }(jQuery),
+        S = function(e) {
+            var t = 'select',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    requiredClasses: ['form-control||custom-select']
+                },
+                l = function(t) {
+                    function o(n, o) {
+                        var a;
+                        return a = t.call(this, n, e.extend(!0, i, o)) || this, a.addIsFilled(), a
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n)
+                    }, o.matches = function(e) {
+                        return 'select' === e.prop('tagName')
+                    }, o.rejectMatch = function(e, t) {
+                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for <select>.')
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(y);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        v = function(e) {
+            var t = 'switch',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    template: '<span class=\'bmd-switch-track\'></span>'
+                },
+                l = function(t) {
+                    function o(n, o, a) {
+                        return void 0 === a && (a = {
+                            inputType: 'checkbox',
+                            outerClass: 'switch'
+                        }), t.call(this, n, e.extend(!0, {}, i, o), a) || this
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n)
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(I);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        R = function(e) {
+            var t = 'text',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {},
+                l = function(t) {
+                    function o(n, o) {
+                        return t.call(this, n, e.extend(!0, i, o)) || this
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function(e) {
+                        void 0 === e && (e = n), t.prototype.dispose.call(this, e)
+                    }, o.matches = function(e) {
+                        return 'text' === e.attr('type')
+                    }, o.rejectMatch = function(e, t) {
+                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for type=\'text\'.')
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(y);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        M = function(e) {
+            var t = 'textarea',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {},
+                l = function(t) {
+                    function o(n, o) {
+                        return t.call(this, n, e.extend(!0, i, o)) || this
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n)
+                    }, o.matches = function(e) {
+                        return 'textarea' === e.prop('tagName')
+                    }, o.rejectMatch = function(e, t) {
+                        E.assert(this.$element, this.matches(t), e + ' component element ' + E.describe(t) + ' is invalid for <textarea>.')
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(y);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery),
+        L = function(e) {
+            if ('undefined' == typeof Popper) throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
+            var t = 'dropdown',
+                n = 'bs.dropdown',
+                a = '.' + n,
+                r = '.data-api',
+                i = e.fn[t],
+                s = 27,
+                d = 32,
+                c = 9,
+                _ = /38|40|27/,
+                p = {
+                    HIDE: 'hide' + a,
+                    HIDDEN: 'hidden' + a,
+                    SHOW: 'show' + a,
+                    SHOWN: 'shown' + a,
+                    CLICK: 'click' + a,
+                    CLICK_DATA_API: 'click' + a + r,
+                    KEYDOWN_DATA_API: 'keydown' + a + r,
+                    KEYUP_DATA_API: 'keyup' + a + r,
+                    TRANSITION_END: 'transitionend webkitTransitionEnd oTransitionEnd animationend webkitAnimationEnd oAnimationEnd'
+                },
+                m = {
+                    DISABLED: 'disabled',
+                    SHOW: 'show',
+                    SHOWING: 'showing',
+                    HIDING: 'hiding',
+                    DROPUP: 'dropup',
+                    MENURIGHT: 'dropdown-menu-right',
+                    MENULEFT: 'dropdown-menu-left'
+                },
+                g = {
+                    DATA_TOGGLE: '[data-toggle="dropdown"]',
+                    FORM_CHILD: '.dropdown form',
+                    MENU: '.dropdown-menu',
+                    NAVBAR_NAV: '.navbar-nav',
+                    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
+                },
+                f = {
+                    TOP: 'top-start',
+                    TOPEND: 'top-end',
+                    BOTTOM: 'bottom-start',
+                    BOTTOMEND: 'bottom-end'
+                },
+                u = {
+                    placement: f.BOTTOM,
+                    offset: 0,
+                    flip: !0
+                },
+                E = {
+                    placement: 'string',
+                    offset: '(number|string)',
+                    flip: 'boolean'
+                },
+                h = function() {
+                    function r(e, t) {
+                        this._element = e, this._popper = null, this._config = this._getConfig(t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
+                    }
+                    var i = r.prototype;
+                    return i.toggle = function() {
+                        var t = this;
+                        if (!(this._element.disabled || e(this._element).hasClass(m.DISABLED))) {
+                            var n = r._getParentFromElement(this._element),
+                                o = e(this._menu).hasClass(m.SHOW);
+                            if (r._clearMenus(), !o) {
+                                var a = {
+                                        relatedTarget: this._element
+                                    },
+                                    i = e.Event(p.SHOW, a);
+                                if (e(n).trigger(i), !i.isDefaultPrevented()) {
+                                    var l = this._element;
+                                    e(n).hasClass(m.DROPUP) && (e(this._menu).hasClass(m.MENULEFT) || e(this._menu).hasClass(m.MENURIGHT)) && (l = n), this._popper = new Popper(l, this._menu, this._getPopperConfig()), 'ontouchstart' in document.documentElement && !e(n).closest(g.NAVBAR_NAV).length && e('body').children().on('mouseover', null, e.noop), this._element.focus(), this._element.setAttribute('aria-expanded', !0), e(this._menu).one(p.TRANSITION_END, function() {
+                                        e(n).trigger(e.Event(p.SHOWN, a)), e(t._menu).removeClass(m.SHOWING)
+                                    }), e(this._menu).addClass(m.SHOW + ' ' + m.SHOWING), e(n).addClass(m.SHOW)
+                                }
+                            }
+                        }
+                    }, i.dispose = function() {
+                        e.removeData(this._element, n), e(this._element).off(a), this._element = null, this._menu = null, null !== this._popper && this._popper.destroy(), this._popper = null
+                    }, i.update = function() {
+                        this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
+                    }, i._addEventListeners = function() {
+                        var t = this;
+                        e(this._element).on(p.CLICK, function(e) {
+                            e.preventDefault(), e.stopPropagation(), t.toggle()
+                        })
+                    }, i._getConfig = function(n) {
+                        var o = e(this._element).data();
+                        return void 0 !== o.placement && (o.placement = f[o.placement.toUpperCase()]), n = e.extend({}, this.constructor.Default, e(this._element).data(), n), l.typeCheckConfig(t, n, this.constructor.DefaultType), n
+                    }, i._getMenuElement = function() {
+                        if (!this._menu) {
+                            var t = r._getParentFromElement(this._element);
+                            this._menu = e(t).find(g.MENU)[0]
+                        }
+                        return this._menu
+                    }, i._getPlacement = function() {
+                        var t = e(this._element).parent(),
+                            n = this._config.placement;
+                        return t.hasClass(m.DROPUP) || this._config.placement === f.TOP ? (n = f.TOP, e(this._menu).hasClass(m.MENURIGHT) && (n = f.TOPEND)) : e(this._menu).hasClass(m.MENURIGHT) && (n = f.BOTTOMEND), n
+                    }, i._detectNavbar = function() {
+                        return 0 < e(this._element).closest('.navbar').length
+                    }, i._getPopperConfig = function() {
+                        var e = {
+                            placement: this._getPlacement(),
+                            modifiers: {
+                                offset: {
+                                    offset: this._config.offset
+                                },
+                                flip: {
+                                    enabled: this._config.flip
+                                }
+                            }
+                        };
+                        return this._inNavbar && (e.modifiers.applyStyle = {
+                            enabled: !this._inNavbar
+                        }), e
+                    }, r._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var o = e(this).data(n),
+                                a = 'object' == typeof t ? t : null;
+                            if (o || (o = new r(this, a), e(this).data(n, o)), 'string' == typeof t) {
+                                if (void 0 === o[t]) throw new Error('No method named "' + t + '"');
+                                o[t]()
+                            }
+                        })
+                    }, r._clearMenus = function(t) {
+                        if (!(t && (t.which === 3 || 'keyup' === t.type && t.which !== c)))
+                            for (var o, a = e.makeArray(e(g.DATA_TOGGLE)), l = function(o) {
+                                    var i = r._getParentFromElement(a[o]),
+                                        l = e(a[o]).data(n),
+                                        s = {
+                                            relatedTarget: a[o]
+                                        };
+                                    if (!l) return 'continue';
+                                    var d = l._menu;
+                                    if (!e(i).hasClass(m.SHOW)) return 'continue';
+                                    if (t && ('click' === t.type && /input|textarea/i.test(t.target.tagName) || 'keyup' === t.type && t.which === c) && e.contains(i, t.target)) return 'continue';
+                                    var _ = e.Event(p.HIDE, s);
+                                    return e(i).trigger(_), _.isDefaultPrevented() ? 'continue' : void(('ontouchstart' in document.documentElement) && e('body').children().off('mouseover', null, e.noop), a[o].setAttribute('aria-expanded', 'false'), e(d).addClass(m.HIDING).removeClass(m.SHOW), e(i).removeClass(m.SHOW), e(d).one(p.TRANSITION_END, function() {
+                                        e(i).trigger(e.Event(p.HIDDEN, s)), e(d).removeClass(m.HIDING)
+                                    }))
+                                }, s = 0; s < a.length; s++) o = l(s), 'continue' === o
+                    }, r._getParentFromElement = function(t) {
+                        var n, o = l.getSelectorFromElement(t);
+                        return o && (n = e(o)[0]), n || t.parentNode
+                    }, r._dataApiKeydownHandler = function(t) {
+                        if (!(!_.test(t.which) || /button/i.test(t.target.tagName) && t.which === d || /input|textarea/i.test(t.target.tagName)) && (t.preventDefault(), t.stopPropagation(), !(this.disabled || e(this).hasClass(m.DISABLED)))) {
+                            var n = r._getParentFromElement(this),
+                                o = e(n).hasClass(m.SHOW);
+                            if (!o && (t.which !== s || t.which !== d) || o && (t.which === s || t.which === d)) {
+                                if (t.which === s) {
+                                    var a = e(n).find(g.DATA_TOGGLE)[0];
+                                    e(a).trigger('focus')
+                                }
+                                return void e(this).trigger('click')
+                            }
+                            var i = e(n).find(g.VISIBLE_ITEMS).get();
+                            if (i.length) {
+                                var l = i.indexOf(t.target);
+                                t.which === 38 && 0 < l && l--, t.which === 40 && l < i.length - 1 && l++, 0 > l && (l = 0), i[l].focus()
+                            }
+                        }
+                    }, o(r, null, [{
+                        key: 'VERSION',
+                        get: function() {
+                            return '4.0.0-beta'
+                        }
+                    }, {
+                        key: 'Default',
+                        get: function() {
+                            return u
+                        }
+                    }, {
+                        key: 'DefaultType',
+                        get: function() {
+                            return E
+                        }
+                    }]), r
+                }();
+            return e(document).on(p.KEYDOWN_DATA_API, g.DATA_TOGGLE, h._dataApiKeydownHandler).on(p.KEYDOWN_DATA_API, g.MENU, h._dataApiKeydownHandler).on(p.CLICK_DATA_API + ' ' + p.KEYUP_DATA_API, h._clearMenus).on(p.CLICK_DATA_API, g.DATA_TOGGLE, function(t) {
+                t.preventDefault(), t.stopPropagation(), h._jQueryInterface.call(e(this), 'toggle')
+            }).on(p.CLICK_DATA_API, g.FORM_CHILD, function(t) {
+                t.stopPropagation()
+            }), e.fn[t] = h._jQueryInterface, e.fn[t].Constructor = h, e.fn[t].noConflict = function() {
+                return e.fn[t] = i, h._jQueryInterface
+            }, h
+        }(jQuery),
+        U = function(e) {
+            var t = {
+                    CANVAS: 'bmd-layout-canvas',
+                    CONTAINER: 'bmd-layout-container',
+                    BACKDROP: 'bmd-layout-backdrop'
+                },
+                n = {
+                    CANVAS: '.' + t.CANVAS,
+                    CONTAINER: '.' + t.CONTAINER,
+                    BACKDROP: '.' + t.BACKDROP
+                },
+                o = {
+                    canvas: {
+                        create: !0,
+                        required: !0,
+                        template: '<div class="' + t.CANVAS + '"></div>'
+                    },
+                    backdrop: {
+                        create: !0,
+                        required: !0,
+                        template: '<div class="' + t.BACKDROP + '"></div>'
+                    }
+                },
+                a = function(t) {
+                    function a(n, a, r) {
+                        var i;
+                        return void 0 === r && (r = {}), i = t.call(this, n, e.extend(!0, {}, o, a), r) || this, i.$container = i.findContainer(!0), i.$backdrop = i.resolveBackdrop(), i.resolveCanvas(), i
+                    }
+                    r(a, t);
+                    var i = a.prototype;
+                    return i.dispose = function(e) {
+                        t.prototype.dispose.call(this, e), this.$container = null, this.$backdrop = null
+                    }, i.resolveCanvas = function() {
+                        var e = this.findCanvas(!1);
+                        return (void 0 === e || 0 === e.length) && (this.config.canvas.create && this.$container.wrap(this.config.canvas.template), e = this.findCanvas(this.config.canvas.required)), e
+                    }, i.findCanvas = function(t, o) {
+                        void 0 === t && (t = !0), void 0 === o && (o = this.$container);
+                        var a = o.closest(n.CANVAS);
+                        return 0 === a.length && t && e.error('Failed to find ' + n.CANVAS + ' for ' + E.describe(o)), a
+                    }, i.resolveBackdrop = function() {
+                        var e = this.findBackdrop(!1);
+                        return (void 0 === e || 0 === e.length) && (this.config.backdrop.create && this.$container.append(this.config.backdrop.template), e = this.findBackdrop(this.config.backdrop.required)), e
+                    }, i.findBackdrop = function(t, o) {
+                        void 0 === t && (t = !0), void 0 === o && (o = this.$container);
+                        var a = o.find('> ' + n.BACKDROP);
+                        return 0 === a.length && t && e.error('Failed to find ' + n.BACKDROP + ' for ' + E.describe(o)), a
+                    }, i.findContainer = function(t, o) {
+                        void 0 === t && (t = !0), void 0 === o && (o = this.$element);
+                        var a = o.closest(n.CONTAINER);
+                        return 0 === a.length && t && e.error('Failed to find ' + n.CONTAINER + ' for ' + E.describe(o)), a
+                    }, a
+                }(h);
+            return a
+        }(jQuery),
+        P = function(e) {
+            var t = 'drawer',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {
+                    ESCAPE: 27
+                },
+                l = {
+                    IN: 'in',
+                    DRAWER_IN: 'bmd-drawer-in',
+                    DRAWER_OUT: 'bmd-drawer-out',
+                    DRAWER: 'bmd-layout-drawer',
+                    CONTAINER: 'bmd-layout-container'
+                },
+                s = {
+                    focusSelector: 'a, button, input'
+                },
+                d = function(t) {
+                    function o(n, o) {
+                        var a;
+                        return a = t.call(this, n, e.extend(!0, {}, s, o)) || this, a.$toggles = e('[data-toggle="drawer"][href="#' + a.$element[0].id + '"], [data-toggle="drawer"][data-target="#' + a.$element[0].id + '"]'), a._addAria(), a.$backdrop.keydown(function(e) {
+                            e.which === i.ESCAPE && a.hide()
+                        }).click(function() {
+                            a.hide()
+                        }), a.$element.keydown(function(e) {
+                            e.which === i.ESCAPE && a.hide()
+                        }), a.$toggles.click(function() {
+                            a.toggle()
+                        }), a
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n), this.$toggles = null
+                    }, a.toggle = function() {
+                        this._isOpen() ? this.hide() : this.show()
+                    }, a.show = function() {
+                        if (!(this._isForcedClosed() || this._isOpen())) {
+                            this.$toggles.attr('aria-expanded', !0), this.$element.attr('aria-expanded', !0), this.$element.attr('aria-hidden', !1);
+                            var e = this.$element.find(this.config.focusSelector);
+                            0 < e.length && e.first().focus(), this.$container.addClass(l.DRAWER_IN), this.$backdrop.addClass(l.IN)
+                        }
+                    }, a.hide = function() {
+                        this._isOpen() && (this.$toggles.attr('aria-expanded', !1), this.$element.attr('aria-expanded', !1), this.$element.attr('aria-hidden', !0), this.$container.removeClass(l.DRAWER_IN), this.$backdrop.removeClass(l.IN))
+                    }, a._isOpen = function() {
+                        return this.$container.hasClass(l.DRAWER_IN)
+                    }, a._isForcedClosed = function() {
+                        return this.$container.hasClass(l.DRAWER_OUT)
+                    }, a._addAria = function() {
+                        var e = this._isOpen();
+                        this.$element.attr('aria-expanded', e), this.$element.attr('aria-hidden', e), this.$toggles.length && this.$toggles.attr('aria-expanded', e)
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(U);
+            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, d._jQueryInterface
+            }, d
+        }(jQuery),
+        w = function(e) {
+            var t = 'ripples',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                r = {
+                    CONTAINER: 'ripple-container',
+                    DECORATOR: 'ripple-decorator'
+                },
+                l = {
+                    CONTAINER: '.' + r.CONTAINER,
+                    DECORATOR: '.' + r.DECORATOR
+                },
+                s = {
+                    container: {
+                        template: '<div class=\'' + r.CONTAINER + '\'></div>'
+                    },
+                    decorator: {
+                        template: '<div class=\'' + r.DECORATOR + '\'></div>'
+                    },
+                    trigger: {
+                        start: 'mousedown touchstart',
+                        end: 'mouseup mouseleave touchend'
+                    },
+                    touchUserAgentRegex: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i,
+                    duration: 500
+                },
+                d = function() {
+                    function t(t, n) {
+                        var o = this;
+                        this.$element = t, this.config = e.extend(!0, {}, s, n), this.$element.on(this.config.trigger.start, function(e) {
+                            o._onStartRipple(e)
+                        })
+                    }
+                    var o = t.prototype;
+                    return o.dispose = function() {
+                        this.$element.data(n, null), this.$element = null, this.$container = null, this.$decorator = null, this.config = null
+                    }, o._onStartRipple = function(e) {
+                        var t = this;
+                        if (!(this._isTouch() && 'mousedown' === e.type)) {
+                            this._findOrCreateContainer();
+                            var n = this._getRelY(e),
+                                o = this._getRelX(e);
+                            (n || o) && (this.$decorator.css({
+                                left: o,
+                                top: n,
+                                "background-color": this._getRipplesColor()
+                            }), this._forceStyleApplication(), this.rippleOn(), setTimeout(function() {
+                                t.rippleEnd()
+                            }, this.config.duration), this.$element.on(this.config.trigger.end, function() {
+                                t.$decorator && (t.$decorator.data('mousedown', 'off'), 'off' === t.$decorator.data('animating') && t.rippleOut())
+                            }))
+                        }
+                    }, o._findOrCreateContainer = function() {
+                        (!this.$container || 0 < !this.$container.length) && (this.$element.append(this.config.container.template), this.$container = this.$element.find(l.CONTAINER)), this.$container.append(this.config.decorator.template), this.$decorator = this.$container.find(l.DECORATOR)
+                    }, o._forceStyleApplication = function() {
+                        return window.getComputedStyle(this.$decorator[0]).opacity
+                    }, o._getRelX = function(e) {
+                        var t = this.$container.offset(),
+                            n = null;
+                        return this._isTouch() ? (e = e.originalEvent, n = 1 === e.touches.length && e.touches[0].pageX - t.left) : n = e.pageX - t.left, n
+                    }, o._getRelY = function(e) {
+                        var t = this.$container.offset(),
+                            n = null;
+                        return this._isTouch() ? (e = e.originalEvent, n = 1 === e.touches.length && e.touches[0].pageY - t.top) : n = e.pageY - t.top, n
+                    }, o._getRipplesColor = function() {
+                        var e = this.$element.data('ripple-color') ? this.$element.data('ripple-color') : window.getComputedStyle(this.$element[0]).color;
+                        return e
+                    }, o._isTouch = function() {
+                        return this.config.touchUserAgentRegex.test(navigator.userAgent)
+                    }, o.rippleEnd = function() {
+                        this.$decorator && (this.$decorator.data('animating', 'off'), 'off' === this.$decorator.data('mousedown') && this.rippleOut(this.$decorator))
+                    }, o.rippleOut = function() {
+                        var e = this;
+                        this.$decorator.off(), E.transitionEndSupported() ? this.$decorator.addClass('ripple-out') : this.$decorator.animate({
+                            opacity: 0
+                        }, 100, function() {
+                            e.$decorator.trigger('transitionend')
+                        }), this.$decorator.on(E.transitionEndSelector(), function() {
+                            e.$decorator && (e.$decorator.remove(), e.$decorator = null)
+                        })
+                    }, o.rippleOn = function() {
+                        var e = this,
+                            t = this._getNewSize();
+                        E.transitionEndSupported() ? this.$decorator.css({
+                            "-ms-transform": 'scale(' + t + ')',
+                            "-moz-transform": 'scale(' + t + ')',
+                            "-webkit-transform": 'scale(' + t + ')',
+                            transform: 'scale(' + t + ')'
+                        }).addClass('ripple-on').data('animating', 'on').data('mousedown', 'on') : this.$decorator.animate({
+                            width: 2 * i(this.$element.outerWidth(), this.$element.outerHeight()),
+                            height: 2 * i(this.$element.outerWidth(), this.$element.outerHeight()),
+                            "margin-left": -1 * i(this.$element.outerWidth(), this.$element.outerHeight()),
+                            "margin-top": -1 * i(this.$element.outerWidth(), this.$element.outerHeight()),
+                            opacity: 0.2
+                        }, this.config.duration, function() {
+                            e.$decorator.trigger('transitionend')
+                        })
+                    }, o._getNewSize = function() {
+                        return 2.5 * (i(this.$element.outerWidth(), this.$element.outerHeight()) / this.$decorator.outerWidth())
+                    }, t._jQueryInterface = function(o) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new t(a, o), a.data(n, r))
+                        })
+                    }, t
+                }();
+            return e.fn[o] = d._jQueryInterface, e.fn[o].Constructor = d, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, d._jQueryInterface
+            }, d
+        }(jQuery),
+        k = function(e) {
+            var t = 'autofill',
+                n = 'bmd.' + t,
+                o = 'bmd' + (t.charAt(0).toUpperCase() + t.slice(1)),
+                a = e.fn[o],
+                i = {},
+                l = function(t) {
+                    function o(n, o) {
+                        var a;
+                        return a = t.call(this, n, e.extend(!0, {}, i, o)) || this, a._watchLoading(), a._attachEventHandlers(), a
+                    }
+                    r(o, t);
+                    var a = o.prototype;
+                    return a.dispose = function() {
+                        t.prototype.dispose.call(this, n)
+                    }, a._watchLoading = function() {
+                        var e = this;
+                        setTimeout(function() {
+                            clearInterval(e._onLoading)
+                        }, 1e4)
+                    }, a._onLoading = function() {
+                        setInterval(function() {
+                            e('input[type!=checkbox]').each(function(t, n) {
+                                var o = e(n);
+                                o.val() && o.val() !== o.attr('value') && o.trigger('change')
+                            })
+                        }, 100)
+                    }, a._attachEventHandlers = function() {
+                        var t = null;
+                        e(document).on('focus', 'input', function(n) {
+                            var o = e(n.currentTarget).closest('form').find('input').not('[type=file]');
+                            t = setInterval(function() {
+                                o.each(function(t, n) {
+                                    var o = e(n);
+                                    o.val() !== o.attr('value') && o.trigger('change')
+                                })
+                            }, 100)
+                        }).on('blur', '.form-group input', function() {
+                            clearInterval(t)
+                        })
+                    }, o._jQueryInterface = function(t) {
+                        return this.each(function() {
+                            var a = e(this),
+                                r = a.data(n);
+                            r || (r = new o(a, t), a.data(n, r))
+                        })
+                    }, o
+                }(h);
+            return e.fn[o] = l._jQueryInterface, e.fn[o].Constructor = l, e.fn[o].noConflict = function() {
+                return e.fn[o] = a, l._jQueryInterface
+            }, l
+        }(jQuery);
+    Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !1;
+    (function(t) {
+        var e = 'bootstrapMaterialDesign',
+            n = 'bmd.' + e,
+            o = e,
+            a = t.fn[o],
+            r = {
+                global: {
+                    validate: !1,
+                    label: {
+                        className: 'bmd-label-static'
+                    }
+                },
+                autofill: {
+                    selector: 'body'
+                },
+                checkbox: {
+                    selector: '.checkbox > label > input[type=checkbox]'
+                },
+                checkboxInline: {
+                    selector: 'label.checkbox-inline > input[type=checkbox]'
+                },
+                collapseInline: {
+                    selector: '.bmd-collapse-inline [data-toggle="collapse"]'
+                },
+                drawer: {
+                    selector: '.bmd-layout-drawer'
+                },
+                file: {
+                    selector: 'input[type=file]'
+                },
+                radio: {
+                    selector: '.radio > label > input[type=radio]'
+                },
+                radioInline: {
+                    selector: 'label.radio-inline > input[type=radio]'
+                },
+                ripples: {
+                    selector: ['.btn:not(.ripple-none)', '.card-image:not(.ripple-none)', '.navbar a:not(.ripple-none)', '.dropdown-menu a:not(.ripple-none)', '.nav-tabs a:not(.ripple-none)', '.pagination li:not(.active):not(.disabled) a:not(.ripple-none)', '.ripple']
+                },
+                select: {
+                    selector: ['select']
+                },
+                switch: {
+                    selector: '.switch > label > input[type=checkbox]'
+                },
+                text: {
+                    selector: ['input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset])']
+                },
+                textarea: {
+                    selector: ['textarea']
+                },
+                arrive: !0,
+                instantiation: ['ripples', 'checkbox', 'checkboxInline', 'collapseInline', 'drawer', 'radio', 'radioInline', 'switch', 'text', 'textarea', 'autofill']
+            },
+            i = function() {
+                function e(e, n) {
+                    var o = this;
+                    this.$element = e, this.config = t.extend(!0, {}, r, n);
+                    for (var a = t(document), i = function(e) {
+                            var n = o.config[e];
+                            if (n) {
+                                var r = o._resolveSelector(n);
+                                n = t.extend(!0, {}, o.config.global, n);
+                                var i = '' + (e.charAt(0).toUpperCase() + e.slice(1)),
+                                    l = 'bmd' + i;
+                                try {
+                                    t(r)[l](n), document.arrive && o.config.arrive && a.arrive(r, function() {
+                                        t(this)[l](n)
+                                    })
+                                } catch (o) {
+                                    var s = 'Failed to instantiate component: $(\'' + r + '\')[' + l + '](' + n + ')';
+                                    throw console.error(s, o, '\nSelected elements: ', t(r)), o
+                                }
+                            }
+                        }, l = this.config.instantiation, s = Array.isArray(l), d = 0, l = s ? l : l[Symbol.iterator]();;) {
+                        var c;
+                        if (s) {
+                            if (d >= l.length) break;
+                            c = l[d++]
+                        } else {
+                            if (d = l.next(), d.done) break;
+                            c = d.value
+                        }
+                        var _ = c;
+                        i(_)
+                    }
+                }
+                var o = e.prototype;
+                return o.dispose = function() {
+                    this.$element.data(n, null), this.$element = null, this.config = null
+                }, o._resolveSelector = function(e) {
+                    var t = e.selector;
+                    return Array.isArray(t) && (t = t.join(', ')), t
+                }, e._jQueryInterface = function(o) {
+                    return this.each(function() {
+                        var a = t(this),
+                            r = a.data(n);
+                        r || (r = new e(a, o), a.data(n, r))
+                    })
+                }, e
+            }();
+        return t.fn[o] = i._jQueryInterface, t.fn[o].Constructor = i, t.fn[o].noConflict = function() {
+            return t.fn[o] = a, i._jQueryInterface
+        }, i
+    })(jQuery)
+});

+ 668 - 0
js/ekko-lightbox.js

@@ -0,0 +1,668 @@
+/*!
+ * Lightbox for Bootstrap by @ashleydw
+ * https://github.com/ashleydw/lightbox
+ *
+ * License: https://github.com/ashleydw/lightbox/blob/master/LICENSE
+ */
++function ($) {
+
+'use strict';
+
+var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+var Lightbox = (function ($) {
+
+	var NAME = 'ekkoLightbox';
+	var JQUERY_NO_CONFLICT = $.fn[NAME];
+
+	var Default = {
+		title: '',
+		footer: '',
+		maxWidth: 9999,
+		maxHeight: 9999,
+		showArrows: true, //display the left / right arrows or not
+		wrapping: true, //if true, gallery loops infinitely
+		type: null, //force the lightbox into image / youtube mode. if null, or not image|youtube|vimeo; detect it
+		alwaysShowClose: false, //always show the close button, even if there is no title
+		loadingMessage: '<div class="ekko-lightbox-loader"><div><div></div><div></div></div></div>', // http://tobiasahlin.com/spinkit/
+		leftArrow: '<span>&#10094;</span>',
+		rightArrow: '<span>&#10095;</span>',
+		strings: {
+			close: 'Close',
+			fail: 'Failed to load image:',
+			type: 'Could not detect remote target type. Force the type using data-type'
+		},
+		doc: document, // if in an iframe can specify top.document
+		onShow: function onShow() {},
+		onShown: function onShown() {},
+		onHide: function onHide() {},
+		onHidden: function onHidden() {},
+		onNavigate: function onNavigate() {},
+		onContentLoaded: function onContentLoaded() {}
+	};
+
+	var Lightbox = (function () {
+		_createClass(Lightbox, null, [{
+			key: 'Default',
+
+			/**
+       Class properties:
+   	 _$element: null -> the <a> element currently being displayed
+    _$modal: The bootstrap modal generated
+       _$modalDialog: The .modal-dialog
+       _$modalContent: The .modal-content
+       _$modalBody: The .modal-body
+       _$modalHeader: The .modal-header
+       _$modalFooter: The .modal-footer
+    _$lightboxContainerOne: Container of the first lightbox element
+    _$lightboxContainerTwo: Container of the second lightbox element
+    _$lightboxBody: First element in the container
+    _$modalArrows: The overlayed arrows container
+   	 _$galleryItems: Other <a>'s available for this gallery
+    _galleryName: Name of the current data('gallery') showing
+    _galleryIndex: The current index of the _$galleryItems being shown
+   	 _config: {} the options for the modal
+    _modalId: unique id for the current lightbox
+    _padding / _border: CSS properties for the modal container; these are used to calculate the available space for the content
+   	 */
+
+			get: function get() {
+				return Default;
+			}
+		}]);
+
+		function Lightbox($element, config) {
+			var _this = this;
+
+			_classCallCheck(this, Lightbox);
+
+			this._config = $.extend({}, Default, config);
+			this._$modalArrows = null;
+			this._galleryIndex = 0;
+			this._galleryName = null;
+			this._padding = null;
+			this._border = null;
+			this._titleIsShown = false;
+			this._footerIsShown = false;
+			this._wantedWidth = 0;
+			this._wantedHeight = 0;
+			this._touchstartX = 0;
+			this._touchendX = 0;
+
+			this._modalId = 'ekkoLightbox-' + Math.floor(Math.random() * 1000 + 1);
+			this._$element = $element instanceof jQuery ? $element : $($element);
+
+			this._isBootstrap3 = $.fn.modal.Constructor.VERSION[0] == 3;
+
+			var h4 = '<h4 class="modal-title">' + (this._config.title || "&nbsp;") + '</h4>';
+			var btn = '<button type="button" class="close" data-dismiss="modal" aria-label="' + this._config.strings.close + '"><span aria-hidden="true">&times;</span></button>';
+
+			var header = '<div class="modal-header' + (this._config.title || this._config.alwaysShowClose ? '' : ' hide') + '">' + (this._isBootstrap3 ? btn + h4 : h4 + btn) + '</div>';
+			var footer = '<div class="modal-footer' + (this._config.footer ? '' : ' hide') + '">' + (this._config.footer || "&nbsp;") + '</div>';
+			var body = '<div class="modal-body"><div class="ekko-lightbox-container"><div class="ekko-lightbox-item fade in show"></div><div class="ekko-lightbox-item fade"></div></div></div>';
+			var dialog = '<div class="modal-dialog" role="document"><div class="modal-content">' + header + body + footer + '</div></div>';
+			$(this._config.doc.body).append('<div id="' + this._modalId + '" class="ekko-lightbox modal fade" tabindex="-1" tabindex="-1" role="dialog" aria-hidden="true">' + dialog + '</div>');
+
+			this._$modal = $('#' + this._modalId, this._config.doc);
+			this._$modalDialog = this._$modal.find('.modal-dialog').first();
+			this._$modalContent = this._$modal.find('.modal-content').first();
+			this._$modalBody = this._$modal.find('.modal-body').first();
+			this._$modalHeader = this._$modal.find('.modal-header').first();
+			this._$modalFooter = this._$modal.find('.modal-footer').first();
+
+			this._$lightboxContainer = this._$modalBody.find('.ekko-lightbox-container').first();
+			this._$lightboxBodyOne = this._$lightboxContainer.find('> div:first-child').first();
+			this._$lightboxBodyTwo = this._$lightboxContainer.find('> div:last-child').first();
+
+			this._border = this._calculateBorders();
+			this._padding = this._calculatePadding();
+
+			this._galleryName = this._$element.data('gallery');
+			if (this._galleryName) {
+				this._$galleryItems = $(document.body).find('*[data-gallery="' + this._galleryName + '"]');
+				this._galleryIndex = this._$galleryItems.index(this._$element);
+				$(document).on('keydown.ekkoLightbox', this._navigationalBinder.bind(this));
+
+				// add the directional arrows to the modal
+				if (this._config.showArrows && this._$galleryItems.length > 1) {
+					this._$lightboxContainer.append('<div class="ekko-lightbox-nav-overlay"><a href="#">' + this._config.leftArrow + '</a><a href="#">' + this._config.rightArrow + '</a></div>');
+					this._$modalArrows = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay').first();
+					this._$lightboxContainer.on('click', 'a:first-child', function (event) {
+						event.preventDefault();
+						return _this.navigateLeft();
+					});
+					this._$lightboxContainer.on('click', 'a:last-child', function (event) {
+						event.preventDefault();
+						return _this.navigateRight();
+					});
+					this.updateNavigation();
+				}
+			}
+
+			this._$modal.on('show.bs.modal', this._config.onShow.bind(this)).on('shown.bs.modal', function () {
+				_this._toggleLoading(true);
+				_this._handle();
+				return _this._config.onShown.call(_this);
+			}).on('hide.bs.modal', this._config.onHide.bind(this)).on('hidden.bs.modal', function () {
+				if (_this._galleryName) {
+					$(document).off('keydown.ekkoLightbox');
+					$(window).off('resize.ekkoLightbox');
+				}
+				_this._$modal.remove();
+				return _this._config.onHidden.call(_this);
+			}).modal(this._config);
+
+			$(window).on('resize.ekkoLightbox', function () {
+				_this._resize(_this._wantedWidth, _this._wantedHeight);
+			});
+			this._$lightboxContainer.on('touchstart', function () {
+				_this._touchstartX = event.changedTouches[0].screenX;
+			}).on('touchend', function () {
+				_this._touchendX = event.changedTouches[0].screenX;
+				_this._swipeGesure();
+			});
+		}
+
+		_createClass(Lightbox, [{
+			key: 'element',
+			value: function element() {
+				return this._$element;
+			}
+		}, {
+			key: 'modal',
+			value: function modal() {
+				return this._$modal;
+			}
+		}, {
+			key: 'navigateTo',
+			value: function navigateTo(index) {
+
+				if (index < 0 || index > this._$galleryItems.length - 1) return this;
+
+				this._galleryIndex = index;
+
+				this.updateNavigation();
+
+				this._$element = $(this._$galleryItems.get(this._galleryIndex));
+				this._handle();
+			}
+		}, {
+			key: 'navigateLeft',
+			value: function navigateLeft() {
+
+				if (!this._$galleryItems) return;
+
+				if (this._$galleryItems.length === 1) return;
+
+				if (this._galleryIndex === 0) {
+					if (this._config.wrapping) this._galleryIndex = this._$galleryItems.length - 1;else return;
+				} else //circular
+					this._galleryIndex--;
+
+				this._config.onNavigate.call(this, 'left', this._galleryIndex);
+				return this.navigateTo(this._galleryIndex);
+			}
+		}, {
+			key: 'navigateRight',
+			value: function navigateRight() {
+
+				if (!this._$galleryItems) return;
+
+				if (this._$galleryItems.length === 1) return;
+
+				if (this._galleryIndex === this._$galleryItems.length - 1) {
+					if (this._config.wrapping) this._galleryIndex = 0;else return;
+				} else //circular
+					this._galleryIndex++;
+
+				this._config.onNavigate.call(this, 'right', this._galleryIndex);
+				return this.navigateTo(this._galleryIndex);
+			}
+		}, {
+			key: 'updateNavigation',
+			value: function updateNavigation() {
+				if (!this._config.wrapping) {
+					var $nav = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay');
+					if (this._galleryIndex === 0) $nav.find('a:first-child').addClass('disabled');else $nav.find('a:first-child').removeClass('disabled');
+
+					if (this._galleryIndex === this._$galleryItems.length - 1) $nav.find('a:last-child').addClass('disabled');else $nav.find('a:last-child').removeClass('disabled');
+				}
+			}
+		}, {
+			key: 'close',
+			value: function close() {
+				return this._$modal.modal('hide');
+			}
+
+			// helper private methods
+		}, {
+			key: '_navigationalBinder',
+			value: function _navigationalBinder(event) {
+				event = event || window.event;
+				if (event.keyCode === 39) return this.navigateRight();
+				if (event.keyCode === 37) return this.navigateLeft();
+			}
+
+			// type detection private methods
+		}, {
+			key: '_detectRemoteType',
+			value: function _detectRemoteType(src, type) {
+
+				type = type || false;
+
+				if (!type && this._isImage(src)) type = 'image';
+				if (!type && this._getYoutubeId(src)) type = 'youtube';
+				if (!type && this._getVimeoId(src)) type = 'vimeo';
+				if (!type && this._getInstagramId(src)) type = 'instagram';
+
+				if (!type || ['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(type) < 0) type = 'url';
+
+				return type;
+			}
+		}, {
+			key: '_isImage',
+			value: function _isImage(string) {
+				return string && string.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i);
+			}
+		}, {
+			key: '_containerToUse',
+			value: function _containerToUse() {
+				var _this2 = this;
+
+				// if currently showing an image, fade it out and remove
+				var $toUse = this._$lightboxBodyTwo;
+				var $current = this._$lightboxBodyOne;
+
+				if (this._$lightboxBodyTwo.hasClass('in')) {
+					$toUse = this._$lightboxBodyOne;
+					$current = this._$lightboxBodyTwo;
+				}
+
+				$current.removeClass('in show');
+				setTimeout(function () {
+					if (!_this2._$lightboxBodyTwo.hasClass('in')) _this2._$lightboxBodyTwo.empty();
+					if (!_this2._$lightboxBodyOne.hasClass('in')) _this2._$lightboxBodyOne.empty();
+				}, 500);
+
+				$toUse.addClass('in show');
+				return $toUse;
+			}
+		}, {
+			key: '_handle',
+			value: function _handle() {
+
+				var $toUse = this._containerToUse();
+				this._updateTitleAndFooter();
+
+				var currentRemote = this._$element.attr('data-remote') || this._$element.attr('href');
+				var currentType = this._detectRemoteType(currentRemote, this._$element.attr('data-type') || false);
+
+				if (['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(currentType) < 0) return this._error(this._config.strings.type);
+
+				switch (currentType) {
+					case 'image':
+						this._preloadImage(currentRemote, $toUse);
+						this._preloadImageByIndex(this._galleryIndex, 3);
+						break;
+					case 'youtube':
+						this._showYoutubeVideo(currentRemote, $toUse);
+						break;
+					case 'vimeo':
+						this._showVimeoVideo(this._getVimeoId(currentRemote), $toUse);
+						break;
+					case 'instagram':
+						this._showInstagramVideo(this._getInstagramId(currentRemote), $toUse);
+						break;
+					case 'video':
+						this._showHtml5Video(currentRemote, $toUse);
+						break;
+					default:
+						// url
+						this._loadRemoteContent(currentRemote, $toUse);
+						break;
+				}
+
+				return this;
+			}
+		}, {
+			key: '_getYoutubeId',
+			value: function _getYoutubeId(string) {
+				if (!string) return false;
+				var matches = string.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/);
+				return matches && matches[2].length === 11 ? matches[2] : false;
+			}
+		}, {
+			key: '_getVimeoId',
+			value: function _getVimeoId(string) {
+				return string && string.indexOf('vimeo') > 0 ? string : false;
+			}
+		}, {
+			key: '_getInstagramId',
+			value: function _getInstagramId(string) {
+				return string && string.indexOf('instagram') > 0 ? string : false;
+			}
+
+			// layout private methods
+		}, {
+			key: '_toggleLoading',
+			value: function _toggleLoading(show) {
+				show = show || false;
+				if (show) {
+					this._$modalDialog.css('display', 'none');
+					this._$modal.removeClass('in show');
+					$('.modal-backdrop').append(this._config.loadingMessage);
+				} else {
+					this._$modalDialog.css('display', 'block');
+					this._$modal.addClass('in show');
+					$('.modal-backdrop').find('.ekko-lightbox-loader').remove();
+				}
+				return this;
+			}
+		}, {
+			key: '_calculateBorders',
+			value: function _calculateBorders() {
+				return {
+					top: this._totalCssByAttribute('border-top-width'),
+					right: this._totalCssByAttribute('border-right-width'),
+					bottom: this._totalCssByAttribute('border-bottom-width'),
+					left: this._totalCssByAttribute('border-left-width')
+				};
+			}
+		}, {
+			key: '_calculatePadding',
+			value: function _calculatePadding() {
+				return {
+					top: this._totalCssByAttribute('padding-top'),
+					right: this._totalCssByAttribute('padding-right'),
+					bottom: this._totalCssByAttribute('padding-bottom'),
+					left: this._totalCssByAttribute('padding-left')
+				};
+			}
+		}, {
+			key: '_totalCssByAttribute',
+			value: function _totalCssByAttribute(attribute) {
+				return parseInt(this._$modalDialog.css(attribute), 10) + parseInt(this._$modalContent.css(attribute), 10) + parseInt(this._$modalBody.css(attribute), 10);
+			}
+		}, {
+			key: '_updateTitleAndFooter',
+			value: function _updateTitleAndFooter() {
+				var title = this._$element.data('title') || "";
+				var caption = this._$element.data('footer') || "";
+
+				this._titleIsShown = false;
+				if (title || this._config.alwaysShowClose) {
+					this._titleIsShown = true;
+					this._$modalHeader.css('display', '').find('.modal-title').html(title || "&nbsp;");
+				} else this._$modalHeader.css('display', 'none');
+
+				this._footerIsShown = false;
+				if (caption) {
+					this._footerIsShown = true;
+					this._$modalFooter.css('display', '').html(caption);
+				} else this._$modalFooter.css('display', 'none');
+
+				return this;
+			}
+		}, {
+			key: '_showYoutubeVideo',
+			value: function _showYoutubeVideo(remote, $containerForElement) {
+				var id = this._getYoutubeId(remote);
+				var query = remote.indexOf('&') > 0 ? remote.substr(remote.indexOf('&')) : '';
+				var width = this._$element.data('width') || 560;
+				var height = this._$element.data('height') || width / (560 / 315);
+				return this._showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + query, width, height, $containerForElement);
+			}
+		}, {
+			key: '_showVimeoVideo',
+			value: function _showVimeoVideo(id, $containerForElement) {
+				var width = this._$element.data('width') || 500;
+				var height = this._$element.data('height') || width / (560 / 315);
+				return this._showVideoIframe(id + '?autoplay=1', width, height, $containerForElement);
+			}
+		}, {
+			key: '_showInstagramVideo',
+			value: function _showInstagramVideo(id, $containerForElement) {
+				// instagram load their content into iframe's so this can be put straight into the element
+				var width = this._$element.data('width') || 612;
+				var height = width + 80;
+				id = id.substr(-1) !== '/' ? id + '/' : id; // ensure id has trailing slash
+				$containerForElement.html('<iframe width="' + width + '" height="' + height + '" src="' + id + 'embed/" frameborder="0" allowfullscreen></iframe>');
+				this._resize(width, height);
+				this._config.onContentLoaded.call(this);
+				if (this._$modalArrows) //hide the arrows when showing video
+					this._$modalArrows.css('display', 'none');
+				this._toggleLoading(false);
+				return this;
+			}
+		}, {
+			key: '_showVideoIframe',
+			value: function _showVideoIframe(url, width, height, $containerForElement) {
+				// should be used for videos only. for remote content use loadRemoteContent (data-type=url)
+				height = height || width; // default to square
+				$containerForElement.html('<div class="embed-responsive embed-responsive-16by9"><iframe width="' + width + '" height="' + height + '" src="' + url + '" frameborder="0" allowfullscreen class="embed-responsive-item"></iframe></div>');
+				this._resize(width, height);
+				this._config.onContentLoaded.call(this);
+				if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video
+				this._toggleLoading(false);
+				return this;
+			}
+		}, {
+			key: '_showHtml5Video',
+			value: function _showHtml5Video(url, $containerForElement) {
+				// should be used for videos only. for remote content use loadRemoteContent (data-type=url)
+				var width = this._$element.data('width') || 560;
+				var height = this._$element.data('height') || width / (560 / 315);
+				$containerForElement.html('<div class="embed-responsive embed-responsive-16by9"><video width="' + width + '" height="' + height + '" src="' + url + '" preload="auto" autoplay controls class="embed-responsive-item"></video></div>');
+				this._resize(width, height);
+				this._config.onContentLoaded.call(this);
+				if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video
+				this._toggleLoading(false);
+				return this;
+			}
+		}, {
+			key: '_loadRemoteContent',
+			value: function _loadRemoteContent(url, $containerForElement) {
+				var _this3 = this;
+
+				var width = this._$element.data('width') || 560;
+				var height = this._$element.data('height') || 560;
+
+				var disableExternalCheck = this._$element.data('disableExternalCheck') || false;
+				this._toggleLoading(false);
+
+				// external urls are loading into an iframe
+				// local ajax can be loaded into the container itself
+				if (!disableExternalCheck && !this._isExternal(url)) {
+					$containerForElement.load(url, $.proxy(function () {
+						return _this3._$element.trigger('loaded.bs.modal');l;
+					}));
+				} else {
+					$containerForElement.html('<iframe src="' + url + '" frameborder="0" allowfullscreen></iframe>');
+					this._config.onContentLoaded.call(this);
+				}
+
+				if (this._$modalArrows) //hide the arrows when remote content
+					this._$modalArrows.css('display', 'none');
+
+				this._resize(width, height);
+				return this;
+			}
+		}, {
+			key: '_isExternal',
+			value: function _isExternal(url) {
+				var match = url.match(/^([^:\/?#]+:)?(?:\/\/([^\/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/);
+				if (typeof match[1] === "string" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) return true;
+
+				if (typeof match[2] === "string" && match[2].length > 0 && match[2].replace(new RegExp(':(' + ({
+					"http:": 80,
+					"https:": 443
+				})[location.protocol] + ')?$'), "") !== location.host) return true;
+
+				return false;
+			}
+		}, {
+			key: '_error',
+			value: function _error(message) {
+				console.error(message);
+				this._containerToUse().html(message);
+				this._resize(300, 300);
+				return this;
+			}
+		}, {
+			key: '_preloadImageByIndex',
+			value: function _preloadImageByIndex(startIndex, numberOfTimes) {
+
+				if (!this._$galleryItems) return;
+
+				var next = $(this._$galleryItems.get(startIndex), false);
+				if (typeof next == 'undefined') return;
+
+				var src = next.attr('data-remote') || next.attr('href');
+				if (next.attr('data-type') === 'image' || this._isImage(src)) this._preloadImage(src, false);
+
+				if (numberOfTimes > 0) return this._preloadImageByIndex(startIndex + 1, numberOfTimes - 1);
+			}
+		}, {
+			key: '_preloadImage',
+			value: function _preloadImage(src, $containerForImage) {
+				var _this4 = this;
+
+				$containerForImage = $containerForImage || false;
+
+				var img = new Image();
+				if ($containerForImage) {
+					(function () {
+
+						// if loading takes > 200ms show a loader
+						var loadingTimeout = setTimeout(function () {
+							$containerForImage.append(_this4._config.loadingMessage);
+						}, 200);
+
+						img.onload = function () {
+							if (loadingTimeout) clearTimeout(loadingTimeout);
+							loadingTimeout = null;
+							var image = $('<img />');
+							image.attr('src', img.src);
+							image.addClass('img-fluid');
+
+							// backward compatibility for bootstrap v3
+							image.css('width', '100%');
+
+							$containerForImage.html(image);
+							if (_this4._$modalArrows) _this4._$modalArrows.css('display', ''); // remove display to default to css property
+
+							_this4._resize(img.width, img.height);
+							_this4._toggleLoading(false);
+							return _this4._config.onContentLoaded.call(_this4);
+						};
+						img.onerror = function () {
+							_this4._toggleLoading(false);
+							return _this4._error(_this4._config.strings.fail + ('  ' + src));
+						};
+					})();
+				}
+
+				img.src = src;
+				return img;
+			}
+		}, {
+			key: '_swipeGesure',
+			value: function _swipeGesure() {
+				if (this._touchendX < this._touchstartX) {
+					return this.navigateRight();
+				}
+				if (this._touchendX > this._touchstartX) {
+					return this.navigateLeft();
+				}
+			}
+		}, {
+			key: '_resize',
+			value: function _resize(width, height) {
+
+				height = height || width;
+				this._wantedWidth = width;
+				this._wantedHeight = height;
+
+				var imageAspecRatio = width / height;
+
+				// if width > the available space, scale down the expected width and height
+				var widthBorderAndPadding = this._padding.left + this._padding.right + this._border.left + this._border.right;
+
+				// force 10px margin if window size > 575px
+				var addMargin = this._config.doc.body.clientWidth > 575 ? 20 : 0;
+				var discountMargin = this._config.doc.body.clientWidth > 575 ? 0 : 20;
+
+				var maxWidth = Math.min(width + widthBorderAndPadding, this._config.doc.body.clientWidth - addMargin, this._config.maxWidth);
+
+				if (width + widthBorderAndPadding > maxWidth) {
+					height = (maxWidth - widthBorderAndPadding - discountMargin) / imageAspecRatio;
+					width = maxWidth;
+				} else width = width + widthBorderAndPadding;
+
+				var headerHeight = 0,
+				    footerHeight = 0;
+
+				// as the resize is performed the modal is show, the calculate might fail
+				// if so, default to the default sizes
+				if (this._footerIsShown) footerHeight = this._$modalFooter.outerHeight(true) || 55;
+
+				if (this._titleIsShown) headerHeight = this._$modalHeader.outerHeight(true) || 67;
+
+				var borderPadding = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top;
+
+				//calculated each time as resizing the window can cause them to change due to Bootstraps fluid margins
+				var margins = parseFloat(this._$modalDialog.css('margin-top')) + parseFloat(this._$modalDialog.css('margin-bottom'));
+
+				var maxHeight = Math.min(height, $(window).height() - borderPadding - margins - headerHeight - footerHeight, this._config.maxHeight - borderPadding - headerHeight - footerHeight);
+
+				if (height > maxHeight) {
+					// if height > the available height, scale down the width
+					width = Math.ceil(maxHeight * imageAspecRatio) + widthBorderAndPadding;
+				}
+
+				this._$lightboxContainer.css('height', maxHeight);
+				this._$modalDialog.css('flex', 1).css('maxWidth', width);
+
+				var modal = this._$modal.data('bs.modal');
+				if (modal) {
+					// v4 method is mistakenly protected
+					try {
+						modal._handleUpdate();
+					} catch (Exception) {
+						modal.handleUpdate();
+					}
+				}
+				return this;
+			}
+		}], [{
+			key: '_jQueryInterface',
+			value: function _jQueryInterface(config) {
+				var _this5 = this;
+
+				config = config || {};
+				return this.each(function () {
+					var $this = $(_this5);
+					var _config = $.extend({}, Lightbox.Default, $this.data(), typeof config === 'object' && config);
+
+					new Lightbox(_this5, _config);
+				});
+			}
+		}]);
+
+		return Lightbox;
+	})();
+
+	$.fn[NAME] = Lightbox._jQueryInterface;
+	$.fn[NAME].Constructor = Lightbox;
+	$.fn[NAME].noConflict = function () {
+		$.fn[NAME] = JQUERY_NO_CONFLICT;
+		return Lightbox._jQueryInterface;
+	};
+
+	return Lightbox;
+})(jQuery);
+//# sourceMappingURL=ekko-lightbox.js.map
+
+}(jQuery);

+ 18 - 0
js/init.js

@@ -0,0 +1,18 @@
+$(document).ready(function() {
+
+	$(window).scroll(function() {
+		var nav_img = $('.navbar-brand img');
+		if ($(document).scrollTop() < 130) {
+			$('nav').addClass('transparent');
+			nav_img.attr("src","img/biotherm-white-dots.png");
+		} else {
+			$('nav').removeClass('transparent').css('color: black');
+			nav_img.attr("src","img/biotherm-black-dots.png");
+		}
+	});
+});
+
+$(document).on('click', '[data-toggle="lightbox"]', function(event) {
+	event.preventDefault();
+	$(this).ekkoLightbox();
+});

File diff suppressed because it is too large
+ 1 - 0
js/instagram.js


+ 3240 - 0
js/jquery.min.js

@@ -0,0 +1,3240 @@
+/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ ! function(a, b) {
+    "use strict";
+    "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
+        if (!a.document) throw new Error("jQuery requires a window with a document");
+        return b(a)
+    } : b(a)
+}("undefined" != typeof window ? window : this, function(a, b) {
+    "use strict";
+    var c = [],
+        d = a.document,
+        e = Object.getPrototypeOf,
+        f = c.slice,
+        g = c.concat,
+        h = c.push,
+        i = c.indexOf,
+        j = {},
+        k = j.toString,
+        l = j.hasOwnProperty,
+        m = l.toString,
+        n = m.call(Object),
+        o = {};
+
+    function p(a, b) {
+        b = b || d;
+        var c = b.createElement("script");
+        c.text = a, b.head.appendChild(c).parentNode.removeChild(c)
+    }
+    var q = "3.2.1",
+        r = function(a, b) {
+            return new r.fn.init(a, b)
+        },
+        s = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+        t = /^-ms-/,
+        u = /-([a-z])/g,
+        v = function(a, b) {
+            return b.toUpperCase()
+        };
+    r.fn = r.prototype = {
+        jquery: q,
+        constructor: r,
+        length: 0,
+        toArray: function() {
+            return f.call(this)
+        },
+        get: function(a) {
+            return null == a ? f.call(this) : a < 0 ? this[a + this.length] : this[a]
+        },
+        pushStack: function(a) {
+            var b = r.merge(this.constructor(), a);
+            return b.prevObject = this, b
+        },
+        each: function(a) {
+            return r.each(this, a)
+        },
+        map: function(a) {
+            return this.pushStack(r.map(this, function(b, c) {
+                return a.call(b, c, b)
+            }))
+        },
+        slice: function() {
+            return this.pushStack(f.apply(this, arguments))
+        },
+        first: function() {
+            return this.eq(0)
+        },
+        last: function() {
+            return this.eq(-1)
+        },
+        eq: function(a) {
+            var b = this.length,
+                c = +a + (a < 0 ? b : 0);
+            return this.pushStack(c >= 0 && c < b ? [this[c]] : [])
+        },
+        end: function() {
+            return this.prevObject || this.constructor()
+        },
+        push: h,
+        sort: c.sort,
+        splice: c.splice
+    }, r.extend = r.fn.extend = function() {
+        var a, b, c, d, e, f, g = arguments[0] || {},
+            h = 1,
+            i = arguments.length,
+            j = !1;
+        for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || r.isFunction(g) || (g = {}), h === i && (g = this, h--); h < i; h++)
+            if (null != (a = arguments[h]))
+                for (b in a) c = g[b], d = a[b], g !== d && (j && d && (r.isPlainObject(d) || (e = Array.isArray(d))) ? (e ? (e = !1, f = c && Array.isArray(c) ? c : []) : f = c && r.isPlainObject(c) ? c : {}, g[b] = r.extend(j, f, d)) : void 0 !== d && (g[b] = d));
+        return g
+    }, r.extend({
+        expando: "jQuery" + (q + Math.random()).replace(/\D/g, ""),
+        isReady: !0,
+        error: function(a) {
+            throw new Error(a)
+        },
+        noop: function() {},
+        isFunction: function(a) {
+            return "function" === r.type(a)
+        },
+        isWindow: function(a) {
+            return null != a && a === a.window
+        },
+        isNumeric: function(a) {
+            var b = r.type(a);
+            return ("number" === b || "string" === b) && !isNaN(a - parseFloat(a))
+        },
+        isPlainObject: function(a) {
+            var b, c;
+            return !(!a || "[object Object]" !== k.call(a)) && (!(b = e(a)) || (c = l.call(b, "constructor") && b.constructor, "function" == typeof c && m.call(c) === n))
+        },
+        isEmptyObject: function(a) {
+            var b;
+            for (b in a) return !1;
+            return !0
+        },
+        type: function(a) {
+            return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? j[k.call(a)] || "object" : typeof a
+        },
+        globalEval: function(a) {
+            p(a)
+        },
+        camelCase: function(a) {
+            return a.replace(t, "ms-").replace(u, v)
+        },
+        each: function(a, b) {
+            var c, d = 0;
+            if (w(a)) {
+                for (c = a.length; d < c; d++)
+                    if (b.call(a[d], d, a[d]) === !1) break
+            } else
+                for (d in a)
+                    if (b.call(a[d], d, a[d]) === !1) break;
+            return a
+        },
+        trim: function(a) {
+            return null == a ? "" : (a + "").replace(s, "")
+        },
+        makeArray: function(a, b) {
+            var c = b || [];
+            return null != a && (w(Object(a)) ? r.merge(c, "string" == typeof a ? [a] : a) : h.call(c, a)), c
+        },
+        inArray: function(a, b, c) {
+            return null == b ? -1 : i.call(b, a, c)
+        },
+        merge: function(a, b) {
+            for (var c = +b.length, d = 0, e = a.length; d < c; d++) a[e++] = b[d];
+            return a.length = e, a
+        },
+        grep: function(a, b, c) {
+            for (var d, e = [], f = 0, g = a.length, h = !c; f < g; f++) d = !b(a[f], f), d !== h && e.push(a[f]);
+            return e
+        },
+        map: function(a, b, c) {
+            var d, e, f = 0,
+                h = [];
+            if (w(a))
+                for (d = a.length; f < d; f++) e = b(a[f], f, c), null != e && h.push(e);
+            else
+                for (f in a) e = b(a[f], f, c), null != e && h.push(e);
+            return g.apply([], h)
+        },
+        guid: 1,
+        proxy: function(a, b) {
+            var c, d, e;
+            if ("string" == typeof b && (c = a[b], b = a, a = c), r.isFunction(a)) return d = f.call(arguments, 2), e = function() {
+                return a.apply(b || this, d.concat(f.call(arguments)))
+            }, e.guid = a.guid = a.guid || r.guid++, e
+        },
+        now: Date.now,
+        support: o
+    }), "function" == typeof Symbol && (r.fn[Symbol.iterator] = c[Symbol.iterator]), r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(a, b) {
+        j["[object " + b + "]"] = b.toLowerCase()
+    });
+
+    function w(a) {
+        var b = !!a && "length" in a && a.length,
+            c = r.type(a);
+        return "function" !== c && !r.isWindow(a) && ("array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a)
+    }
+    var x = function(a) {
+        var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + 1 * new Date,
+            v = a.document,
+            w = 0,
+            x = 0,
+            y = ha(),
+            z = ha(),
+            A = ha(),
+            B = function(a, b) {
+                return a === b && (l = !0), 0
+            },
+            C = {}.hasOwnProperty,
+            D = [],
+            E = D.pop,
+            F = D.push,
+            G = D.push,
+            H = D.slice,
+            I = function(a, b) {
+                for (var c = 0, d = a.length; c < d; c++)
+                    if (a[c] === b) return c;
+                return -1
+            },
+            J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+            K = "[\\x20\\t\\r\\n\\f]",
+            L = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+            M = "\\[" + K + "*(" + L + ")(?:" + K + "*([*^$|!~]?=)" + K + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + K + "*\\]",
+            N = ":(" + L + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + M + ")*)|.*)\\)|)",
+            O = new RegExp(K + "+", "g"),
+            P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$", "g"),
+            Q = new RegExp("^" + K + "*," + K + "*"),
+            R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"),
+            S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]", "g"),
+            T = new RegExp(N),
+            U = new RegExp("^" + L + "$"),
+            V = {
+                ID: new RegExp("^#(" + L + ")"),
+                CLASS: new RegExp("^\\.(" + L + ")"),
+                TAG: new RegExp("^(" + L + "|[*])"),
+                ATTR: new RegExp("^" + M),
+                PSEUDO: new RegExp("^" + N),
+                CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)", "i"),
+                bool: new RegExp("^(?:" + J + ")$", "i"),
+                needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)", "i")
+            },
+            W = /^(?:input|select|textarea|button)$/i,
+            X = /^h\d$/i,
+            Y = /^[^{]+\{\s*\[native \w/,
+            Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+            $ = /[+~]/,
+            _ = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)", "ig"),
+            aa = function(a, b, c) {
+                var d = "0x" + b - 65536;
+                return d !== d || c ? b : d < 0 ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
+            },
+            ba = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+            ca = function(a, b) {
+                return b ? "\0" === a ? "\ufffd" : a.slice(0, -1) + "\\" + a.charCodeAt(a.length - 1).toString(16) + " " : "\\" + a
+            },
+            da = function() {
+                m()
+            },
+            ea = ta(function(a) {
+                return a.disabled === !0 && ("form" in a || "label" in a)
+            }, {
+                dir: "parentNode",
+                next: "legend"
+            });
+        try {
+            G.apply(D = H.call(v.childNodes), v.childNodes), D[v.childNodes.length].nodeType
+        } catch (fa) {
+            G = {
+                apply: D.length ? function(a, b) {
+                    F.apply(a, H.call(b))
+                } : function(a, b) {
+                    var c = a.length,
+                        d = 0;
+                    while (a[c++] = b[d++]);
+                    a.length = c - 1
+                }
+            }
+        }
+
+        function ga(a, b, d, e) {
+            var f, h, j, k, l, o, r, s = b && b.ownerDocument,
+                w = b ? b.nodeType : 9;
+            if (d = d || [], "string" != typeof a || !a || 1 !== w && 9 !== w && 11 !== w) return d;
+            if (!e && ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, p)) {
+                if (11 !== w && (l = Z.exec(a)))
+                    if (f = l[1]) {
+                        if (9 === w) {
+                            if (!(j = b.getElementById(f))) return d;
+                            if (j.id === f) return d.push(j), d
+                        } else if (s && (j = s.getElementById(f)) && t(b, j) && j.id === f) return d.push(j), d
+                    } else {
+                        if (l[2]) return G.apply(d, b.getElementsByTagName(a)), d;
+                        if ((f = l[3]) && c.getElementsByClassName && b.getElementsByClassName) return G.apply(d, b.getElementsByClassName(f)), d
+                    }
+                if (c.qsa && !A[a + " "] && (!q || !q.test(a))) {
+                    if (1 !== w) s = b, r = a;
+                    else if ("object" !== b.nodeName.toLowerCase()) {
+                        (k = b.getAttribute("id")) ? k = k.replace(ba, ca): b.setAttribute("id", k = u), o = g(a), h = o.length;
+                        while (h--) o[h] = "#" + k + " " + sa(o[h]);
+                        r = o.join(","), s = $.test(a) && qa(b.parentNode) || b
+                    }
+                    if (r) try {
+                        return G.apply(d, s.querySelectorAll(r)), d
+                    } catch (x) {} finally {
+                        k === u && b.removeAttribute("id")
+                    }
+                }
+            }
+            return i(a.replace(P, "$1"), b, d, e)
+        }
+
+        function ha() {
+            var a = [];
+
+            function b(c, e) {
+                return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e
+            }
+            return b
+        }
+
+        function ia(a) {
+            return a[u] = !0, a
+        }
+
+        function ja(a) {
+            var b = n.createElement("fieldset");
+            try {
+                return !!a(b)
+            } catch (c) {
+                return !1
+            } finally {
+                b.parentNode && b.parentNode.removeChild(b), b = null
+            }
+        }
+
+        function ka(a, b) {
+            var c = a.split("|"),
+                e = c.length;
+            while (e--) d.attrHandle[c[e]] = b
+        }
+
+        function la(a, b) {
+            var c = b && a,
+                d = c && 1 === a.nodeType && 1 === b.nodeType && a.sourceIndex - b.sourceIndex;
+            if (d) return d;
+            if (c)
+                while (c = c.nextSibling)
+                    if (c === b) return -1;
+            return a ? 1 : -1
+        }
+
+        function ma(a) {
+            return function(b) {
+                var c = b.nodeName.toLowerCase();
+                return "input" === c && b.type === a
+            }
+        }
+
+        function na(a) {
+            return function(b) {
+                var c = b.nodeName.toLowerCase();
+                return ("input" === c || "button" === c) && b.type === a
+            }
+        }
+
+        function oa(a) {
+            return function(b) {
+                return "form" in b ? b.parentNode && b.disabled === !1 ? "label" in b ? "label" in b.parentNode ? b.parentNode.disabled === a : b.disabled === a : b.isDisabled === a || b.isDisabled !== !a && ea(b) === a : b.disabled === a : "label" in b && b.disabled === a
+            }
+        }
+
+        function pa(a) {
+            return ia(function(b) {
+                return b = +b, ia(function(c, d) {
+                    var e, f = a([], c.length, b),
+                        g = f.length;
+                    while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
+                })
+            })
+        }
+
+        function qa(a) {
+            return a && "undefined" != typeof a.getElementsByTagName && a
+        }
+        c = ga.support = {}, f = ga.isXML = function(a) {
+            var b = a && (a.ownerDocument || a).documentElement;
+            return !!b && "HTML" !== b.nodeName
+        }, m = ga.setDocument = function(a) {
+            var b, e, g = a ? a.ownerDocument || a : v;
+            return g !== n && 9 === g.nodeType && g.documentElement ? (n = g, o = n.documentElement, p = !f(n), v !== n && (e = n.defaultView) && e.top !== e && (e.addEventListener ? e.addEventListener("unload", da, !1) : e.attachEvent && e.attachEvent("onunload", da)), c.attributes = ja(function(a) {
+                return a.className = "i", !a.getAttribute("className")
+            }), c.getElementsByTagName = ja(function(a) {
+                return a.appendChild(n.createComment("")), !a.getElementsByTagName("*").length
+            }), c.getElementsByClassName = Y.test(n.getElementsByClassName), c.getById = ja(function(a) {
+                return o.appendChild(a).id = u, !n.getElementsByName || !n.getElementsByName(u).length
+            }), c.getById ? (d.filter.ID = function(a) {
+                var b = a.replace(_, aa);
+                return function(a) {
+                    return a.getAttribute("id") === b
+                }
+            }, d.find.ID = function(a, b) {
+                if ("undefined" != typeof b.getElementById && p) {
+                    var c = b.getElementById(a);
+                    return c ? [c] : []
+                }
+            }) : (d.filter.ID = function(a) {
+                var b = a.replace(_, aa);
+                return function(a) {
+                    var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id");
+                    return c && c.value === b
+                }
+            }, d.find.ID = function(a, b) {
+                if ("undefined" != typeof b.getElementById && p) {
+                    var c, d, e, f = b.getElementById(a);
+                    if (f) {
+                        if (c = f.getAttributeNode("id"), c && c.value === a) return [f];
+                        e = b.getElementsByName(a), d = 0;
+                        while (f = e[d++])
+                            if (c = f.getAttributeNode("id"), c && c.value === a) return [f]
+                    }
+                    return []
+                }
+            }), d.find.TAG = c.getElementsByTagName ? function(a, b) {
+                return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : c.qsa ? b.querySelectorAll(a) : void 0
+            } : function(a, b) {
+                var c, d = [],
+                    e = 0,
+                    f = b.getElementsByTagName(a);
+                if ("*" === a) {
+                    while (c = f[e++]) 1 === c.nodeType && d.push(c);
+                    return d
+                }
+                return f
+            }, d.find.CLASS = c.getElementsByClassName && function(a, b) {
+                if ("undefined" != typeof b.getElementsByClassName && p) return b.getElementsByClassName(a)
+            }, r = [], q = [], (c.qsa = Y.test(n.querySelectorAll)) && (ja(function(a) {
+                o.appendChild(a).innerHTML = "<a id='" + u + "'></a><select id='" + u + "-\r\\' msallowcapture=''><option selected=''></option></select>", a.querySelectorAll("[msallowcapture^='']").length && q.push("[*^$]=" + K + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || q.push("\\[" + K + "*(?:value|" + J + ")"), a.querySelectorAll("[id~=" + u + "-]").length || q.push("~="), a.querySelectorAll(":checked").length || q.push(":checked"), a.querySelectorAll("a#" + u + "+*").length || q.push(".#.+[+~]")
+            }), ja(function(a) {
+                a.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
+                var b = n.createElement("input");
+                b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && q.push("name" + K + "*[*^$|!~]?="), 2 !== a.querySelectorAll(":enabled").length && q.push(":enabled", ":disabled"), o.appendChild(a).disabled = !0, 2 !== a.querySelectorAll(":disabled").length && q.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), q.push(",.*:")
+            })), (c.matchesSelector = Y.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ja(function(a) {
+                c.disconnectedMatch = s.call(a, "*"), s.call(a, "[s!='']:x"), r.push("!=", N)
+            }), q = q.length && new RegExp(q.join("|")), r = r.length && new RegExp(r.join("|")), b = Y.test(o.compareDocumentPosition), t = b || Y.test(o.contains) ? function(a, b) {
+                var c = 9 === a.nodeType ? a.documentElement : a,
+                    d = b && b.parentNode;
+                return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
+            } : function(a, b) {
+                if (b)
+                    while (b = b.parentNode)
+                        if (b === a) return !0;
+                return !1
+            }, B = b ? function(a, b) {
+                if (a === b) return l = !0, 0;
+                var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
+                return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === n || a.ownerDocument === v && t(v, a) ? -1 : b === n || b.ownerDocument === v && t(v, b) ? 1 : k ? I(k, a) - I(k, b) : 0 : 4 & d ? -1 : 1)
+            } : function(a, b) {
+                if (a === b) return l = !0, 0;
+                var c, d = 0,
+                    e = a.parentNode,
+                    f = b.parentNode,
+                    g = [a],
+                    h = [b];
+                if (!e || !f) return a === n ? -1 : b === n ? 1 : e ? -1 : f ? 1 : k ? I(k, a) - I(k, b) : 0;
+                if (e === f) return la(a, b);
+                c = a;
+                while (c = c.parentNode) g.unshift(c);
+                c = b;
+                while (c = c.parentNode) h.unshift(c);
+                while (g[d] === h[d]) d++;
+                return d ? la(g[d], h[d]) : g[d] === v ? -1 : h[d] === v ? 1 : 0
+            }, n) : n
+        }, ga.matches = function(a, b) {
+            return ga(a, null, null, b)
+        }, ga.matchesSelector = function(a, b) {
+            if ((a.ownerDocument || a) !== n && m(a), b = b.replace(S, "='$1']"), c.matchesSelector && p && !A[b + " "] && (!r || !r.test(b)) && (!q || !q.test(b))) try {
+                var d = s.call(a, b);
+                if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
+            } catch (e) {}
+            return ga(b, n, null, [a]).length > 0
+        }, ga.contains = function(a, b) {
+            return (a.ownerDocument || a) !== n && m(a), t(a, b)
+        }, ga.attr = function(a, b) {
+            (a.ownerDocument || a) !== n && m(a);
+            var e = d.attrHandle[b.toLowerCase()],
+                f = e && C.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0;
+            return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
+        }, ga.escape = function(a) {
+            return (a + "").replace(ba, ca)
+        }, ga.error = function(a) {
+            throw new Error("Syntax error, unrecognized expression: " + a)
+        }, ga.uniqueSort = function(a) {
+            var b, d = [],
+                e = 0,
+                f = 0;
+            if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) {
+                while (b = a[f++]) b === a[f] && (e = d.push(f));
+                while (e--) a.splice(d[e], 1)
+            }
+            return k = null, a
+        }, e = ga.getText = function(a) {
+            var b, c = "",
+                d = 0,
+                f = a.nodeType;
+            if (f) {
+                if (1 === f || 9 === f || 11 === f) {
+                    if ("string" == typeof a.textContent) return a.textContent;
+                    for (a = a.firstChild; a; a = a.nextSibling) c += e(a)
+                } else if (3 === f || 4 === f) return a.nodeValue
+            } else
+                while (b = a[d++]) c += e(b);
+            return c
+        }, d = ga.selectors = {
+            cacheLength: 50,
+            createPseudo: ia,
+            match: V,
+            attrHandle: {},
+            find: {},
+            relative: {
+                ">": {
+                    dir: "parentNode",
+                    first: !0
+                },
+                " ": {
+                    dir: "parentNode"
+                },
+                "+": {
+                    dir: "previousSibling",
+                    first: !0
+                },
+                "~": {
+                    dir: "previousSibling"
+                }
+            },
+            preFilter: {
+                ATTR: function(a) {
+                    return a[1] = a[1].replace(_, aa), a[3] = (a[3] || a[4] || a[5] || "").replace(_, aa), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
+                },
+                CHILD: function(a) {
+                    return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || ga.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && ga.error(a[0]), a
+                },
+                PSEUDO: function(a) {
+                    var b, c = !a[6] && a[2];
+                    return V.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && T.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
+                }
+            },
+            filter: {
+                TAG: function(a) {
+                    var b = a.replace(_, aa).toLowerCase();
+                    return "*" === a ? function() {
+                        return !0
+                    } : function(a) {
+                        return a.nodeName && a.nodeName.toLowerCase() === b
+                    }
+                },
+                CLASS: function(a) {
+                    var b = y[a + " "];
+                    return b || (b = new RegExp("(^|" + K + ")" + a + "(" + K + "|$)")) && y(a, function(a) {
+                        return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "")
+                    })
+                },
+                ATTR: function(a, b, c) {
+                    return function(d) {
+                        var e = ga.attr(d, a);
+                        return null == e ? "!=" === b : !b || (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e.replace(O, " ") + " ").indexOf(c) > -1 : "|=" === b && (e === c || e.slice(0, c.length + 1) === c + "-"))
+                    }
+                },
+                CHILD: function(a, b, c, d, e) {
+                    var f = "nth" !== a.slice(0, 3),
+                        g = "last" !== a.slice(-4),
+                        h = "of-type" === b;
+                    return 1 === d && 0 === e ? function(a) {
+                        return !!a.parentNode
+                    } : function(b, c, i) {
+                        var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling",
+                            q = b.parentNode,
+                            r = h && b.nodeName.toLowerCase(),
+                            s = !i && !h,
+                            t = !1;
+                        if (q) {
+                            if (f) {
+                                while (p) {
+                                    m = b;
+                                    while (m = m[p])
+                                        if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1;
+                                    o = p = "only" === a && !o && "nextSibling"
+                                }
+                                return !0
+                            }
+                            if (o = [g ? q.firstChild : q.lastChild], g && s) {
+                                m = q, l = m[u] || (m[u] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === w && j[1], t = n && j[2], m = n && q.childNodes[n];
+                                while (m = ++n && m && m[p] || (t = n = 0) || o.pop())
+                                    if (1 === m.nodeType && ++t && m === b) {
+                                        k[a] = [w, n, t];
+                                        break
+                                    }
+                            } else if (s && (m = b, l = m[u] || (m[u] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === w && j[1], t = n), t === !1)
+                                while (m = ++n && m && m[p] || (t = n = 0) || o.pop())
+                                    if ((h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) && ++t && (s && (l = m[u] || (m[u] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), k[a] = [w, t]), m === b)) break;
+                            return t -= e, t === d || t % d === 0 && t / d >= 0
+                        }
+                    }
+                },
+                PSEUDO: function(a, b) {
+                    var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || ga.error("unsupported pseudo: " + a);
+                    return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? ia(function(a, c) {
+                        var d, f = e(a, b),
+                            g = f.length;
+                        while (g--) d = I(a, f[g]), a[d] = !(c[d] = f[g])
+                    }) : function(a) {
+                        return e(a, 0, c)
+                    }) : e
+                }
+            },
+            pseudos: {
+                not: ia(function(a) {
+                    var b = [],
+                        c = [],
+                        d = h(a.replace(P, "$1"));
+                    return d[u] ? ia(function(a, b, c, e) {
+                        var f, g = d(a, null, e, []),
+                            h = a.length;
+                        while (h--)(f = g[h]) && (a[h] = !(b[h] = f))
+                    }) : function(a, e, f) {
+                        return b[0] = a, d(b, null, f, c), b[0] = null, !c.pop()
+                    }
+                }),
+                has: ia(function(a) {
+                    return function(b) {
+                        return ga(a, b).length > 0
+                    }
+                }),
+                contains: ia(function(a) {
+                    return a = a.replace(_, aa),
+                        function(b) {
+                            return (b.textContent || b.innerText || e(b)).indexOf(a) > -1
+                        }
+                }),
+                lang: ia(function(a) {
+                    return U.test(a || "") || ga.error("unsupported lang: " + a), a = a.replace(_, aa).toLowerCase(),
+                        function(b) {
+                            var c;
+                            do
+                                if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType);
+                            return !1
+                        }
+                }),
+                target: function(b) {
+                    var c = a.location && a.location.hash;
+                    return c && c.slice(1) === b.id
+                },
+                root: function(a) {
+                    return a === o
+                },
+                focus: function(a) {
+                    return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
+                },
+                enabled: oa(!1),
+                disabled: oa(!0),
+                checked: function(a) {
+                    var b = a.nodeName.toLowerCase();
+                    return "input" === b && !!a.checked || "option" === b && !!a.selected
+                },
+                selected: function(a) {
+                    return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
+                },
+                empty: function(a) {
+                    for (a = a.firstChild; a; a = a.nextSibling)
+                        if (a.nodeType < 6) return !1;
+                    return !0
+                },
+                parent: function(a) {
+                    return !d.pseudos.empty(a)
+                },
+                header: function(a) {
+                    return X.test(a.nodeName)
+                },
+                input: function(a) {
+                    return W.test(a.nodeName)
+                },
+                button: function(a) {
+                    var b = a.nodeName.toLowerCase();
+                    return "input" === b && "button" === a.type || "button" === b
+                },
+                text: function(a) {
+                    var b;
+                    return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
+                },
+                first: pa(function() {
+                    return [0]
+                }),
+                last: pa(function(a, b) {
+                    return [b - 1]
+                }),
+                eq: pa(function(a, b, c) {
+                    return [c < 0 ? c + b : c]
+                }),
+                even: pa(function(a, b) {
+                    for (var c = 0; c < b; c += 2) a.push(c);
+                    return a
+                }),
+                odd: pa(function(a, b) {
+                    for (var c = 1; c < b; c += 2) a.push(c);
+                    return a
+                }),
+                lt: pa(function(a, b, c) {
+                    for (var d = c < 0 ? c + b : c; --d >= 0;) a.push(d);
+                    return a
+                }),
+                gt: pa(function(a, b, c) {
+                    for (var d = c < 0 ? c + b : c; ++d < b;) a.push(d);
+                    return a
+                })
+            }
+        }, d.pseudos.nth = d.pseudos.eq;
+        for (b in {
+                radio: !0,
+                checkbox: !0,
+                file: !0,
+                password: !0,
+                image: !0
+            }) d.pseudos[b] = ma(b);
+        for (b in {
+                submit: !0,
+                reset: !0
+            }) d.pseudos[b] = na(b);
+
+        function ra() {}
+        ra.prototype = d.filters = d.pseudos, d.setFilters = new ra, g = ga.tokenize = function(a, b) {
+            var c, e, f, g, h, i, j, k = z[a + " "];
+            if (k) return b ? 0 : k.slice(0);
+            h = a, i = [], j = d.preFilter;
+            while (h) {
+                c && !(e = Q.exec(h)) || (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = R.exec(h)) && (c = e.shift(), f.push({
+                    value: c,
+                    type: e[0].replace(P, " ")
+                }), h = h.slice(c.length));
+                for (g in d.filter) !(e = V[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({
+                    value: c,
+                    type: g,
+                    matches: e
+                }), h = h.slice(c.length));
+                if (!c) break
+            }
+            return b ? h.length : h ? ga.error(a) : z(a, i).slice(0)
+        };
+
+        function sa(a) {
+            for (var b = 0, c = a.length, d = ""; b < c; b++) d += a[b].value;
+            return d
+        }
+
+        function ta(a, b, c) {
+            var d = b.dir,
+                e = b.next,
+                f = e || d,
+                g = c && "parentNode" === f,
+                h = x++;
+            return b.first ? function(b, c, e) {
+                while (b = b[d])
+                    if (1 === b.nodeType || g) return a(b, c, e);
+                return !1
+            } : function(b, c, i) {
+                var j, k, l, m = [w, h];
+                if (i) {
+                    while (b = b[d])
+                        if ((1 === b.nodeType || g) && a(b, c, i)) return !0
+                } else
+                    while (b = b[d])
+                        if (1 === b.nodeType || g)
+                            if (l = b[u] || (b[u] = {}), k = l[b.uniqueID] || (l[b.uniqueID] = {}), e && e === b.nodeName.toLowerCase()) b = b[d] || b;
+                            else {
+                                if ((j = k[f]) && j[0] === w && j[1] === h) return m[2] = j[2];
+                                if (k[f] = m, m[2] = a(b, c, i)) return !0
+                            } return !1
+            }
+        }
+
+        function ua(a) {
+            return a.length > 1 ? function(b, c, d) {
+                var e = a.length;
+                while (e--)
+                    if (!a[e](b, c, d)) return !1;
+                return !0
+            } : a[0]
+        }
+
+        function va(a, b, c) {
+            for (var d = 0, e = b.length; d < e; d++) ga(a, b[d], c);
+            return c
+        }
+
+        function wa(a, b, c, d, e) {
+            for (var f, g = [], h = 0, i = a.length, j = null != b; h < i; h++)(f = a[h]) && (c && !c(f, d, e) || (g.push(f), j && b.push(h)));
+            return g
+        }
+
+        function xa(a, b, c, d, e, f) {
+            return d && !d[u] && (d = xa(d)), e && !e[u] && (e = xa(e, f)), ia(function(f, g, h, i) {
+                var j, k, l, m = [],
+                    n = [],
+                    o = g.length,
+                    p = f || va(b || "*", h.nodeType ? [h] : h, []),
+                    q = !a || !f && b ? p : wa(p, m, a, h, i),
+                    r = c ? e || (f ? a : o || d) ? [] : g : q;
+                if (c && c(q, r, h, i), d) {
+                    j = wa(r, n), d(j, [], h, i), k = j.length;
+                    while (k--)(l = j[k]) && (r[n[k]] = !(q[n[k]] = l))
+                }
+                if (f) {
+                    if (e || a) {
+                        if (e) {
+                            j = [], k = r.length;
+                            while (k--)(l = r[k]) && j.push(q[k] = l);
+                            e(null, r = [], j, i)
+                        }
+                        k = r.length;
+                        while (k--)(l = r[k]) && (j = e ? I(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l))
+                    }
+                } else r = wa(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : G.apply(g, r)
+            })
+        }
+
+        function ya(a) {
+            for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = ta(function(a) {
+                    return a === b
+                }, h, !0), l = ta(function(a) {
+                    return I(b, a) > -1
+                }, h, !0), m = [function(a, c, d) {
+                    var e = !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d));
+                    return b = null, e
+                }]; i < f; i++)
+                if (c = d.relative[a[i].type]) m = [ta(ua(m), c)];
+                else {
+                    if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) {
+                        for (e = ++i; e < f; e++)
+                            if (d.relative[a[e].type]) break;
+                        return xa(i > 1 && ua(m), i > 1 && sa(a.slice(0, i - 1).concat({
+                            value: " " === a[i - 2].type ? "*" : ""
+                        })).replace(P, "$1"), c, i < e && ya(a.slice(i, e)), e < f && ya(a = a.slice(e)), e < f && sa(a))
+                    }
+                    m.push(c)
+                }
+            return ua(m)
+        }
+
+        function za(a, b) {
+            var c = b.length > 0,
+                e = a.length > 0,
+                f = function(f, g, h, i, k) {
+                    var l, o, q, r = 0,
+                        s = "0",
+                        t = f && [],
+                        u = [],
+                        v = j,
+                        x = f || e && d.find.TAG("*", k),
+                        y = w += null == v ? 1 : Math.random() || .1,
+                        z = x.length;
+                    for (k && (j = g === n || g || k); s !== z && null != (l = x[s]); s++) {
+                        if (e && l) {
+                            o = 0, g || l.ownerDocument === n || (m(l), h = !p);
+                            while (q = a[o++])
+                                if (q(l, g || n, h)) {
+                                    i.push(l);
+                                    break
+                                }
+                            k && (w = y)
+                        }
+                        c && ((l = !q && l) && r--, f && t.push(l))
+                    }
+                    if (r += s, c && s !== r) {
+                        o = 0;
+                        while (q = b[o++]) q(t, u, g, h);
+                        if (f) {
+                            if (r > 0)
+                                while (s--) t[s] || u[s] || (u[s] = E.call(i));
+                            u = wa(u)
+                        }
+                        G.apply(i, u), k && !f && u.length > 0 && r + b.length > 1 && ga.uniqueSort(i)
+                    }
+                    return k && (w = y, j = v), t
+                };
+            return c ? ia(f) : f
+        }
+        return h = ga.compile = function(a, b) {
+            var c, d = [],
+                e = [],
+                f = A[a + " "];
+            if (!f) {
+                b || (b = g(a)), c = b.length;
+                while (c--) f = ya(b[c]), f[u] ? d.push(f) : e.push(f);
+                f = A(a, za(e, d)), f.selector = a
+            }
+            return f
+        }, i = ga.select = function(a, b, c, e) {
+            var f, i, j, k, l, m = "function" == typeof a && a,
+                n = !e && g(a = m.selector || a);
+            if (c = c || [], 1 === n.length) {
+                if (i = n[0] = n[0].slice(0), i.length > 2 && "ID" === (j = i[0]).type && 9 === b.nodeType && p && d.relative[i[1].type]) {
+                    if (b = (d.find.ID(j.matches[0].replace(_, aa), b) || [])[0], !b) return c;
+                    m && (b = b.parentNode), a = a.slice(i.shift().value.length)
+                }
+                f = V.needsContext.test(a) ? 0 : i.length;
+                while (f--) {
+                    if (j = i[f], d.relative[k = j.type]) break;
+                    if ((l = d.find[k]) && (e = l(j.matches[0].replace(_, aa), $.test(i[0].type) && qa(b.parentNode) || b))) {
+                        if (i.splice(f, 1), a = e.length && sa(i), !a) return G.apply(c, e), c;
+                        break
+                    }
+                }
+            }
+            return (m || h(a, n))(e, b, !p, c, !b || $.test(a) && qa(b.parentNode) || b), c
+        }, c.sortStable = u.split("").sort(B).join("") === u, c.detectDuplicates = !!l, m(), c.sortDetached = ja(function(a) {
+            return 1 & a.compareDocumentPosition(n.createElement("fieldset"))
+        }), ja(function(a) {
+            return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
+        }) || ka("type|href|height|width", function(a, b, c) {
+            if (!c) return a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
+        }), c.attributes && ja(function(a) {
+            return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
+        }) || ka("value", function(a, b, c) {
+            if (!c && "input" === a.nodeName.toLowerCase()) return a.defaultValue
+        }), ja(function(a) {
+            return null == a.getAttribute("disabled")
+        }) || ka(J, function(a, b, c) {
+            var d;
+            if (!c) return a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
+        }), ga
+    }(a);
+    r.find = x, r.expr = x.selectors, r.expr[":"] = r.expr.pseudos, r.uniqueSort = r.unique = x.uniqueSort, r.text = x.getText, r.isXMLDoc = x.isXML, r.contains = x.contains, r.escapeSelector = x.escape;
+    var y = function(a, b, c) {
+            var d = [],
+                e = void 0 !== c;
+            while ((a = a[b]) && 9 !== a.nodeType)
+                if (1 === a.nodeType) {
+                    if (e && r(a).is(c)) break;
+                    d.push(a)
+                }
+            return d
+        },
+        z = function(a, b) {
+            for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
+            return c
+        },
+        A = r.expr.match.needsContext;
+
+    function B(a, b) {
+        return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
+    }
+    var C = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,
+        D = /^.[^:#\[\.,]*$/;
+
+    function E(a, b, c) {
+        return r.isFunction(b) ? r.grep(a, function(a, d) {
+            return !!b.call(a, d, a) !== c
+        }) : b.nodeType ? r.grep(a, function(a) {
+            return a === b !== c
+        }) : "string" != typeof b ? r.grep(a, function(a) {
+            return i.call(b, a) > -1 !== c
+        }) : D.test(b) ? r.filter(b, a, c) : (b = r.filter(b, a), r.grep(a, function(a) {
+            return i.call(b, a) > -1 !== c && 1 === a.nodeType
+        }))
+    }
+    r.filter = function(a, b, c) {
+        var d = b[0];
+        return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? r.find.matchesSelector(d, a) ? [d] : [] : r.find.matches(a, r.grep(b, function(a) {
+            return 1 === a.nodeType
+        }))
+    }, r.fn.extend({
+        find: function(a) {
+            var b, c, d = this.length,
+                e = this;
+            if ("string" != typeof a) return this.pushStack(r(a).filter(function() {
+                for (b = 0; b < d; b++)
+                    if (r.contains(e[b], this)) return !0
+            }));
+            for (c = this.pushStack([]), b = 0; b < d; b++) r.find(a, e[b], c);
+            return d > 1 ? r.uniqueSort(c) : c
+        },
+        filter: function(a) {
+            return this.pushStack(E(this, a || [], !1))
+        },
+        not: function(a) {
+            return this.pushStack(E(this, a || [], !0))
+        },
+        is: function(a) {
+            return !!E(this, "string" == typeof a && A.test(a) ? r(a) : a || [], !1).length
+        }
+    });
+    var F, G = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+        H = r.fn.init = function(a, b, c) {
+            var e, f;
+            if (!a) return this;
+            if (c = c || F, "string" == typeof a) {
+                if (e = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : G.exec(a), !e || !e[1] && b) return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a);
+                if (e[1]) {
+                    if (b = b instanceof r ? b[0] : b, r.merge(this, r.parseHTML(e[1], b && b.nodeType ? b.ownerDocument || b : d, !0)), C.test(e[1]) && r.isPlainObject(b))
+                        for (e in b) r.isFunction(this[e]) ? this[e](b[e]) : this.attr(e, b[e]);
+                    return this
+                }
+                return f = d.getElementById(e[2]), f && (this[0] = f, this.length = 1), this
+            }
+            return a.nodeType ? (this[0] = a, this.length = 1, this) : r.isFunction(a) ? void 0 !== c.ready ? c.ready(a) : a(r) : r.makeArray(a, this)
+        };
+    H.prototype = r.fn, F = r(d);
+    var I = /^(?:parents|prev(?:Until|All))/,
+        J = {
+            children: !0,
+            contents: !0,
+            next: !0,
+            prev: !0
+        };
+    r.fn.extend({
+        has: function(a) {
+            var b = r(a, this),
+                c = b.length;
+            return this.filter(function() {
+                for (var a = 0; a < c; a++)
+                    if (r.contains(this, b[a])) return !0
+            })
+        },
+        closest: function(a, b) {
+            var c, d = 0,
+                e = this.length,
+                f = [],
+                g = "string" != typeof a && r(a);
+            if (!A.test(a))
+                for (; d < e; d++)
+                    for (c = this[d]; c && c !== b; c = c.parentNode)
+                        if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && r.find.matchesSelector(c, a))) {
+                            f.push(c);
+                            break
+                        }
+            return this.pushStack(f.length > 1 ? r.uniqueSort(f) : f)
+        },
+        index: function(a) {
+            return a ? "string" == typeof a ? i.call(r(a), this[0]) : i.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
+        },
+        add: function(a, b) {
+            return this.pushStack(r.uniqueSort(r.merge(this.get(), r(a, b))))
+        },
+        addBack: function(a) {
+            return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
+        }
+    });
+
+    function K(a, b) {
+        while ((a = a[b]) && 1 !== a.nodeType);
+        return a
+    }
+    r.each({
+        parent: function(a) {
+            var b = a.parentNode;
+            return b && 11 !== b.nodeType ? b : null
+        },
+        parents: function(a) {
+            return y(a, "parentNode")
+        },
+        parentsUntil: function(a, b, c) {
+            return y(a, "parentNode", c)
+        },
+        next: function(a) {
+            return K(a, "nextSibling")
+        },
+        prev: function(a) {
+            return K(a, "previousSibling")
+        },
+        nextAll: function(a) {
+            return y(a, "nextSibling")
+        },
+        prevAll: function(a) {
+            return y(a, "previousSibling")
+        },
+        nextUntil: function(a, b, c) {
+            return y(a, "nextSibling", c)
+        },
+        prevUntil: function(a, b, c) {
+            return y(a, "previousSibling", c)
+        },
+        siblings: function(a) {
+            return z((a.parentNode || {}).firstChild, a)
+        },
+        children: function(a) {
+            return z(a.firstChild)
+        },
+        contents: function(a) {
+            return B(a, "iframe") ? a.contentDocument : (B(a, "template") && (a = a.content || a), r.merge([], a.childNodes))
+        }
+    }, function(a, b) {
+        r.fn[a] = function(c, d) {
+            var e = r.map(this, b, c);
+            return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = r.filter(d, e)), this.length > 1 && (J[a] || r.uniqueSort(e), I.test(a) && e.reverse()), this.pushStack(e)
+        }
+    });
+    var L = /[^\x20\t\r\n\f]+/g;
+
+    function M(a) {
+        var b = {};
+        return r.each(a.match(L) || [], function(a, c) {
+            b[c] = !0
+        }), b
+    }
+    r.Callbacks = function(a) {
+        a = "string" == typeof a ? M(a) : r.extend({}, a);
+        var b, c, d, e, f = [],
+            g = [],
+            h = -1,
+            i = function() {
+                for (e = e || a.once, d = b = !0; g.length; h = -1) {
+                    c = g.shift();
+                    while (++h < f.length) f[h].apply(c[0], c[1]) === !1 && a.stopOnFalse && (h = f.length, c = !1)
+                }
+                a.memory || (c = !1), b = !1, e && (f = c ? [] : "")
+            },
+            j = {
+                add: function() {
+                    return f && (c && !b && (h = f.length - 1, g.push(c)), function d(b) {
+                        r.each(b, function(b, c) {
+                            r.isFunction(c) ? a.unique && j.has(c) || f.push(c) : c && c.length && "string" !== r.type(c) && d(c)
+                        })
+                    }(arguments), c && !b && i()), this
+                },
+                remove: function() {
+                    return r.each(arguments, function(a, b) {
+                        var c;
+                        while ((c = r.inArray(b, f, c)) > -1) f.splice(c, 1), c <= h && h--
+                    }), this
+                },
+                has: function(a) {
+                    return a ? r.inArray(a, f) > -1 : f.length > 0
+                },
+                empty: function() {
+                    return f && (f = []), this
+                },
+                disable: function() {
+                    return e = g = [], f = c = "", this
+                },
+                disabled: function() {
+                    return !f
+                },
+                lock: function() {
+                    return e = g = [], c || b || (f = c = ""), this
+                },
+                locked: function() {
+                    return !!e
+                },
+                fireWith: function(a, c) {
+                    return e || (c = c || [], c = [a, c.slice ? c.slice() : c], g.push(c), b || i()), this
+                },
+                fire: function() {
+                    return j.fireWith(this, arguments), this
+                },
+                fired: function() {
+                    return !!d
+                }
+            };
+        return j
+    };
+
+    function N(a) {
+        return a
+    }
+
+    function O(a) {
+        throw a
+    }
+
+    function P(a, b, c, d) {
+        var e;
+        try {
+            a && r.isFunction(e = a.promise) ? e.call(a).done(b).fail(c) : a && r.isFunction(e = a.then) ? e.call(a, b, c) : b.apply(void 0, [a].slice(d))
+        } catch (a) {
+            c.apply(void 0, [a])
+        }
+    }
+    r.extend({
+        Deferred: function(b) {
+            var c = [
+                    ["notify", "progress", r.Callbacks("memory"), r.Callbacks("memory"), 2],
+                    ["resolve", "done", r.Callbacks("once memory"), r.Callbacks("once memory"), 0, "resolved"],
+                    ["reject", "fail", r.Callbacks("once memory"), r.Callbacks("once memory"), 1, "rejected"]
+                ],
+                d = "pending",
+                e = {
+                    state: function() {
+                        return d
+                    },
+                    always: function() {
+                        return f.done(arguments).fail(arguments), this
+                    },
+                    "catch": function(a) {
+                        return e.then(null, a)
+                    },
+                    pipe: function() {
+                        var a = arguments;
+                        return r.Deferred(function(b) {
+                            r.each(c, function(c, d) {
+                                var e = r.isFunction(a[d[4]]) && a[d[4]];
+                                f[d[1]](function() {
+                                    var a = e && e.apply(this, arguments);
+                                    a && r.isFunction(a.promise) ? a.promise().progress(b.notify).done(b.resolve).fail(b.reject) : b[d[0] + "With"](this, e ? [a] : arguments)
+                                })
+                            }), a = null
+                        }).promise()
+                    },
+                    then: function(b, d, e) {
+                        var f = 0;
+
+                        function g(b, c, d, e) {
+                            return function() {
+                                var h = this,
+                                    i = arguments,
+                                    j = function() {
+                                        var a, j;
+                                        if (!(b < f)) {
+                                            if (a = d.apply(h, i), a === c.promise()) throw new TypeError("Thenable self-resolution");
+                                            j = a && ("object" == typeof a || "function" == typeof a) && a.then, r.isFunction(j) ? e ? j.call(a, g(f, c, N, e), g(f, c, O, e)) : (f++, j.call(a, g(f, c, N, e), g(f, c, O, e), g(f, c, N, c.notifyWith))) : (d !== N && (h = void 0, i = [a]), (e || c.resolveWith)(h, i))
+                                        }
+                                    },
+                                    k = e ? j : function() {
+                                        try {
+                                            j()
+                                        } catch (a) {
+                                            r.Deferred.exceptionHook && r.Deferred.exceptionHook(a, k.stackTrace), b + 1 >= f && (d !== O && (h = void 0, i = [a]), c.rejectWith(h, i))
+                                        }
+                                    };
+                                b ? k() : (r.Deferred.getStackHook && (k.stackTrace = r.Deferred.getStackHook()), a.setTimeout(k))
+                            }
+                        }
+                        return r.Deferred(function(a) {
+                            c[0][3].add(g(0, a, r.isFunction(e) ? e : N, a.notifyWith)), c[1][3].add(g(0, a, r.isFunction(b) ? b : N)), c[2][3].add(g(0, a, r.isFunction(d) ? d : O))
+                        }).promise()
+                    },
+                    promise: function(a) {
+                        return null != a ? r.extend(a, e) : e
+                    }
+                },
+                f = {};
+            return r.each(c, function(a, b) {
+                var g = b[2],
+                    h = b[5];
+                e[b[1]] = g.add, h && g.add(function() {
+                    d = h
+                }, c[3 - a][2].disable, c[0][2].lock), g.add(b[3].fire), f[b[0]] = function() {
+                    return f[b[0] + "With"](this === f ? void 0 : this, arguments), this
+                }, f[b[0] + "With"] = g.fireWith
+            }), e.promise(f), b && b.call(f, f), f
+        },
+        when: function(a) {
+            var b = arguments.length,
+                c = b,
+                d = Array(c),
+                e = f.call(arguments),
+                g = r.Deferred(),
+                h = function(a) {
+                    return function(c) {
+                        d[a] = this, e[a] = arguments.length > 1 ? f.call(arguments) : c, --b || g.resolveWith(d, e)
+                    }
+                };
+            if (b <= 1 && (P(a, g.done(h(c)).resolve, g.reject, !b), "pending" === g.state() || r.isFunction(e[c] && e[c].then))) return g.then();
+            while (c--) P(e[c], h(c), g.reject);
+            return g.promise()
+        }
+    });
+    var Q = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+    r.Deferred.exceptionHook = function(b, c) {
+        a.console && a.console.warn && b && Q.test(b.name) && a.console.warn("jQuery.Deferred exception: " + b.message, b.stack, c)
+    }, r.readyException = function(b) {
+        a.setTimeout(function() {
+            throw b
+        })
+    };
+    var R = r.Deferred();
+    r.fn.ready = function(a) {
+        return R.then(a)["catch"](function(a) {
+            r.readyException(a)
+        }), this
+    }, r.extend({
+        isReady: !1,
+        readyWait: 1,
+        ready: function(a) {
+            (a === !0 ? --r.readyWait : r.isReady) || (r.isReady = !0, a !== !0 && --r.readyWait > 0 || R.resolveWith(d, [r]))
+        }
+    }), r.ready.then = R.then;
+
+    function S() {
+        d.removeEventListener("DOMContentLoaded", S),
+            a.removeEventListener("load", S), r.ready()
+    }
+    "complete" === d.readyState || "loading" !== d.readyState && !d.documentElement.doScroll ? a.setTimeout(r.ready) : (d.addEventListener("DOMContentLoaded", S), a.addEventListener("load", S));
+    var T = function(a, b, c, d, e, f, g) {
+            var h = 0,
+                i = a.length,
+                j = null == c;
+            if ("object" === r.type(c)) {
+                e = !0;
+                for (h in c) T(a, b, h, c[h], !0, f, g)
+            } else if (void 0 !== d && (e = !0, r.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) {
+                    return j.call(r(a), c)
+                })), b))
+                for (; h < i; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
+            return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
+        },
+        U = function(a) {
+            return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType
+        };
+
+    function V() {
+        this.expando = r.expando + V.uid++
+    }
+    V.uid = 1, V.prototype = {
+        cache: function(a) {
+            var b = a[this.expando];
+            return b || (b = {}, U(a) && (a.nodeType ? a[this.expando] = b : Object.defineProperty(a, this.expando, {
+                value: b,
+                configurable: !0
+            }))), b
+        },
+        set: function(a, b, c) {
+            var d, e = this.cache(a);
+            if ("string" == typeof b) e[r.camelCase(b)] = c;
+            else
+                for (d in b) e[r.camelCase(d)] = b[d];
+            return e
+        },
+        get: function(a, b) {
+            return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][r.camelCase(b)]
+        },
+        access: function(a, b, c) {
+            return void 0 === b || b && "string" == typeof b && void 0 === c ? this.get(a, b) : (this.set(a, b, c), void 0 !== c ? c : b)
+        },
+        remove: function(a, b) {
+            var c, d = a[this.expando];
+            if (void 0 !== d) {
+                if (void 0 !== b) {
+                    Array.isArray(b) ? b = b.map(r.camelCase) : (b = r.camelCase(b), b = b in d ? [b] : b.match(L) || []), c = b.length;
+                    while (c--) delete d[b[c]]
+                }(void 0 === b || r.isEmptyObject(d)) && (a.nodeType ? a[this.expando] = void 0 : delete a[this.expando])
+            }
+        },
+        hasData: function(a) {
+            var b = a[this.expando];
+            return void 0 !== b && !r.isEmptyObject(b)
+        }
+    };
+    var W = new V,
+        X = new V,
+        Y = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+        Z = /[A-Z]/g;
+
+    function $(a) {
+        return "true" === a || "false" !== a && ("null" === a ? null : a === +a + "" ? +a : Y.test(a) ? JSON.parse(a) : a)
+    }
+
+    function _(a, b, c) {
+        var d;
+        if (void 0 === c && 1 === a.nodeType)
+            if (d = "data-" + b.replace(Z, "-$&").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) {
+                try {
+                    c = $(c)
+                } catch (e) {}
+                X.set(a, b, c)
+            } else c = void 0;
+        return c
+    }
+    r.extend({
+        hasData: function(a) {
+            return X.hasData(a) || W.hasData(a)
+        },
+        data: function(a, b, c) {
+            return X.access(a, b, c)
+        },
+        removeData: function(a, b) {
+            X.remove(a, b)
+        },
+        _data: function(a, b, c) {
+            return W.access(a, b, c)
+        },
+        _removeData: function(a, b) {
+            W.remove(a, b)
+        }
+    }), r.fn.extend({
+        data: function(a, b) {
+            var c, d, e, f = this[0],
+                g = f && f.attributes;
+            if (void 0 === a) {
+                if (this.length && (e = X.get(f), 1 === f.nodeType && !W.get(f, "hasDataAttrs"))) {
+                    c = g.length;
+                    while (c--) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = r.camelCase(d.slice(5)), _(f, d, e[d])));
+                    W.set(f, "hasDataAttrs", !0)
+                }
+                return e
+            }
+            return "object" == typeof a ? this.each(function() {
+                X.set(this, a)
+            }) : T(this, function(b) {
+                var c;
+                if (f && void 0 === b) {
+                    if (c = X.get(f, a), void 0 !== c) return c;
+                    if (c = _(f, a), void 0 !== c) return c
+                } else this.each(function() {
+                    X.set(this, a, b)
+                })
+            }, null, b, arguments.length > 1, null, !0)
+        },
+        removeData: function(a) {
+            return this.each(function() {
+                X.remove(this, a)
+            })
+        }
+    }), r.extend({
+        queue: function(a, b, c) {
+            var d;
+            if (a) return b = (b || "fx") + "queue", d = W.get(a, b), c && (!d || Array.isArray(c) ? d = W.access(a, b, r.makeArray(c)) : d.push(c)), d || []
+        },
+        dequeue: function(a, b) {
+            b = b || "fx";
+            var c = r.queue(a, b),
+                d = c.length,
+                e = c.shift(),
+                f = r._queueHooks(a, b),
+                g = function() {
+                    r.dequeue(a, b)
+                };
+            "inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
+        },
+        _queueHooks: function(a, b) {
+            var c = b + "queueHooks";
+            return W.get(a, c) || W.access(a, c, {
+                empty: r.Callbacks("once memory").add(function() {
+                    W.remove(a, [b + "queue", c])
+                })
+            })
+        }
+    }), r.fn.extend({
+        queue: function(a, b) {
+            var c = 2;
+            return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? r.queue(this[0], a) : void 0 === b ? this : this.each(function() {
+                var c = r.queue(this, a, b);
+                r._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && r.dequeue(this, a)
+            })
+        },
+        dequeue: function(a) {
+            return this.each(function() {
+                r.dequeue(this, a)
+            })
+        },
+        clearQueue: function(a) {
+            return this.queue(a || "fx", [])
+        },
+        promise: function(a, b) {
+            var c, d = 1,
+                e = r.Deferred(),
+                f = this,
+                g = this.length,
+                h = function() {
+                    --d || e.resolveWith(f, [f])
+                };
+            "string" != typeof a && (b = a, a = void 0), a = a || "fx";
+            while (g--) c = W.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
+            return h(), e.promise(b)
+        }
+    });
+    var aa = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
+        ba = new RegExp("^(?:([+-])=|)(" + aa + ")([a-z%]*)$", "i"),
+        ca = ["Top", "Right", "Bottom", "Left"],
+        da = function(a, b) {
+            return a = b || a, "none" === a.style.display || "" === a.style.display && r.contains(a.ownerDocument, a) && "none" === r.css(a, "display")
+        },
+        ea = function(a, b, c, d) {
+            var e, f, g = {};
+            for (f in b) g[f] = a.style[f], a.style[f] = b[f];
+            e = c.apply(a, d || []);
+            for (f in b) a.style[f] = g[f];
+            return e
+        };
+
+    function fa(a, b, c, d) {
+        var e, f = 1,
+            g = 20,
+            h = d ? function() {
+                return d.cur()
+            } : function() {
+                return r.css(a, b, "")
+            },
+            i = h(),
+            j = c && c[3] || (r.cssNumber[b] ? "" : "px"),
+            k = (r.cssNumber[b] || "px" !== j && +i) && ba.exec(r.css(a, b));
+        if (k && k[3] !== j) {
+            j = j || k[3], c = c || [], k = +i || 1;
+            do f = f || ".5", k /= f, r.style(a, b, k + j); while (f !== (f = h() / i) && 1 !== f && --g)
+        }
+        return c && (k = +k || +i || 0, e = c[1] ? k + (c[1] + 1) * c[2] : +c[2], d && (d.unit = j, d.start = k, d.end = e)), e
+    }
+    var ga = {};
+
+    function ha(a) {
+        var b, c = a.ownerDocument,
+            d = a.nodeName,
+            e = ga[d];
+        return e ? e : (b = c.body.appendChild(c.createElement(d)), e = r.css(b, "display"), b.parentNode.removeChild(b), "none" === e && (e = "block"), ga[d] = e, e)
+    }
+
+    function ia(a, b) {
+        for (var c, d, e = [], f = 0, g = a.length; f < g; f++) d = a[f], d.style && (c = d.style.display, b ? ("none" === c && (e[f] = W.get(d, "display") || null, e[f] || (d.style.display = "")), "" === d.style.display && da(d) && (e[f] = ha(d))) : "none" !== c && (e[f] = "none", W.set(d, "display", c)));
+        for (f = 0; f < g; f++) null != e[f] && (a[f].style.display = e[f]);
+        return a
+    }
+    r.fn.extend({
+        show: function() {
+            return ia(this, !0)
+        },
+        hide: function() {
+            return ia(this)
+        },
+        toggle: function(a) {
+            return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
+                da(this) ? r(this).show() : r(this).hide()
+            })
+        }
+    });
+    var ja = /^(?:checkbox|radio)$/i,
+        ka = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i,
+        la = /^$|\/(?:java|ecma)script/i,
+        ma = {
+            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, "", ""]
+        };
+    ma.optgroup = ma.option, ma.tbody = ma.tfoot = ma.colgroup = ma.caption = ma.thead, ma.th = ma.td;
+
+    function na(a, b) {
+        var c;
+        return c = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : [], void 0 === b || b && B(a, b) ? r.merge([a], c) : c
+    }
+
+    function oa(a, b) {
+        for (var c = 0, d = a.length; c < d; c++) W.set(a[c], "globalEval", !b || W.get(b[c], "globalEval"))
+    }
+    var pa = /<|&#?\w+;/;
+
+    function qa(a, b, c, d, e) {
+        for (var f, g, h, i, j, k, l = b.createDocumentFragment(), m = [], n = 0, o = a.length; n < o; n++)
+            if (f = a[n], f || 0 === f)
+                if ("object" === r.type(f)) r.merge(m, f.nodeType ? [f] : f);
+                else if (pa.test(f)) {
+            g = g || l.appendChild(b.createElement("div")), h = (ka.exec(f) || ["", ""])[1].toLowerCase(), i = ma[h] || ma._default, g.innerHTML = i[1] + r.htmlPrefilter(f) + i[2], k = i[0];
+            while (k--) g = g.lastChild;
+            r.merge(m, g.childNodes), g = l.firstChild, g.textContent = ""
+        } else m.push(b.createTextNode(f));
+        l.textContent = "", n = 0;
+        while (f = m[n++])
+            if (d && r.inArray(f, d) > -1) e && e.push(f);
+            else if (j = r.contains(f.ownerDocument, f), g = na(l.appendChild(f), "script"), j && oa(g), c) {
+            k = 0;
+            while (f = g[k++]) la.test(f.type || "") && c.push(f)
+        }
+        return l
+    }! function() {
+        var a = d.createDocumentFragment(),
+            b = a.appendChild(d.createElement("div")),
+            c = d.createElement("input");
+        c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), o.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "<textarea>x</textarea>", o.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue
+    }();
+    var ra = d.documentElement,
+        sa = /^key/,
+        ta = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+        ua = /^([^.]*)(?:\.(.+)|)/;
+
+    function va() {
+        return !0
+    }
+
+    function wa() {
+        return !1
+    }
+
+    function xa() {
+        try {
+            return d.activeElement
+        } catch (a) {}
+    }
+
+    function ya(a, b, c, d, e, f) {
+        var g, h;
+        if ("object" == typeof b) {
+            "string" != typeof c && (d = d || c, c = void 0);
+            for (h in b) ya(a, h, c, d, b[h], f);
+            return a
+        }
+        if (null == d && null == e ? (e = c, d = c = void 0) : null == e && ("string" == typeof c ? (e = d, d = void 0) : (e = d, d = c, c = void 0)), e === !1) e = wa;
+        else if (!e) return a;
+        return 1 === f && (g = e, e = function(a) {
+            return r().off(a), g.apply(this, arguments)
+        }, e.guid = g.guid || (g.guid = r.guid++)), a.each(function() {
+            r.event.add(this, b, e, d, c)
+        })
+    }
+    r.event = {
+        global: {},
+        add: function(a, b, c, d, e) {
+            var f, g, h, i, j, k, l, m, n, o, p, q = W.get(a);
+            if (q) {
+                c.handler && (f = c, c = f.handler, e = f.selector), e && r.find.matchesSelector(ra, e), c.guid || (c.guid = r.guid++), (i = q.events) || (i = q.events = {}), (g = q.handle) || (g = q.handle = function(b) {
+                    return "undefined" != typeof r && r.event.triggered !== b.type ? r.event.dispatch.apply(a, arguments) : void 0
+                }), b = (b || "").match(L) || [""], j = b.length;
+                while (j--) h = ua.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n && (l = r.event.special[n] || {}, n = (e ? l.delegateType : l.bindType) || n, l = r.event.special[n] || {}, k = r.extend({
+                    type: n,
+                    origType: p,
+                    data: d,
+                    handler: c,
+                    guid: c.guid,
+                    selector: e,
+                    needsContext: e && r.expr.match.needsContext.test(e),
+                    namespace: o.join(".")
+                }, f), (m = i[n]) || (m = i[n] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), r.event.global[n] = !0)
+            }
+        },
+        remove: function(a, b, c, d, e) {
+            var f, g, h, i, j, k, l, m, n, o, p, q = W.hasData(a) && W.get(a);
+            if (q && (i = q.events)) {
+                b = (b || "").match(L) || [""], j = b.length;
+                while (j--)
+                    if (h = ua.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) {
+                        l = r.event.special[n] || {}, n = (d ? l.delegateType : l.bindType) || n, m = i[n] || [], h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), g = f = m.length;
+                        while (f--) k = m[f], !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k));
+                        g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || r.removeEvent(a, n, q.handle), delete i[n])
+                    } else
+                        for (n in i) r.event.remove(a, n + b[j], c, d, !0);
+                r.isEmptyObject(i) && W.remove(a, "handle events")
+            }
+        },
+        dispatch: function(a) {
+            var b = r.event.fix(a),
+                c, d, e, f, g, h, i = new Array(arguments.length),
+                j = (W.get(this, "events") || {})[b.type] || [],
+                k = r.event.special[b.type] || {};
+            for (i[0] = b, c = 1; c < arguments.length; c++) i[c] = arguments[c];
+            if (b.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, b) !== !1) {
+                h = r.event.handlers.call(this, b, j), c = 0;
+                while ((f = h[c++]) && !b.isPropagationStopped()) {
+                    b.currentTarget = f.elem, d = 0;
+                    while ((g = f.handlers[d++]) && !b.isImmediatePropagationStopped()) b.rnamespace && !b.rnamespace.test(g.namespace) || (b.handleObj = g, b.data = g.data, e = ((r.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), void 0 !== e && (b.result = e) === !1 && (b.preventDefault(), b.stopPropagation()))
+                }
+                return k.postDispatch && k.postDispatch.call(this, b), b.result
+            }
+        },
+        handlers: function(a, b) {
+            var c, d, e, f, g, h = [],
+                i = b.delegateCount,
+                j = a.target;
+            if (i && j.nodeType && !("click" === a.type && a.button >= 1))
+                for (; j !== this; j = j.parentNode || this)
+                    if (1 === j.nodeType && ("click" !== a.type || j.disabled !== !0)) {
+                        for (f = [], g = {}, c = 0; c < i; c++) d = b[c], e = d.selector + " ", void 0 === g[e] && (g[e] = d.needsContext ? r(e, this).index(j) > -1 : r.find(e, this, null, [j]).length), g[e] && f.push(d);
+                        f.length && h.push({
+                            elem: j,
+                            handlers: f
+                        })
+                    }
+            return j = this, i < b.length && h.push({
+                elem: j,
+                handlers: b.slice(i)
+            }), h
+        },
+        addProp: function(a, b) {
+            Object.defineProperty(r.Event.prototype, a, {
+                enumerable: !0,
+                configurable: !0,
+                get: r.isFunction(b) ? function() {
+                    if (this.originalEvent) return b(this.originalEvent)
+                } : function() {
+                    if (this.originalEvent) return this.originalEvent[a]
+                },
+                set: function(b) {
+                    Object.defineProperty(this, a, {
+                        enumerable: !0,
+                        configurable: !0,
+                        writable: !0,
+                        value: b
+                    })
+                }
+            })
+        },
+        fix: function(a) {
+            return a[r.expando] ? a : new r.Event(a)
+        },
+        special: {
+            load: {
+                noBubble: !0
+            },
+            focus: {
+                trigger: function() {
+                    if (this !== xa() && this.focus) return this.focus(), !1
+                },
+                delegateType: "focusin"
+            },
+            blur: {
+                trigger: function() {
+                    if (this === xa() && this.blur) return this.blur(), !1
+                },
+                delegateType: "focusout"
+            },
+            click: {
+                trigger: function() {
+                    if ("checkbox" === this.type && this.click && B(this, "input")) return this.click(), !1
+                },
+                _default: function(a) {
+                    return B(a.target, "a")
+                }
+            },
+            beforeunload: {
+                postDispatch: function(a) {
+                    void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
+                }
+            }
+        }
+    }, r.removeEvent = function(a, b, c) {
+        a.removeEventListener && a.removeEventListener(b, c)
+    }, r.Event = function(a, b) {
+        return this instanceof r.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? va : wa, this.target = a.target && 3 === a.target.nodeType ? a.target.parentNode : a.target, this.currentTarget = a.currentTarget, this.relatedTarget = a.relatedTarget) : this.type = a, b && r.extend(this, b), this.timeStamp = a && a.timeStamp || r.now(), void(this[r.expando] = !0)) : new r.Event(a, b)
+    }, r.Event.prototype = {
+        constructor: r.Event,
+        isDefaultPrevented: wa,
+        isPropagationStopped: wa,
+        isImmediatePropagationStopped: wa,
+        isSimulated: !1,
+        preventDefault: function() {
+            var a = this.originalEvent;
+            this.isDefaultPrevented = va, a && !this.isSimulated && a.preventDefault()
+        },
+        stopPropagation: function() {
+            var a = this.originalEvent;
+            this.isPropagationStopped = va, a && !this.isSimulated && a.stopPropagation()
+        },
+        stopImmediatePropagation: function() {
+            var a = this.originalEvent;
+            this.isImmediatePropagationStopped = va, a && !this.isSimulated && a.stopImmediatePropagation(), this.stopPropagation()
+        }
+    }, r.each({
+        altKey: !0,
+        bubbles: !0,
+        cancelable: !0,
+        changedTouches: !0,
+        ctrlKey: !0,
+        detail: !0,
+        eventPhase: !0,
+        metaKey: !0,
+        pageX: !0,
+        pageY: !0,
+        shiftKey: !0,
+        view: !0,
+        "char": !0,
+        charCode: !0,
+        key: !0,
+        keyCode: !0,
+        button: !0,
+        buttons: !0,
+        clientX: !0,
+        clientY: !0,
+        offsetX: !0,
+        offsetY: !0,
+        pointerId: !0,
+        pointerType: !0,
+        screenX: !0,
+        screenY: !0,
+        targetTouches: !0,
+        toElement: !0,
+        touches: !0,
+        which: function(a) {
+            var b = a.button;
+            return null == a.which && sa.test(a.type) ? null != a.charCode ? a.charCode : a.keyCode : !a.which && void 0 !== b && ta.test(a.type) ? 1 & b ? 1 : 2 & b ? 3 : 4 & b ? 2 : 0 : a.which
+        }
+    }, r.event.addProp), r.each({
+        mouseenter: "mouseover",
+        mouseleave: "mouseout",
+        pointerenter: "pointerover",
+        pointerleave: "pointerout"
+    }, function(a, b) {
+        r.event.special[a] = {
+            delegateType: b,
+            bindType: b,
+            handle: function(a) {
+                var c, d = this,
+                    e = a.relatedTarget,
+                    f = a.handleObj;
+                return e && (e === d || r.contains(d, e)) || (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
+            }
+        }
+    }), r.fn.extend({
+        on: function(a, b, c, d) {
+            return ya(this, a, b, c, d)
+        },
+        one: function(a, b, c, d) {
+            return ya(this, a, b, c, d, 1)
+        },
+        off: function(a, b, c) {
+            var d, e;
+            if (a && a.preventDefault && a.handleObj) return d = a.handleObj, r(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;
+            if ("object" == typeof a) {
+                for (e in a) this.off(e, b, a[e]);
+                return this
+            }
+            return b !== !1 && "function" != typeof b || (c = b, b = void 0), c === !1 && (c = wa), this.each(function() {
+                r.event.remove(this, a, c, b)
+            })
+        }
+    });
+    var za = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+        Aa = /<script|<style|<link/i,
+        Ba = /checked\s*(?:[^=]|=\s*.checked.)/i,
+        Ca = /^true\/(.*)/,
+        Da = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+    function Ea(a, b) {
+        return B(a, "table") && B(11 !== b.nodeType ? b : b.firstChild, "tr") ? r(">tbody", a)[0] || a : a
+    }
+
+    function Fa(a) {
+        return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a
+    }
+
+    function Ga(a) {
+        var b = Ca.exec(a.type);
+        return b ? a.type = b[1] : a.removeAttribute("type"), a
+    }
+
+    function Ha(a, b) {
+        var c, d, e, f, g, h, i, j;
+        if (1 === b.nodeType) {
+            if (W.hasData(a) && (f = W.access(a), g = W.set(b, f), j = f.events)) {
+                delete g.handle, g.events = {};
+                for (e in j)
+                    for (c = 0, d = j[e].length; c < d; c++) r.event.add(b, e, j[e][c])
+            }
+            X.hasData(a) && (h = X.access(a), i = r.extend({}, h), X.set(b, i))
+        }
+    }
+
+    function Ia(a, b) {
+        var c = b.nodeName.toLowerCase();
+        "input" === c && ja.test(a.type) ? b.checked = a.checked : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue)
+    }
+
+    function Ja(a, b, c, d) {
+        b = g.apply([], b);
+        var e, f, h, i, j, k, l = 0,
+            m = a.length,
+            n = m - 1,
+            q = b[0],
+            s = r.isFunction(q);
+        if (s || m > 1 && "string" == typeof q && !o.checkClone && Ba.test(q)) return a.each(function(e) {
+            var f = a.eq(e);
+            s && (b[0] = q.call(this, e, f.html())), Ja(f, b, c, d)
+        });
+        if (m && (e = qa(b, a[0].ownerDocument, !1, a, d), f = e.firstChild, 1 === e.childNodes.length && (e = f), f || d)) {
+            for (h = r.map(na(e, "script"), Fa), i = h.length; l < m; l++) j = e, l !== n && (j = r.clone(j, !0, !0), i && r.merge(h, na(j, "script"))), c.call(a[l], j, l);
+            if (i)
+                for (k = h[h.length - 1].ownerDocument, r.map(h, Ga), l = 0; l < i; l++) j = h[l], la.test(j.type || "") && !W.access(j, "globalEval") && r.contains(k, j) && (j.src ? r._evalUrl && r._evalUrl(j.src) : p(j.textContent.replace(Da, ""), k))
+        }
+        return a
+    }
+
+    function Ka(a, b, c) {
+        for (var d, e = b ? r.filter(b, a) : a, f = 0; null != (d = e[f]); f++) c || 1 !== d.nodeType || r.cleanData(na(d)), d.parentNode && (c && r.contains(d.ownerDocument, d) && oa(na(d, "script")), d.parentNode.removeChild(d));
+        return a
+    }
+    r.extend({
+        htmlPrefilter: function(a) {
+            return a.replace(za, "<$1></$2>")
+        },
+        clone: function(a, b, c) {
+            var d, e, f, g, h = a.cloneNode(!0),
+                i = r.contains(a.ownerDocument, a);
+            if (!(o.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || r.isXMLDoc(a)))
+                for (g = na(h), f = na(a), d = 0, e = f.length; d < e; d++) Ia(f[d], g[d]);
+            if (b)
+                if (c)
+                    for (f = f || na(a), g = g || na(h), d = 0, e = f.length; d < e; d++) Ha(f[d], g[d]);
+                else Ha(a, h);
+            return g = na(h, "script"), g.length > 0 && oa(g, !i && na(a, "script")), h
+        },
+        cleanData: function(a) {
+            for (var b, c, d, e = r.event.special, f = 0; void 0 !== (c = a[f]); f++)
+                if (U(c)) {
+                    if (b = c[W.expando]) {
+                        if (b.events)
+                            for (d in b.events) e[d] ? r.event.remove(c, d) : r.removeEvent(c, d, b.handle);
+                        c[W.expando] = void 0
+                    }
+                    c[X.expando] && (c[X.expando] = void 0)
+                }
+        }
+    }), r.fn.extend({
+        detach: function(a) {
+            return Ka(this, a, !0)
+        },
+        remove: function(a) {
+            return Ka(this, a)
+        },
+        text: function(a) {
+            return T(this, function(a) {
+                return void 0 === a ? r.text(this) : this.empty().each(function() {
+                    1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = a)
+                })
+            }, null, a, arguments.length)
+        },
+        append: function() {
+            return Ja(this, arguments, function(a) {
+                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
+                    var b = Ea(this, a);
+                    b.appendChild(a)
+                }
+            })
+        },
+        prepend: function() {
+            return Ja(this, arguments, function(a) {
+                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
+                    var b = Ea(this, a);
+                    b.insertBefore(a, b.firstChild)
+                }
+            })
+        },
+        before: function() {
+            return Ja(this, arguments, function(a) {
+                this.parentNode && this.parentNode.insertBefore(a, this)
+            })
+        },
+        after: function() {
+            return Ja(this, arguments, function(a) {
+                this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
+            })
+        },
+        empty: function() {
+            for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (r.cleanData(na(a, !1)), a.textContent = "");
+            return this
+        },
+        clone: function(a, b) {
+            return a = null != a && a, b = null == b ? a : b, this.map(function() {
+                return r.clone(this, a, b)
+            })
+        },
+        html: function(a) {
+            return T(this, function(a) {
+                var b = this[0] || {},
+                    c = 0,
+                    d = this.length;
+                if (void 0 === a && 1 === b.nodeType) return b.innerHTML;
+                if ("string" == typeof a && !Aa.test(a) && !ma[(ka.exec(a) || ["", ""])[1].toLowerCase()]) {
+                    a = r.htmlPrefilter(a);
+                    try {
+                        for (; c < d; c++) b = this[c] || {}, 1 === b.nodeType && (r.cleanData(na(b, !1)), b.innerHTML = a);
+                        b = 0
+                    } catch (e) {}
+                }
+                b && this.empty().append(a)
+            }, null, a, arguments.length)
+        },
+        replaceWith: function() {
+            var a = [];
+            return Ja(this, arguments, function(b) {
+                var c = this.parentNode;
+                r.inArray(this, a) < 0 && (r.cleanData(na(this)), c && c.replaceChild(b, this))
+            }, a)
+        }
+    }), r.each({
+        appendTo: "append",
+        prependTo: "prepend",
+        insertBefore: "before",
+        insertAfter: "after",
+        replaceAll: "replaceWith"
+    }, function(a, b) {
+        r.fn[a] = function(a) {
+            for (var c, d = [], e = r(a), f = e.length - 1, g = 0; g <= f; g++) c = g === f ? this : this.clone(!0), r(e[g])[b](c), h.apply(d, c.get());
+            return this.pushStack(d)
+        }
+    });
+    var La = /^margin/,
+        Ma = new RegExp("^(" + aa + ")(?!px)[a-z%]+$", "i"),
+        Na = function(b) {
+            var c = b.ownerDocument.defaultView;
+            return c && c.opener || (c = a), c.getComputedStyle(b)
+        };
+    ! function() {
+        function b() {
+            if (i) {
+                i.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", i.innerHTML = "", ra.appendChild(h);
+                var b = a.getComputedStyle(i);
+                c = "1%" !== b.top, g = "2px" === b.marginLeft, e = "4px" === b.width, i.style.marginRight = "50%", f = "4px" === b.marginRight, ra.removeChild(h), i = null
+            }
+        }
+        var c, e, f, g, h = d.createElement("div"),
+            i = d.createElement("div");
+        i.style && (i.style.backgroundClip = "content-box", i.cloneNode(!0).style.backgroundClip = "", o.clearCloneStyle = "content-box" === i.style.backgroundClip, h.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", h.appendChild(i), r.extend(o, {
+            pixelPosition: function() {
+                return b(), c
+            },
+            boxSizingReliable: function() {
+                return b(), e
+            },
+            pixelMarginRight: function() {
+                return b(), f
+            },
+            reliableMarginLeft: function() {
+                return b(), g
+            }
+        }))
+    }();
+
+    function Oa(a, b, c) {
+        var d, e, f, g, h = a.style;
+        return c = c || Na(a), c && (g = c.getPropertyValue(b) || c[b], "" !== g || r.contains(a.ownerDocument, a) || (g = r.style(a, b)), !o.pixelMarginRight() && Ma.test(g) && La.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 !== g ? g + "" : g
+    }
+
+    function Pa(a, b) {
+        return {
+            get: function() {
+                return a() ? void delete this.get : (this.get = b).apply(this, arguments)
+            }
+        }
+    }
+    var Qa = /^(none|table(?!-c[ea]).+)/,
+        Ra = /^--/,
+        Sa = {
+            position: "absolute",
+            visibility: "hidden",
+            display: "block"
+        },
+        Ta = {
+            letterSpacing: "0",
+            fontWeight: "400"
+        },
+        Ua = ["Webkit", "Moz", "ms"],
+        Va = d.createElement("div").style;
+
+    function Wa(a) {
+        if (a in Va) return a;
+        var b = a[0].toUpperCase() + a.slice(1),
+            c = Ua.length;
+        while (c--)
+            if (a = Ua[c] + b, a in Va) return a
+    }
+
+    function Xa(a) {
+        var b = r.cssProps[a];
+        return b || (b = r.cssProps[a] = Wa(a) || a), b
+    }
+
+    function Ya(a, b, c) {
+        var d = ba.exec(b);
+        return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b
+    }
+
+    function Za(a, b, c, d, e) {
+        var f, g = 0;
+        for (f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0; f < 4; f += 2) "margin" === c && (g += r.css(a, c + ca[f], !0, e)), d ? ("content" === c && (g -= r.css(a, "padding" + ca[f], !0, e)), "margin" !== c && (g -= r.css(a, "border" + ca[f] + "Width", !0, e))) : (g += r.css(a, "padding" + ca[f], !0, e), "padding" !== c && (g += r.css(a, "border" + ca[f] + "Width", !0, e)));
+        return g
+    }
+
+    function $a(a, b, c) {
+        var d, e = Na(a),
+            f = Oa(a, b, e),
+            g = "border-box" === r.css(a, "boxSizing", !1, e);
+        return Ma.test(f) ? f : (d = g && (o.boxSizingReliable() || f === a.style[b]), "auto" === f && (f = a["offset" + b[0].toUpperCase() + b.slice(1)]), f = parseFloat(f) || 0, f + Za(a, b, c || (g ? "border" : "content"), d, e) + "px")
+    }
+    r.extend({
+        cssHooks: {
+            opacity: {
+                get: function(a, b) {
+                    if (b) {
+                        var c = Oa(a, "opacity");
+                        return "" === c ? "1" : c
+                    }
+                }
+            }
+        },
+        cssNumber: {
+            animationIterationCount: !0,
+            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(a, b, c, d) {
+            if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
+                var e, f, g, h = r.camelCase(b),
+                    i = Ra.test(b),
+                    j = a.style;
+                return i || (b = Xa(h)), g = r.cssHooks[b] || r.cssHooks[h], void 0 === c ? g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : j[b] : (f = typeof c, "string" === f && (e = ba.exec(c)) && e[1] && (c = fa(a, b, e), f = "number"), null != c && c === c && ("number" === f && (c += e && e[3] || (r.cssNumber[h] ? "" : "px")), o.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (j[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i ? j.setProperty(b, c) : j[b] = c)), void 0)
+            }
+        },
+        css: function(a, b, c, d) {
+            var e, f, g, h = r.camelCase(b),
+                i = Ra.test(b);
+            return i || (b = Xa(h)), g = r.cssHooks[b] || r.cssHooks[h], g && "get" in g && (e = g.get(a, !0, c)), void 0 === e && (e = Oa(a, b, d)), "normal" === e && b in Ta && (e = Ta[b]), "" === c || c ? (f = parseFloat(e), c === !0 || isFinite(f) ? f || 0 : e) : e
+        }
+    }), r.each(["height", "width"], function(a, b) {
+        r.cssHooks[b] = {
+            get: function(a, c, d) {
+                if (c) return !Qa.test(r.css(a, "display")) || a.getClientRects().length && a.getBoundingClientRect().width ? $a(a, b, d) : ea(a, Sa, function() {
+                    return $a(a, b, d)
+                })
+            },
+            set: function(a, c, d) {
+                var e, f = d && Na(a),
+                    g = d && Za(a, b, d, "border-box" === r.css(a, "boxSizing", !1, f), f);
+                return g && (e = ba.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c, c = r.css(a, b)), Ya(a, c, g)
+            }
+        }
+    }), r.cssHooks.marginLeft = Pa(o.reliableMarginLeft, function(a, b) {
+        if (b) return (parseFloat(Oa(a, "marginLeft")) || a.getBoundingClientRect().left - ea(a, {
+            marginLeft: 0
+        }, function() {
+            return a.getBoundingClientRect().left
+        })) + "px"
+    }), r.each({
+        margin: "",
+        padding: "",
+        border: "Width"
+    }, function(a, b) {
+        r.cssHooks[a + b] = {
+            expand: function(c) {
+                for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; d < 4; d++) e[a + ca[d] + b] = f[d] || f[d - 2] || f[0];
+                return e
+            }
+        }, La.test(a) || (r.cssHooks[a + b].set = Ya)
+    }), r.fn.extend({
+        css: function(a, b) {
+            return T(this, function(a, b, c) {
+                var d, e, f = {},
+                    g = 0;
+                if (Array.isArray(b)) {
+                    for (d = Na(a), e = b.length; g < e; g++) f[b[g]] = r.css(a, b[g], !1, d);
+                    return f
+                }
+                return void 0 !== c ? r.style(a, b, c) : r.css(a, b)
+            }, a, b, arguments.length > 1)
+        }
+    });
+
+    function _a(a, b, c, d, e) {
+        return new _a.prototype.init(a, b, c, d, e)
+    }
+    r.Tween = _a, _a.prototype = {
+        constructor: _a,
+        init: function(a, b, c, d, e, f) {
+            this.elem = a, this.prop = c, this.easing = e || r.easing._default, this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (r.cssNumber[c] ? "" : "px")
+        },
+        cur: function() {
+            var a = _a.propHooks[this.prop];
+            return a && a.get ? a.get(this) : _a.propHooks._default.get(this)
+        },
+        run: function(a) {
+            var b, c = _a.propHooks[this.prop];
+            return this.options.duration ? this.pos = b = r.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : _a.propHooks._default.set(this), this
+        }
+    }, _a.prototype.init.prototype = _a.prototype, _a.propHooks = {
+        _default: {
+            get: function(a) {
+                var b;
+                return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = r.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0)
+            },
+            set: function(a) {
+                r.fx.step[a.prop] ? r.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[r.cssProps[a.prop]] && !r.cssHooks[a.prop] ? a.elem[a.prop] = a.now : r.style(a.elem, a.prop, a.now + a.unit)
+            }
+        }
+    }, _a.propHooks.scrollTop = _a.propHooks.scrollLeft = {
+        set: function(a) {
+            a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
+        }
+    }, r.easing = {
+        linear: function(a) {
+            return a
+        },
+        swing: function(a) {
+            return .5 - Math.cos(a * Math.PI) / 2
+        },
+        _default: "swing"
+    }, r.fx = _a.prototype.init, r.fx.step = {};
+    var ab, bb, cb = /^(?:toggle|show|hide)$/,
+        db = /queueHooks$/;
+
+    function eb() {
+        bb && (d.hidden === !1 && a.requestAnimationFrame ? a.requestAnimationFrame(eb) : a.setTimeout(eb, r.fx.interval), r.fx.tick())
+    }
+
+    function fb() {
+        return a.setTimeout(function() {
+            ab = void 0
+        }), ab = r.now()
+    }
+
+    function gb(a, b) {
+        var c, d = 0,
+            e = {
+                height: a
+            };
+        for (b = b ? 1 : 0; d < 4; d += 2 - b) c = ca[d], e["margin" + c] = e["padding" + c] = a;
+        return b && (e.opacity = e.width = a), e
+    }
+
+    function hb(a, b, c) {
+        for (var d, e = (kb.tweeners[b] || []).concat(kb.tweeners["*"]), f = 0, g = e.length; f < g; f++)
+            if (d = e[f].call(c, b, a)) return d
+    }
+
+    function ib(a, b, c) {
+        var d, e, f, g, h, i, j, k, l = "width" in b || "height" in b,
+            m = this,
+            n = {},
+            o = a.style,
+            p = a.nodeType && da(a),
+            q = W.get(a, "fxshow");
+        c.queue || (g = r._queueHooks(a, "fx"), null == g.unqueued && (g.unqueued = 0, h = g.empty.fire, g.empty.fire = function() {
+            g.unqueued || h()
+        }), g.unqueued++, m.always(function() {
+            m.always(function() {
+                g.unqueued--, r.queue(a, "fx").length || g.empty.fire()
+            })
+        }));
+        for (d in b)
+            if (e = b[d], cb.test(e)) {
+                if (delete b[d], f = f || "toggle" === e, e === (p ? "hide" : "show")) {
+                    if ("show" !== e || !q || void 0 === q[d]) continue;
+                    p = !0
+                }
+                n[d] = q && q[d] || r.style(a, d)
+            }
+        if (i = !r.isEmptyObject(b), i || !r.isEmptyObject(n)) {
+            l && 1 === a.nodeType && (c.overflow = [o.overflow, o.overflowX, o.overflowY], j = q && q.display, null == j && (j = W.get(a, "display")), k = r.css(a, "display"), "none" === k && (j ? k = j : (ia([a], !0), j = a.style.display || j, k = r.css(a, "display"), ia([a]))), ("inline" === k || "inline-block" === k && null != j) && "none" === r.css(a, "float") && (i || (m.done(function() {
+                o.display = j
+            }), null == j && (k = o.display, j = "none" === k ? "" : k)), o.display = "inline-block")), c.overflow && (o.overflow = "hidden", m.always(function() {
+                o.overflow = c.overflow[0], o.overflowX = c.overflow[1], o.overflowY = c.overflow[2]
+            })), i = !1;
+            for (d in n) i || (q ? "hidden" in q && (p = q.hidden) : q = W.access(a, "fxshow", {
+                display: j
+            }), f && (q.hidden = !p), p && ia([a], !0), m.done(function() {
+                p || ia([a]), W.remove(a, "fxshow");
+                for (d in n) r.style(a, d, n[d])
+            })), i = hb(p ? q[d] : 0, d, m), d in q || (q[d] = i.start, p && (i.end = i.start, i.start = 0))
+        }
+    }
+
+    function jb(a, b) {
+        var c, d, e, f, g;
+        for (c in a)
+            if (d = r.camelCase(c), e = b[d], f = a[c], Array.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = r.cssHooks[d], g && "expand" in g) {
+                f = g.expand(f), delete a[d];
+                for (c in f) c in a || (a[c] = f[c], b[c] = e)
+            } else b[d] = e
+    }
+
+    function kb(a, b, c) {
+        var d, e, f = 0,
+            g = kb.prefilters.length,
+            h = r.Deferred().always(function() {
+                delete i.elem
+            }),
+            i = function() {
+                if (e) return !1;
+                for (var b = ab || fb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; g < i; g++) j.tweens[g].run(f);
+                return h.notifyWith(a, [j, f, c]), f < 1 && i ? c : (i || h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j]), !1)
+            },
+            j = h.promise({
+                elem: a,
+                props: r.extend({}, b),
+                opts: r.extend(!0, {
+                    specialEasing: {},
+                    easing: r.easing._default
+                }, c),
+                originalProperties: b,
+                originalOptions: c,
+                startTime: ab || fb(),
+                duration: c.duration,
+                tweens: [],
+                createTween: function(b, c) {
+                    var d = r.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
+                    return j.tweens.push(d), d
+                },
+                stop: function(b) {
+                    var c = 0,
+                        d = b ? j.tweens.length : 0;
+                    if (e) return this;
+                    for (e = !0; c < d; c++) j.tweens[c].run(1);
+                    return b ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), this
+                }
+            }),
+            k = j.props;
+        for (jb(k, j.opts.specialEasing); f < g; f++)
+            if (d = kb.prefilters[f].call(j, a, k, j.opts)) return r.isFunction(d.stop) && (r._queueHooks(j.elem, j.opts.queue).stop = r.proxy(d.stop, d)), d;
+        return r.map(k, hb, j), r.isFunction(j.opts.start) && j.opts.start.call(a, j), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always), r.fx.timer(r.extend(i, {
+            elem: a,
+            anim: j,
+            queue: j.opts.queue
+        })), j
+    }
+    r.Animation = r.extend(kb, {
+            tweeners: {
+                "*": [function(a, b) {
+                    var c = this.createTween(a, b);
+                    return fa(c.elem, a, ba.exec(b), c), c
+                }]
+            },
+            tweener: function(a, b) {
+                r.isFunction(a) ? (b = a, a = ["*"]) : a = a.match(L);
+                for (var c, d = 0, e = a.length; d < e; d++) c = a[d], kb.tweeners[c] = kb.tweeners[c] || [], kb.tweeners[c].unshift(b)
+            },
+            prefilters: [ib],
+            prefilter: function(a, b) {
+                b ? kb.prefilters.unshift(a) : kb.prefilters.push(a)
+            }
+        }), r.speed = function(a, b, c) {
+            var d = a && "object" == typeof a ? r.extend({}, a) : {
+                complete: c || !c && b || r.isFunction(a) && a,
+                duration: a,
+                easing: c && b || b && !r.isFunction(b) && b
+            };
+            return r.fx.off ? d.duration = 0 : "number" != typeof d.duration && (d.duration in r.fx.speeds ? d.duration = r.fx.speeds[d.duration] : d.duration = r.fx.speeds._default), null != d.queue && d.queue !== !0 || (d.queue = "fx"), d.old = d.complete, d.complete = function() {
+                r.isFunction(d.old) && d.old.call(this), d.queue && r.dequeue(this, d.queue)
+            }, d
+        }, r.fn.extend({
+            fadeTo: function(a, b, c, d) {
+                return this.filter(da).css("opacity", 0).show().end().animate({
+                    opacity: b
+                }, a, c, d)
+            },
+            animate: function(a, b, c, d) {
+                var e = r.isEmptyObject(a),
+                    f = r.speed(b, c, d),
+                    g = function() {
+                        var b = kb(this, r.extend({}, a), f);
+                        (e || W.get(this, "finish")) && b.stop(!0)
+                    };
+                return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
+            },
+            stop: function(a, b, c) {
+                var d = function(a) {
+                    var b = a.stop;
+                    delete a.stop, b(c)
+                };
+                return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() {
+                    var b = !0,
+                        e = null != a && a + "queueHooks",
+                        f = r.timers,
+                        g = W.get(this);
+                    if (e) g[e] && g[e].stop && d(g[e]);
+                    else
+                        for (e in g) g[e] && g[e].stop && db.test(e) && d(g[e]);
+                    for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
+                    !b && c || r.dequeue(this, a)
+                })
+            },
+            finish: function(a) {
+                return a !== !1 && (a = a || "fx"), this.each(function() {
+                    var b, c = W.get(this),
+                        d = c[a + "queue"],
+                        e = c[a + "queueHooks"],
+                        f = r.timers,
+                        g = d ? d.length : 0;
+                    for (c.finish = !0, r.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
+                    for (b = 0; b < g; b++) d[b] && d[b].finish && d[b].finish.call(this);
+                    delete c.finish
+                })
+            }
+        }), r.each(["toggle", "show", "hide"], function(a, b) {
+            var c = r.fn[b];
+            r.fn[b] = function(a, d, e) {
+                return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(gb(b, !0), a, d, e)
+            }
+        }), r.each({
+            slideDown: gb("show"),
+            slideUp: gb("hide"),
+            slideToggle: gb("toggle"),
+            fadeIn: {
+                opacity: "show"
+            },
+            fadeOut: {
+                opacity: "hide"
+            },
+            fadeToggle: {
+                opacity: "toggle"
+            }
+        }, function(a, b) {
+            r.fn[a] = function(a, c, d) {
+                return this.animate(b, a, c, d)
+            }
+        }), r.timers = [], r.fx.tick = function() {
+            var a, b = 0,
+                c = r.timers;
+            for (ab = r.now(); b < c.length; b++) a = c[b], a() || c[b] !== a || c.splice(b--, 1);
+            c.length || r.fx.stop(), ab = void 0
+        }, r.fx.timer = function(a) {
+            r.timers.push(a), r.fx.start()
+        }, r.fx.interval = 13, r.fx.start = function() {
+            bb || (bb = !0, eb())
+        }, r.fx.stop = function() {
+            bb = null
+        }, r.fx.speeds = {
+            slow: 600,
+            fast: 200,
+            _default: 400
+        }, r.fn.delay = function(b, c) {
+            return b = r.fx ? r.fx.speeds[b] || b : b, c = c || "fx", this.queue(c, function(c, d) {
+                var e = a.setTimeout(c, b);
+                d.stop = function() {
+                    a.clearTimeout(e)
+                }
+            })
+        },
+        function() {
+            var a = d.createElement("input"),
+                b = d.createElement("select"),
+                c = b.appendChild(d.createElement("option"));
+            a.type = "checkbox", o.checkOn = "" !== a.value, o.optSelected = c.selected, a = d.createElement("input"), a.value = "t", a.type = "radio", o.radioValue = "t" === a.value
+        }();
+    var lb, mb = r.expr.attrHandle;
+    r.fn.extend({
+        attr: function(a, b) {
+            return T(this, r.attr, a, b, arguments.length > 1)
+        },
+        removeAttr: function(a) {
+            return this.each(function() {
+                r.removeAttr(this, a)
+            })
+        }
+    }), r.extend({
+        attr: function(a, b, c) {
+            var d, e, f = a.nodeType;
+            if (3 !== f && 8 !== f && 2 !== f) return "undefined" == typeof a.getAttribute ? r.prop(a, b, c) : (1 === f && r.isXMLDoc(a) || (e = r.attrHooks[b.toLowerCase()] || (r.expr.match.bool.test(b) ? lb : void 0)), void 0 !== c ? null === c ? void r.removeAttr(a, b) : e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ""), c) : e && "get" in e && null !== (d = e.get(a, b)) ? d : (d = r.find.attr(a, b),
+                null == d ? void 0 : d))
+        },
+        attrHooks: {
+            type: {
+                set: function(a, b) {
+                    if (!o.radioValue && "radio" === b && B(a, "input")) {
+                        var c = a.value;
+                        return a.setAttribute("type", b), c && (a.value = c), b
+                    }
+                }
+            }
+        },
+        removeAttr: function(a, b) {
+            var c, d = 0,
+                e = b && b.match(L);
+            if (e && 1 === a.nodeType)
+                while (c = e[d++]) a.removeAttribute(c)
+        }
+    }), lb = {
+        set: function(a, b, c) {
+            return b === !1 ? r.removeAttr(a, c) : a.setAttribute(c, c), c
+        }
+    }, r.each(r.expr.match.bool.source.match(/\w+/g), function(a, b) {
+        var c = mb[b] || r.find.attr;
+        mb[b] = function(a, b, d) {
+            var e, f, g = b.toLowerCase();
+            return d || (f = mb[g], mb[g] = e, e = null != c(a, b, d) ? g : null, mb[g] = f), e
+        }
+    });
+    var nb = /^(?:input|select|textarea|button)$/i,
+        ob = /^(?:a|area)$/i;
+    r.fn.extend({
+        prop: function(a, b) {
+            return T(this, r.prop, a, b, arguments.length > 1)
+        },
+        removeProp: function(a) {
+            return this.each(function() {
+                delete this[r.propFix[a] || a]
+            })
+        }
+    }), r.extend({
+        prop: function(a, b, c) {
+            var d, e, f = a.nodeType;
+            if (3 !== f && 8 !== f && 2 !== f) return 1 === f && r.isXMLDoc(a) || (b = r.propFix[b] || b, e = r.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b]
+        },
+        propHooks: {
+            tabIndex: {
+                get: function(a) {
+                    var b = r.find.attr(a, "tabindex");
+                    return b ? parseInt(b, 10) : nb.test(a.nodeName) || ob.test(a.nodeName) && a.href ? 0 : -1
+                }
+            }
+        },
+        propFix: {
+            "for": "htmlFor",
+            "class": "className"
+        }
+    }), o.optSelected || (r.propHooks.selected = {
+        get: function(a) {
+            var b = a.parentNode;
+            return b && b.parentNode && b.parentNode.selectedIndex, null
+        },
+        set: function(a) {
+            var b = a.parentNode;
+            b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex)
+        }
+    }), r.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
+        r.propFix[this.toLowerCase()] = this
+    });
+
+    function pb(a) {
+        var b = a.match(L) || [];
+        return b.join(" ")
+    }
+
+    function qb(a) {
+        return a.getAttribute && a.getAttribute("class") || ""
+    }
+    r.fn.extend({
+        addClass: function(a) {
+            var b, c, d, e, f, g, h, i = 0;
+            if (r.isFunction(a)) return this.each(function(b) {
+                r(this).addClass(a.call(this, b, qb(this)))
+            });
+            if ("string" == typeof a && a) {
+                b = a.match(L) || [];
+                while (c = this[i++])
+                    if (e = qb(c), d = 1 === c.nodeType && " " + pb(e) + " ") {
+                        g = 0;
+                        while (f = b[g++]) d.indexOf(" " + f + " ") < 0 && (d += f + " ");
+                        h = pb(d), e !== h && c.setAttribute("class", h)
+                    }
+            }
+            return this
+        },
+        removeClass: function(a) {
+            var b, c, d, e, f, g, h, i = 0;
+            if (r.isFunction(a)) return this.each(function(b) {
+                r(this).removeClass(a.call(this, b, qb(this)))
+            });
+            if (!arguments.length) return this.attr("class", "");
+            if ("string" == typeof a && a) {
+                b = a.match(L) || [];
+                while (c = this[i++])
+                    if (e = qb(c), d = 1 === c.nodeType && " " + pb(e) + " ") {
+                        g = 0;
+                        while (f = b[g++])
+                            while (d.indexOf(" " + f + " ") > -1) d = d.replace(" " + f + " ", " ");
+                        h = pb(d), e !== h && c.setAttribute("class", h)
+                    }
+            }
+            return this
+        },
+        toggleClass: function(a, b) {
+            var c = typeof a;
+            return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : r.isFunction(a) ? this.each(function(c) {
+                r(this).toggleClass(a.call(this, c, qb(this), b), b)
+            }) : this.each(function() {
+                var b, d, e, f;
+                if ("string" === c) {
+                    d = 0, e = r(this), f = a.match(L) || [];
+                    while (b = f[d++]) e.hasClass(b) ? e.removeClass(b) : e.addClass(b)
+                } else void 0 !== a && "boolean" !== c || (b = qb(this), b && W.set(this, "__className__", b), this.setAttribute && this.setAttribute("class", b || a === !1 ? "" : W.get(this, "__className__") || ""))
+            })
+        },
+        hasClass: function(a) {
+            var b, c, d = 0;
+            b = " " + a + " ";
+            while (c = this[d++])
+                if (1 === c.nodeType && (" " + pb(qb(c)) + " ").indexOf(b) > -1) return !0;
+            return !1
+        }
+    });
+    var rb = /\r/g;
+    r.fn.extend({
+        val: function(a) {
+            var b, c, d, e = this[0]; {
+                if (arguments.length) return d = r.isFunction(a), this.each(function(c) {
+                    var e;
+                    1 === this.nodeType && (e = d ? a.call(this, c, r(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : Array.isArray(e) && (e = r.map(e, function(a) {
+                        return null == a ? "" : a + ""
+                    })), b = r.valHooks[this.type] || r.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
+                });
+                if (e) return b = r.valHooks[e.type] || r.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(rb, "") : null == c ? "" : c)
+            }
+        }
+    }), r.extend({
+        valHooks: {
+            option: {
+                get: function(a) {
+                    var b = r.find.attr(a, "value");
+                    return null != b ? b : pb(r.text(a))
+                }
+            },
+            select: {
+                get: function(a) {
+                    var b, c, d, e = a.options,
+                        f = a.selectedIndex,
+                        g = "select-one" === a.type,
+                        h = g ? null : [],
+                        i = g ? f + 1 : e.length;
+                    for (d = f < 0 ? i : g ? f : 0; d < i; d++)
+                        if (c = e[d], (c.selected || d === f) && !c.disabled && (!c.parentNode.disabled || !B(c.parentNode, "optgroup"))) {
+                            if (b = r(c).val(), g) return b;
+                            h.push(b)
+                        }
+                    return h
+                },
+                set: function(a, b) {
+                    var c, d, e = a.options,
+                        f = r.makeArray(b),
+                        g = e.length;
+                    while (g--) d = e[g], (d.selected = r.inArray(r.valHooks.option.get(d), f) > -1) && (c = !0);
+                    return c || (a.selectedIndex = -1), f
+                }
+            }
+        }
+    }), r.each(["radio", "checkbox"], function() {
+        r.valHooks[this] = {
+            set: function(a, b) {
+                if (Array.isArray(b)) return a.checked = r.inArray(r(a).val(), b) > -1
+            }
+        }, o.checkOn || (r.valHooks[this].get = function(a) {
+            return null === a.getAttribute("value") ? "on" : a.value
+        })
+    });
+    var sb = /^(?:focusinfocus|focusoutblur)$/;
+    r.extend(r.event, {
+        trigger: function(b, c, e, f) {
+            var g, h, i, j, k, m, n, o = [e || d],
+                p = l.call(b, "type") ? b.type : b,
+                q = l.call(b, "namespace") ? b.namespace.split(".") : [];
+            if (h = i = e = e || d, 3 !== e.nodeType && 8 !== e.nodeType && !sb.test(p + r.event.triggered) && (p.indexOf(".") > -1 && (q = p.split("."), p = q.shift(), q.sort()), k = p.indexOf(":") < 0 && "on" + p, b = b[r.expando] ? b : new r.Event(p, "object" == typeof b && b), b.isTrigger = f ? 2 : 3, b.namespace = q.join("."), b.rnamespace = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = e), c = null == c ? [b] : r.makeArray(c, [b]), n = r.event.special[p] || {}, f || !n.trigger || n.trigger.apply(e, c) !== !1)) {
+                if (!f && !n.noBubble && !r.isWindow(e)) {
+                    for (j = n.delegateType || p, sb.test(j + p) || (h = h.parentNode); h; h = h.parentNode) o.push(h), i = h;
+                    i === (e.ownerDocument || d) && o.push(i.defaultView || i.parentWindow || a)
+                }
+                g = 0;
+                while ((h = o[g++]) && !b.isPropagationStopped()) b.type = g > 1 ? j : n.bindType || p, m = (W.get(h, "events") || {})[b.type] && W.get(h, "handle"), m && m.apply(h, c), m = k && h[k], m && m.apply && U(h) && (b.result = m.apply(h, c), b.result === !1 && b.preventDefault());
+                return b.type = p, f || b.isDefaultPrevented() || n._default && n._default.apply(o.pop(), c) !== !1 || !U(e) || k && r.isFunction(e[p]) && !r.isWindow(e) && (i = e[k], i && (e[k] = null), r.event.triggered = p, e[p](), r.event.triggered = void 0, i && (e[k] = i)), b.result
+            }
+        },
+        simulate: function(a, b, c) {
+            var d = r.extend(new r.Event, c, {
+                type: a,
+                isSimulated: !0
+            });
+            r.event.trigger(d, null, b)
+        }
+    }), r.fn.extend({
+        trigger: function(a, b) {
+            return this.each(function() {
+                r.event.trigger(a, b, this)
+            })
+        },
+        triggerHandler: function(a, b) {
+            var c = this[0];
+            if (c) return r.event.trigger(a, b, c, !0)
+        }
+    }), r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(a, b) {
+        r.fn[b] = function(a, c) {
+            return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
+        }
+    }), r.fn.extend({
+        hover: function(a, b) {
+            return this.mouseenter(a).mouseleave(b || a)
+        }
+    }), o.focusin = "onfocusin" in a, o.focusin || r.each({
+        focus: "focusin",
+        blur: "focusout"
+    }, function(a, b) {
+        var c = function(a) {
+            r.event.simulate(b, a.target, r.event.fix(a))
+        };
+        r.event.special[b] = {
+            setup: function() {
+                var d = this.ownerDocument || this,
+                    e = W.access(d, b);
+                e || d.addEventListener(a, c, !0), W.access(d, b, (e || 0) + 1)
+            },
+            teardown: function() {
+                var d = this.ownerDocument || this,
+                    e = W.access(d, b) - 1;
+                e ? W.access(d, b, e) : (d.removeEventListener(a, c, !0), W.remove(d, b))
+            }
+        }
+    });
+    var tb = a.location,
+        ub = r.now(),
+        vb = /\?/;
+    r.parseXML = function(b) {
+        var c;
+        if (!b || "string" != typeof b) return null;
+        try {
+            c = (new a.DOMParser).parseFromString(b, "text/xml")
+        } catch (d) {
+            c = void 0
+        }
+        return c && !c.getElementsByTagName("parsererror").length || r.error("Invalid XML: " + b), c
+    };
+    var wb = /\[\]$/,
+        xb = /\r?\n/g,
+        yb = /^(?:submit|button|image|reset|file)$/i,
+        zb = /^(?:input|select|textarea|keygen)/i;
+
+    function Ab(a, b, c, d) {
+        var e;
+        if (Array.isArray(b)) r.each(b, function(b, e) {
+            c || wb.test(a) ? d(a, e) : Ab(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d)
+        });
+        else if (c || "object" !== r.type(b)) d(a, b);
+        else
+            for (e in b) Ab(a + "[" + e + "]", b[e], c, d)
+    }
+    r.param = function(a, b) {
+        var c, d = [],
+            e = function(a, b) {
+                var c = r.isFunction(b) ? b() : b;
+                d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(null == c ? "" : c)
+            };
+        if (Array.isArray(a) || a.jquery && !r.isPlainObject(a)) r.each(a, function() {
+            e(this.name, this.value)
+        });
+        else
+            for (c in a) Ab(c, a[c], b, e);
+        return d.join("&")
+    }, r.fn.extend({
+        serialize: function() {
+            return r.param(this.serializeArray())
+        },
+        serializeArray: function() {
+            return this.map(function() {
+                var a = r.prop(this, "elements");
+                return a ? r.makeArray(a) : this
+            }).filter(function() {
+                var a = this.type;
+                return this.name && !r(this).is(":disabled") && zb.test(this.nodeName) && !yb.test(a) && (this.checked || !ja.test(a))
+            }).map(function(a, b) {
+                var c = r(this).val();
+                return null == c ? null : Array.isArray(c) ? r.map(c, function(a) {
+                    return {
+                        name: b.name,
+                        value: a.replace(xb, "\r\n")
+                    }
+                }) : {
+                    name: b.name,
+                    value: c.replace(xb, "\r\n")
+                }
+            }).get()
+        }
+    });
+    var Bb = /%20/g,
+        Cb = /#.*$/,
+        Db = /([?&])_=[^&]*/,
+        Eb = /^(.*?):[ \t]*([^\r\n]*)$/gm,
+        Fb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+        Gb = /^(?:GET|HEAD)$/,
+        Hb = /^\/\//,
+        Ib = {},
+        Jb = {},
+        Kb = "*/".concat("*"),
+        Lb = d.createElement("a");
+    Lb.href = tb.href;
+
+    function Mb(a) {
+        return function(b, c) {
+            "string" != typeof b && (c = b, b = "*");
+            var d, e = 0,
+                f = b.toLowerCase().match(L) || [];
+            if (r.isFunction(c))
+                while (d = f[e++]) "+" === d[0] ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
+        }
+    }
+
+    function Nb(a, b, c, d) {
+        var e = {},
+            f = a === Jb;
+
+        function g(h) {
+            var i;
+            return e[h] = !0, r.each(a[h] || [], function(a, h) {
+                var j = h(b, c, d);
+                return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), g(j), !1)
+            }), i
+        }
+        return g(b.dataTypes[0]) || !e["*"] && g("*")
+    }
+
+    function Ob(a, b) {
+        var c, d, e = r.ajaxSettings.flatOptions || {};
+        for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
+        return d && r.extend(!0, a, d), a
+    }
+
+    function Pb(a, b, c) {
+        var d, e, f, g, h = a.contents,
+            i = a.dataTypes;
+        while ("*" === i[0]) i.shift(), void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type"));
+        if (d)
+            for (e in h)
+                if (h[e] && h[e].test(d)) {
+                    i.unshift(e);
+                    break
+                }
+        if (i[0] in c) f = i[0];
+        else {
+            for (e in c) {
+                if (!i[0] || a.converters[e + " " + i[0]]) {
+                    f = e;
+                    break
+                }
+                g || (g = e)
+            }
+            f = f || g
+        }
+        if (f) return f !== i[0] && i.unshift(f), c[f]
+    }
+
+    function Qb(a, b, c, d) {
+        var e, f, g, h, i, j = {},
+            k = a.dataTypes.slice();
+        if (k[1])
+            for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
+        f = k.shift();
+        while (f)
+            if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift())
+                if ("*" === f) f = i;
+                else if ("*" !== i && i !== f) {
+            if (g = j[i + " " + f] || j["* " + f], !g)
+                for (e in j)
+                    if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
+                        g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
+                        break
+                    }
+            if (g !== !0)
+                if (g && a["throws"]) b = g(b);
+                else try {
+                    b = g(b)
+                } catch (l) {
+                    return {
+                        state: "parsererror",
+                        error: g ? l : "No conversion from " + i + " to " + f
+                    }
+                }
+        }
+        return {
+            state: "success",
+            data: b
+        }
+    }
+    r.extend({
+        active: 0,
+        lastModified: {},
+        etag: {},
+        ajaxSettings: {
+            url: tb.href,
+            type: "GET",
+            isLocal: Fb.test(tb.protocol),
+            global: !0,
+            processData: !0,
+            async: !0,
+            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+            accepts: {
+                "*": Kb,
+                text: "text/plain",
+                html: "text/html",
+                xml: "application/xml, text/xml",
+                json: "application/json, text/javascript"
+            },
+            contents: {
+                xml: /\bxml\b/,
+                html: /\bhtml/,
+                json: /\bjson\b/
+            },
+            responseFields: {
+                xml: "responseXML",
+                text: "responseText",
+                json: "responseJSON"
+            },
+            converters: {
+                "* text": String,
+                "text html": !0,
+                "text json": JSON.parse,
+                "text xml": r.parseXML
+            },
+            flatOptions: {
+                url: !0,
+                context: !0
+            }
+        },
+        ajaxSetup: function(a, b) {
+            return b ? Ob(Ob(a, r.ajaxSettings), b) : Ob(r.ajaxSettings, a)
+        },
+        ajaxPrefilter: Mb(Ib),
+        ajaxTransport: Mb(Jb),
+        ajax: function(b, c) {
+            "object" == typeof b && (c = b, b = void 0), c = c || {};
+            var e, f, g, h, i, j, k, l, m, n, o = r.ajaxSetup({}, c),
+                p = o.context || o,
+                q = o.context && (p.nodeType || p.jquery) ? r(p) : r.event,
+                s = r.Deferred(),
+                t = r.Callbacks("once memory"),
+                u = o.statusCode || {},
+                v = {},
+                w = {},
+                x = "canceled",
+                y = {
+                    readyState: 0,
+                    getResponseHeader: function(a) {
+                        var b;
+                        if (k) {
+                            if (!h) {
+                                h = {};
+                                while (b = Eb.exec(g)) h[b[1].toLowerCase()] = b[2]
+                            }
+                            b = h[a.toLowerCase()]
+                        }
+                        return null == b ? null : b
+                    },
+                    getAllResponseHeaders: function() {
+                        return k ? g : null
+                    },
+                    setRequestHeader: function(a, b) {
+                        return null == k && (a = w[a.toLowerCase()] = w[a.toLowerCase()] || a, v[a] = b), this
+                    },
+                    overrideMimeType: function(a) {
+                        return null == k && (o.mimeType = a), this
+                    },
+                    statusCode: function(a) {
+                        var b;
+                        if (a)
+                            if (k) y.always(a[y.status]);
+                            else
+                                for (b in a) u[b] = [u[b], a[b]];
+                        return this
+                    },
+                    abort: function(a) {
+                        var b = a || x;
+                        return e && e.abort(b), A(0, b), this
+                    }
+                };
+            if (s.promise(y), o.url = ((b || o.url || tb.href) + "").replace(Hb, tb.protocol + "//"), o.type = c.method || c.type || o.method || o.type, o.dataTypes = (o.dataType || "*").toLowerCase().match(L) || [""], null == o.crossDomain) {
+                j = d.createElement("a");
+                try {
+                    j.href = o.url, j.href = j.href, o.crossDomain = Lb.protocol + "//" + Lb.host != j.protocol + "//" + j.host
+                } catch (z) {
+                    o.crossDomain = !0
+                }
+            }
+            if (o.data && o.processData && "string" != typeof o.data && (o.data = r.param(o.data, o.traditional)), Nb(Ib, o, c, y), k) return y;
+            l = r.event && o.global, l && 0 === r.active++ && r.event.trigger("ajaxStart"), o.type = o.type.toUpperCase(), o.hasContent = !Gb.test(o.type), f = o.url.replace(Cb, ""), o.hasContent ? o.data && o.processData && 0 === (o.contentType || "").indexOf("application/x-www-form-urlencoded") && (o.data = o.data.replace(Bb, "+")) : (n = o.url.slice(f.length), o.data && (f += (vb.test(f) ? "&" : "?") + o.data, delete o.data), o.cache === !1 && (f = f.replace(Db, "$1"), n = (vb.test(f) ? "&" : "?") + "_=" + ub++ + n), o.url = f + n), o.ifModified && (r.lastModified[f] && y.setRequestHeader("If-Modified-Since", r.lastModified[f]), r.etag[f] && y.setRequestHeader("If-None-Match", r.etag[f])), (o.data && o.hasContent && o.contentType !== !1 || c.contentType) && y.setRequestHeader("Content-Type", o.contentType), y.setRequestHeader("Accept", o.dataTypes[0] && o.accepts[o.dataTypes[0]] ? o.accepts[o.dataTypes[0]] + ("*" !== o.dataTypes[0] ? ", " + Kb + "; q=0.01" : "") : o.accepts["*"]);
+            for (m in o.headers) y.setRequestHeader(m, o.headers[m]);
+            if (o.beforeSend && (o.beforeSend.call(p, y, o) === !1 || k)) return y.abort();
+            if (x = "abort", t.add(o.complete), y.done(o.success), y.fail(o.error), e = Nb(Jb, o, c, y)) {
+                if (y.readyState = 1, l && q.trigger("ajaxSend", [y, o]), k) return y;
+                o.async && o.timeout > 0 && (i = a.setTimeout(function() {
+                    y.abort("timeout")
+                }, o.timeout));
+                try {
+                    k = !1, e.send(v, A)
+                } catch (z) {
+                    if (k) throw z;
+                    A(-1, z)
+                }
+            } else A(-1, "No Transport");
+
+            function A(b, c, d, h) {
+                var j, m, n, v, w, x = c;
+                k || (k = !0, i && a.clearTimeout(i), e = void 0, g = h || "", y.readyState = b > 0 ? 4 : 0, j = b >= 200 && b < 300 || 304 === b, d && (v = Pb(o, y, d)), v = Qb(o, v, y, j), j ? (o.ifModified && (w = y.getResponseHeader("Last-Modified"), w && (r.lastModified[f] = w), w = y.getResponseHeader("etag"), w && (r.etag[f] = w)), 204 === b || "HEAD" === o.type ? x = "nocontent" : 304 === b ? x = "notmodified" : (x = v.state, m = v.data, n = v.error, j = !n)) : (n = x, !b && x || (x = "error", b < 0 && (b = 0))), y.status = b, y.statusText = (c || x) + "", j ? s.resolveWith(p, [m, x, y]) : s.rejectWith(p, [y, x, n]), y.statusCode(u), u = void 0, l && q.trigger(j ? "ajaxSuccess" : "ajaxError", [y, o, j ? m : n]), t.fireWith(p, [y, x]), l && (q.trigger("ajaxComplete", [y, o]), --r.active || r.event.trigger("ajaxStop")))
+            }
+            return y
+        },
+        getJSON: function(a, b, c) {
+            return r.get(a, b, c, "json")
+        },
+        getScript: function(a, b) {
+            return r.get(a, void 0, b, "script")
+        }
+    }), r.each(["get", "post"], function(a, b) {
+        r[b] = function(a, c, d, e) {
+            return r.isFunction(c) && (e = e || d, d = c, c = void 0), r.ajax(r.extend({
+                url: a,
+                type: b,
+                dataType: e,
+                data: c,
+                success: d
+            }, r.isPlainObject(a) && a))
+        }
+    }), r._evalUrl = function(a) {
+        return r.ajax({
+            url: a,
+            type: "GET",
+            dataType: "script",
+            cache: !0,
+            async: !1,
+            global: !1,
+            "throws": !0
+        })
+    }, r.fn.extend({
+        wrapAll: function(a) {
+            var b;
+            return this[0] && (r.isFunction(a) && (a = a.call(this[0])), b = r(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
+                var a = this;
+                while (a.firstElementChild) a = a.firstElementChild;
+                return a
+            }).append(this)), this
+        },
+        wrapInner: function(a) {
+            return r.isFunction(a) ? this.each(function(b) {
+                r(this).wrapInner(a.call(this, b))
+            }) : this.each(function() {
+                var b = r(this),
+                    c = b.contents();
+                c.length ? c.wrapAll(a) : b.append(a)
+            })
+        },
+        wrap: function(a) {
+            var b = r.isFunction(a);
+            return this.each(function(c) {
+                r(this).wrapAll(b ? a.call(this, c) : a)
+            })
+        },
+        unwrap: function(a) {
+            return this.parent(a).not("body").each(function() {
+                r(this).replaceWith(this.childNodes)
+            }), this
+        }
+    }), r.expr.pseudos.hidden = function(a) {
+        return !r.expr.pseudos.visible(a)
+    }, r.expr.pseudos.visible = function(a) {
+        return !!(a.offsetWidth || a.offsetHeight || a.getClientRects().length)
+    }, r.ajaxSettings.xhr = function() {
+        try {
+            return new a.XMLHttpRequest
+        } catch (b) {}
+    };
+    var Rb = {
+            0: 200,
+            1223: 204
+        },
+        Sb = r.ajaxSettings.xhr();
+    o.cors = !!Sb && "withCredentials" in Sb, o.ajax = Sb = !!Sb, r.ajaxTransport(function(b) {
+        var c, d;
+        if (o.cors || Sb && !b.crossDomain) return {
+            send: function(e, f) {
+                var g, h = b.xhr();
+                if (h.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields)
+                    for (g in b.xhrFields) h[g] = b.xhrFields[g];
+                b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType), b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest");
+                for (g in e) h.setRequestHeader(g, e[g]);
+                c = function(a) {
+                    return function() {
+                        c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null, "abort" === a ? h.abort() : "error" === a ? "number" != typeof h.status ? f(0, "error") : f(h.status, h.statusText) : f(Rb[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText ? {
+                            binary: h.response
+                        } : {
+                            text: h.responseText
+                        }, h.getAllResponseHeaders()))
+                    }
+                }, h.onload = c(), d = h.onerror = c("error"), void 0 !== h.onabort ? h.onabort = d : h.onreadystatechange = function() {
+                    4 === h.readyState && a.setTimeout(function() {
+                        c && d()
+                    })
+                }, c = c("abort");
+                try {
+                    h.send(b.hasContent && b.data || null)
+                } catch (i) {
+                    if (c) throw i
+                }
+            },
+            abort: function() {
+                c && c()
+            }
+        }
+    }), r.ajaxPrefilter(function(a) {
+        a.crossDomain && (a.contents.script = !1)
+    }), r.ajaxSetup({
+        accepts: {
+            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+        },
+        contents: {
+            script: /\b(?:java|ecma)script\b/
+        },
+        converters: {
+            "text script": function(a) {
+                return r.globalEval(a), a
+            }
+        }
+    }), r.ajaxPrefilter("script", function(a) {
+        void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET")
+    }), r.ajaxTransport("script", function(a) {
+        if (a.crossDomain) {
+            var b, c;
+            return {
+                send: function(e, f) {
+                    b = r("<script>").prop({
+                        charset: a.scriptCharset,
+                        src: a.url
+                    }).on("load error", c = function(a) {
+                        b.remove(), c = null, a && f("error" === a.type ? 404 : 200, a.type)
+                    }), d.head.appendChild(b[0])
+                },
+                abort: function() {
+                    c && c()
+                }
+            }
+        }
+    });
+    var Tb = [],
+        Ub = /(=)\?(?=&|$)|\?\?/;
+    r.ajaxSetup({
+        jsonp: "callback",
+        jsonpCallback: function() {
+            var a = Tb.pop() || r.expando + "_" + ub++;
+            return this[a] = !0, a
+        }
+    }), r.ajaxPrefilter("json jsonp", function(b, c, d) {
+        var e, f, g, h = b.jsonp !== !1 && (Ub.test(b.url) ? "url" : "string" == typeof b.data && 0 === (b.contentType || "").indexOf("application/x-www-form-urlencoded") && Ub.test(b.data) && "data");
+        if (h || "jsonp" === b.dataTypes[0]) return e = b.jsonpCallback = r.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(Ub, "$1" + e) : b.jsonp !== !1 && (b.url += (vb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
+            return g || r.error(e + " was not called"), g[0]
+        }, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
+            g = arguments
+        }, d.always(function() {
+            void 0 === f ? r(a).removeProp(e) : a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, Tb.push(e)), g && r.isFunction(f) && f(g[0]), g = f = void 0
+        }), "script"
+    }), o.createHTMLDocument = function() {
+        var a = d.implementation.createHTMLDocument("").body;
+        return a.innerHTML = "<form></form><form></form>", 2 === a.childNodes.length
+    }(), r.parseHTML = function(a, b, c) {
+        if ("string" != typeof a) return [];
+        "boolean" == typeof b && (c = b, b = !1);
+        var e, f, g;
+        return b || (o.createHTMLDocument ? (b = d.implementation.createHTMLDocument(""), e = b.createElement("base"), e.href = d.location.href, b.head.appendChild(e)) : b = d), f = C.exec(a), g = !c && [], f ? [b.createElement(f[1])] : (f = qa([a], b, g), g && g.length && r(g).remove(), r.merge([], f.childNodes))
+    }, r.fn.load = function(a, b, c) {
+        var d, e, f, g = this,
+            h = a.indexOf(" ");
+        return h > -1 && (d = pb(a.slice(h)), a = a.slice(0, h)), r.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && r.ajax({
+            url: a,
+            type: e || "GET",
+            dataType: "html",
+            data: b
+        }).done(function(a) {
+            f = arguments, g.html(d ? r("<div>").append(r.parseHTML(a)).find(d) : a)
+        }).always(c && function(a, b) {
+            g.each(function() {
+                c.apply(this, f || [a.responseText, b, a])
+            })
+        }), this
+    }, r.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
+        r.fn[b] = function(a) {
+            return this.on(b, a)
+        }
+    }), r.expr.pseudos.animated = function(a) {
+        return r.grep(r.timers, function(b) {
+            return a === b.elem
+        }).length
+    }, r.offset = {
+        setOffset: function(a, b, c) {
+            var d, e, f, g, h, i, j, k = r.css(a, "position"),
+                l = r(a),
+                m = {};
+            "static" === k && (a.style.position = "relative"), h = l.offset(), f = r.css(a, "top"), i = r.css(a, "left"), j = ("absolute" === k || "fixed" === k) && (f + i).indexOf("auto") > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), r.isFunction(b) && (b = b.call(a, c, r.extend({}, h))), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m)
+        }
+    }, r.fn.extend({
+        offset: function(a) {
+            if (arguments.length) return void 0 === a ? this : this.each(function(b) {
+                r.offset.setOffset(this, a, b)
+            });
+            var b, c, d, e, f = this[0];
+            if (f) return f.getClientRects().length ? (d = f.getBoundingClientRect(), b = f.ownerDocument, c = b.documentElement, e = b.defaultView, {
+                top: d.top + e.pageYOffset - c.clientTop,
+                left: d.left + e.pageXOffset - c.clientLeft
+            }) : {
+                top: 0,
+                left: 0
+            }
+        },
+        position: function() {
+            if (this[0]) {
+                var a, b, c = this[0],
+                    d = {
+                        top: 0,
+                        left: 0
+                    };
+                return "fixed" === r.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), B(a[0], "html") || (d = a.offset()), d = {
+                    top: d.top + r.css(a[0], "borderTopWidth", !0),
+                    left: d.left + r.css(a[0], "borderLeftWidth", !0)
+                }), {
+                    top: b.top - d.top - r.css(c, "marginTop", !0),
+                    left: b.left - d.left - r.css(c, "marginLeft", !0)
+                }
+            }
+        },
+        offsetParent: function() {
+            return this.map(function() {
+                var a = this.offsetParent;
+                while (a && "static" === r.css(a, "position")) a = a.offsetParent;
+                return a || ra
+            })
+        }
+    }), r.each({
+        scrollLeft: "pageXOffset",
+        scrollTop: "pageYOffset"
+    }, function(a, b) {
+        var c = "pageYOffset" === b;
+        r.fn[a] = function(d) {
+            return T(this, function(a, d, e) {
+                var f;
+                return r.isWindow(a) ? f = a : 9 === a.nodeType && (f = a.defaultView), void 0 === e ? f ? f[b] : a[d] : void(f ? f.scrollTo(c ? f.pageXOffset : e, c ? e : f.pageYOffset) : a[d] = e)
+            }, a, d, arguments.length)
+        }
+    }), r.each(["top", "left"], function(a, b) {
+        r.cssHooks[b] = Pa(o.pixelPosition, function(a, c) {
+            if (c) return c = Oa(a, b), Ma.test(c) ? r(a).position()[b] + "px" : c
+        })
+    }), r.each({
+        Height: "height",
+        Width: "width"
+    }, function(a, b) {
+        r.each({
+            padding: "inner" + a,
+            content: b,
+            "": "outer" + a
+        }, function(c, d) {
+            r.fn[d] = function(e, f) {
+                var g = arguments.length && (c || "boolean" != typeof e),
+                    h = c || (e === !0 || f === !0 ? "margin" : "border");
+                return T(this, function(b, c, e) {
+                    var f;
+                    return r.isWindow(b) ? 0 === d.indexOf("outer") ? b["inner" + a] : b.document.documentElement["client" + a] : 9 === b.nodeType ? (f = b.documentElement, Math.max(b.body["scroll" + a], f["scroll" + a], b.body["offset" + a], f["offset" + a], f["client" + a])) : void 0 === e ? r.css(b, c, h) : r.style(b, c, e, h)
+                }, b, g ? e : void 0, g)
+            }
+        })
+    }), r.fn.extend({
+        bind: function(a, b, c) {
+            return this.on(a, null, b, c)
+        },
+        unbind: function(a, b) {
+            return this.off(a, null, b)
+        },
+        delegate: function(a, b, c, d) {
+            return this.on(b, a, c, d)
+        },
+        undelegate: function(a, b, c) {
+            return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
+        }
+    }), r.holdReady = function(a) {
+        a ? r.readyWait++ : r.ready(!0)
+    }, r.isArray = Array.isArray, r.parseJSON = JSON.parse, r.nodeName = B, "function" == typeof define && define.amd && define("jquery", [], function() {
+        return r
+    });
+    var Vb = a.jQuery,
+        Wb = a.$;
+    return r.noConflict = function(b) {
+        return a.$ === r && (a.$ = Wb), b && a.jQuery === r && (a.jQuery = Vb), r
+    }, b || (a.jQuery = a.$ = r), r
+});

+ 217 - 0
js/map.js

@@ -0,0 +1,217 @@
+materialKitDemo = {
+
+     initContactUs2Map: function(){
+         var lat = 38.342138;
+         var long = -122.715815;
+         var centerLong = long - 0.025;
+         var myLatlng = new google.maps.LatLng(lat,long);
+         var centerPosition = new google.maps.LatLng(lat, centerLong);
+         var mapOptions = {
+           zoom: 9,
+			  center: {lat: 37.999138, lng: -123.415815},
+    		  disableDefaultUI: true,
+           
+           styles:
+			  [
+			  	{
+			  		"featureType": "water",
+			  		"stylers": [
+			  			{
+			  				"saturation": 100
+			  			},
+			  			{
+			  				"lightness": 0
+			  			},
+			  			{
+			  				"hue": "#4284c5"
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "road",
+			  		"elementType": "geometry.fill",
+			  		"stylers": [
+			  			{
+			  				"hue": "#ff0000"
+			  			},
+			  			{
+			  				"saturation": -100
+			  			},
+			  			{
+			  				"lightness": 99
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "road",
+			  		"elementType": "geometry.stroke",
+			  		"stylers": [
+			  			{
+			  				"color": "#808080"
+			  			},
+			  			{
+			  				"lightness": 54
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "landscape.man_made",
+			  		"elementType": "geometry.fill",
+			  		"stylers": [
+			  			{
+			  				"color": "#ece2d9"
+			  			},
+			  			{
+			  				"lightness": 54
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "poi.park",
+			  		"elementType": "geometry.fill",
+			  		"stylers": [
+			  			{
+			  				"color": "#ccdca1"
+			  			},
+			  			{
+			  				"lightness": 54
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "road",
+			  		"elementType": "labels.text.fill",
+			  		"stylers": [
+			  			{
+			  				"color": "#767676"
+			  			},
+			  			{
+			  				"lightness": 54
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "road",
+			  		"elementType": "labels.text.stroke",
+			  		"stylers": [
+			  			{
+			  				"color": "#ffffff"
+			  			},
+			  			{
+			  				"lightness": 54
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "poi",
+			  		"stylers": [
+			  			{
+			  				"visibility": "off"
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "landscape.natural",
+			  		"elementType": "geometry.fill",
+			  		"stylers": [
+			  			{
+			  				"visibility": "on"
+			  			},
+			  			{
+			  				"color": "#6FC177"
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "poi.park",
+			  		"stylers": [
+			  			{
+			  				"visibility": "on"
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "poi.sports_complex",
+			  		"stylers": [
+			  			{
+			  				"visibility": "on"
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "poi.medical",
+			  		"stylers": [
+			  			{
+			  				"visibility": "on"
+			  			}
+			  		]
+			  	},
+			  	{
+			  		"featureType": "poi.business",
+			  		"stylers": [
+			  			{
+			  				"visibility": "off"
+			  			}
+			  		]
+			  	}
+			  ],
+           scrollwheel: false,
+        };
+         var map = new google.maps.Map(document.getElementById("contactUs2Map"), mapOptions);
+			
+			
+			
+         var marker = new google.maps.Marker({
+             position: myLatlng,
+             title:"BioTherm"
+         });
+         marker.setMap(map);
+     },
+
+     presentationAnimations: function(){
+         $(function() {
+
+           var $window           = $(window),
+               isTouch           = Modernizr.touch;
+
+           if (isTouch) { $('.add-animation').addClass('animated'); }
+
+           $window.on('scroll', revealAnimation);
+
+           function revealAnimation() {
+             // Showed...
+             $(".add-animation:not(.animated)").each(function () {
+               var $this     = $(this),
+                   offsetTop = $this.offset().top,
+                   scrolled = $window.scrollTop(),
+                   win_height_padded = $window.height();
+               if (scrolled + win_height_padded > offsetTop) {
+                   $this.addClass('animated');
+               }
+             });
+             // Hidden...
+            $(".add-animation.animated").each(function (index) {
+               var $this     = $(this),
+                   offsetTop = $this.offset().top;
+                   scrolled = $window.scrollTop(),
+                   windowHeight = $window.height();
+
+                   win_height_padded = windowHeight * 0.8;
+               if (scrolled + win_height_padded < offsetTop) {
+                 $(this).removeClass('animated')
+               }
+             });
+           }
+
+           revealAnimation();
+         });
+
+     }
+};
+
+
+$(document).ready(function() {
+	
+	materialKitDemo.initContactUs2Map();
+
+}); 

+ 214 - 0
js/material-kit.min.js

@@ -0,0 +1,214 @@
+var big_image;
+$(document).ready(function() {
+    BrowserDetect.init(), $('body').bootstrapMaterialDesign(), window_width = $(window).width(), $navbar = $('.navbar[color-on-scroll]'), scroll_distance = $navbar.attr('color-on-scroll') || 500, $navbar_collapse = $('.navbar').find('.navbar-collapse'), $('[data-toggle="tooltip"], [rel="tooltip"]').tooltip(), $('.form-file-simple .inputFileVisible').click(function() {
+        $(this).siblings('.inputFileHidden').trigger('click')
+    }), $('.form-file-simple .inputFileHidden').change(function() {
+        var a = $(this).val().replace(/C:\\fakepath\\/i, '');
+        $(this).siblings('.inputFileVisible').val(a)
+    }), $('.form-file-multiple .inputFileVisible, .form-file-multiple .input-group-btn').click(function() {
+        $(this).parent().parent().find('.inputFileHidden').trigger('click'), $(this).parent().parent().addClass('is-focused')
+    }), $('.form-file-multiple .inputFileHidden').change(function() {
+        for (var a = '', b = 0; b < $(this).get(0).files.length; ++b) a += b < $(this).get(0).files.length - 1 ? $(this).get(0).files.item(b).name + ',' : $(this).get(0).files.item(b).name;
+        $(this).siblings('.input-group').find('.inputFileVisible').val(a)
+    }), $('.form-file-multiple .btn').on('focus', function() {
+        $(this).parent().siblings().trigger('focus')
+    }), $('.form-file-multiple .btn').on('focusout', function() {
+        $(this).parent().siblings().trigger('focusout')
+    }), 0 != $('.selectpicker').length && $('.selectpicker').selectpicker(), $('[data-toggle="popover"]').popover(), $('.carousel').carousel({
+        interval: 3e3
+    });
+    var a = $('.tagsinput').data('color');
+    0 != $('.tagsinput').length && $('.tagsinput').tagsinput(), $('.bootstrap-tagsinput').addClass('' + a + '-badge'), 0 != $('.navbar-color-on-scroll').length && $(window).on('scroll', materialKit.checkScrollForTransparentNavbar), materialKit.checkScrollForTransparentNavbar(), 768 <= window_width && (big_image = $('.page-header[data-parallax="true"]'), 0 != big_image.length && $(window).on('scroll', materialKit.checkScrollForParallax))
+}), $(window).on('load', function() {
+    materialKit.initRotateCard(), materialKit.initColoredShadows()
+}), $(document).on('click', '.card-rotate .btn-rotate', function() {
+    var a = $(this).closest('.rotating-card-container');
+    a.hasClass('hover') ? a.removeClass('hover') : a.addClass('hover')
+}), $(document).on('click', '.navbar-toggler', function() {
+    $toggle = $(this), 1 == materialKit.misc.navbar_menu_visible ? ($('html').removeClass('nav-open'), materialKit.misc.navbar_menu_visible = 0, $('#bodyClick').remove(), setTimeout(function() {
+        $toggle.removeClass('toggled')
+    }, 550), $('html').removeClass('nav-open-absolute')) : (setTimeout(function() {
+        $toggle.addClass('toggled')
+    }, 580), div = '<div id="bodyClick"></div>', $(div).appendTo('body').click(function() {
+        $('html').removeClass('nav-open'), $('nav').hasClass('navbar-absolute') && $('html').removeClass('nav-open-absolute'), materialKit.misc.navbar_menu_visible = 0, $('#bodyClick').remove(), setTimeout(function() {
+            $toggle.removeClass('toggled')
+        }, 550)
+    }), $('nav').hasClass('navbar-absolute') && $('html').addClass('nav-open-absolute'), $('html').addClass('nav-open'), materialKit.misc.navbar_menu_visible = 1)
+}), $(window).on('resize', function() {
+    materialKit.initRotateCard()
+}), materialKit = {
+    misc: {
+        navbar_menu_visible: 0,
+        window_width: 0,
+        transparent: !0,
+        colored_shadows: !0,
+        fixedTop: !1,
+        navbar_initialized: !1,
+        isWindow: document.documentMode || /Edge/.test(navigator.userAgent)
+    },
+    checkScrollForParallax: function() {
+        oVal = $(window).scrollTop() / 3, big_image.css({
+            transform: 'translate3d(0,' + oVal + 'px,0)',
+            "-webkit-transform": 'translate3d(0,' + oVal + 'px,0)',
+            "-ms-transform": 'translate3d(0,' + oVal + 'px,0)',
+            "-o-transform": 'translate3d(0,' + oVal + 'px,0)'
+        })
+    },
+    initFormExtendedDatetimepickers: function() {
+        $('.datetimepicker').datetimepicker({
+            icons: {
+                time: 'fa fa-clock-o',
+                date: 'fa fa-calendar',
+                up: 'fa fa-chevron-up',
+                down: 'fa fa-chevron-down',
+                previous: 'fa fa-chevron-left',
+                next: 'fa fa-chevron-right',
+                today: 'fa fa-screenshot',
+                clear: 'fa fa-trash',
+                close: 'fa fa-remove'
+            }
+        }), $('.datepicker').datetimepicker({
+            format: 'MM/DD/YYYY',
+            icons: {
+                time: 'fa fa-clock-o',
+                date: 'fa fa-calendar',
+                up: 'fa fa-chevron-up',
+                down: 'fa fa-chevron-down',
+                previous: 'fa fa-chevron-left',
+                next: 'fa fa-chevron-right',
+                today: 'fa fa-screenshot',
+                clear: 'fa fa-trash',
+                close: 'fa fa-remove'
+            }
+        }), $('.timepicker').datetimepicker({
+            format: 'h:mm A',
+            icons: {
+                time: 'fa fa-clock-o',
+                date: 'fa fa-calendar',
+                up: 'fa fa-chevron-up',
+                down: 'fa fa-chevron-down',
+                previous: 'fa fa-chevron-left',
+                next: 'fa fa-chevron-right',
+                today: 'fa fa-screenshot',
+                clear: 'fa fa-trash',
+                close: 'fa fa-remove'
+            }
+        })
+    },
+    initSliders: function() {
+        var a = document.getElementById('sliderRegular');
+        noUiSlider.create(a, {
+            start: 40,
+            connect: [!0, !1],
+            range: {
+                min: 0,
+                max: 100
+            }
+        });
+        var b = document.getElementById('sliderDouble');
+        noUiSlider.create(b, {
+            start: [20, 60],
+            connect: !0,
+            range: {
+                min: 0,
+                max: 100
+            }
+        })
+    },
+    initColoredShadows: function() {
+        !0 != materialKit.misc.colored_shadows || 'Explorer' == BrowserDetect.browser && 12 >= BrowserDetect.version || $('.card:not([data-colored-shadow="false"]) .card-header-image').each(function() {
+            if ($card_img = $(this), is_on_dark_screen = $(this).closest('.section-dark, .section-image').length, 0 == is_on_dark_screen) {
+                var a = $card_img.find('img').attr('src'),
+                    b = 1 == $card_img.closest('.card-rotate').length,
+                    c = $card_img,
+                    d = $('<div class="colored-shadow"/>');
+                if (b) {
+                    var e = $card_img.height(),
+                        f = $card_img.width();
+                    $(this).find('.back').css({
+                        height: e + 'px',
+                        width: f + 'px'
+                    }), c = $card_img.find('.front')
+                }
+                d.css({
+                    "background-image": 'url(' + a + ')'
+                }).appendTo(c), 700 < $card_img.width() && d.addClass('colored-shadow-big'), setTimeout(function() {
+                    d.css('opacity', 1)
+                }, 200)
+            }
+        })
+    },
+    initRotateCard: debounce(function() {
+        $('.rotating-card-container .card-rotate').each(function() {
+            var a = $(this),
+                b = $(this).parent().width(),
+                c = $(this).find('.front .card-body').outerHeight();
+            a.parent().css({
+                height: c + 'px',
+                "margin-bottom": '30px'
+            }), a.find('.front').css({
+                height: c + 35 + 'px',
+                width: b + 'px'
+            }), a.find('.back').css({
+                height: c + 35 + 'px',
+                width: b + 'px'
+            })
+        })
+    }, 50),
+    checkScrollForTransparentNavbar: debounce(function() {
+        $(document).scrollTop() > scroll_distance ? materialKit.misc.transparent && (materialKit.misc.transparent = !1, $('.navbar-color-on-scroll').removeClass('navbar-transparent')) : !materialKit.misc.transparent && (materialKit.misc.transparent = !0, $('.navbar-color-on-scroll').addClass('navbar-transparent'))
+    }, 17)
+};
+
+function debounce(a, b, c) {
+    var d;
+    return function() {
+        var e = this,
+            f = arguments;
+        clearTimeout(d), d = setTimeout(function() {
+            d = null, c || a.apply(e, f)
+        }, b), c && !d && a.apply(e, f)
+    }
+}
+var BrowserDetect = {
+        init: function() {
+            this.browser = this.searchString(this.dataBrowser) || 'Other', this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || 'Unknown'
+        },
+        searchString: function(a) {
+            for (var b, c = 0; c < a.length; c++)
+                if (b = a[c].string, this.versionSearchString = a[c].subString, -1 !== b.indexOf(a[c].subString)) return a[c].identity
+        },
+        searchVersion: function(a) {
+            var b = a.indexOf(this.versionSearchString);
+            if (-1 !== b) {
+                var c = a.indexOf('rv:');
+                return 'Trident' === this.versionSearchString && -1 !== c ? parseFloat(a.substring(c + 3)) : parseFloat(a.substring(b + this.versionSearchString.length + 1))
+            }
+        },
+        dataBrowser: [{
+            string: navigator.userAgent,
+            subString: 'Chrome',
+            identity: 'Chrome'
+        }, {
+            string: navigator.userAgent,
+            subString: 'MSIE',
+            identity: 'Explorer'
+        }, {
+            string: navigator.userAgent,
+            subString: 'Trident',
+            identity: 'Explorer'
+        }, {
+            string: navigator.userAgent,
+            subString: 'Firefox',
+            identity: 'Firefox'
+        }, {
+            string: navigator.userAgent,
+            subString: 'Safari',
+            identity: 'Safari'
+        }, {
+            string: navigator.userAgent,
+            subString: 'Opera',
+            identity: 'Opera'
+        }]
+    },
+    better_browser = '<div class="container"><div class="better-browser row"><div class="col-md-2"></div><div class="col-md-8"><h3>We are sorry but it looks like your Browser doesn\'t support our website Features. In order to get the full experience please download a new version of your favourite browser.</h3></div><div class="col-md-2"></div><br><div class="col-md-4"><a href="https://www.mozilla.org/ro/firefox/new/" class="btn btn-warning">Mozilla</a><br></div><div class="col-md-4"><a href="https://www.google.com/chrome/browser/desktop/index.html" class="btn ">Chrome</a><br></div><div class="col-md-4"><a href="http://windows.microsoft.com/en-us/internet-explorer/ie-11-worldwide-languages" class="btn">Internet Explorer</a><br></div><br><br><h4>Thank you!</h4></div></div>';

+ 2020 - 0
js/moment.min.js

@@ -0,0 +1,2020 @@
+//! moment.js
+//! version : 2.14.1
+//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
+//! license : MIT
+//! momentjs.com
+! function(a, b) {
+    "object" == typeof exports && "undefined" != typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.moment = b()
+}(this, function() {
+    "use strict";
+
+    function a() {
+        return md.apply(null, arguments)
+    }
+    // This is done to register the method called with moment()
+    // without creating circular dependencies.
+    function b(a) {
+        md = a
+    }
+
+    function c(a) {
+        return a instanceof Array || "[object Array]" === Object.prototype.toString.call(a)
+    }
+
+    function d(a) {
+        return "[object Object]" === Object.prototype.toString.call(a)
+    }
+
+    function e(a) {
+        var b;
+        for (b in a)
+            // even if its not own property I'd still call it non-empty
+            return !1;
+        return !0
+    }
+
+    function f(a) {
+        return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a)
+    }
+
+    function g(a, b) {
+        var c, d = [];
+        for (c = 0; c < a.length; ++c) d.push(b(a[c], c));
+        return d
+    }
+
+    function h(a, b) {
+        return Object.prototype.hasOwnProperty.call(a, b)
+    }
+
+    function i(a, b) {
+        for (var c in b) h(b, c) && (a[c] = b[c]);
+        return h(b, "toString") && (a.toString = b.toString), h(b, "valueOf") && (a.valueOf = b.valueOf), a
+    }
+
+    function j(a, b, c, d) {
+        return qb(a, b, c, d, !0).utc()
+    }
+
+    function k() {
+        // We need to deep clone this object.
+        return {
+            empty: !1,
+            unusedTokens: [],
+            unusedInput: [],
+            overflow: -2,
+            charsLeftOver: 0,
+            nullInput: !1,
+            invalidMonth: null,
+            invalidFormat: !1,
+            userInvalidated: !1,
+            iso: !1,
+            parsedDateParts: [],
+            meridiem: null
+        }
+    }
+
+    function l(a) {
+        return null == a._pf && (a._pf = k()), a._pf
+    }
+
+    function m(a) {
+        if (null == a._isValid) {
+            var b = l(a),
+                c = nd.call(b.parsedDateParts, function(a) {
+                    return null != a
+                });
+            a._isValid = !isNaN(a._d.getTime()) && b.overflow < 0 && !b.empty && !b.invalidMonth && !b.invalidWeekday && !b.nullInput && !b.invalidFormat && !b.userInvalidated && (!b.meridiem || b.meridiem && c), a._strict && (a._isValid = a._isValid && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour)
+        }
+        return a._isValid
+    }
+
+    function n(a) {
+        var b = j(NaN);
+        return null != a ? i(l(b), a) : l(b).userInvalidated = !0, b
+    }
+
+    function o(a) {
+        return void 0 === a
+    }
+
+    function p(a, b) {
+        var c, d, e;
+        if (o(b._isAMomentObject) || (a._isAMomentObject = b._isAMomentObject), o(b._i) || (a._i = b._i), o(b._f) || (a._f = b._f), o(b._l) || (a._l = b._l), o(b._strict) || (a._strict = b._strict), o(b._tzm) || (a._tzm = b._tzm), o(b._isUTC) || (a._isUTC = b._isUTC), o(b._offset) || (a._offset = b._offset), o(b._pf) || (a._pf = l(b)), o(b._locale) || (a._locale = b._locale), od.length > 0)
+            for (c in od) d = od[c], e = b[d], o(e) || (a[d] = e);
+        return a
+    }
+    // Moment prototype object
+    function q(b) {
+        p(this, b), this._d = new Date(null != b._d ? b._d.getTime() : NaN), pd === !1 && (pd = !0, a.updateOffset(this), pd = !1)
+    }
+
+    function r(a) {
+        return a instanceof q || null != a && null != a._isAMomentObject
+    }
+
+    function s(a) {
+        return 0 > a ? Math.ceil(a) || 0 : Math.floor(a)
+    }
+
+    function t(a) {
+        var b = +a,
+            c = 0;
+        return 0 !== b && isFinite(b) && (c = s(b)), c
+    }
+    // compare two arrays, return the number of differences
+    function u(a, b, c) {
+        var d, e = Math.min(a.length, b.length),
+            f = Math.abs(a.length - b.length),
+            g = 0;
+        for (d = 0; e > d; d++)(c && a[d] !== b[d] || !c && t(a[d]) !== t(b[d])) && g++;
+        return g + f
+    }
+
+    function v(b) {
+        a.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + b)
+    }
+
+    function w(b, c) {
+        var d = !0;
+        return i(function() {
+            return null != a.deprecationHandler && a.deprecationHandler(null, b), d && (v(b + "\nArguments: " + Array.prototype.slice.call(arguments).join(", ") + "\n" + (new Error).stack), d = !1), c.apply(this, arguments)
+        }, c)
+    }
+
+    function x(b, c) {
+        null != a.deprecationHandler && a.deprecationHandler(b, c), qd[b] || (v(c), qd[b] = !0)
+    }
+
+    function y(a) {
+        return a instanceof Function || "[object Function]" === Object.prototype.toString.call(a)
+    }
+
+    function z(a) {
+        var b, c;
+        for (c in a) b = a[c], y(b) ? this[c] = b : this["_" + c] = b;
+        this._config = a,
+            // Lenient ordinal parsing accepts just a number in addition to
+            // number + (possibly) stuff coming from _ordinalParseLenient.
+            this._ordinalParseLenient = new RegExp(this._ordinalParse.source + "|" + /\d{1,2}/.source)
+    }
+
+    function A(a, b) {
+        var c, e = i({}, a);
+        for (c in b) h(b, c) && (d(a[c]) && d(b[c]) ? (e[c] = {}, i(e[c], a[c]), i(e[c], b[c])) : null != b[c] ? e[c] = b[c] : delete e[c]);
+        for (c in a) h(a, c) && !h(b, c) && d(a[c]) && (
+            // make sure changes to properties don't modify parent config
+            e[c] = i({}, e[c]));
+        return e
+    }
+
+    function B(a) {
+        null != a && this.set(a)
+    }
+
+    function C(a, b, c) {
+        var d = this._calendar[a] || this._calendar.sameElse;
+        return y(d) ? d.call(b, c) : d
+    }
+
+    function D(a) {
+        var b = this._longDateFormat[a],
+            c = this._longDateFormat[a.toUpperCase()];
+        return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function(a) {
+            return a.slice(1)
+        }), this._longDateFormat[a])
+    }
+
+    function E() {
+        return this._invalidDate
+    }
+
+    function F(a) {
+        return this._ordinal.replace("%d", a)
+    }
+
+    function G(a, b, c, d) {
+        var e = this._relativeTime[c];
+        return y(e) ? e(a, b, c, d) : e.replace(/%d/i, a)
+    }
+
+    function H(a, b) {
+        var c = this._relativeTime[a > 0 ? "future" : "past"];
+        return y(c) ? c(b) : c.replace(/%s/i, b)
+    }
+
+    function I(a, b) {
+        var c = a.toLowerCase();
+        zd[c] = zd[c + "s"] = zd[b] = a
+    }
+
+    function J(a) {
+        return "string" == typeof a ? zd[a] || zd[a.toLowerCase()] : void 0
+    }
+
+    function K(a) {
+        var b, c, d = {};
+        for (c in a) h(a, c) && (b = J(c), b && (d[b] = a[c]));
+        return d
+    }
+
+    function L(a, b) {
+        Ad[a] = b
+    }
+
+    function M(a) {
+        var b = [];
+        for (var c in a) b.push({
+            unit: c,
+            priority: Ad[c]
+        });
+        return b.sort(function(a, b) {
+            return a.priority - b.priority
+        }), b
+    }
+
+    function N(b, c) {
+        return function(d) {
+            return null != d ? (P(this, b, d), a.updateOffset(this, c), this) : O(this, b)
+        }
+    }
+
+    function O(a, b) {
+        return a.isValid() ? a._d["get" + (a._isUTC ? "UTC" : "") + b]() : NaN
+    }
+
+    function P(a, b, c) {
+        a.isValid() && a._d["set" + (a._isUTC ? "UTC" : "") + b](c)
+    }
+    // MOMENTS
+    function Q(a) {
+        return a = J(a), y(this[a]) ? this[a]() : this
+    }
+
+    function R(a, b) {
+        if ("object" == typeof a) {
+            a = K(a);
+            for (var c = M(a), d = 0; d < c.length; d++) this[c[d].unit](a[c[d].unit])
+        } else if (a = J(a), y(this[a])) return this[a](b);
+        return this
+    }
+
+    function S(a, b, c) {
+        var d = "" + Math.abs(a),
+            e = b - d.length,
+            f = a >= 0;
+        return (f ? c ? "+" : "" : "-") + Math.pow(10, Math.max(0, e)).toString().substr(1) + d
+    }
+    // token:    'M'
+    // padded:   ['MM', 2]
+    // ordinal:  'Mo'
+    // callback: function () { this.month() + 1 }
+    function T(a, b, c, d) {
+        var e = d;
+        "string" == typeof d && (e = function() {
+            return this[d]()
+        }), a && (Ed[a] = e), b && (Ed[b[0]] = function() {
+            return S(e.apply(this, arguments), b[1], b[2])
+        }), c && (Ed[c] = function() {
+            return this.localeData().ordinal(e.apply(this, arguments), a)
+        })
+    }
+
+    function U(a) {
+        return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, "")
+    }
+
+    function V(a) {
+        var b, c, d = a.match(Bd);
+        for (b = 0, c = d.length; c > b; b++) Ed[d[b]] ? d[b] = Ed[d[b]] : d[b] = U(d[b]);
+        return function(b) {
+            var e, f = "";
+            for (e = 0; c > e; e++) f += d[e] instanceof Function ? d[e].call(b, a) : d[e];
+            return f
+        }
+    }
+    // format date using native date object
+    function W(a, b) {
+        return a.isValid() ? (b = X(b, a.localeData()), Dd[b] = Dd[b] || V(b), Dd[b](a)) : a.localeData().invalidDate()
+    }
+
+    function X(a, b) {
+        function c(a) {
+            return b.longDateFormat(a) || a
+        }
+        var d = 5;
+        for (Cd.lastIndex = 0; d >= 0 && Cd.test(a);) a = a.replace(Cd, c), Cd.lastIndex = 0, d -= 1;
+        return a
+    }
+
+    function Y(a, b, c) {
+        Wd[a] = y(b) ? b : function(a, d) {
+            return a && c ? c : b
+        }
+    }
+
+    function Z(a, b) {
+        return h(Wd, a) ? Wd[a](b._strict, b._locale) : new RegExp($(a))
+    }
+    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+    function $(a) {
+        return _(a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(a, b, c, d, e) {
+            return b || c || d || e
+        }))
+    }
+
+    function _(a) {
+        return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
+    }
+
+    function aa(a, b) {
+        var c, d = b;
+        for ("string" == typeof a && (a = [a]), "number" == typeof b && (d = function(a, c) {
+                c[b] = t(a)
+            }), c = 0; c < a.length; c++) Xd[a[c]] = d
+    }
+
+    function ba(a, b) {
+        aa(a, function(a, c, d, e) {
+            d._w = d._w || {}, b(a, d._w, d, e)
+        })
+    }
+
+    function ca(a, b, c) {
+        null != b && h(Xd, a) && Xd[a](b, c._a, c, a)
+    }
+
+    function da(a, b) {
+        return new Date(Date.UTC(a, b + 1, 0)).getUTCDate()
+    }
+
+    function ea(a, b) {
+        return c(this._months) ? this._months[a.month()] : this._months[(this._months.isFormat || fe).test(b) ? "format" : "standalone"][a.month()]
+    }
+
+    function fa(a, b) {
+        return c(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[fe.test(b) ? "format" : "standalone"][a.month()]
+    }
+
+    function ga(a, b, c) {
+        var d, e, f, g = a.toLocaleLowerCase();
+        if (!this._monthsParse)
+            for (
+                // this is not used
+                this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], d = 0; 12 > d; ++d) f = j([2e3, d]), this._shortMonthsParse[d] = this.monthsShort(f, "").toLocaleLowerCase(), this._longMonthsParse[d] = this.months(f, "").toLocaleLowerCase();
+        return c ? "MMM" === b ? (e = sd.call(this._shortMonthsParse, g), -1 !== e ? e : null) : (e = sd.call(this._longMonthsParse, g), -1 !== e ? e : null) : "MMM" === b ? (e = sd.call(this._shortMonthsParse, g), -1 !== e ? e : (e = sd.call(this._longMonthsParse, g), -1 !== e ? e : null)) : (e = sd.call(this._longMonthsParse, g), -1 !== e ? e : (e = sd.call(this._shortMonthsParse, g), -1 !== e ? e : null))
+    }
+
+    function ha(a, b, c) {
+        var d, e, f;
+        if (this._monthsParseExact) return ga.call(this, a, b, c);
+        // TODO: add sorting
+        // Sorting makes sure if one month (or abbr) is a prefix of another
+        // see sorting in computeMonthsParse
+        for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), d = 0; 12 > d; d++) {
+            // test the regex
+            if (e = j([2e3, d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp("^" + this.months(e, "").replace(".", "") + "$", "i"), this._shortMonthsParse[d] = new RegExp("^" + this.monthsShort(e, "").replace(".", "") + "$", "i")), c || this._monthsParse[d] || (f = "^" + this.months(e, "") + "|^" + this.monthsShort(e, ""), this._monthsParse[d] = new RegExp(f.replace(".", ""), "i")), c && "MMMM" === b && this._longMonthsParse[d].test(a)) return d;
+            if (c && "MMM" === b && this._shortMonthsParse[d].test(a)) return d;
+            if (!c && this._monthsParse[d].test(a)) return d
+        }
+    }
+    // MOMENTS
+    function ia(a, b) {
+        var c;
+        if (!a.isValid())
+            // No op
+            return a;
+        if ("string" == typeof b)
+            if (/^\d+$/.test(b)) b = t(b);
+            else
+                // TODO: Another silent failure?
+                if (b = a.localeData().monthsParse(b), "number" != typeof b) return a;
+        return c = Math.min(a.date(), da(a.year(), b)), a._d["set" + (a._isUTC ? "UTC" : "") + "Month"](b, c), a
+    }
+
+    function ja(b) {
+        return null != b ? (ia(this, b), a.updateOffset(this, !0), this) : O(this, "Month")
+    }
+
+    function ka() {
+        return da(this.year(), this.month())
+    }
+
+    function la(a) {
+        return this._monthsParseExact ? (h(this, "_monthsRegex") || na.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : (h(this, "_monthsShortRegex") || (this._monthsShortRegex = ie), this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex)
+    }
+
+    function ma(a) {
+        return this._monthsParseExact ? (h(this, "_monthsRegex") || na.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : (h(this, "_monthsRegex") || (this._monthsRegex = je), this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex)
+    }
+
+    function na() {
+        function a(a, b) {
+            return b.length - a.length
+        }
+        var b, c, d = [],
+            e = [],
+            f = [];
+        for (b = 0; 12 > b; b++) c = j([2e3, b]), d.push(this.monthsShort(c, "")), e.push(this.months(c, "")), f.push(this.months(c, "")), f.push(this.monthsShort(c, ""));
+        for (
+            // Sorting makes sure if one month (or abbr) is a prefix of another it
+            // will match the longer piece.
+            d.sort(a), e.sort(a), f.sort(a), b = 0; 12 > b; b++) d[b] = _(d[b]), e[b] = _(e[b]);
+        for (b = 0; 24 > b; b++) f[b] = _(f[b]);
+        this._monthsRegex = new RegExp("^(" + f.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + e.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + d.join("|") + ")", "i")
+    }
+    // HELPERS
+    function oa(a) {
+        return pa(a) ? 366 : 365
+    }
+
+    function pa(a) {
+        return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0
+    }
+
+    function qa() {
+        return pa(this.year())
+    }
+
+    function ra(a, b, c, d, e, f, g) {
+        //can't just apply() to create a date:
+        //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
+        var h = new Date(a, b, c, d, e, f, g);
+        //the date constructor remaps years 0-99 to 1900-1999
+        return 100 > a && a >= 0 && isFinite(h.getFullYear()) && h.setFullYear(a), h
+    }
+
+    function sa(a) {
+        var b = new Date(Date.UTC.apply(null, arguments));
+        //the Date.UTC function remaps years 0-99 to 1900-1999
+        return 100 > a && a >= 0 && isFinite(b.getUTCFullYear()) && b.setUTCFullYear(a), b
+    }
+    // start-of-first-week - start-of-year
+    function ta(a, b, c) {
+        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
+            d = 7 + b - c,
+            // first-week day local weekday -- which local weekday is fwd
+            e = (7 + sa(a, 0, d).getUTCDay() - b) % 7;
+        return -e + d - 1
+    }
+    //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+    function ua(a, b, c, d, e) {
+        var f, g, h = (7 + c - d) % 7,
+            i = ta(a, d, e),
+            j = 1 + 7 * (b - 1) + h + i;
+        return 0 >= j ? (f = a - 1, g = oa(f) + j) : j > oa(a) ? (f = a + 1, g = j - oa(a)) : (f = a, g = j), {
+            year: f,
+            dayOfYear: g
+        }
+    }
+
+    function va(a, b, c) {
+        var d, e, f = ta(a.year(), b, c),
+            g = Math.floor((a.dayOfYear() - f - 1) / 7) + 1;
+        return 1 > g ? (e = a.year() - 1, d = g + wa(e, b, c)) : g > wa(a.year(), b, c) ? (d = g - wa(a.year(), b, c), e = a.year() + 1) : (e = a.year(), d = g), {
+            week: d,
+            year: e
+        }
+    }
+
+    function wa(a, b, c) {
+        var d = ta(a, b, c),
+            e = ta(a + 1, b, c);
+        return (oa(a) - d + e) / 7
+    }
+    // HELPERS
+    // LOCALES
+    function xa(a) {
+        return va(a, this._week.dow, this._week.doy).week
+    }
+
+    function ya() {
+        return this._week.dow
+    }
+
+    function za() {
+        return this._week.doy
+    }
+    // MOMENTS
+    function Aa(a) {
+        var b = this.localeData().week(this);
+        return null == a ? b : this.add(7 * (a - b), "d")
+    }
+
+    function Ba(a) {
+        var b = va(this, 1, 4).week;
+        return null == a ? b : this.add(7 * (a - b), "d")
+    }
+    // HELPERS
+    function Ca(a, b) {
+        return "string" != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), "number" == typeof a ? a : null) : parseInt(a, 10)
+    }
+
+    function Da(a, b) {
+        return "string" == typeof a ? b.weekdaysParse(a) % 7 || 7 : isNaN(a) ? null : a
+    }
+
+    function Ea(a, b) {
+        return c(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(b) ? "format" : "standalone"][a.day()]
+    }
+
+    function Fa(a) {
+        return this._weekdaysShort[a.day()]
+    }
+
+    function Ga(a) {
+        return this._weekdaysMin[a.day()]
+    }
+
+    function Ha(a, b, c) {
+        var d, e, f, g = a.toLocaleLowerCase();
+        if (!this._weekdaysParse)
+            for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], d = 0; 7 > d; ++d) f = j([2e3, 1]).day(d), this._minWeekdaysParse[d] = this.weekdaysMin(f, "").toLocaleLowerCase(), this._shortWeekdaysParse[d] = this.weekdaysShort(f, "").toLocaleLowerCase(), this._weekdaysParse[d] = this.weekdays(f, "").toLocaleLowerCase();
+        return c ? "dddd" === b ? (e = sd.call(this._weekdaysParse, g), -1 !== e ? e : null) : "ddd" === b ? (e = sd.call(this._shortWeekdaysParse, g), -1 !== e ? e : null) : (e = sd.call(this._minWeekdaysParse, g), -1 !== e ? e : null) : "dddd" === b ? (e = sd.call(this._weekdaysParse, g), -1 !== e ? e : (e = sd.call(this._shortWeekdaysParse, g), -1 !== e ? e : (e = sd.call(this._minWeekdaysParse, g), -1 !== e ? e : null))) : "ddd" === b ? (e = sd.call(this._shortWeekdaysParse, g), -1 !== e ? e : (e = sd.call(this._weekdaysParse, g), -1 !== e ? e : (e = sd.call(this._minWeekdaysParse, g), -1 !== e ? e : null))) : (e = sd.call(this._minWeekdaysParse, g), -1 !== e ? e : (e = sd.call(this._weekdaysParse, g), -1 !== e ? e : (e = sd.call(this._shortWeekdaysParse, g), -1 !== e ? e : null)))
+    }
+
+    function Ia(a, b, c) {
+        var d, e, f;
+        if (this._weekdaysParseExact) return Ha.call(this, a, b, c);
+        for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), d = 0; 7 > d; d++) {
+            // test the regex
+            if (e = j([2e3, 1]).day(d), c && !this._fullWeekdaysParse[d] && (this._fullWeekdaysParse[d] = new RegExp("^" + this.weekdays(e, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[d] = new RegExp("^" + this.weekdaysShort(e, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[d] = new RegExp("^" + this.weekdaysMin(e, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[d] || (f = "^" + this.weekdays(e, "") + "|^" + this.weekdaysShort(e, "") + "|^" + this.weekdaysMin(e, ""), this._weekdaysParse[d] = new RegExp(f.replace(".", ""), "i")), c && "dddd" === b && this._fullWeekdaysParse[d].test(a)) return d;
+            if (c && "ddd" === b && this._shortWeekdaysParse[d].test(a)) return d;
+            if (c && "dd" === b && this._minWeekdaysParse[d].test(a)) return d;
+            if (!c && this._weekdaysParse[d].test(a)) return d
+        }
+    }
+    // MOMENTS
+    function Ja(a) {
+        if (!this.isValid()) return null != a ? this : NaN;
+        var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
+        return null != a ? (a = Ca(a, this.localeData()), this.add(a - b, "d")) : b
+    }
+
+    function Ka(a) {
+        if (!this.isValid()) return null != a ? this : NaN;
+        var b = (this.day() + 7 - this.localeData()._week.dow) % 7;
+        return null == a ? b : this.add(a - b, "d")
+    }
+
+    function La(a) {
+        if (!this.isValid()) return null != a ? this : NaN;
+        // behaves the same as moment#day except
+        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
+        // as a setter, sunday should belong to the previous week.
+        if (null != a) {
+            var b = Da(a, this.localeData());
+            return this.day(this.day() % 7 ? b : b - 7)
+        }
+        return this.day() || 7
+    }
+
+    function Ma(a) {
+        return this._weekdaysParseExact ? (h(this, "_weekdaysRegex") || Pa.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : (h(this, "_weekdaysRegex") || (this._weekdaysRegex = pe), this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex)
+    }
+
+    function Na(a) {
+        return this._weekdaysParseExact ? (h(this, "_weekdaysRegex") || Pa.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (h(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = qe), this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
+    }
+
+    function Oa(a) {
+        return this._weekdaysParseExact ? (h(this, "_weekdaysRegex") || Pa.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (h(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = re), this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
+    }
+
+    function Pa() {
+        function a(a, b) {
+            return b.length - a.length
+        }
+        var b, c, d, e, f, g = [],
+            h = [],
+            i = [],
+            k = [];
+        for (b = 0; 7 > b; b++) c = j([2e3, 1]).day(b), d = this.weekdaysMin(c, ""), e = this.weekdaysShort(c, ""), f = this.weekdays(c, ""), g.push(d), h.push(e), i.push(f), k.push(d), k.push(e), k.push(f);
+        for (
+            // Sorting makes sure if one weekday (or abbr) is a prefix of another it
+            // will match the longer piece.
+            g.sort(a), h.sort(a), i.sort(a), k.sort(a), b = 0; 7 > b; b++) h[b] = _(h[b]), i[b] = _(i[b]), k[b] = _(k[b]);
+        this._weekdaysRegex = new RegExp("^(" + k.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + h.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + g.join("|") + ")", "i")
+    }
+    // FORMATTING
+    function Qa() {
+        return this.hours() % 12 || 12
+    }
+
+    function Ra() {
+        return this.hours() || 24
+    }
+
+    function Sa(a, b) {
+        T(a, 0, 0, function() {
+            return this.localeData().meridiem(this.hours(), this.minutes(), b)
+        })
+    }
+    // PARSING
+    function Ta(a, b) {
+        return b._meridiemParse
+    }
+    // LOCALES
+    function Ua(a) {
+        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
+        // Using charAt should be more compatible.
+        return "p" === (a + "").toLowerCase().charAt(0)
+    }
+
+    function Va(a, b, c) {
+        return a > 11 ? c ? "pm" : "PM" : c ? "am" : "AM"
+    }
+
+    function Wa(a) {
+        return a ? a.toLowerCase().replace("_", "-") : a
+    }
+    // pick the locale from the array
+    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+    function Xa(a) {
+        for (var b, c, d, e, f = 0; f < a.length;) {
+            for (e = Wa(a[f]).split("-"), b = e.length, c = Wa(a[f + 1]), c = c ? c.split("-") : null; b > 0;) {
+                if (d = Ya(e.slice(0, b).join("-"))) return d;
+                if (c && c.length >= b && u(e, c, !0) >= b - 1)
+                    //the next array item is better than a shallower substring of this one
+                    break;
+                b--
+            }
+            f++
+        }
+        return null
+    }
+
+    function Ya(a) {
+        var b = null;
+        // TODO: Find a better way to register and load all the locales in Node
+        if (!we[a] && "undefined" != typeof module && module && module.exports) try {
+            b = se._abbr, require("./locale/" + a),
+                // because defineLocale currently also sets the global locale, we
+                // want to undo that for lazy loaded locales
+                Za(b)
+        } catch (c) {}
+        return we[a]
+    }
+    // This function will load locale and then set the global locale.  If
+    // no arguments are passed in, it will simply return the current global
+    // locale key.
+    function Za(a, b) {
+        var c;
+        // moment.duration._locale = moment._locale = data;
+        return a && (c = o(b) ? ab(a) : $a(a, b), c && (se = c)), se._abbr
+    }
+
+    function $a(a, b) {
+        if (null !== b) {
+            var c = ve;
+            // treat as if there is no base config
+            // backwards compat for now: also set the locale
+            return b.abbr = a, null != we[a] ? (x("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), c = we[a]._config) : null != b.parentLocale && (null != we[b.parentLocale] ? c = we[b.parentLocale]._config : x("parentLocaleUndefined", "specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")), we[a] = new B(A(c, b)), Za(a), we[a]
+        }
+        // useful for testing
+        return delete we[a], null
+    }
+
+    function _a(a, b) {
+        if (null != b) {
+            var c, d = ve;
+            // MERGE
+            null != we[a] && (d = we[a]._config), b = A(d, b), c = new B(b), c.parentLocale = we[a], we[a] = c,
+                // backwards compat for now: also set the locale
+                Za(a)
+        } else
+            // pass null for config to unupdate, useful for tests
+            null != we[a] && (null != we[a].parentLocale ? we[a] = we[a].parentLocale : null != we[a] && delete we[a]);
+        return we[a]
+    }
+    // returns locale data
+    function ab(a) {
+        var b;
+        if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return se;
+        if (!c(a)) {
+            if (b = Ya(a)) return b;
+            a = [a]
+        }
+        return Xa(a)
+    }
+
+    function bb() {
+        return rd(we)
+    }
+
+    function cb(a) {
+        var b, c = a._a;
+        return c && -2 === l(a).overflow && (b = c[Zd] < 0 || c[Zd] > 11 ? Zd : c[$d] < 1 || c[$d] > da(c[Yd], c[Zd]) ? $d : c[_d] < 0 || c[_d] > 24 || 24 === c[_d] && (0 !== c[ae] || 0 !== c[be] || 0 !== c[ce]) ? _d : c[ae] < 0 || c[ae] > 59 ? ae : c[be] < 0 || c[be] > 59 ? be : c[ce] < 0 || c[ce] > 999 ? ce : -1, l(a)._overflowDayOfYear && (Yd > b || b > $d) && (b = $d), l(a)._overflowWeeks && -1 === b && (b = de), l(a)._overflowWeekday && -1 === b && (b = ee), l(a).overflow = b), a
+    }
+    // date from iso format
+    function db(a) {
+        var b, c, d, e, f, g, h = a._i,
+            i = xe.exec(h) || ye.exec(h);
+        if (i) {
+            for (l(a).iso = !0, b = 0, c = Ae.length; c > b; b++)
+                if (Ae[b][1].exec(i[1])) {
+                    e = Ae[b][0], d = Ae[b][2] !== !1;
+                    break
+                }
+            if (null == e) return void(a._isValid = !1);
+            if (i[3]) {
+                for (b = 0, c = Be.length; c > b; b++)
+                    if (Be[b][1].exec(i[3])) {
+                        // match[2] should be 'T' or space
+                        f = (i[2] || " ") + Be[b][0];
+                        break
+                    }
+                if (null == f) return void(a._isValid = !1)
+            }
+            if (!d && null != f) return void(a._isValid = !1);
+            if (i[4]) {
+                if (!ze.exec(i[4])) return void(a._isValid = !1);
+                g = "Z"
+            }
+            a._f = e + (f || "") + (g || ""), jb(a)
+        } else a._isValid = !1
+    }
+    // date from iso format or fallback
+    function eb(b) {
+        var c = Ce.exec(b._i);
+        return null !== c ? void(b._d = new Date(+c[1])) : (db(b), void(b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b))))
+    }
+    // Pick the first defined of two or three arguments.
+    function fb(a, b, c) {
+        return null != a ? a : null != b ? b : c
+    }
+
+    function gb(b) {
+        // hooks is actually the exported moment object
+        var c = new Date(a.now());
+        return b._useUTC ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()] : [c.getFullYear(), c.getMonth(), c.getDate()]
+    }
+    // convert an array to a date.
+    // the array should mirror the parameters below
+    // note: all values past the year are optional and will default to the lowest possible value.
+    // [year, month, day , hour, minute, second, millisecond]
+    function hb(a) {
+        var b, c, d, e, f = [];
+        if (!a._d) {
+            // Default to current date.
+            // * if no year, month, day of month are given, default to today
+            // * if day of month is given, default month and year
+            // * if month is given, default only year
+            // * if year is given, don't default anything
+            for (d = gb(a), a._w && null == a._a[$d] && null == a._a[Zd] && ib(a), a._dayOfYear && (e = fb(a._a[Yd], d[Yd]), a._dayOfYear > oa(e) && (l(a)._overflowDayOfYear = !0), c = sa(e, 0, a._dayOfYear), a._a[Zd] = c.getUTCMonth(), a._a[$d] = c.getUTCDate()), b = 0; 3 > b && null == a._a[b]; ++b) a._a[b] = f[b] = d[b];
+            // Zero out whatever was not defaulted, including time
+            for (; 7 > b; b++) a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b];
+            // Check for 24:00:00.000
+            24 === a._a[_d] && 0 === a._a[ae] && 0 === a._a[be] && 0 === a._a[ce] && (a._nextDay = !0, a._a[_d] = 0), a._d = (a._useUTC ? sa : ra).apply(null, f),
+                // Apply timezone offset from input. The actual utcOffset can be changed
+                // with parseZone.
+                null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[_d] = 24)
+        }
+    }
+
+    function ib(a) {
+        var b, c, d, e, f, g, h, i;
+        b = a._w, null != b.GG || null != b.W || null != b.E ? (f = 1, g = 4, c = fb(b.GG, a._a[Yd], va(rb(), 1, 4).year), d = fb(b.W, 1), e = fb(b.E, 1), (1 > e || e > 7) && (i = !0)) : (f = a._locale._week.dow, g = a._locale._week.doy, c = fb(b.gg, a._a[Yd], va(rb(), f, g).year), d = fb(b.w, 1), null != b.d ? (e = b.d, (0 > e || e > 6) && (i = !0)) : null != b.e ? (e = b.e + f, (b.e < 0 || b.e > 6) && (i = !0)) : e = f), 1 > d || d > wa(c, f, g) ? l(a)._overflowWeeks = !0 : null != i ? l(a)._overflowWeekday = !0 : (h = ua(c, d, e, f, g), a._a[Yd] = h.year, a._dayOfYear = h.dayOfYear)
+    }
+    // date from string and format string
+    function jb(b) {
+        // TODO: Move this to another part of the creation flow to prevent circular deps
+        if (b._f === a.ISO_8601) return void db(b);
+        b._a = [], l(b).empty = !0;
+        // This array is used to make a Date, either with `new Date` or `Date.UTC`
+        var c, d, e, f, g, h = "" + b._i,
+            i = h.length,
+            j = 0;
+        for (e = X(b._f, b._locale).match(Bd) || [], c = 0; c < e.length; c++) f = e[c], d = (h.match(Z(f, b)) || [])[0], d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && l(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), j += d.length), Ed[f] ? (d ? l(b).empty = !1 : l(b).unusedTokens.push(f), ca(f, d, b)) : b._strict && !d && l(b).unusedTokens.push(f);
+        // add remaining unparsed input length to the string
+        l(b).charsLeftOver = i - j, h.length > 0 && l(b).unusedInput.push(h),
+            // clear _12h flag if hour is <= 12
+            b._a[_d] <= 12 && l(b).bigHour === !0 && b._a[_d] > 0 && (l(b).bigHour = void 0), l(b).parsedDateParts = b._a.slice(0), l(b).meridiem = b._meridiem,
+            // handle meridiem
+            b._a[_d] = kb(b._locale, b._a[_d], b._meridiem), hb(b), cb(b)
+    }
+
+    function kb(a, b, c) {
+        var d;
+        // Fallback
+        return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && 12 > b && (b += 12), d || 12 !== b || (b = 0), b) : b
+    }
+    // date from string and array of format strings
+    function lb(a) {
+        var b, c, d, e, f;
+        if (0 === a._f.length) return l(a).invalidFormat = !0, void(a._d = new Date(NaN));
+        for (e = 0; e < a._f.length; e++) f = 0, b = p({}, a), null != a._useUTC && (b._useUTC = a._useUTC), b._f = a._f[e], jb(b), m(b) && (f += l(b).charsLeftOver, f += 10 * l(b).unusedTokens.length, l(b).score = f, (null == d || d > f) && (d = f, c = b));
+        i(a, c || b)
+    }
+
+    function mb(a) {
+        if (!a._d) {
+            var b = K(a._i);
+            a._a = g([b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], function(a) {
+                return a && parseInt(a, 10)
+            }), hb(a)
+        }
+    }
+
+    function nb(a) {
+        var b = new q(cb(ob(a)));
+        // Adding is smart enough around DST
+        return b._nextDay && (b.add(1, "d"), b._nextDay = void 0), b
+    }
+
+    function ob(a) {
+        var b = a._i,
+            d = a._f;
+        return a._locale = a._locale || ab(a._l), null === b || void 0 === d && "" === b ? n({
+            nullInput: !0
+        }) : ("string" == typeof b && (a._i = b = a._locale.preparse(b)), r(b) ? new q(cb(b)) : (c(d) ? lb(a) : f(b) ? a._d = b : d ? jb(a) : pb(a), m(a) || (a._d = null), a))
+    }
+
+    function pb(b) {
+        var d = b._i;
+        void 0 === d ? b._d = new Date(a.now()) : f(d) ? b._d = new Date(d.valueOf()) : "string" == typeof d ? eb(b) : c(d) ? (b._a = g(d.slice(0), function(a) {
+                return parseInt(a, 10)
+            }), hb(b)) : "object" == typeof d ? mb(b) : "number" == typeof d ?
+            // from milliseconds
+            b._d = new Date(d) : a.createFromInputFallback(b)
+    }
+
+    function qb(a, b, f, g, h) {
+        var i = {};
+        // object construction must be done this way.
+        // https://github.com/moment/moment/issues/1423
+        return "boolean" == typeof f && (g = f, f = void 0), (d(a) && e(a) || c(a) && 0 === a.length) && (a = void 0), i._isAMomentObject = !0, i._useUTC = i._isUTC = h, i._l = f, i._i = a, i._f = b, i._strict = g, nb(i)
+    }
+
+    function rb(a, b, c, d) {
+        return qb(a, b, c, d, !1)
+    }
+    // Pick a moment m from moments so that m[fn](other) is true for all
+    // other. This relies on the function fn to be transitive.
+    //
+    // moments should either be an array of moment objects or an array, whose
+    // first element is an array of moment objects.
+    function sb(a, b) {
+        var d, e;
+        if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) return rb();
+        for (d = b[0], e = 1; e < b.length; ++e) b[e].isValid() && !b[e][a](d) || (d = b[e]);
+        return d
+    }
+    // TODO: Use [].sort instead?
+    function tb() {
+        var a = [].slice.call(arguments, 0);
+        return sb("isBefore", a)
+    }
+
+    function ub() {
+        var a = [].slice.call(arguments, 0);
+        return sb("isAfter", a)
+    }
+
+    function vb(a) {
+        var b = K(a),
+            c = b.year || 0,
+            d = b.quarter || 0,
+            e = b.month || 0,
+            f = b.week || 0,
+            g = b.day || 0,
+            h = b.hour || 0,
+            i = b.minute || 0,
+            j = b.second || 0,
+            k = b.millisecond || 0;
+        // representation for dateAddRemove
+        this._milliseconds = +k + 1e3 * j + // 1000
+            6e4 * i + // 1000 * 60
+            1e3 * h * 60 * 60, //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
+            // Because of dateAddRemove treats 24 hours as different from a
+            // day when working around DST, we need to store them separately
+            this._days = +g + 7 * f,
+            // It is impossible translate months into days without knowing
+            // which months you are are talking about, so we have to store
+            // it separately.
+            this._months = +e + 3 * d + 12 * c, this._data = {}, this._locale = ab(), this._bubble()
+    }
+
+    function wb(a) {
+        return a instanceof vb
+    }
+    // FORMATTING
+    function xb(a, b) {
+        T(a, 0, 0, function() {
+            var a = this.utcOffset(),
+                c = "+";
+            return 0 > a && (a = -a, c = "-"), c + S(~~(a / 60), 2) + b + S(~~a % 60, 2)
+        })
+    }
+
+    function yb(a, b) {
+        var c = (b || "").match(a) || [],
+            d = c[c.length - 1] || [],
+            e = (d + "").match(Ge) || ["-", 0, 0],
+            f = +(60 * e[1]) + t(e[2]);
+        return "+" === e[0] ? f : -f
+    }
+    // Return a moment from input, that is local/utc/zone equivalent to model.
+    function zb(b, c) {
+        var d, e;
+        // Use low-level api, because this fn is low-level api.
+        return c._isUTC ? (d = c.clone(), e = (r(b) || f(b) ? b.valueOf() : rb(b).valueOf()) - d.valueOf(), d._d.setTime(d._d.valueOf() + e), a.updateOffset(d, !1), d) : rb(b).local()
+    }
+
+    function Ab(a) {
+        // On Firefox.24 Date#getTimezoneOffset returns a floating point.
+        // https://github.com/moment/moment/pull/1871
+        return 15 * -Math.round(a._d.getTimezoneOffset() / 15)
+    }
+    // MOMENTS
+    // keepLocalTime = true means only change the timezone, without
+    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
+    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
+    // +0200, so we adjust the time as needed, to be valid.
+    //
+    // Keeping the time actually adds/subtracts (one hour)
+    // from the actual represented time. That is why we call updateOffset
+    // a second time. In case it wants us to change the offset again
+    // _changeInProgress == true case, then we have to adjust, because
+    // there is no such time in the given timezone.
+    function Bb(b, c) {
+        var d, e = this._offset || 0;
+        return this.isValid() ? null != b ? ("string" == typeof b ? b = yb(Td, b) : Math.abs(b) < 16 && (b = 60 * b), !this._isUTC && c && (d = Ab(this)), this._offset = b, this._isUTC = !0, null != d && this.add(d, "m"), e !== b && (!c || this._changeInProgress ? Sb(this, Mb(b - e, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this) : this._isUTC ? e : Ab(this) : null != b ? this : NaN
+    }
+
+    function Cb(a, b) {
+        return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset()
+    }
+
+    function Db(a) {
+        return this.utcOffset(0, a)
+    }
+
+    function Eb(a) {
+        return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Ab(this), "m")), this
+    }
+
+    function Fb() {
+        return this._tzm ? this.utcOffset(this._tzm) : "string" == typeof this._i && this.utcOffset(yb(Sd, this._i)), this
+    }
+
+    function Gb(a) {
+        return this.isValid() ? (a = a ? rb(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0) : !1
+    }
+
+    function Hb() {
+        return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
+    }
+
+    function Ib() {
+        if (!o(this._isDSTShifted)) return this._isDSTShifted;
+        var a = {};
+        if (p(a, this), a = ob(a), a._a) {
+            var b = a._isUTC ? j(a._a) : rb(a._a);
+            this._isDSTShifted = this.isValid() && u(a._a, b.toArray()) > 0
+        } else this._isDSTShifted = !1;
+        return this._isDSTShifted
+    }
+
+    function Jb() {
+        return this.isValid() ? !this._isUTC : !1
+    }
+
+    function Kb() {
+        return this.isValid() ? this._isUTC : !1
+    }
+
+    function Lb() {
+        return this.isValid() ? this._isUTC && 0 === this._offset : !1
+    }
+
+    function Mb(a, b) {
+        var c, d, e, f = a,
+            // matching against regexp is expensive, do it on demand
+            g = null; // checks for null or undefined
+        return wb(a) ? f = {
+            ms: a._milliseconds,
+            d: a._days,
+            M: a._months
+        } : "number" == typeof a ? (f = {}, b ? f[b] = a : f.milliseconds = a) : (g = He.exec(a)) ? (c = "-" === g[1] ? -1 : 1, f = {
+            y: 0,
+            d: t(g[$d]) * c,
+            h: t(g[_d]) * c,
+            m: t(g[ae]) * c,
+            s: t(g[be]) * c,
+            ms: t(g[ce]) * c
+        }) : (g = Ie.exec(a)) ? (c = "-" === g[1] ? -1 : 1, f = {
+            y: Nb(g[2], c),
+            M: Nb(g[3], c),
+            w: Nb(g[4], c),
+            d: Nb(g[5], c),
+            h: Nb(g[6], c),
+            m: Nb(g[7], c),
+            s: Nb(g[8], c)
+        }) : null == f ? f = {} : "object" == typeof f && ("from" in f || "to" in f) && (e = Pb(rb(f.from), rb(f.to)), f = {}, f.ms = e.milliseconds, f.M = e.months), d = new vb(f), wb(a) && h(a, "_locale") && (d._locale = a._locale), d
+    }
+
+    function Nb(a, b) {
+        // We'd normally use ~~inp for this, but unfortunately it also
+        // converts floats to ints.
+        // inp may be undefined, so careful calling replace on it.
+        var c = a && parseFloat(a.replace(",", "."));
+        // apply sign while we're at it
+        return (isNaN(c) ? 0 : c) * b
+    }
+
+    function Ob(a, b) {
+        var c = {
+            milliseconds: 0,
+            months: 0
+        };
+        return c.months = b.month() - a.month() + 12 * (b.year() - a.year()), a.clone().add(c.months, "M").isAfter(b) && --c.months, c.milliseconds = +b - +a.clone().add(c.months, "M"), c
+    }
+
+    function Pb(a, b) {
+        var c;
+        return a.isValid() && b.isValid() ? (b = zb(b, a), a.isBefore(b) ? c = Ob(a, b) : (c = Ob(b, a), c.milliseconds = -c.milliseconds, c.months = -c.months), c) : {
+            milliseconds: 0,
+            months: 0
+        }
+    }
+
+    function Qb(a) {
+        return 0 > a ? -1 * Math.round(-1 * a) : Math.round(a)
+    }
+    // TODO: remove 'name' arg after deprecation is removed
+    function Rb(a, b) {
+        return function(c, d) {
+            var e, f;
+            //invert the arguments, but complain about it
+            return null === d || isNaN(+d) || (x(b, "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), f = c, c = d, d = f), c = "string" == typeof c ? +c : c, e = Mb(c, d), Sb(this, e, a), this
+        }
+    }
+
+    function Sb(b, c, d, e) {
+        var f = c._milliseconds,
+            g = Qb(c._days),
+            h = Qb(c._months);
+        b.isValid() && (e = null == e ? !0 : e, f && b._d.setTime(b._d.valueOf() + f * d), g && P(b, "Date", O(b, "Date") + g * d), h && ia(b, O(b, "Month") + h * d), e && a.updateOffset(b, g || h))
+    }
+
+    function Tb(a, b) {
+        var c = a.diff(b, "days", !0);
+        return -6 > c ? "sameElse" : -1 > c ? "lastWeek" : 0 > c ? "lastDay" : 1 > c ? "sameDay" : 2 > c ? "nextDay" : 7 > c ? "nextWeek" : "sameElse"
+    }
+
+    function Ub(b, c) {
+        // We want to compare the start of today, vs this.
+        // Getting start-of-today depends on whether we're local/utc/offset or not.
+        var d = b || rb(),
+            e = zb(d, this).startOf("day"),
+            f = a.calendarFormat(this, e) || "sameElse",
+            g = c && (y(c[f]) ? c[f].call(this, d) : c[f]);
+        return this.format(g || this.localeData().calendar(f, this, rb(d)))
+    }
+
+    function Vb() {
+        return new q(this)
+    }
+
+    function Wb(a, b) {
+        var c = r(a) ? a : rb(a);
+        return this.isValid() && c.isValid() ? (b = J(o(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() > c.valueOf() : c.valueOf() < this.clone().startOf(b).valueOf()) : !1
+    }
+
+    function Xb(a, b) {
+        var c = r(a) ? a : rb(a);
+        return this.isValid() && c.isValid() ? (b = J(o(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() < c.valueOf() : this.clone().endOf(b).valueOf() < c.valueOf()) : !1
+    }
+
+    function Yb(a, b, c, d) {
+        return d = d || "()", ("(" === d[0] ? this.isAfter(a, c) : !this.isBefore(a, c)) && (")" === d[1] ? this.isBefore(b, c) : !this.isAfter(b, c))
+    }
+
+    function Zb(a, b) {
+        var c, d = r(a) ? a : rb(a);
+        return this.isValid() && d.isValid() ? (b = J(b || "millisecond"), "millisecond" === b ? this.valueOf() === d.valueOf() : (c = d.valueOf(), this.clone().startOf(b).valueOf() <= c && c <= this.clone().endOf(b).valueOf())) : !1
+    }
+
+    function $b(a, b) {
+        return this.isSame(a, b) || this.isAfter(a, b)
+    }
+
+    function _b(a, b) {
+        return this.isSame(a, b) || this.isBefore(a, b)
+    }
+
+    function ac(a, b, c) {
+        var d, e, f, g; // 1000
+        // 1000 * 60
+        // 1000 * 60 * 60
+        // 1000 * 60 * 60 * 24, negate dst
+        // 1000 * 60 * 60 * 24 * 7, negate dst
+        return this.isValid() ? (d = zb(a, this), d.isValid() ? (e = 6e4 * (d.utcOffset() - this.utcOffset()), b = J(b), "year" === b || "month" === b || "quarter" === b ? (g = bc(this, d), "quarter" === b ? g /= 3 : "year" === b && (g /= 12)) : (f = this - d, g = "second" === b ? f / 1e3 : "minute" === b ? f / 6e4 : "hour" === b ? f / 36e5 : "day" === b ? (f - e) / 864e5 : "week" === b ? (f - e) / 6048e5 : f), c ? g : s(g)) : NaN) : NaN
+    }
+
+    function bc(a, b) {
+        // difference in months
+        var c, d, e = 12 * (b.year() - a.year()) + (b.month() - a.month()),
+            // b is in (anchor - 1 month, anchor + 1 month)
+            f = a.clone().add(e, "months");
+        //check for negative zero, return zero if negative zero
+        // linear across the month
+        // linear across the month
+        return 0 > b - f ? (c = a.clone().add(e - 1, "months"), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, "months"), d = (b - f) / (c - f)), -(e + d) || 0
+    }
+
+    function cc() {
+        return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
+    }
+
+    function dc() {
+        var a = this.clone().utc();
+        return 0 < a.year() && a.year() <= 9999 ? y(Date.prototype.toISOString) ? this.toDate().toISOString() : W(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : W(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
+    }
+
+    function ec(b) {
+        b || (b = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat);
+        var c = W(this, b);
+        return this.localeData().postformat(c)
+    }
+
+    function fc(a, b) {
+        return this.isValid() && (r(a) && a.isValid() || rb(a).isValid()) ? Mb({
+            to: this,
+            from: a
+        }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
+    }
+
+    function gc(a) {
+        return this.from(rb(), a)
+    }
+
+    function hc(a, b) {
+        return this.isValid() && (r(a) && a.isValid() || rb(a).isValid()) ? Mb({
+            from: this,
+            to: a
+        }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
+    }
+
+    function ic(a) {
+        return this.to(rb(), a)
+    }
+    // If passed a locale key, it will set the locale for this
+    // instance.  Otherwise, it will return the locale configuration
+    // variables for this instance.
+    function jc(a) {
+        var b;
+        return void 0 === a ? this._locale._abbr : (b = ab(a), null != b && (this._locale = b), this)
+    }
+
+    function kc() {
+        return this._locale
+    }
+
+    function lc(a) {
+        // the following switch intentionally omits break keywords
+        // to utilize falling through the cases.
+        switch (a = J(a)) {
+            case "year":
+                this.month(0); /* falls through */
+            case "quarter":
+            case "month":
+                this.date(1); /* falls through */
+            case "week":
+            case "isoWeek":
+            case "day":
+            case "date":
+                this.hours(0); /* falls through */
+            case "hour":
+                this.minutes(0); /* falls through */
+            case "minute":
+                this.seconds(0); /* falls through */
+            case "second":
+                this.milliseconds(0)
+        }
+        // weeks are a special case
+        // quarters are also special
+        return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this
+    }
+
+    function mc(a) {
+        // 'date' is an alias for 'day', so it should be considered as such.
+        return a = J(a), void 0 === a || "millisecond" === a ? this : ("date" === a && (a = "day"), this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms"))
+    }
+
+    function nc() {
+        return this._d.valueOf() - 6e4 * (this._offset || 0)
+    }
+
+    function oc() {
+        return Math.floor(this.valueOf() / 1e3)
+    }
+
+    function pc() {
+        return new Date(this.valueOf())
+    }
+
+    function qc() {
+        var a = this;
+        return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]
+    }
+
+    function rc() {
+        var a = this;
+        return {
+            years: a.year(),
+            months: a.month(),
+            date: a.date(),
+            hours: a.hours(),
+            minutes: a.minutes(),
+            seconds: a.seconds(),
+            milliseconds: a.milliseconds()
+        }
+    }
+
+    function sc() {
+        // new Date(NaN).toJSON() === null
+        return this.isValid() ? this.toISOString() : null
+    }
+
+    function tc() {
+        return m(this)
+    }
+
+    function uc() {
+        return i({}, l(this))
+    }
+
+    function vc() {
+        return l(this).overflow
+    }
+
+    function wc() {
+        return {
+            input: this._i,
+            format: this._f,
+            locale: this._locale,
+            isUTC: this._isUTC,
+            strict: this._strict
+        }
+    }
+
+    function xc(a, b) {
+        T(0, [a, a.length], 0, b)
+    }
+    // MOMENTS
+    function yc(a) {
+        return Cc.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
+    }
+
+    function zc(a) {
+        return Cc.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4)
+    }
+
+    function Ac() {
+        return wa(this.year(), 1, 4)
+    }
+
+    function Bc() {
+        var a = this.localeData()._week;
+        return wa(this.year(), a.dow, a.doy)
+    }
+
+    function Cc(a, b, c, d, e) {
+        var f;
+        return null == a ? va(this, d, e).year : (f = wa(a, d, e), b > f && (b = f), Dc.call(this, a, b, c, d, e))
+    }
+
+    function Dc(a, b, c, d, e) {
+        var f = ua(a, b, c, d, e),
+            g = sa(f.year, 0, f.dayOfYear);
+        return this.year(g.getUTCFullYear()), this.month(g.getUTCMonth()), this.date(g.getUTCDate()), this
+    }
+    // MOMENTS
+    function Ec(a) {
+        return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3)
+    }
+    // HELPERS
+    // MOMENTS
+    function Fc(a) {
+        var b = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
+        return null == a ? b : this.add(a - b, "d")
+    }
+
+    function Gc(a, b) {
+        b[ce] = t(1e3 * ("0." + a))
+    }
+    // MOMENTS
+    function Hc() {
+        return this._isUTC ? "UTC" : ""
+    }
+
+    function Ic() {
+        return this._isUTC ? "Coordinated Universal Time" : ""
+    }
+
+    function Jc(a) {
+        return rb(1e3 * a)
+    }
+
+    function Kc() {
+        return rb.apply(null, arguments).parseZone()
+    }
+
+    function Lc(a) {
+        return a
+    }
+
+    function Mc(a, b, c, d) {
+        var e = ab(),
+            f = j().set(d, b);
+        return e[c](f, a)
+    }
+
+    function Nc(a, b, c) {
+        if ("number" == typeof a && (b = a, a = void 0), a = a || "", null != b) return Mc(a, b, c, "month");
+        var d, e = [];
+        for (d = 0; 12 > d; d++) e[d] = Mc(a, d, c, "month");
+        return e
+    }
+    // ()
+    // (5)
+    // (fmt, 5)
+    // (fmt)
+    // (true)
+    // (true, 5)
+    // (true, fmt, 5)
+    // (true, fmt)
+    function Oc(a, b, c, d) {
+        "boolean" == typeof a ? ("number" == typeof b && (c = b, b = void 0), b = b || "") : (b = a, c = b, a = !1, "number" == typeof b && (c = b, b = void 0), b = b || "");
+        var e = ab(),
+            f = a ? e._week.dow : 0;
+        if (null != c) return Mc(b, (c + f) % 7, d, "day");
+        var g, h = [];
+        for (g = 0; 7 > g; g++) h[g] = Mc(b, (g + f) % 7, d, "day");
+        return h
+    }
+
+    function Pc(a, b) {
+        return Nc(a, b, "months")
+    }
+
+    function Qc(a, b) {
+        return Nc(a, b, "monthsShort")
+    }
+
+    function Rc(a, b, c) {
+        return Oc(a, b, c, "weekdays")
+    }
+
+    function Sc(a, b, c) {
+        return Oc(a, b, c, "weekdaysShort")
+    }
+
+    function Tc(a, b, c) {
+        return Oc(a, b, c, "weekdaysMin")
+    }
+
+    function Uc() {
+        var a = this._data;
+        return this._milliseconds = Ue(this._milliseconds), this._days = Ue(this._days), this._months = Ue(this._months), a.milliseconds = Ue(a.milliseconds), a.seconds = Ue(a.seconds), a.minutes = Ue(a.minutes), a.hours = Ue(a.hours), a.months = Ue(a.months), a.years = Ue(a.years), this
+    }
+
+    function Vc(a, b, c, d) {
+        var e = Mb(b, c);
+        return a._milliseconds += d * e._milliseconds, a._days += d * e._days, a._months += d * e._months, a._bubble()
+    }
+    // supports only 2.0-style add(1, 's') or add(duration)
+    function Wc(a, b) {
+        return Vc(this, a, b, 1)
+    }
+    // supports only 2.0-style subtract(1, 's') or subtract(duration)
+    function Xc(a, b) {
+        return Vc(this, a, b, -1)
+    }
+
+    function Yc(a) {
+        return 0 > a ? Math.floor(a) : Math.ceil(a)
+    }
+
+    function Zc() {
+        var a, b, c, d, e, f = this._milliseconds,
+            g = this._days,
+            h = this._months,
+            i = this._data;
+        // if we have a mix of positive and negative values, bubble down first
+        // check: https://github.com/moment/moment/issues/2166
+        // The following code bubbles up values, see the tests for
+        // examples of what that means.
+        // convert days to months
+        // 12 months -> 1 year
+        return f >= 0 && g >= 0 && h >= 0 || 0 >= f && 0 >= g && 0 >= h || (f += 864e5 * Yc(_c(h) + g), g = 0, h = 0), i.milliseconds = f % 1e3, a = s(f / 1e3), i.seconds = a % 60, b = s(a / 60), i.minutes = b % 60, c = s(b / 60), i.hours = c % 24, g += s(c / 24), e = s($c(g)), h += e, g -= Yc(_c(e)), d = s(h / 12), h %= 12, i.days = g, i.months = h, i.years = d, this
+    }
+
+    function $c(a) {
+        // 400 years have 146097 days (taking into account leap year rules)
+        // 400 years have 12 months === 4800
+        return 4800 * a / 146097
+    }
+
+    function _c(a) {
+        // the reverse of daysToMonths
+        return 146097 * a / 4800
+    }
+
+    function ad(a) {
+        var b, c, d = this._milliseconds;
+        if (a = J(a), "month" === a || "year" === a) return b = this._days + d / 864e5, c = this._months + $c(b), "month" === a ? c : c / 12;
+        switch (b = this._days + Math.round(_c(this._months)), a) {
+            case "week":
+                return b / 7 + d / 6048e5;
+            case "day":
+                return b + d / 864e5;
+            case "hour":
+                return 24 * b + d / 36e5;
+            case "minute":
+                return 1440 * b + d / 6e4;
+            case "second":
+                return 86400 * b + d / 1e3;
+                // Math.floor prevents floating point math errors here
+            case "millisecond":
+                return Math.floor(864e5 * b) + d;
+            default:
+                throw new Error("Unknown unit " + a)
+        }
+    }
+    // TODO: Use this.as('ms')?
+    function bd() {
+        return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * t(this._months / 12)
+    }
+
+    function cd(a) {
+        return function() {
+            return this.as(a)
+        }
+    }
+
+    function dd(a) {
+        return a = J(a), this[a + "s"]()
+    }
+
+    function ed(a) {
+        return function() {
+            return this._data[a]
+        }
+    }
+
+    function fd() {
+        return s(this.days() / 7)
+    }
+    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
+    function gd(a, b, c, d, e) {
+        return e.relativeTime(b || 1, !!c, a, d)
+    }
+
+    function hd(a, b, c) {
+        var d = Mb(a).abs(),
+            e = jf(d.as("s")),
+            f = jf(d.as("m")),
+            g = jf(d.as("h")),
+            h = jf(d.as("d")),
+            i = jf(d.as("M")),
+            j = jf(d.as("y")),
+            k = e < kf.s && ["s", e] || 1 >= f && ["m"] || f < kf.m && ["mm", f] || 1 >= g && ["h"] || g < kf.h && ["hh", g] || 1 >= h && ["d"] || h < kf.d && ["dd", h] || 1 >= i && ["M"] || i < kf.M && ["MM", i] || 1 >= j && ["y"] || ["yy", j];
+        return k[2] = b, k[3] = +a > 0, k[4] = c, gd.apply(null, k)
+    }
+    // This function allows you to set the rounding function for relative time strings
+    function id(a) {
+        return void 0 === a ? jf : "function" == typeof a ? (jf = a, !0) : !1
+    }
+    // This function allows you to set a threshold for relative time strings
+    function jd(a, b) {
+        return void 0 === kf[a] ? !1 : void 0 === b ? kf[a] : (kf[a] = b, !0)
+    }
+
+    function kd(a) {
+        var b = this.localeData(),
+            c = hd(this, !a, b);
+        return a && (c = b.pastFuture(+this, c)), b.postformat(c)
+    }
+
+    function ld() {
+        // for ISO strings we do not use the normal bubbling rules:
+        //  * milliseconds bubble up until they become hours
+        //  * days do not bubble at all
+        //  * months bubble up until they become years
+        // This is because there is no context-free conversion between hours and days
+        // (think of clock changes)
+        // and also not between days and months (28-31 days per month)
+        var a, b, c, d = lf(this._milliseconds) / 1e3,
+            e = lf(this._days),
+            f = lf(this._months);
+        a = s(d / 60), b = s(a / 60), d %= 60, a %= 60, c = s(f / 12), f %= 12;
+        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
+        var g = c,
+            h = f,
+            i = e,
+            j = b,
+            k = a,
+            l = d,
+            m = this.asSeconds();
+        return m ? (0 > m ? "-" : "") + "P" + (g ? g + "Y" : "") + (h ? h + "M" : "") + (i ? i + "D" : "") + (j || k || l ? "T" : "") + (j ? j + "H" : "") + (k ? k + "M" : "") + (l ? l + "S" : "") : "P0D"
+    }
+    var md, nd;
+    nd = Array.prototype.some ? Array.prototype.some : function(a) {
+        for (var b = Object(this), c = b.length >>> 0, d = 0; c > d; d++)
+            if (d in b && a.call(this, b[d], d, b)) return !0;
+        return !1
+    };
+    // Plugins that add properties should also add the key here (null value),
+    // so we can properly clone ourselves.
+    var od = a.momentProperties = [],
+        pd = !1,
+        qd = {};
+    a.suppressDeprecationWarnings = !1, a.deprecationHandler = null;
+    var rd;
+    rd = Object.keys ? Object.keys : function(a) {
+        var b, c = [];
+        for (b in a) h(a, b) && c.push(b);
+        return c
+    };
+    var sd, td = {
+            sameDay: "[Today at] LT",
+            nextDay: "[Tomorrow at] LT",
+            nextWeek: "dddd [at] LT",
+            lastDay: "[Yesterday at] LT",
+            lastWeek: "[Last] dddd [at] LT",
+            sameElse: "L"
+        },
+        ud = {
+            LTS: "h:mm:ss A",
+            LT: "h:mm A",
+            L: "MM/DD/YYYY",
+            LL: "MMMM D, YYYY",
+            LLL: "MMMM D, YYYY h:mm A",
+            LLLL: "dddd, MMMM D, YYYY h:mm A"
+        },
+        vd = "Invalid date",
+        wd = "%d",
+        xd = /\d{1,2}/,
+        yd = {
+            future: "in %s",
+            past: "%s ago",
+            s: "a few seconds",
+            m: "a minute",
+            mm: "%d minutes",
+            h: "an hour",
+            hh: "%d hours",
+            d: "a day",
+            dd: "%d days",
+            M: "a month",
+            MM: "%d months",
+            y: "a year",
+            yy: "%d years"
+        },
+        zd = {},
+        Ad = {},
+        Bd = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
+        Cd = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
+        Dd = {},
+        Ed = {},
+        Fd = /\d/,
+        Gd = /\d\d/,
+        Hd = /\d{3}/,
+        Id = /\d{4}/,
+        Jd = /[+-]?\d{6}/,
+        Kd = /\d\d?/,
+        Ld = /\d\d\d\d?/,
+        Md = /\d\d\d\d\d\d?/,
+        Nd = /\d{1,3}/,
+        Od = /\d{1,4}/,
+        Pd = /[+-]?\d{1,6}/,
+        Qd = /\d+/,
+        Rd = /[+-]?\d+/,
+        Sd = /Z|[+-]\d\d:?\d\d/gi,
+        Td = /Z|[+-]\d\d(?::?\d\d)?/gi,
+        Ud = /[+-]?\d+(\.\d{1,3})?/,
+        Vd = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
+        Wd = {},
+        Xd = {},
+        Yd = 0,
+        Zd = 1,
+        $d = 2,
+        _d = 3,
+        ae = 4,
+        be = 5,
+        ce = 6,
+        de = 7,
+        ee = 8;
+    sd = Array.prototype.indexOf ? Array.prototype.indexOf : function(a) {
+        // I know
+        var b;
+        for (b = 0; b < this.length; ++b)
+            if (this[b] === a) return b;
+        return -1
+    }, T("M", ["MM", 2], "Mo", function() {
+        return this.month() + 1
+    }), T("MMM", 0, 0, function(a) {
+        return this.localeData().monthsShort(this, a)
+    }), T("MMMM", 0, 0, function(a) {
+        return this.localeData().months(this, a)
+    }), I("month", "M"), L("month", 8), Y("M", Kd), Y("MM", Kd, Gd), Y("MMM", function(a, b) {
+        return b.monthsShortRegex(a)
+    }), Y("MMMM", function(a, b) {
+        return b.monthsRegex(a)
+    }), aa(["M", "MM"], function(a, b) {
+        b[Zd] = t(a) - 1
+    }), aa(["MMM", "MMMM"], function(a, b, c, d) {
+        var e = c._locale.monthsParse(a, d, c._strict);
+        null != e ? b[Zd] = e : l(c).invalidMonth = a
+    });
+    // LOCALES
+    var fe = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,
+        ge = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
+        he = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
+        ie = Vd,
+        je = Vd;
+    // FORMATTING
+    T("Y", 0, 0, function() {
+            var a = this.year();
+            return 9999 >= a ? "" + a : "+" + a
+        }), T(0, ["YY", 2], 0, function() {
+            return this.year() % 100
+        }), T(0, ["YYYY", 4], 0, "year"), T(0, ["YYYYY", 5], 0, "year"), T(0, ["YYYYYY", 6, !0], 0, "year"),
+        // ALIASES
+        I("year", "y"),
+        // PRIORITIES
+        L("year", 1),
+        // PARSING
+        Y("Y", Rd), Y("YY", Kd, Gd), Y("YYYY", Od, Id), Y("YYYYY", Pd, Jd), Y("YYYYYY", Pd, Jd), aa(["YYYYY", "YYYYYY"], Yd), aa("YYYY", function(b, c) {
+            c[Yd] = 2 === b.length ? a.parseTwoDigitYear(b) : t(b)
+        }), aa("YY", function(b, c) {
+            c[Yd] = a.parseTwoDigitYear(b)
+        }), aa("Y", function(a, b) {
+            b[Yd] = parseInt(a, 10)
+        }),
+        // HOOKS
+        a.parseTwoDigitYear = function(a) {
+            return t(a) + (t(a) > 68 ? 1900 : 2e3)
+        };
+    // MOMENTS
+    var ke = N("FullYear", !0);
+    // FORMATTING
+    T("w", ["ww", 2], "wo", "week"), T("W", ["WW", 2], "Wo", "isoWeek"),
+        // ALIASES
+        I("week", "w"), I("isoWeek", "W"),
+        // PRIORITIES
+        L("week", 5), L("isoWeek", 5),
+        // PARSING
+        Y("w", Kd), Y("ww", Kd, Gd), Y("W", Kd), Y("WW", Kd, Gd), ba(["w", "ww", "W", "WW"], function(a, b, c, d) {
+            b[d.substr(0, 1)] = t(a)
+        });
+    var le = {
+        dow: 0, // Sunday is the first day of the week.
+        doy: 6
+    };
+    // FORMATTING
+    T("d", 0, "do", "day"), T("dd", 0, 0, function(a) {
+            return this.localeData().weekdaysMin(this, a)
+        }), T("ddd", 0, 0, function(a) {
+            return this.localeData().weekdaysShort(this, a)
+        }), T("dddd", 0, 0, function(a) {
+            return this.localeData().weekdays(this, a)
+        }), T("e", 0, 0, "weekday"), T("E", 0, 0, "isoWeekday"),
+        // ALIASES
+        I("day", "d"), I("weekday", "e"), I("isoWeekday", "E"),
+        // PRIORITY
+        L("day", 11), L("weekday", 11), L("isoWeekday", 11),
+        // PARSING
+        Y("d", Kd), Y("e", Kd), Y("E", Kd), Y("dd", function(a, b) {
+            return b.weekdaysMinRegex(a)
+        }), Y("ddd", function(a, b) {
+            return b.weekdaysShortRegex(a)
+        }), Y("dddd", function(a, b) {
+            return b.weekdaysRegex(a)
+        }), ba(["dd", "ddd", "dddd"], function(a, b, c, d) {
+            var e = c._locale.weekdaysParse(a, d, c._strict);
+            // if we didn't get a weekday name, mark the date as invalid
+            null != e ? b.d = e : l(c).invalidWeekday = a
+        }), ba(["d", "e", "E"], function(a, b, c, d) {
+            b[d] = t(a)
+        });
+    // LOCALES
+    var me = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
+        ne = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
+        oe = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
+        pe = Vd,
+        qe = Vd,
+        re = Vd;
+    T("H", ["HH", 2], 0, "hour"), T("h", ["hh", 2], 0, Qa), T("k", ["kk", 2], 0, Ra), T("hmm", 0, 0, function() {
+            return "" + Qa.apply(this) + S(this.minutes(), 2)
+        }), T("hmmss", 0, 0, function() {
+            return "" + Qa.apply(this) + S(this.minutes(), 2) + S(this.seconds(), 2)
+        }), T("Hmm", 0, 0, function() {
+            return "" + this.hours() + S(this.minutes(), 2)
+        }), T("Hmmss", 0, 0, function() {
+            return "" + this.hours() + S(this.minutes(), 2) + S(this.seconds(), 2)
+        }), Sa("a", !0), Sa("A", !1),
+        // ALIASES
+        I("hour", "h"),
+        // PRIORITY
+        L("hour", 13), Y("a", Ta), Y("A", Ta), Y("H", Kd), Y("h", Kd), Y("HH", Kd, Gd), Y("hh", Kd, Gd), Y("hmm", Ld), Y("hmmss", Md), Y("Hmm", Ld), Y("Hmmss", Md), aa(["H", "HH"], _d), aa(["a", "A"], function(a, b, c) {
+            c._isPm = c._locale.isPM(a), c._meridiem = a
+        }), aa(["h", "hh"], function(a, b, c) {
+            b[_d] = t(a), l(c).bigHour = !0
+        }), aa("hmm", function(a, b, c) {
+            var d = a.length - 2;
+            b[_d] = t(a.substr(0, d)), b[ae] = t(a.substr(d)), l(c).bigHour = !0
+        }), aa("hmmss", function(a, b, c) {
+            var d = a.length - 4,
+                e = a.length - 2;
+            b[_d] = t(a.substr(0, d)), b[ae] = t(a.substr(d, 2)), b[be] = t(a.substr(e)), l(c).bigHour = !0
+        }), aa("Hmm", function(a, b, c) {
+            var d = a.length - 2;
+            b[_d] = t(a.substr(0, d)), b[ae] = t(a.substr(d))
+        }), aa("Hmmss", function(a, b, c) {
+            var d = a.length - 4,
+                e = a.length - 2;
+            b[_d] = t(a.substr(0, d)), b[ae] = t(a.substr(d, 2)), b[be] = t(a.substr(e))
+        });
+    var se, te = /[ap]\.?m?\.?/i,
+        ue = N("Hours", !0),
+        ve = {
+            calendar: td,
+            longDateFormat: ud,
+            invalidDate: vd,
+            ordinal: wd,
+            ordinalParse: xd,
+            relativeTime: yd,
+            months: ge,
+            monthsShort: he,
+            week: le,
+            weekdays: me,
+            weekdaysMin: oe,
+            weekdaysShort: ne,
+            meridiemParse: te
+        },
+        we = {},
+        xe = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,
+        ye = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,
+        ze = /Z|[+-]\d\d(?::?\d\d)?/,
+        Ae = [
+            ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/],
+            ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/],
+            ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/],
+            ["GGGG-[W]WW", /\d{4}-W\d\d/, !1],
+            ["YYYY-DDD", /\d{4}-\d{3}/],
+            ["YYYY-MM", /\d{4}-\d\d/, !1],
+            ["YYYYYYMMDD", /[+-]\d{10}/],
+            ["YYYYMMDD", /\d{8}/],
+            // YYYYMM is NOT allowed by the standard
+            ["GGGG[W]WWE", /\d{4}W\d{3}/],
+            ["GGGG[W]WW", /\d{4}W\d{2}/, !1],
+            ["YYYYDDD", /\d{7}/]
+        ],
+        Be = [
+            ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/],
+            ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/],
+            ["HH:mm:ss", /\d\d:\d\d:\d\d/],
+            ["HH:mm", /\d\d:\d\d/],
+            ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/],
+            ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/],
+            ["HHmmss", /\d\d\d\d\d\d/],
+            ["HHmm", /\d\d\d\d/],
+            ["HH", /\d\d/]
+        ],
+        Ce = /^\/?Date\((\-?\d+)/i;
+    a.createFromInputFallback = w("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(a) {
+            a._d = new Date(a._i + (a._useUTC ? " UTC" : ""))
+        }),
+        // constant that refers to the ISO standard
+        a.ISO_8601 = function() {};
+    var De = w("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
+            var a = rb.apply(null, arguments);
+            return this.isValid() && a.isValid() ? this > a ? this : a : n()
+        }),
+        Ee = w("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
+            var a = rb.apply(null, arguments);
+            return this.isValid() && a.isValid() ? a > this ? this : a : n()
+        }),
+        Fe = function() {
+            return Date.now ? Date.now() : +new Date
+        };
+    xb("Z", ":"), xb("ZZ", ""),
+        // PARSING
+        Y("Z", Td), Y("ZZ", Td), aa(["Z", "ZZ"], function(a, b, c) {
+            c._useUTC = !0, c._tzm = yb(Td, a)
+        });
+    // HELPERS
+    // timezone chunker
+    // '+10:00' > ['10',  '00']
+    // '-1530'  > ['-15', '30']
+    var Ge = /([\+\-]|\d\d)/gi;
+    // HOOKS
+    // This function will be called whenever a moment is mutated.
+    // It is intended to keep the offset in sync with the timezone.
+    a.updateOffset = function() {};
+    // ASP.NET json date format regex
+    var He = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,
+        Ie = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;
+    Mb.fn = vb.prototype;
+    var Je = Rb(1, "add"),
+        Ke = Rb(-1, "subtract");
+    a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
+    var Le = w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(a) {
+        return void 0 === a ? this.localeData() : this.locale(a)
+    });
+    // FORMATTING
+    T(0, ["gg", 2], 0, function() {
+            return this.weekYear() % 100
+        }), T(0, ["GG", 2], 0, function() {
+            return this.isoWeekYear() % 100
+        }), xc("gggg", "weekYear"), xc("ggggg", "weekYear"), xc("GGGG", "isoWeekYear"), xc("GGGGG", "isoWeekYear"),
+        // ALIASES
+        I("weekYear", "gg"), I("isoWeekYear", "GG"),
+        // PRIORITY
+        L("weekYear", 1), L("isoWeekYear", 1),
+        // PARSING
+        Y("G", Rd), Y("g", Rd), Y("GG", Kd, Gd), Y("gg", Kd, Gd), Y("GGGG", Od, Id), Y("gggg", Od, Id), Y("GGGGG", Pd, Jd), Y("ggggg", Pd, Jd), ba(["gggg", "ggggg", "GGGG", "GGGGG"], function(a, b, c, d) {
+            b[d.substr(0, 2)] = t(a)
+        }), ba(["gg", "GG"], function(b, c, d, e) {
+            c[e] = a.parseTwoDigitYear(b)
+        }),
+        // FORMATTING
+        T("Q", 0, "Qo", "quarter"),
+        // ALIASES
+        I("quarter", "Q"),
+        // PRIORITY
+        L("quarter", 7),
+        // PARSING
+        Y("Q", Fd), aa("Q", function(a, b) {
+            b[Zd] = 3 * (t(a) - 1)
+        }),
+        // FORMATTING
+        T("D", ["DD", 2], "Do", "date"),
+        // ALIASES
+        I("date", "D"),
+        // PRIOROITY
+        L("date", 9),
+        // PARSING
+        Y("D", Kd), Y("DD", Kd, Gd), Y("Do", function(a, b) {
+            return a ? b._ordinalParse : b._ordinalParseLenient
+        }), aa(["D", "DD"], $d), aa("Do", function(a, b) {
+            b[$d] = t(a.match(Kd)[0], 10)
+        });
+    // MOMENTS
+    var Me = N("Date", !0);
+    // FORMATTING
+    T("DDD", ["DDDD", 3], "DDDo", "dayOfYear"),
+        // ALIASES
+        I("dayOfYear", "DDD"),
+        // PRIORITY
+        L("dayOfYear", 4),
+        // PARSING
+        Y("DDD", Nd), Y("DDDD", Hd), aa(["DDD", "DDDD"], function(a, b, c) {
+            c._dayOfYear = t(a)
+        }),
+        // FORMATTING
+        T("m", ["mm", 2], 0, "minute"),
+        // ALIASES
+        I("minute", "m"),
+        // PRIORITY
+        L("minute", 14),
+        // PARSING
+        Y("m", Kd), Y("mm", Kd, Gd), aa(["m", "mm"], ae);
+    // MOMENTS
+    var Ne = N("Minutes", !1);
+    // FORMATTING
+    T("s", ["ss", 2], 0, "second"),
+        // ALIASES
+        I("second", "s"),
+        // PRIORITY
+        L("second", 15),
+        // PARSING
+        Y("s", Kd), Y("ss", Kd, Gd), aa(["s", "ss"], be);
+    // MOMENTS
+    var Oe = N("Seconds", !1);
+    // FORMATTING
+    T("S", 0, 0, function() {
+            return ~~(this.millisecond() / 100)
+        }), T(0, ["SS", 2], 0, function() {
+            return ~~(this.millisecond() / 10)
+        }), T(0, ["SSS", 3], 0, "millisecond"), T(0, ["SSSS", 4], 0, function() {
+            return 10 * this.millisecond()
+        }), T(0, ["SSSSS", 5], 0, function() {
+            return 100 * this.millisecond()
+        }), T(0, ["SSSSSS", 6], 0, function() {
+            return 1e3 * this.millisecond()
+        }), T(0, ["SSSSSSS", 7], 0, function() {
+            return 1e4 * this.millisecond()
+        }), T(0, ["SSSSSSSS", 8], 0, function() {
+            return 1e5 * this.millisecond()
+        }), T(0, ["SSSSSSSSS", 9], 0, function() {
+            return 1e6 * this.millisecond()
+        }),
+        // ALIASES
+        I("millisecond", "ms"),
+        // PRIORITY
+        L("millisecond", 16),
+        // PARSING
+        Y("S", Nd, Fd), Y("SS", Nd, Gd), Y("SSS", Nd, Hd);
+    var Pe;
+    for (Pe = "SSSS"; Pe.length <= 9; Pe += "S") Y(Pe, Qd);
+    for (Pe = "S"; Pe.length <= 9; Pe += "S") aa(Pe, Gc);
+    // MOMENTS
+    var Qe = N("Milliseconds", !1);
+    // FORMATTING
+    T("z", 0, 0, "zoneAbbr"), T("zz", 0, 0, "zoneName");
+    var Re = q.prototype;
+    Re.add = Je, Re.calendar = Ub, Re.clone = Vb, Re.diff = ac, Re.endOf = mc, Re.format = ec, Re.from = fc, Re.fromNow = gc, Re.to = hc, Re.toNow = ic, Re.get = Q, Re.invalidAt = vc, Re.isAfter = Wb, Re.isBefore = Xb, Re.isBetween = Yb, Re.isSame = Zb, Re.isSameOrAfter = $b, Re.isSameOrBefore = _b, Re.isValid = tc, Re.lang = Le, Re.locale = jc, Re.localeData = kc, Re.max = Ee, Re.min = De, Re.parsingFlags = uc, Re.set = R, Re.startOf = lc, Re.subtract = Ke, Re.toArray = qc, Re.toObject = rc, Re.toDate = pc, Re.toISOString = dc, Re.toJSON = sc, Re.toString = cc, Re.unix = oc, Re.valueOf = nc, Re.creationData = wc,
+        // Year
+        Re.year = ke, Re.isLeapYear = qa,
+        // Week Year
+        Re.weekYear = yc, Re.isoWeekYear = zc,
+        // Quarter
+        Re.quarter = Re.quarters = Ec,
+        // Month
+        Re.month = ja, Re.daysInMonth = ka,
+        // Week
+        Re.week = Re.weeks = Aa, Re.isoWeek = Re.isoWeeks = Ba, Re.weeksInYear = Bc, Re.isoWeeksInYear = Ac,
+        // Day
+        Re.date = Me, Re.day = Re.days = Ja, Re.weekday = Ka, Re.isoWeekday = La, Re.dayOfYear = Fc,
+        // Hour
+        Re.hour = Re.hours = ue,
+        // Minute
+        Re.minute = Re.minutes = Ne,
+        // Second
+        Re.second = Re.seconds = Oe,
+        // Millisecond
+        Re.millisecond = Re.milliseconds = Qe,
+        // Offset
+        Re.utcOffset = Bb, Re.utc = Db, Re.local = Eb, Re.parseZone = Fb, Re.hasAlignedHourOffset = Gb, Re.isDST = Hb, Re.isLocal = Jb, Re.isUtcOffset = Kb, Re.isUtc = Lb, Re.isUTC = Lb,
+        // Timezone
+        Re.zoneAbbr = Hc, Re.zoneName = Ic,
+        // Deprecations
+        Re.dates = w("dates accessor is deprecated. Use date instead.", Me), Re.months = w("months accessor is deprecated. Use month instead", ja), Re.years = w("years accessor is deprecated. Use year instead", ke), Re.zone = w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", Cb), Re.isDSTShifted = w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Ib);
+    var Se = Re,
+        Te = B.prototype;
+    Te.calendar = C, Te.longDateFormat = D, Te.invalidDate = E, Te.ordinal = F, Te.preparse = Lc, Te.postformat = Lc, Te.relativeTime = G, Te.pastFuture = H, Te.set = z,
+        // Month
+        Te.months = ea, Te.monthsShort = fa, Te.monthsParse = ha, Te.monthsRegex = ma, Te.monthsShortRegex = la,
+        // Week
+        Te.week = xa, Te.firstDayOfYear = za, Te.firstDayOfWeek = ya,
+        // Day of Week
+        Te.weekdays = Ea, Te.weekdaysMin = Ga, Te.weekdaysShort = Fa, Te.weekdaysParse = Ia, Te.weekdaysRegex = Ma, Te.weekdaysShortRegex = Na, Te.weekdaysMinRegex = Oa,
+        // Hours
+        Te.isPM = Ua, Te.meridiem = Va, Za("en", {
+            ordinalParse: /\d{1,2}(th|st|nd|rd)/,
+            ordinal: function(a) {
+                var b = a % 10,
+                    c = 1 === t(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
+                return a + c
+            }
+        }),
+        // Side effect imports
+        a.lang = w("moment.lang is deprecated. Use moment.locale instead.", Za), a.langData = w("moment.langData is deprecated. Use moment.localeData instead.", ab);
+    var Ue = Math.abs,
+        Ve = cd("ms"),
+        We = cd("s"),
+        Xe = cd("m"),
+        Ye = cd("h"),
+        Ze = cd("d"),
+        $e = cd("w"),
+        _e = cd("M"),
+        af = cd("y"),
+        bf = ed("milliseconds"),
+        cf = ed("seconds"),
+        df = ed("minutes"),
+        ef = ed("hours"),
+        ff = ed("days"),
+        gf = ed("months"),
+        hf = ed("years"),
+        jf = Math.round,
+        kf = {
+            s: 45, // seconds to minute
+            m: 45, // minutes to hour
+            h: 22, // hours to day
+            d: 26, // days to month
+            M: 11
+        },
+        lf = Math.abs,
+        mf = vb.prototype;
+    mf.abs = Uc, mf.add = Wc, mf.subtract = Xc, mf.as = ad, mf.asMilliseconds = Ve, mf.asSeconds = We, mf.asMinutes = Xe, mf.asHours = Ye, mf.asDays = Ze, mf.asWeeks = $e, mf.asMonths = _e, mf.asYears = af, mf.valueOf = bd, mf._bubble = Zc, mf.get = dd, mf.milliseconds = bf, mf.seconds = cf, mf.minutes = df, mf.hours = ef, mf.days = ff, mf.weeks = fd, mf.months = gf, mf.years = hf, mf.humanize = kd, mf.toISOString = ld, mf.toString = ld, mf.toJSON = ld, mf.locale = jc, mf.localeData = kc,
+        // Deprecations
+        mf.toIsoString = w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", ld), mf.lang = Le,
+        // Side effect imports
+        // FORMATTING
+        T("X", 0, 0, "unix"), T("x", 0, 0, "valueOf"),
+        // PARSING
+        Y("x", Rd), Y("X", Ud), aa("X", function(a, b, c) {
+            c._d = new Date(1e3 * parseFloat(a, 10))
+        }), aa("x", function(a, b, c) {
+            c._d = new Date(t(a))
+        }),
+        // Side effect imports
+        a.version = "2.14.1", b(rb), a.fn = Se, a.min = tb, a.max = ub, a.now = Fe, a.utc = j, a.unix = Jc, a.months = Pc, a.isDate = f, a.locale = Za, a.invalid = n, a.duration = Mb, a.isMoment = r, a.weekdays = Rc, a.parseZone = Kc, a.localeData = ab, a.isDuration = wb, a.monthsShort = Qc, a.weekdaysMin = Tc, a.defineLocale = $a, a.updateLocale = _a, a.locales = bb, a.weekdaysShort = Sc, a.normalizeUnits = J, a.relativeTimeRounding = id, a.relativeTimeThreshold = jd, a.calendarFormat = Tb, a.prototype = Se;
+    var nf = a;
+    return nf
+});

+ 834 - 0
js/popper.min.js

@@ -0,0 +1,834 @@
+/*
+ Copyright (C) Federico Zivolo 2017
+ Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
+ */
+(function(e, t) {
+    'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t()
+})(this, function() {
+    'use strict';
+
+    function e(e) {
+        return e && '[object Function]' === {}.toString.call(e)
+    }
+
+    function t(e, t) {
+        if (1 !== e.nodeType) return [];
+        var o = window.getComputedStyle(e, null);
+        return t ? o[t] : o
+    }
+
+    function o(e) {
+        return 'HTML' === e.nodeName ? e : e.parentNode || e.host
+    }
+
+    function n(e) {
+        if (!e || -1 !== ['HTML', 'BODY', '#document'].indexOf(e.nodeName)) return window.document.body;
+        var i = t(e),
+            r = i.overflow,
+            p = i.overflowX,
+            s = i.overflowY;
+        return /(auto|scroll)/.test(r + s + p) ? e : n(o(e))
+    }
+
+    function r(e) {
+        var o = e && e.offsetParent,
+            i = o && o.nodeName;
+        return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TD', 'TABLE'].indexOf(o.nodeName) && 'static' === t(o, 'position') ? r(o) : o : window.document.documentElement
+    }
+
+    function p(e) {
+        var t = e.nodeName;
+        return 'BODY' !== t && ('HTML' === t || r(e.firstElementChild) === e)
+    }
+
+    function s(e) {
+        return null === e.parentNode ? e : s(e.parentNode)
+    }
+
+    function d(e, t) {
+        if (!e || !e.nodeType || !t || !t.nodeType) return window.document.documentElement;
+        var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
+            i = o ? e : t,
+            n = o ? t : e,
+            a = document.createRange();
+        a.setStart(i, 0), a.setEnd(n, 0);
+        var f = a.commonAncestorContainer;
+        if (e !== f && t !== f || i.contains(n)) return p(f) ? f : r(f);
+        var l = s(e);
+        return l.host ? d(l.host, t) : d(e, s(t).host)
+    }
+
+    function a(e) {
+        var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top',
+            o = 'top' === t ? 'scrollTop' : 'scrollLeft',
+            i = e.nodeName;
+        if ('BODY' === i || 'HTML' === i) {
+            var n = window.document.documentElement,
+                r = window.document.scrollingElement || n;
+            return r[o]
+        }
+        return e[o]
+    }
+
+    function f(e, t) {
+        var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
+            i = a(t, 'top'),
+            n = a(t, 'left'),
+            r = o ? -1 : 1;
+        return e.top += i * r, e.bottom += i * r, e.left += n * r, e.right += n * r, e
+    }
+
+    function l(e, t) {
+        var o = 'x' === t ? 'Left' : 'Top',
+            i = 'Left' == o ? 'Right' : 'Bottom';
+        return +e['border' + o + 'Width'].split('px')[0] + +e['border' + i + 'Width'].split('px')[0]
+    }
+
+    function m(e, t, o, i) {
+        return _(t['offset' + e], o['client' + e], o['offset' + e], ie() ? o['offset' + e] + i['margin' + ('Height' === e ? 'Top' : 'Left')] + i['margin' + ('Height' === e ? 'Bottom' : 'Right')] : 0)
+    }
+
+    function h() {
+        var e = window.document.body,
+            t = window.document.documentElement,
+            o = ie() && window.getComputedStyle(t);
+        return {
+            height: m('Height', e, t, o),
+            width: m('Width', e, t, o)
+        }
+    }
+
+    function c(e) {
+        return se({}, e, {
+            right: e.left + e.width,
+            bottom: e.top + e.height
+        })
+    }
+
+    function g(e) {
+        var o = {};
+        if (ie()) try {
+            o = e.getBoundingClientRect();
+            var i = a(e, 'top'),
+                n = a(e, 'left');
+            o.top += i, o.left += n, o.bottom += i, o.right += n
+        } catch (e) {} else o = e.getBoundingClientRect();
+        var r = {
+                left: o.left,
+                top: o.top,
+                width: o.right - o.left,
+                height: o.bottom - o.top
+            },
+            p = 'HTML' === e.nodeName ? h() : {},
+            s = p.width || e.clientWidth || r.right - r.left,
+            d = p.height || e.clientHeight || r.bottom - r.top,
+            f = e.offsetWidth - s,
+            m = e.offsetHeight - d;
+        if (f || m) {
+            var g = t(e);
+            f -= l(g, 'x'), m -= l(g, 'y'), r.width -= f, r.height -= m
+        }
+        return c(r)
+    }
+
+    function u(e, o) {
+        var i = ie(),
+            r = 'HTML' === o.nodeName,
+            p = g(e),
+            s = g(o),
+            d = n(e),
+            a = t(o),
+            l = +a.borderTopWidth.split('px')[0],
+            m = +a.borderLeftWidth.split('px')[0],
+            h = c({
+                top: p.top - s.top - l,
+                left: p.left - s.left - m,
+                width: p.width,
+                height: p.height
+            });
+        if (h.marginTop = 0, h.marginLeft = 0, !i && r) {
+            var u = +a.marginTop.split('px')[0],
+                b = +a.marginLeft.split('px')[0];
+            h.top -= l - u, h.bottom -= l - u, h.left -= m - b, h.right -= m - b, h.marginTop = u, h.marginLeft = b
+        }
+        return (i ? o.contains(d) : o === d && 'BODY' !== d.nodeName) && (h = f(h, o)), h
+    }
+
+    function b(e) {
+        var t = window.document.documentElement,
+            o = u(e, t),
+            i = _(t.clientWidth, window.innerWidth || 0),
+            n = _(t.clientHeight, window.innerHeight || 0),
+            r = a(t),
+            p = a(t, 'left'),
+            s = {
+                top: r - o.top + o.marginTop,
+                left: p - o.left + o.marginLeft,
+                width: i,
+                height: n
+            };
+        return c(s)
+    }
+
+    function y(e) {
+        var i = e.nodeName;
+        return 'BODY' === i || 'HTML' === i ? !1 : 'fixed' === t(e, 'position') || y(o(e))
+    }
+
+    function w(e, t, i, r) {
+        var p = {
+                top: 0,
+                left: 0
+            },
+            s = d(e, t);
+        if ('viewport' === r) p = b(s);
+        else {
+            var a;
+            'scrollParent' === r ? (a = n(o(e)), 'BODY' === a.nodeName && (a = window.document.documentElement)) : 'window' === r ? a = window.document.documentElement : a = r;
+            var f = u(a, s);
+            if ('HTML' === a.nodeName && !y(s)) {
+                var l = h(),
+                    m = l.height,
+                    c = l.width;
+                p.top += f.top - f.marginTop, p.bottom = m + f.top, p.left += f.left - f.marginLeft, p.right = c + f.left
+            } else p = f
+        }
+        return p.left += i, p.top += i, p.right -= i, p.bottom -= i, p
+    }
+
+    function v(e) {
+        var t = e.width,
+            o = e.height;
+        return t * o
+    }
+
+    function E(e, t, o, i, n) {
+        var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0;
+        if (-1 === e.indexOf('auto')) return e;
+        var p = w(o, i, r, n),
+            s = {
+                top: {
+                    width: p.width,
+                    height: t.top - p.top
+                },
+                right: {
+                    width: p.right - t.right,
+                    height: p.height
+                },
+                bottom: {
+                    width: p.width,
+                    height: p.bottom - t.bottom
+                },
+                left: {
+                    width: t.left - p.left,
+                    height: p.height
+                }
+            },
+            d = Object.keys(s).map(function(e) {
+                return se({
+                    key: e
+                }, s[e], {
+                    area: v(s[e])
+                })
+            }).sort(function(e, t) {
+                return t.area - e.area
+            }),
+            a = d.filter(function(e) {
+                var t = e.width,
+                    i = e.height;
+                return t >= o.clientWidth && i >= o.clientHeight
+            }),
+            f = 0 < a.length ? a[0].key : d[0].key,
+            l = e.split('-')[1];
+        return f + (l ? '-' + l : '')
+    }
+
+    function x(e, t, o) {
+        var i = d(t, o);
+        return u(o, i)
+    }
+
+    function O(e) {
+        var t = window.getComputedStyle(e),
+            o = parseFloat(t.marginTop) + parseFloat(t.marginBottom),
+            i = parseFloat(t.marginLeft) + parseFloat(t.marginRight),
+            n = {
+                width: e.offsetWidth + i,
+                height: e.offsetHeight + o
+            };
+        return n
+    }
+
+    function L(e) {
+        var t = {
+            left: 'right',
+            right: 'left',
+            bottom: 'top',
+            top: 'bottom'
+        };
+        return e.replace(/left|right|bottom|top/g, function(e) {
+            return t[e]
+        })
+    }
+
+    function S(e, t, o) {
+        o = o.split('-')[0];
+        var i = O(e),
+            n = {
+                width: i.width,
+                height: i.height
+            },
+            r = -1 !== ['right', 'left'].indexOf(o),
+            p = r ? 'top' : 'left',
+            s = r ? 'left' : 'top',
+            d = r ? 'height' : 'width',
+            a = r ? 'width' : 'height';
+        return n[p] = t[p] + t[d] / 2 - i[d] / 2, n[s] = o === s ? t[s] - i[a] : t[L(s)], n
+    }
+
+    function T(e, t) {
+        return Array.prototype.find ? e.find(t) : e.filter(t)[0]
+    }
+
+    function C(e, t, o) {
+        if (Array.prototype.findIndex) return e.findIndex(function(e) {
+            return e[t] === o
+        });
+        var i = T(e, function(e) {
+            return e[t] === o
+        });
+        return e.indexOf(i)
+    }
+
+    function N(t, o, i) {
+        var n = void 0 === i ? t : t.slice(0, C(t, 'name', i));
+        return n.forEach(function(t) {
+            t.function && console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
+            var i = t.function || t.fn;
+            t.enabled && e(i) && (o.offsets.popper = c(o.offsets.popper), o.offsets.reference = c(o.offsets.reference), o = i(o, t))
+        }), o
+    }
+
+    function k() {
+        if (!this.state.isDestroyed) {
+            var e = {
+                instance: this,
+                styles: {},
+                attributes: {},
+                flipped: !1,
+                offsets: {}
+            };
+            e.offsets.reference = x(this.state, this.popper, this.reference), e.placement = E(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.offsets.popper = S(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = 'absolute', e = N(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e))
+        }
+    }
+
+    function W(e, t) {
+        return e.some(function(e) {
+            var o = e.name,
+                i = e.enabled;
+            return i && o === t
+        })
+    }
+
+    function B(e) {
+        for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length - 1; n++) {
+            var i = t[n],
+                r = i ? '' + i + o : e;
+            if ('undefined' != typeof window.document.body.style[r]) return r
+        }
+        return null
+    }
+
+    function D() {
+        return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.left = '', this.popper.style.position = '', this.popper.style.top = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
+    }
+
+    function H(e, t, o, i) {
+        var r = 'BODY' === e.nodeName,
+            p = r ? window : e;
+        p.addEventListener(t, o, {
+            passive: !0
+        }), r || H(n(p.parentNode), t, o, i), i.push(p)
+    }
+
+    function P(e, t, o, i) {
+        o.updateBound = i, window.addEventListener('resize', o.updateBound, {
+            passive: !0
+        });
+        var r = n(e);
+        return H(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o
+    }
+
+    function A() {
+        this.state.eventsEnabled || (this.state = P(this.reference, this.options, this.state, this.scheduleUpdate))
+    }
+
+    function M(e, t) {
+        return window.removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function(e) {
+            e.removeEventListener('scroll', t.updateBound)
+        }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t
+    }
+
+    function I() {
+        this.state.eventsEnabled && (window.cancelAnimationFrame(this.scheduleUpdate), this.state = M(this.reference, this.state))
+    }
+
+    function R(e) {
+        return '' !== e && !isNaN(parseFloat(e)) && isFinite(e)
+    }
+
+    function U(e, t) {
+        Object.keys(t).forEach(function(o) {
+            var i = ''; - 1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && R(t[o]) && (i = 'px'), e.style[o] = t[o] + i
+        })
+    }
+
+    function Y(e, t) {
+        Object.keys(t).forEach(function(o) {
+            var i = t[o];
+            !1 === i ? e.removeAttribute(o) : e.setAttribute(o, t[o])
+        })
+    }
+
+    function F(e, t, o) {
+        var i = T(e, function(e) {
+                var o = e.name;
+                return o === t
+            }),
+            n = !!i && e.some(function(e) {
+                return e.name === o && e.enabled && e.order < i.order
+            });
+        if (!n) {
+            var r = '`' + t + '`';
+            console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!')
+        }
+        return n
+    }
+
+    function j(e) {
+        return 'end' === e ? 'start' : 'start' === e ? 'end' : e
+    }
+
+    function K(e) {
+        var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
+            o = ae.indexOf(e),
+            i = ae.slice(o + 1).concat(ae.slice(0, o));
+        return t ? i.reverse() : i
+    }
+
+    function q(e, t, o, i) {
+        var n = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
+            r = +n[1],
+            p = n[2];
+        if (!r) return e;
+        if (0 === p.indexOf('%')) {
+            var s;
+            switch (p) {
+                case '%p':
+                    s = o;
+                    break;
+                case '%':
+                case '%r':
+                default:
+                    s = i;
+            }
+            var d = c(s);
+            return d[t] / 100 * r
+        }
+        if ('vh' === p || 'vw' === p) {
+            var a;
+            return a = 'vh' === p ? _(document.documentElement.clientHeight, window.innerHeight || 0) : _(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r
+        }
+        return r
+    }
+
+    function G(e, t, o, i) {
+        var n = [0, 0],
+            r = -1 !== ['right', 'left'].indexOf(i),
+            p = e.split(/(\+|\-)/).map(function(e) {
+                return e.trim()
+            }),
+            s = p.indexOf(T(p, function(e) {
+                return -1 !== e.search(/,|\s/)
+            }));
+        p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
+        var d = /\s*,\s*|\s+/,
+            a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))];
+        return a = a.map(function(e, i) {
+            var n = (1 === i ? !r : r) ? 'height' : 'width',
+                p = !1;
+            return e.reduce(function(e, t) {
+                return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t)
+            }, []).map(function(e) {
+                return q(e, n, t, o)
+            })
+        }), a.forEach(function(e, t) {
+            e.forEach(function(o, i) {
+                R(o) && (n[t] += o * ('-' === e[i - 1] ? -1 : 1))
+            })
+        }), n
+    }
+    for (var z = Math.min, V = Math.floor, _ = Math.max, X = ['native code', '[object MutationObserverConstructor]'], Q = function(e) {
+            return X.some(function(t) {
+                return -1 < (e || '').toString().indexOf(t)
+            })
+        }, J = 'undefined' != typeof window, Z = ['Edge', 'Trident', 'Firefox'], $ = 0, ee = 0; ee < Z.length; ee += 1)
+        if (J && 0 <= navigator.userAgent.indexOf(Z[ee])) {
+            $ = 1;
+            break
+        }
+    var i, te = J && Q(window.MutationObserver),
+        oe = te ? function(e) {
+            var t = !1,
+                o = 0,
+                i = document.createElement('span'),
+                n = new MutationObserver(function() {
+                    e(), t = !1
+                });
+            return n.observe(i, {
+                    attributes: !0
+                }),
+                function() {
+                    t || (t = !0, i.setAttribute('x-index', o), ++o)
+                }
+        } : function(e) {
+            var t = !1;
+            return function() {
+                t || (t = !0, setTimeout(function() {
+                    t = !1, e()
+                }, $))
+            }
+        },
+        ie = function() {
+            return void 0 == i && (i = -1 !== navigator.appVersion.indexOf('MSIE 10')), i
+        },
+        ne = function(e, t) {
+            if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
+        },
+        re = function() {
+            function e(e, t) {
+                for (var o, n = 0; n < t.length; n++) o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o)
+            }
+            return function(t, o, i) {
+                return o && e(t.prototype, o), i && e(t, i), t
+            }
+        }(),
+        pe = function(e, t, o) {
+            return t in e ? Object.defineProperty(e, t, {
+                value: o,
+                enumerable: !0,
+                configurable: !0,
+                writable: !0
+            }) : e[t] = o, e
+        },
+        se = Object.assign || function(e) {
+            for (var t, o = 1; o < arguments.length; o++)
+                for (var i in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
+            return e
+        },
+        de = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'],
+        ae = de.slice(3),
+        fe = {
+            FLIP: 'flip',
+            CLOCKWISE: 'clockwise',
+            COUNTERCLOCKWISE: 'counterclockwise'
+        },
+        le = function() {
+            function t(o, i) {
+                var n = this,
+                    r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
+                ne(this, t), this.scheduleUpdate = function() {
+                    return requestAnimationFrame(n.update)
+                }, this.update = oe(this.update.bind(this)), this.options = se({}, t.Defaults, r), this.state = {
+                    isDestroyed: !1,
+                    isCreated: !1,
+                    scrollParents: []
+                }, this.reference = o.jquery ? o[0] : o, this.popper = i.jquery ? i[0] : i, this.options.modifiers = {}, Object.keys(se({}, t.Defaults.modifiers, r.modifiers)).forEach(function(e) {
+                    n.options.modifiers[e] = se({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {})
+                }), this.modifiers = Object.keys(this.options.modifiers).map(function(e) {
+                    return se({
+                        name: e
+                    }, n.options.modifiers[e])
+                }).sort(function(e, t) {
+                    return e.order - t.order
+                }), this.modifiers.forEach(function(t) {
+                    t.enabled && e(t.onLoad) && t.onLoad(n.reference, n.popper, n.options, t, n.state)
+                }), this.update();
+                var p = this.options.eventsEnabled;
+                p && this.enableEventListeners(), this.state.eventsEnabled = p
+            }
+            return re(t, [{
+                key: 'update',
+                value: function() {
+                    return k.call(this)
+                }
+            }, {
+                key: 'destroy',
+                value: function() {
+                    return D.call(this)
+                }
+            }, {
+                key: 'enableEventListeners',
+                value: function() {
+                    return A.call(this)
+                }
+            }, {
+                key: 'disableEventListeners',
+                value: function() {
+                    return I.call(this)
+                }
+            }]), t
+        }();
+    return le.Utils = ('undefined' == typeof window ? global : window).PopperUtils, le.placements = de, le.Defaults = {
+        placement: 'bottom',
+        eventsEnabled: !0,
+        removeOnDestroy: !1,
+        onCreate: function() {},
+        onUpdate: function() {},
+        modifiers: {
+            shift: {
+                order: 100,
+                enabled: !0,
+                fn: function(e) {
+                    var t = e.placement,
+                        o = t.split('-')[0],
+                        i = t.split('-')[1];
+                    if (i) {
+                        var n = e.offsets,
+                            r = n.reference,
+                            p = n.popper,
+                            s = -1 !== ['bottom', 'top'].indexOf(o),
+                            d = s ? 'left' : 'top',
+                            a = s ? 'width' : 'height',
+                            f = {
+                                start: pe({}, d, r[d]),
+                                end: pe({}, d, r[d] + r[a] - p[a])
+                            };
+                        e.offsets.popper = se({}, p, f[i])
+                    }
+                    return e
+                }
+            },
+            offset: {
+                order: 200,
+                enabled: !0,
+                fn: function(e, t) {
+                    var o, i = t.offset,
+                        n = e.placement,
+                        r = e.offsets,
+                        p = r.popper,
+                        s = r.reference,
+                        d = n.split('-')[0];
+                    return o = R(+i) ? [+i, 0] : G(i, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e
+                },
+                offset: 0
+            },
+            preventOverflow: {
+                order: 300,
+                enabled: !0,
+                fn: function(e, t) {
+                    var o = t.boundariesElement || r(e.instance.popper);
+                    e.instance.reference === o && (o = r(o));
+                    var i = w(e.instance.popper, e.instance.reference, t.padding, o);
+                    t.boundaries = i;
+                    var n = t.priority,
+                        p = e.offsets.popper,
+                        s = {
+                            primary: function(e) {
+                                var o = p[e];
+                                return p[e] < i[e] && !t.escapeWithReference && (o = _(p[e], i[e])), pe({}, e, o)
+                            },
+                            secondary: function(e) {
+                                var o = 'right' === e ? 'left' : 'top',
+                                    n = p[o];
+                                return p[e] > i[e] && !t.escapeWithReference && (n = z(p[o], i[e] - ('right' === e ? p.width : p.height))), pe({}, o, n)
+                            }
+                        };
+                    return n.forEach(function(e) {
+                        var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary';
+                        p = se({}, p, s[t](e))
+                    }), e.offsets.popper = p, e
+                },
+                priority: ['left', 'right', 'top', 'bottom'],
+                padding: 5,
+                boundariesElement: 'scrollParent'
+            },
+            keepTogether: {
+                order: 400,
+                enabled: !0,
+                fn: function(e) {
+                    var t = e.offsets,
+                        o = t.popper,
+                        i = t.reference,
+                        n = e.placement.split('-')[0],
+                        r = V,
+                        p = -1 !== ['top', 'bottom'].indexOf(n),
+                        s = p ? 'right' : 'bottom',
+                        d = p ? 'left' : 'top',
+                        a = p ? 'width' : 'height';
+                    return o[s] < r(i[d]) && (e.offsets.popper[d] = r(i[d]) - o[a]), o[d] > r(i[s]) && (e.offsets.popper[d] = r(i[s])), e
+                }
+            },
+            arrow: {
+                order: 500,
+                enabled: !0,
+                fn: function(e, t) {
+                    if (!F(e.instance.modifiers, 'arrow', 'keepTogether')) return e;
+                    var o = t.element;
+                    if ('string' == typeof o) {
+                        if (o = e.instance.popper.querySelector(o), !o) return e;
+                    } else if (!e.instance.popper.contains(o)) return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e;
+                    var i = e.placement.split('-')[0],
+                        n = e.offsets,
+                        r = n.popper,
+                        p = n.reference,
+                        s = -1 !== ['left', 'right'].indexOf(i),
+                        d = s ? 'height' : 'width',
+                        a = s ? 'top' : 'left',
+                        f = s ? 'left' : 'top',
+                        l = s ? 'bottom' : 'right',
+                        m = O(o)[d];
+                    p[l] - m < r[a] && (e.offsets.popper[a] -= r[a] - (p[l] - m)), p[a] + m > r[l] && (e.offsets.popper[a] += p[a] + m - r[l]);
+                    var h = p[a] + p[d] / 2 - m / 2,
+                        g = h - c(e.offsets.popper)[a];
+                    return g = _(z(r[d] - m, g), 0), e.arrowElement = o, e.offsets.arrow = {}, e.offsets.arrow[a] = Math.round(g), e.offsets.arrow[f] = '', e
+                },
+                element: '[x-arrow]'
+            },
+            flip: {
+                order: 600,
+                enabled: !0,
+                fn: function(e, t) {
+                    if (W(e.instance.modifiers, 'inner')) return e;
+                    if (e.flipped && e.placement === e.originalPlacement) return e;
+                    var o = w(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement),
+                        i = e.placement.split('-')[0],
+                        n = L(i),
+                        r = e.placement.split('-')[1] || '',
+                        p = [];
+                    switch (t.behavior) {
+                        case fe.FLIP:
+                            p = [i, n];
+                            break;
+                        case fe.CLOCKWISE:
+                            p = K(i);
+                            break;
+                        case fe.COUNTERCLOCKWISE:
+                            p = K(i, !0);
+                            break;
+                        default:
+                            p = t.behavior;
+                    }
+                    return p.forEach(function(s, d) {
+                        if (i !== s || p.length === d + 1) return e;
+                        i = e.placement.split('-')[0], n = L(i);
+                        var a = e.offsets.popper,
+                            f = e.offsets.reference,
+                            l = V,
+                            m = 'left' === i && l(a.right) > l(f.left) || 'right' === i && l(a.left) < l(f.right) || 'top' === i && l(a.bottom) > l(f.top) || 'bottom' === i && l(a.top) < l(f.bottom),
+                            h = l(a.left) < l(o.left),
+                            c = l(a.right) > l(o.right),
+                            g = l(a.top) < l(o.top),
+                            u = l(a.bottom) > l(o.bottom),
+                            b = 'left' === i && h || 'right' === i && c || 'top' === i && g || 'bottom' === i && u,
+                            y = -1 !== ['top', 'bottom'].indexOf(i),
+                            w = !!t.flipVariations && (y && 'start' === r && h || y && 'end' === r && c || !y && 'start' === r && g || !y && 'end' === r && u);
+                        (m || b || w) && (e.flipped = !0, (m || b) && (i = p[d + 1]), w && (r = j(r)), e.placement = i + (r ? '-' + r : ''), e.offsets.popper = se({}, e.offsets.popper, S(e.instance.popper, e.offsets.reference, e.placement)), e = N(e.instance.modifiers, e, 'flip'))
+                    }), e
+                },
+                behavior: 'flip',
+                padding: 5,
+                boundariesElement: 'viewport'
+            },
+            inner: {
+                order: 700,
+                enabled: !1,
+                fn: function(e) {
+                    var t = e.placement,
+                        o = t.split('-')[0],
+                        i = e.offsets,
+                        n = i.popper,
+                        r = i.reference,
+                        p = -1 !== ['left', 'right'].indexOf(o),
+                        s = -1 === ['top', 'left'].indexOf(o);
+                    return n[p ? 'left' : 'top'] = r[t] - (s ? n[p ? 'width' : 'height'] : 0), e.placement = L(t), e.offsets.popper = c(n), e
+                }
+            },
+            hide: {
+                order: 800,
+                enabled: !0,
+                fn: function(e) {
+                    if (!F(e.instance.modifiers, 'hide', 'preventOverflow')) return e;
+                    var t = e.offsets.reference,
+                        o = T(e.instance.modifiers, function(e) {
+                            return 'preventOverflow' === e.name
+                        }).boundaries;
+                    if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) {
+                        if (!0 === e.hide) return e;
+                        e.hide = !0, e.attributes['x-out-of-boundaries'] = ''
+                    } else {
+                        if (!1 === e.hide) return e;
+                        e.hide = !1, e.attributes['x-out-of-boundaries'] = !1
+                    }
+                    return e
+                }
+            },
+            computeStyle: {
+                order: 850,
+                enabled: !0,
+                fn: function(e, t) {
+                    var o = t.x,
+                        i = t.y,
+                        n = e.offsets.popper,
+                        p = T(e.instance.modifiers, function(e) {
+                            return 'applyStyle' === e.name
+                        }).gpuAcceleration;
+                    void 0 !== p && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
+                    var s, d, a = void 0 === p ? t.gpuAcceleration : p,
+                        f = r(e.instance.popper),
+                        l = g(f),
+                        m = {
+                            position: n.position
+                        },
+                        h = {
+                            left: V(n.left),
+                            top: V(n.top),
+                            bottom: V(n.bottom),
+                            right: V(n.right)
+                        },
+                        c = 'bottom' === o ? 'top' : 'bottom',
+                        u = 'right' === i ? 'left' : 'right',
+                        b = B('transform');
+                    if (d = 'bottom' == c ? -l.height + h.bottom : h.top, s = 'right' == u ? -l.width + h.right : h.left, a && b) m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[u] = 0, m.willChange = 'transform';
+                    else {
+                        var y = 'bottom' == c ? -1 : 1,
+                            w = 'right' == u ? -1 : 1;
+                        m[c] = d * y, m[u] = s * w, m.willChange = c + ', ' + u
+                    }
+                    var v = {
+                        "x-placement": e.placement
+                    };
+                    return e.attributes = se({}, v, e.attributes), e.styles = se({}, m, e.styles), e
+                },
+                gpuAcceleration: !0,
+                x: 'bottom',
+                y: 'right'
+            },
+            applyStyle: {
+                order: 900,
+                enabled: !0,
+                fn: function(e) {
+                    return U(e.instance.popper, e.styles), Y(e.instance.popper, e.attributes), e.offsets.arrow && U(e.arrowElement, e.offsets.arrow), e
+                },
+                onLoad: function(e, t, o, i, n) {
+                    var r = x(n, t, e),
+                        p = E(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding);
+                    return t.setAttribute('x-placement', p), U(t, {
+                        position: 'absolute'
+                    }), o
+                },
+                gpuAcceleration: void 0
+            }
+        }
+    }, le
+});

File diff suppressed because it is too large
+ 30 - 0
privacy.html


File diff suppressed because it is too large
+ 30 - 0
quote.html


File diff suppressed because it is too large
+ 30 - 0
tech.html


Some files were not shown because too many files changed in this diff