@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Lora';
    font-style: italic;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Lora';
    font-style: italic;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.svg#OpenSans') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.svg#OpenSans') format('svg');
    font-display: swap
}


/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
@import url("aos.min.css");
@import url("academicons.min.css");
@import url("tailwind.css");
@import url("hover.min.css");
@import url("touch-menu-la.min.css");

html {
  line-height: 1.15;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
/* tambahan */
.dark-background {
  --background-color: #060606;
  --default-color: #ffffff;
  --heading-color: #ffffff;
  --surface-color: #252525;
  --contrast-color: #ffffff;
}

.header_warna {
  --tw-bg-opacity: 1;
  /* background-color: rgb(13, 68, 33); */
  background-image: repeating-linear-gradient(
      45deg,
      rgba(0, 0, 0, 0.05) 0px,
      rgba(0, 0, 0, 0.05) 2px,
      transparent 2px,
      transparent 4px
    ),
    /* linear-gradient(0deg, rgb(56 247 126), rgb(95, 227, 145)) !important; */
      /* linear-gradient(0deg, rgb(255, 255, 255), rgb(95, 227, 145)) !important; */
      /* linear-gradient(0deg, rgb(8 225 88), rgb(255, 255, 255)) !important; */
      /* linear-gradient(0deg, rgb(13, 68, 33), rgb(13, 68, 33)) !important; */
      linear-gradient(0deg, #54a003 , #54a003 ) !important;
}

.footer_warna {
  --tw-bg-opacity: 1;
  /* background-color: rgb(13, 68, 33); */
  background-image: repeating-linear-gradient(
      45deg,
      rgba(0, 0, 0, 0.05) 0px,
      rgba(0, 0, 0, 0.05) 2px,
      transparent 2px,
      transparent 4px
    ),
    linear-gradient(0deg, rgb(70, 143, 234), rgb(95, 227, 145)) !important;
}

.container {
  max-width: 1260px;
  margin: 0 auto;
  background-color: #f5f5f5;
  padding-top: 15px;
}

/*--------------------------------------------------------------
# Global Footer
--------------------------------------------------------------*/
.footerberkah {
  color: var(--default-color);
  background-color: var(--background-color);
  background: url("/public/site/footer-bg.jpg") top center no-repeat;
  background-size: cover;
  font-size: 14px;
  position: relative;
}

.footerberkah .container {
  position: relative;
}

.footerberkah:before {
  content: "";
  background: color-mix(in srgb, var(--background-color), transparent 20%);
  position: absolute;
  inset: 0;
}

.footerberkah .footer-top {
  padding-top: 50px;
}

.footerberkah .footer-about .logo {
  line-height: 1;
  margin-bottom: 25px;
}

.footerberkah .footer-about .logo img {
  max-height: 40px;
  margin-right: 6px;
}

.footerberkah .footer-about .logo span {
  color: var(--heading-color);
  font-family: var(--heading-font);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 1px;
}

.footerberkah .footer-about p {
  font-size: 14px;
  font-family: var(--heading-font);
}

.footerberkah .social-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 5px;
  border: 1px solid color-mix(in srgb, var(--default-color), transparent 50%);
  font-size: 16px;
  color: color-mix(in srgb, var(--default-color), transparent 20%);
  margin-right: 10px;
  transition: 0.3s;
}

.footerberkah .social-links a:hover {
  color: var(--accent-color);
  border-color: var(--accent-color);
}

.footerberkah h4 {
  font-size: 16px;
  font-weight: bold;
  position: relative;
  padding-bottom: 12px;
}

.footerberkah .footer-links {
  margin-bottom: 30px;
}

.footerberkah .footer-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footerberkah .footer-links ul i {
  padding-right: 2px;
  font-size: 12px;
  line-height: 0;
}

.footerberkah .footer-links ul li {
  padding: 10px 0;
  display: flex;
  align-items: center;
}

.footerberkah .footer-links ul li:first-child {
  padding-top: 0;
}

.footerberkah .footer-links ul a {
  color: color-mix(in srgb, var(--default-color), transparent 30%);
  display: inline-block;
  line-height: 1;
}

.footerberkah .footer-links ul a:hover {
  color: var(--accent-color);
}

.footerberkah .footer-contact p {
  margin-bottom: 5px;
}

.footerberkah .copyright {
  padding-top: 25px;
  padding-bottom: 25px;
  border-top: 1px solid
    color-mix(in srgb, var(--default-color), transparent 90%);
}

.footerberkah .copyright p {
  margin-bottom: 0;
}

.footerberkah .credits {
  margin-top: 8px;
  font-size: 13px;
}
/* akhir tambahan */

article,
aside,
footer,
header,
nav,
section {
  display: block;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
figcaption,
figure,
main {
  display: block;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}
b,
strong {
  font-weight: inherit;
}
b,
strong {
  font-weight: bolder;
  color: black;
}
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
dfn {
  font-style: italic;
}
mark {
  background-color: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}
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 {
  border-style: none;
  padding: 0;
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
details,
menu {
  display: block;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
template {
  display: none;
}
[hidden] {
  display: none;
}
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
@keyframes pkp_spin {
  0% {
    transform: rotateZ(-360deg);
    -webkit-transform: rotateZ(-360deg);
    -moz-transform: rotateZ(-360deg);
    -o-transform: rotateZ(-360deg);
  }
  100% {
    transform: rotateZ(0deg);
    -webkit-transform: rotateZ(0deg);
    -moz-transform: rotateZ(0deg);
    -o-transform: rotateZ(0deg);
  }
}
@-webkit-keyframes pkp_spin {
  0% {
    transform: rotateZ(-360deg);
    -webkit-transform: rotateZ(-360deg);
    -moz-transform: rotateZ(-360deg);
    -o-transform: rotateZ(-360deg);
  }
  100% {
    transform: rotateZ(0deg);
    -webkit-transform: rotateZ(0deg);
    -moz-transform: rotateZ(0deg);
    -o-transform: rotateZ(0deg);
  }
}
@-moz-keyframes pkp_spin {
  0% {
    transform: rotateZ(-360deg);
    -webkit-transform: rotateZ(-360deg);
    -moz-transform: rotateZ(-360deg);
    -o-transform: rotateZ(-360deg);
  }
  100% {
    transform: rotateZ(0deg);
    -webkit-transform: rotateZ(0deg);
    -moz-transform: rotateZ(0deg);
    -o-transform: rotateZ(0deg);
  }
}
@-o-keyframes pkp_spin {
  0% {
    transform: rotateZ(-360deg);
    -webkit-transform: rotateZ(-360deg);
    -moz-transform: rotateZ(-360deg);
    -o-transform: rotateZ(-360deg);
  }
  100% {
    transform: rotateZ(0deg);
    -webkit-transform: rotateZ(0deg);
    -moz-transform: rotateZ(0deg);
    -o-transform: rotateZ(0deg);
  }
}
.pkp_button,
.pkp_button_primary,
.pkp_button_offset,
.pkp_button_link {
  display: inline-block;
  padding: 0 0.5em;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 3px;
  font-size: 13px;
  line-height: 2rem;
  font-weight: 700;
  color: #0f4c21;
  text-decoration: none;
  box-shadow: 0 1px 0 #ddd;
  cursor: pointer;
}
.pkp_button:hover,
.pkp_button:focus,
.pkp_button_primary:hover,
.pkp_button_primary:focus,
.pkp_button_offset:hover,
.pkp_button_offset:focus,
.pkp_button_link:hover,
.pkp_button_link:focus {
  color: #0f4c21;
  border-color: #0f4c21;
  outline: 0;
}
.pkp_button:active,
.pkp_button_primary:active,
.pkp_button_offset:active,
.pkp_button_link:active {
  box-shadow: 0 0 2px;
}
.pkp_button:disabled,
.pkp_button_primary:disabled,
.pkp_button_offset:disabled,
.pkp_button_link:disabled {
  color: #aaa;
}
.pkp_button:disabled:hover,
.pkp_button_primary:disabled:hover,
.pkp_button_offset:disabled:hover,
.pkp_button_link:disabled:hover {
  color: #aaa;
  border-color: #ddd;
  cursor: not-allowed;
}
.pkp_button_primary {
  color: #fff;
  background: #0f4c21;
  border-color: #0f4c21;
  box-shadow: 0 1px 0 #0f4c21;
}
.pkp_button_primary:hover,
.pkp_button_primary:focus {
  background: #54a003 ;
  color: #fff;
}
.pkp_button_primary:disabled,
.pkp_button_primary:disabled:hover {
  color: #fff;
  background: #1f2937;
  border-color: #1f2937;
  box-shadow: 0 1px 0 #888;
  cursor: not-allowed;
}
.pkp_button_offset {
  color: #ff4040;
}
.pkp_button_offset:hover,
.pkp_button_offset:focus {
  border-color: #ff4040;
  color: #ff4040;
}
.pkp_button_offset:disabled,
.pkp_button_offset:disabled:hover {
  color: #fff;
  background: #1f2937;
  border-color: #1f2937;
  box-shadow: 0 1px 0 #888;
  cursor: not-allowed;
}
.pkp_button_link {
  box-shadow: none;
  border-color: transparent;
}
.pkp_button_link:disabled:hover {
  border-color: transparent;
}
.pkp_spinner:after {
  display: inline-block;
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  vertical-align: middle;
  -webkit-animation: pkp_spin 0.6s linear infinite;
  -moz-animation: pkp_spin 0.6s linear infinite;
  -ms-animation: pkp_spin 0.6s linear infinite;
  -o-animation: pkp_spin 0.6s linear infinite;
  animation: pkp_spin 0.6s linear infinite;
  border-radius: 100%;
  border-top: 1px solid #888;
  border-bottom: 1px solid transparent;
  border-left: 1px solid #888;
  border-right: 1px solid transparent;
  border-top-color: rgba(0, 0, 0, 0.5);
  border-left-color: rgba(0, 0, 0, 0.5);
  content: "";
  opacity: 1;
}
.pkp_loading {
  font-size: 13px;
  line-height: 20px;
}
.pkp_loading .pkp_spinner {
  margin-right: 0.25em;
}
.pkp_unstyled_list,
.cmp_article_list,
.cmp_form .tagit,
.ui-autocomplete,
.cmp_breadcrumbs_backup ol,
.pkp_site_nav_menu ul,
.pkp_page_index .journals ul,
.page_catalog_category .subcategories ul,
.page_issue_archive .issues_archive,
.page_register .context_optin .contexts,
.obj_article_details .authors,
.obj_article_details .galleys_links,
.obj_article_details .supplementary_galleys_links,
.obj_article_summary .galleys_links,
.obj_issue_toc .articles,
.obj_issue_toc .galleys_links,
.pkp_block .content ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pkp_caret {
  content: " ";
  display: inline-block;
  width: 0;
  height: 0;
  border: 0.25rem solid transparent;
  vertical-align: middle;
}
.pkp_caret_down {
  border-top: 0.375rem solid;
}
.pkp_caret_right {
  border-left: 0.375rem solid;
}
.pkp_screen_reader,
.cmp_skip_to_content a,
.pkp_page_index .journals h2,
.pkp_page_index .cmp_announcements h2,
.page_register .context_optin .roles legend {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  left: -2000px;
}
.pkp_screen_reader:focus,
.pkp_page_index .cmp_announcements h2:focus {
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #000;
  display: block;
  font-size: 14px;
  height: auto;
  line-height: normal;
  padding: 1rem;
  position: absolute;
  left: 0.5rem;
  top: 0.5rem;
  text-decoration: none;
  width: auto;
  z-index: 100000;
}
.pkp_helpers_clear:before,
.pkp_helpers_clear:after {
  content: " ";
  display: table;
}
.pkp_helpers_clear:after {
  clear: both;
}
.pkp_help_link {
  display: inline-block;
  padding: 0.25rem 0;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  box-shadow: none;
  color: #0f4c21;
  z-index: 3;
}
.pkp_help_link:hover,
.pkp_help_link:focus {
  color: #54a003 ;
}
.pkp_help_link:focus {
  outline: 0;
  box-shadow: 0 0 0 3px #0f4c21;
  border-radius: 3px;
}
.pkp_help_tab,
.pkp_help_modal {
  position: absolute;
  top: -2rem;
  right: 2rem;
  padding: 0.5rem 1em;
  background: #fff;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.pkp_help_modal {
  top: 0.5rem;
  padding: 0.5rem;
  right: 3rem;
  border: none;
}
.pkp_uploadedFile_summary {
  font-size: 13px;
  line-height: 20px;
}
.pkp_uploadedFile_summary .filename .display {
  line-height: 2rem;
}
.pkp_uploadedFile_summary .filename .edit {
  line-height: 20px;
}
.pkp_uploadedFile_summary .details {
  margin-top: 0.5rem;
  color: #fff;
}
.pkp_uploadedFile_summary .details > span {
  margin-left: 2rem;
}
.pkp_uploadedFile_summary .details > span:first-child {
  margin-left: 0;
}
.pkp_uploadedFile_summary .details > span:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  padding-right: 0.25em;
  color: #aaa;
}
.pkp_uploadedFile_summary .pixels:before {
  content: "\f108";
}
.pkp_uploadedFile_summary .print {
  margin-left: 2rem;
}
.pkp_uploadedFile_summary .print:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  padding-right: 0.25em;
  color: #aaa;
  content: "\f02f";
}
.pkp_uploadedFile_summary .type:before {
  content: "\f016";
}
.pkp_uploadedFile_summary .type.pdf:before {
  content: "\f1c1";
}
.pkp_uploadedFile_summary .type.doc:before,
.pkp_uploadedFile_summary .type.docx:before {
  content: "\f1c2";
}
.pkp_uploadedFile_summary .type.xls:before,
.pkp_uploadedFile_summary .type.xlsx:before {
  content: "\f1c3";
}
.pkp_uploadedFile_summary .file_size:before {
  content: "\f0a0";
}
.pkp_helpers_invisible {
  visibility: hidden;
}
.pkp_helpers_display_none {
  display: none !important;
}
.pkp_helpers_align_left {
  float: left;
}
.pkp_helpers_align_right {
  float: right;
}
.pkp_helpers_text_left {
  text-align: left;
}
.pkp_helpers_text_right {
  text-align: right;
}
.pkp_helpers_text_center {
  text-align: center;
}
.pkp_helpers_text_justify {
  text-align: justify;
}
.pkp_helpers_title_padding {
  padding: 5px !important;
}
.pkp_helpers_image_left {
  float: left;
  margin: 4px 10px 4px 0;
}
.pkp_helpers_image_right {
  float: right;
  margin: 4px 0 4px 10px;
}
.pkp_helpers_container_center {
  margin: 0 auto;
}
.pkp_helpers_debug,
.pkp_helpers_debug div {
  border: 1px dashed #f00;
  padding: 2px;
}
.pkp_helpers_flatlist {
  margin: 0;
  padding: 0;
}
.pkp_helpers_flatlist li {
  float: left;
  position: relative;
}
.pkp_helpers_bulletlist li {
  list-style: disc;
}
.pkp_helpers_icon_link_valign {
  line-height: 24px;
}
.pkp_helpers_moveicon {
  cursor: move;
}
.pkp_helpers_full {
  width: 100%;
}
.pkp_helpers_half {
  width: 50%;
}
.pkp_helpers_third {
  width: 33%;
}
.pkp_helpers_quarter {
  width: 25%;
}
.pkp_helpers_fifth {
  width: 20%;
}
.pkp_helpers_threeQuarter {
  width: 75%;
}
.pkp_helpers_underline:after {
  border-bottom: 2px solid #fff;
  content: " ";
  display: block;
}
.pkp_helpers_dotted_underline {
  border-bottom: 1px dotted #999;
}
.pkp_helpers_black_bg {
  background-color: black;
}
.pkp_helpers_text_warn {
  color: #d00a6c;
}
.pkp_helpers_text_primary {
  color: black;
}
.NMI_TYPE_CUSTOM_EDIT {
  display: none;
}
.pkp_controllers_extrasOnDemand {
  display: inline-block;
}
.pkp_controllers_extrasOnDemand > a {
  position: relative;
  display: block;
  padding: 0 1rem 0 4rem;
  border: 1px solid #e5e7eb;
  line-height: 3rem;
  text-decoration: none;
}
.pkp_controllers_extrasOnDemand > a .fa {
  position: absolute;
  top: 0;
  left: 0;
  line-height: 3rem;
  width: 3rem;
  text-align: center;
  border-right: 1px solid #e5e7eb;
}
.pkp_controllers_extrasOnDemand > a .fa:before {
  display: inline-block;
  transition: transform 0.3s;
}
.pkp_controllers_extrasOnDemand > .container {
  padding: 0 1rem;
  max-height: 0;
  transition: padding 0.3s;
  overflow: hidden;
}
.pkp_controllers_extrasOnDemand .toggleExtras-active {
  display: none;
}
.pkp_controllers_extrasOnDemand.active .toggleExtras-active {
  display: block;
}
.pkp_controllers_extrasOnDemand.active .toggleExtras-inactive {
  display: none;
}
.pkp_controllers_extrasOnDemand.active > a .fa:before {
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.pkp_controllers_extrasOnDemand.active > .container {
  padding: 1rem;
  max-height: none;
  border: 1px solid #e5e7eb;
  border-top: none;
  overflow: auto;
}
.pkp_controllers_extrasOnDemand > a:hover,
.pkp_controllers_extrasOnDemand > a:focus,
.pkp_controllers_extrasOnDemand.active > a {
  color: #fff;
  background: #0f4c21;
  border-color: #0f4c21;
}
.pkp_controllers_extrasOnDemand > a:hover .fa,
.pkp_controllers_extrasOnDemand > a:focus .fa,
.pkp_controllers_extrasOnDemand.active > a .fa {
  border-color: rgba(255, 255, 255, 0.2);
}
.row:before,
.row:after {
  content: " ";
  display: table;
}
.row:after {
  clear: both;
}
.cmp_button,
.cmp_form .buttons button,
.pkp_search button[type="submit"],
.page_lost_password .buttons button,
.page_search .submit button,
.block_make_submission a {
  display: inline-block;
  padding: 0 1em;
  border: 1px solid rgba(0, 0, 0, 0.4);
  font-size: 13px;
  line-height: 28px;
  font-weight: 700;
  color: #0f4c21;
  text-decoration: none;
}
.cmp_button:hover,
.cmp_button:focus,
.page_search .submit button:hover,
.page_search .submit button:focus {
  border: 1px solid #54a003 ;
  box-shadow: 0 0 5px #54a003 ;
  outline: none;
}
.cmp_button_wire,
.obj_galley_link {
  display: inline-block;
  padding: 0 1em;
  background: #fff;
  border: 1px solid #16532c;
  font-size: 13px;
  line-height: 28px;
  color: #16532c;
  text-decoration: none;
}
.cmp_button_wire:hover,
.cmp_button_wire:focus,
.obj_galley_link:hover,
.obj_galley_link:focus {
  background: #16532c;
  color: #fff;
}
.cmp_article_list > li {
  margin-bottom: 30px;
}
.cmp_article_list > li:before,
.cmp_article_list > li:after {
  content: " ";
  display: table;
}
.cmp_article_list > li:after {
  clear: both;
}
.cmp_form fieldset {
  margin: 0 0 20px;
  padding: 0;
  border: none;
}
.cmp_form legend {
  margin-bottom: 10px;
  font-size: 16px;
  font-weight: 700;
  line-height: 20px;
}
.cmp_form .fields > div {
  position: relative;
  padding-bottom: 30px;
}
.cmp_form .fields > div .error {
  position: absolute;
  left: 0.5em;
  bottom: 11px;
  padding: 0 0.5em;
  background: #ff4040;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
  font-size: 13px;
  line-height: 20px;
  font-weight: 700;
  color: #fff;
}
.cmp_form label {
  display: block;
  cursor: pointer;
}
.cmp_form .label {
  display: block;
  font-size: 13px;
  font-weight: 400;
  font-style: italic;
}
.cmp_form .label .required {
  color: #ff4040;
}
.cmp_form input[type="text"],
.cmp_form input[type="email"],
.cmp_form input[type="password"],
.cmp_form input[type="url"],
.cmp_form input[type="tel"],
.cmp_form select,
.cmp_form textarea,
.cmp_form .tagit,
.pkp_search input[type="text"] {
  padding: 0 0.5em;
  width: 100%;
  height: 28px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.4);
  font-size: 13px;
  line-height: 28px;
  transition: all 0.3s ease-in-out;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
}
.cmp_form input[type="text"]:focus,
.cmp_form input[type="email"]:focus,
.cmp_form input[type="password"]:focus,
.cmp_form input[type="url"]:focus,
.cmp_form input[type="tel"]:focus,
.cmp_form select:focus,
.cmp_form textarea:focus {
  border: 1px solid #54a003 ;
  box-shadow: 0 0 5px #54a003 ;
  outline: none;
}
.cmp_form textarea {
  width: 100%;
  height: 8em;
}
.cmp_form .pkp_form_error {
  margin-bottom: 10px;
  border-radius: 3px;
  padding: 0 0.5em;
  font-weight: 700;
  font-size: 13px;
  background: #ff4040;
  color: #fff;
}
.cmp_form label > input[type="checkbox"],
.cmp_form label > input[type="radio"] {
  margin-right: 0.25em;
}
.cmp_form .buttons:before,
.cmp_form .buttons:after {
  content: " ";
  display: table;
}
.cmp_form .buttons:after {
  clear: both;
}
.cmp_form .buttons button:focus,
.cmp_form .buttons button:hover {
  color: #fff;
  background-color: #54a003 ;
}
.cmp_form .buttons a {
  font-size: 13px;
  line-height: 30px;
  margin-left: 1em;
}
.cmp_form .description {
  margin-top: 0;
  font-size: 0.75rem;
  line-height: 1.5em;
  color: #fff;
}
@media (min-width: 480px) {
  .cmp_form input[type="text"],
  .cmp_form input[type="email"],
  .cmp_form input[type="password"],
  .cmp_form input[type="url"],
  .cmp_form input[type="tel"],
  .cmp_form select,
  .cmp_form .tagit,
  .pkp_search input[type="text"] {
    max-width: 20em;
  }
}
.cmp_form .tagit {
  max-width: 100%;
  height: auto;
}
.cmp_form .tagit:before,
.cmp_form .tagit:after {
  content: " ";
  display: table;
}
.cmp_form .tagit:after {
  clear: both;
}
.cmp_form .tagit > li {
  display: inline-block;
}
.cmp_form .tagit > li.tagit-choice {
  margin-right: 0.5em;
  padding-left: 0.5em;
  background: #ddd;
  border-radius: 3px;
  line-height: 20px;
}
.cmp_form .tagit input[type="text"] {
  display: inline-block;
  border: none;
  width: inherit;
  line-height: 30px;
  height: 30px;
  vertical-align: top;
  padding: 0 0.5em;
}
.cmp_form .tagit-close {
  padding: 0 0.5em;
  color: #ff4040;
}
.ui-autocomplete {
  width: 20em;
  padding: 2px;
  border-radius: 3px;
  background: #54a003 ;
}
.ui-autocomplete:before {
  content: "";
  position: absolute;
  top: -5px;
  left: 1em;
  width: 0;
  height: 0;
  color: #54a003 ;
  border-bottom: 5px solid;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  vertical-align: middle;
}
.ui-autocomplete > li {
  padding: 5px;
  font-size: 13px;
  line-height: 20px;
  color: #fff;
  cursor: pointer;
}
.ui-autocomplete > li:hover,
.ui-autocomplete > li:focus {
  background: #fff;
  color: rgba(0, 0, 0, 0.87);
}
.cmp_pagination {
  text-align: right;
}
.cmp_pagination:before,
.cmp_pagination:after {
  content: " ";
  display: table;
}
.cmp_pagination:after {
  clear: both;
}
.cmp_pagination .prev {
  float: left;
  margin-right: 0.5em;
  text-decoration: none;
}
.cmp_pagination .prev:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f177";
  margin-right: 0.5em;
}
.cmp_pagination .next {
  margin-left: 0.5em;
  text-decoration: none;
}
.cmp_pagination .next:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f178";
  margin-left: 0.5em;
}
.cmp_edit_link {
  display: inline-block;
  margin-left: 1em;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  vertical-align: middle;
  text-decoration: none;
}
.cmp_edit_link:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f040";
}
.cmp_search_filter {
  margin-bottom: 10px;
  font-size: 13px;
}
.cmp_search_filter:last-child {
  margin-bottom: 0;
}
.cmp_search_filter label {
  font-style: italic;
}
.cmp_search_filter .delete {
  color: #ff4040;
}
.cmp_notification {
  display: block;
  width: 100%;
  padding: 20px;
  margin-bottom: 40px;
  background: #ddd;
  border-left: 5px solid #0f4c21;
  font-size: 14px;
  line-height: 20px;
}
.cmp_notification .success {
  border-color: #00b24e;
}
.cmp_notification .no {
  border-color: #ff4040;
}
.cmp_breadcrumbs {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  margin-bottom: 1rem;
}
.cmp_breadcrumbs ol {
  list-style: none;
  display: inline-table;
}
.cmp_breadcrumbs ol li {
  display: inline-flex;
  /* background: #f3f5fa; */
  background: #54a003 ;
  padding: 10px 10px 10px 23px;
  position: relative;
  margin: 0 10px 10px 0;
  color: #fff;
  font-weight: bold;
  /* background: #9ca3af; */
  /* background: #54a003 ; */
}
.cmp_breadcrumbs ol li:first-child {
  padding: 10px 10px 10px 15px;
}
.cmp_breadcrumbs ol li:hover {
  cursor: pointer;
  /* background: #54a003 ; */
  background: #f3f5fa;
  color: #000;
}
.cmp_breadcrumbs ol li:hover a,
.cmp_breadcrumbs ol li:hover span {
  /* color: #fff; */
  color: #000;
  font-weight: bold;
}
.cmp_breadcrumbs ol li:hover a:after,
.cmp_breadcrumbs ol li:hover span:after {
  /* border-left-color: #54a003 ; */
  border-left-color: #f3f5fa;
  color: #000;
}
.cmp_breadcrumbs ol li:first-child a:before,
.cmp_breadcrumbs ol li:first-child span:before {
  display: none;
}
.cmp_breadcrumbs ol li:last-child a:after,
.cmp_breadcrumbs ol li:last-child span:after {
  display: none;
}
.cmp_breadcrumbs ol li a,
.cmp_breadcrumbs ol li span {
  font-size: 14px;
  text-decoration: none;
  /* color: rgba(0, 0, 0, 0.87); */
  color: rgb(255 255 255);
}
.cmp_breadcrumbs ol li a:after,
.cmp_breadcrumbs ol li span:after {
  content: "";
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  /* border-left: 18px solid #f3f5fa; */
  border-left: 18px solid #54a003 ;
  position: absolute;
  right: -18px;
  top: 0;
  z-index: 1;
}
.cmp_breadcrumbs ol li a:before,
.cmp_breadcrumbs ol li span:before {
  content: "";
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-left: 18px solid #fff;
  position: absolute;
  left: 0;
  top: 0;
}
.cmp_breadcrumbs ol li span.separator {
  display: none;
}
.cmp_breadcrumbs ol li.current {
  background: #54a003 ;
}
.cmp_breadcrumbs ol li.current a,
.cmp_breadcrumbs ol li.current span {
  color: #fff;
  font-weight: bold;
}
.cmp_breadcrumbs ol li.current a:after,
.cmp_breadcrumbs ol li.current span:after {
  border-left-color: #54a003 ;
  color: #fff;
}
.cmp_breadcrumbs_backup {
  display: inline-block;
}
.cmp_breadcrumbs_backup ol {
  margin-bottom: 30px;
  padding: 5px 0;
  line-height: 20px;
  font-size: 13px;
}
.cmp_breadcrumbs_backup li {
  display: inline-block;
}
.cmp_breadcrumbs_backup a {
  display: inline-block;
  text-decoration: none;
}
.cmp_breadcrumbs_backup .separator {
  color: #fff;
  padding: 0 0.5em;
}
.cmp_breadcrumbs_backup .current {
  color: #fff;
}
.cmp_breadcrumbs_backup .current h1 {
  margin: 0;
  font-family: "Karla", sans-serif;
  font-size: 13px;
  font-weight: 400;
}
.cmp_back_link {
  margin-top: 20px;
}
.cmp_skip_to_content a {
  display: block;
  padding: 1em;
  z-index: 99999;
  background: #fff;
  transform: translateX(-50%);
}
.cmp_skip_to_content a:focus {
  clip: auto;
  top: 0;
  left: 50%;
}
.cmp_table {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-bottom: none;
  border-collapse: collapse;
}
.cmp_table th,
.cmp_table td {
  padding: 0.5em;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
}
.cmp_table th {
  font-weight: 700;
}
.affiliations {
  color: #1c1c1c;
  font-weight: 400;
}
body {
  font-family: "Karla", sans-serif;
  font-size: 14px;
  line-height: 20px;
  /* line-height: 1.43rem; */
  color: rgba(0, 0, 0, 0.87);
  /* background: #fff; */
  background-image: url(/public/site/batik.png);
}
a:hover,
a:focus {
  color: #54a003 ;
}
.pkp_site_name_wrapper,
.pkp_navigation_primary_wrapper,
.pkp_navigation_user,
.pkp_search_mobile,
.pkp_structure_content,
.pkp_structure_footer {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding-left: 10px;
  padding-right: 10px;
}
.pkp_site_name_wrapper:before,
.pkp_navigation_primary_wrapper:before,
.pkp_navigation_user:before,
.pkp_search_mobile:before,
.pkp_structure_content:before,
.pkp_structure_footer:before,
.pkp_site_name_wrapper:after,
.pkp_navigation_primary_wrapper:after,
.pkp_navigation_user:after,
.pkp_search_mobile:after,
.pkp_structure_content:after,
.pkp_structure_footer:after {
  content: " ";
  display: table;
}
.pkp_site_name_wrapper:after,
.pkp_navigation_primary_wrapper:after,
.pkp_navigation_user:after,
.pkp_search_mobile:after,
.pkp_structure_content:after,
.pkp_structure_footer:after {
  clear: both;
}
@media (min-width: 768px) {
  .pkp_site_name_wrapper,
  .pkp_navigation_primary_wrapper,
  .pkp_navigation_user,
  .pkp_search_mobile,
  .pkp_structure_content,
  .pkp_structure_footer {
    width: 768px;
    padding: 0;
  }
}
@media (min-width: 992px) {
  .pkp_site_name_wrapper,
  .pkp_navigation_primary_wrapper,
  .pkp_navigation_user,
  .pkp_search_mobile,
  .pkp_structure_content,
  .pkp_structure_footer {
    width: 992px;
  }
}
@media (min-width: 1200px) {
  .pkp_site_name_wrapper,
  .pkp_navigation_primary_wrapper,
  .pkp_navigation_user,
  .pkp_search_mobile,
  .pkp_structure_content,
  .pkp_structure_head, /*tambahan*/
  .pkp_structure_footer_wrapper,
  .pkp_structure_footer {
    width: 1200px;
    margin: 0 auto; /*tambahan*/
  }
}
.has_site_logo .pkp_site_name,
.has_site_logo .pkp_navigation_primary_wrapper {
  width: auto;
}
.has_site_logo .pkp_head_wrapper {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding-right: 0;
}
.has_site_logo .pkp_head_wrapper:before,
.has_site_logo .pkp_head_wrapper:after {
  content: " ";
  display: table;
}
.has_site_logo .pkp_head_wrapper:after {
  clear: both;
}
@media (min-width: 768px) {
  .has_site_logo .pkp_head_wrapper {
    width: 768px;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 992px) {
  .has_site_logo .pkp_head_wrapper {
    width: 992px;
  }
}
@media (min-width: 1200px) {
  .has_site_logo .pkp_head_wrapper {
    width: 1200px;
  }
}
.pkp_structure_main {
  padding: 10px;
}
@media (min-width: 480px) {
  .pkp_structure_main {
    padding: 20px;
  }
}
@media (min-width: 768px) {
  .pkp_structure_main:before,
  .pkp_structure_main:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 1px;
    background: transparent;
  }
  .pkp_structure_main:after {
    left: 768px;
  }
}
@media (min-width: 992px) {
  .pkp_structure_content {
    padding-top: 0px;
  }
  .pkp_structure_sidebar {
    float: right;
    width: 300px;
  }
  .pkp_structure_main {
    float: left;
    padding: 20px 30px 30px;
    width: 692px;
  }
  .pkp_structure_main:after {
    left: 692px;
  }
}
@media (min-width: 1200px) {
  .pkp_structure_main {
    width: 900px;
  }
  .pkp_structure_main:after {
    left: 900px;
  }
}
@media (min-width: 992px) {
  .pkp_structure_main:first-child:last-child {
    float: none;
    margin-left: auto;
    margin-right: auto;
    margin-top: 40px;
  }
  .pkp_structure_main:first-child:last-child:before {
    left: 150px;
  }
  .pkp_structure_main:first-child:last-child:after {
    left: auto;
    right: 150px;
  }
}
img {
  max-width: 100%;
  width: auto;
  height: auto;
}
.pkp_structure_head {
  /* background-color: #fff; */
  background-color: rgb(255, 247, 148);
  font-weight: 700;
}
.pkp_head_wrapper {
  position: relative;
}
.pkp_site_name_wrapper {
  /* height: 40px;
  padding-left: 2.143rem;
  padding-right: 2.143rem; */
  padding: 1rem;
}
@media (min-width: 992px) {
  .pkp_site_name_wrapper {
    height: auto;
  }
}
.pkp_site_name {
  position: absolute;
  left: 40px;
  right: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 10px;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #fff;
  font-family: "Rubik", sans-serif;
  font-size: 13px;
}
.pkp_site_name > a {
  padding-top: 10px;
  padding-bottom: 10px;
}
.pkp_site_name > a:focus {
  outline: 0;
}
.pkp_site_name .is_img {
  display: inline-block;
  /* padding-top: 5px;
  padding-bottom: 5px; */

  margin-top: 0.357rem;
  margin-bottom: 0.357rem;
  padding: 0;
}
.pkp_site_name .is_img:focus {
  box-shadow: 0 0 1px #fff;
}
.pkp_site_name .is_img img {
  display: block;
  max-height: 160%;
  /* max-height: 30px; */
  /* max-width: 100%; */
  max-width: 110%;
  /* width: auto; */
  height: auto;
}
.pkp_site_name .is_text {
  font-family: "Rubik", sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 40px;
  color: #fff;
  text-decoration: none;
}
.pkp_site_name .is_text:focus {
  text-decoration: underline;
}
.pkp_navigation_primary_wrapper {
  padding-left: 0;
  padding-right: 0;
}
.pkp_site_nav_menu {
  position: absolute;
  width: 100%;
  top: 100%;
  background: transparent;
  left: 0;
  padding: 10px;
  z-index: 9999;
}
.pkp_site_nav_menu .pkp_nav_list {
  padding-left: 0;
  margin-left: 0;
}
.pkp_site_nav_menu ul ul {
  padding-left: 0.5rem;
}
.pkp_site_nav_menu a {
  display: inline-block;
  padding: 0.125rem 0;
  color: #fff;
  text-decoration: none;
}
.pkp_site_nav_menu a:hover,
.pkp_site_nav_menu a:focus {
  color: #fff;
  text-decoration: underline;
}
.pkp_site_nav_menu #siteNav {
  position: absolute;
  top: 0;
  height: 0;
}
.pkp_navigation_user.pkp_navigation_user {
  margin-left: auto;
  margin-right: auto;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.pkp_navigation_user .task_count {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: 0.5em;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  line-height: 20px;
  text-align: center;
  font-size: 12px;
}
.pkp_navigation_user > li > a .task_count {
  display: none;
}
.pkp_navigation_user > li > ul a .task_count {
  display: inline-block;
  background: rgba(255, 255, 255, 0.8);
  color: #0f4c21;
}
.pkp_navigation_user > li > ul a:hover .task_count,
.pkp_navigation_user > li > ul a:focus .task_count {
  background: #fff;
}
@media (min-width: 992px) {
  .pkp_head_wrapper {
    padding-top: 0px;
  }
  .pkp_site_nav_toggle {
    display: none;
  }
  .pkp_site_name {
    position: relative;
    width: 100%;
    left: auto;
    right: auto;
    padding: 0;
    white-space: normal;
    font-size: 2em;
    background: transparent;
    /* padding-top: 1.071rem; tambahan */
    /* padding-bottom: 1.071rem; tambahan */
  }
  .pkp_site_name .is_text {
    font-family: "Rubik", sans-serif;
    font-size: 24px;
    line-height: 30px;
  }
  .pkp_site_name .is_img img {
    max-height: 56px;
  }
  .pkp_site_nav_menu {
    display: block;
    position: static;
    top: auto;
    padding: 0;
  }
  .pkp_site_nav_menu ul ul {
    padding-left: 0;
  }
  .has_site_logo .pkp_head_wrapper {
    padding-top: 0px;
  }
  .pkp_nav_list {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .pkp_nav_list li {
    position: relative;
    display: inline-block;
  }
  .pkp_nav_list a {
    display: inline-block;
    padding-left: 10px;
    padding-right: 10px;
    text-decoration: none;
    padding-top: 5px;
    padding-bottom: 5px;
    color: #fff;
    font-weight: 700;
  }
  .pkp_nav_list a:hover,
  .pkp_nav_list a:focus {
    text-decoration: none;
  }
  .pkp_nav_list ul {
    position: absolute;
    top: 100%;
    left: -9999px;
    z-index: 1000;
    width: 15em;
    margin: 0;
    padding: 0;
    background: #fff;
    border-radius: 3px;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
  }
  .pkp_nav_list ul li {
    display: block;
  }
  .pkp_nav_list ul a {
    display: block;
    padding-left: 10px;
    border-bottom: 5px solid transparent;
    color: #0f4c21;
  }
  .pkp_nav_list ul a:hover,
  .pkp_nav_list ul a:focus {
    outline: 0;
    background: transparent;
    border-color: #0f4c21;
    color: #0f4c21;
  }
  .pkp_nav_list > li:hover ul {
    left: 0;
  }
  .pkp_nav_list [aria-haspopup]:after {
    position: relative;
    display: inline-block;
    content: "";
    width: 0;
    height: 0;
    margin-left: 0.25em;
    border-top: 4px solid;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    vertical-align: middle;
    overflow: hidden;
  }
  .pkp_navigation_primary {
    text-align: center;
  }
  .pkp_navigation_primary > li:hover,
  .pkp_navigation_primary > li:focus {
    background-color: #54a003 ;
    color: #154f00;
  }
  .pkp_navigation_primary > li:hover a,
  .pkp_navigation_primary > li:focus a {
    color: #fff;
  }
  .pkp_navigation_primary > li > a {
    /* margin: 0 1em; */
    border-bottom: 2px solid transparent;
    color: rgba(0, 0, 0, 0.87);
    text-decoration: none;
  }
  .pkp_navigation_primary > li > a:hover {
    color: #fff;
    outline: 0;
  }
  .pkp_navigation_primary > li > a:focus {
    color: #54a003 ;
    outline: 0;
  }
  .pkp_navigation_primary > li:first-child a {
    margin-left: 0;
  }
  .pkp_navigation_primary > li:last-child a {
    margin-right: 0;
  }
  .pkp_navigation_primary > li:hover ul {
    left: 14px;
  }
  .pkp_navigation_primary ul a {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .pkp_navigation_primary [aria-haspopup]:hover {
    border-color: transparent;
  }
  .pkp_navigation_primary .dropdown-menu a:focus,
  .pkp_navigation_primary .dropdown-menu a:hover {
    border-color: #0f4c21;
  }
  .dropdown-menu {
    display: none;
  }
  .dropdown-menu a {
    color: rgba(0, 0, 0, 0.87) !important;
  }
  .dropdown-menu.show {
    display: block;
  }
  [data-toggle="dropdown"]:hover + .dropdown-menu,
  .dropdown-menu:hover {
    display: block;
  }
  .pkp_navigation_user_wrapper {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    padding-left: 10px;
    padding-right: 10px;
    text-align: right;
    padding-top: 0;
    margin-top: 0;
    border-top: none;
    z-index: 1000;
  }
  .pkp_navigation_user {
    text-align: right;
    font-size: 13px;
    padding-right: 20px;
  }
  .pkp_navigation_user.pkp_navigation_user {
    margin: 0;
    padding: 0;
    border: none;
  }
  .pkp_navigation_user li {
    text-align: left;
  }
  .pkp_navigation_user a {
    padding-top: 5px;
    padding-bottom: 5px;
    line-height: 20px;
  }
  .pkp_navigation_user > li > a:focus {
    outline: 0;
    border-bottom: 2px solid;
  }
  .pkp_navigation_user ul {
    width: 10em;
  }
  .pkp_navigation_user > li:hover ul {
    right: 0;
    left: auto;
  }
  .pkp_navigation_user > li > a,
  .pkp_navigation_user > li.in_focus > a,
  .pkp_navigation_user > li > a:hover,
  .pkp_navigation_user > li > a:focus {
    font-weight: 900;
    color: #154f00;
  }
  .pkp_navigation_user > li:last-child > a {
    padding-right: 0;
  }
  .pkp_navigation_user > li > a .task_count {
    display: inline-block;
  }
  .pkp_navigation_user > li > ul a .task_count {
    background: rgba(0, 0, 0, 0.2);
  }
}
@media (min-width: 992px) and (min-width: 992px) {
  .pkp_navigation_primary {
    display: inline-block;
    max-width: 80%;
    text-align: left;
  }
}
.pkp_structure_main h1 {
  font-family: "Rubik", sans-serif;
  font-size: 24px;
  line-height: 30px;
  font-weight: 700;
}
.pkp_structure_main h2 {
  font-family: "Rubik", sans-serif;
  font-size: 18px;
  line-height: 30px;
  font-weight: 700;
}
.pkp_structure_main h3 {
  font-family: "Rubik", sans-serif;
  font-size: 16px;
  line-height: 20px;
  font-weight: 700;
}
.pkp_structure_main h4 {
  font-size: 14px;
  line-height: 20px;
  font-weight: 700;
}
.pkp_structure_main h5 {
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}
.pkp_structure_main h6 {
  font-size: 13px;
  line-height: 20px;
  font-weight: 700;
}
.pkp_structure_main h1,
.pkp_structure_main h2,
.pkp_structure_main h3,
.pkp_structure_main h4 {
  margin: 0 0 20px;
}
.pkp_structure_main h5,
.pkp_structure_main h6 {
  margin: 20px 0;
}
.pkp_structure_main p {
  line-height: 25px;
  margin-bottom: 20px;
}
.pkp_structure_main p:last-child {
  margin-bottom: 0;
}
.pkp_structure_main .page h1 {
  margin-top: 0;
}
.pkp_structure_main .page > .cmp_edit_link {
  float: right;
  padding: 5px 0;
  line-height: 30px;
}
.pkp_structure_main .page .monograph_count {
  float: right;
  padding: 10px 0;
  font-size: 13px;
  color: #fff;
}
.pkp_structure_main .page .about_section {
  color: #fff;
  line-height: 30px;
}
.pkp_structure_main .page .about_section:before,
.pkp_structure_main .page .about_section:after {
  content: " ";
  display: table;
}
.pkp_structure_main .page .about_section:after {
  clear: both;
}
.pkp_structure_main .page .about_section .cover {
  float: right;
  width: 20%;
  margin-left: 10%;
  margin-right: 10%;
}
.pkp_structure_main .page .about_section .cover img {
  display: block;
  margin: 0 auto;
}
.pkp_structure_main .page .about_section .description p:first-child {
  margin-top: 0;
}
.pkp_structure_main .page .about_section .description p:last-child {
  margin-bottom: 0;
}
@media (min-width: 480px) {
  .pkp_structure_main .page .about_section {
    font-size: 16px;
    font-style: italic;
  }
}
.pkp_site_nav_toggle {
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 0;
  background: none;
  box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2),
    -1px 0 0 rgba(255, 255, 255, 0.2);
  z-index: 999;
}
.pkp_site_nav_toggle:focus {
  outline: 1px dotted #fff;
  box-shadow: none;
}
.pkp_site_nav_toggle > span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 24px;
  height: 19px;
  border-bottom: 3px solid #fff;
  text-indent: -9999px;
  overflow: hidden;
}
.pkp_site_nav_toggle > span:before,
.pkp_site_nav_toggle > span:after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  background: #fff;
}
.pkp_site_nav_toggle > span:before {
  top: 0;
}
.pkp_site_nav_toggle > span:after {
  top: 8px;
}
.pkp_site_nav_toggle--transform > span {
  border-bottom: 0;
  overflow: visible;
}
.pkp_site_nav_toggle--transform > span:before {
  top: 7px;
  transform: rotate(-405deg) translateY(1px) translateX(-2px);
  -webkit-transform: rotate(-405deg) translateY(1px) translateX(-2px);
}
.pkp_site_nav_toggle--transform > span:after {
  top: 14px;
  transform: rotate(405deg) translateY(-3px) translateX(-4px);
  -webkit-transform: rotate(405deg) translateY(-3px) translateX(-4px);
}
.pkp_site_nav_menu {
  display: none;
}
.pkp_site_nav_menu--isOpen {
  display: block;
}
body.navIsOpen .siteHeader__details {
  right: 0;
}
body.navIsOpen .siteHeader__screen {
  display: block;
  opacity: 0.5;
}
body.navIsOpen .siteHeader__navToggleIcon > span:first-child {
  transform: rotate(45deg);
  top: 18px;
}
body.navIsOpen .siteHeader__navToggleIcon > span:nth-child(2) {
  opacity: 0;
}
body.navIsOpen .siteHeader__navToggleIcon > span:last-child {
  transform: rotate(-45deg);
  top: 18px;
}
@media (min-width: 992px) {
  .pkp_site_nav_menu {
    display: block;
  }
}
.pkp_search {
  position: relative;
  display: block;
  padding: 10px 0;
  font-size: 13px;
  line-height: 20px;
  text-align: left;
}
.pkp_search input[type="text"] {
  line-height: 34px;
  height: 34px;
  padding-right: 120px;
}
.pkp_search button[type="submit"] {
  position: absolute;
  top: 12px;
  right: 2px;
}
.pkp_search .search_controls {
  display: none;
  position: relative;
}
.pkp_search .search_controls a {
  text-decoration: none;
}
.pkp_search .search_prompt {
  transition: background-color 0.4s;
}
.pkp_search .search_prompt:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f002";
  line-height: 18px;
}
.pkp_search .search_cancel,
.pkp_search .search_loading {
  display: none;
  position: absolute;
  top: 8px;
  right: 100%;
  margin-right: 20px;
  text-align: center;
  color: #fff;
}
.pkp_search .search_cancel {
  width: 25px;
}
.pkp_search .search_cancel:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f00d";
  width: 20px;
  height: 20px;
  line-height: 20px;
}
.pkp_search .search_cancel:hover,
.pkp_search .search_cancel:focus {
  outline: none;
  border-radius: 50%;
  background: #ff4040;
  color: #fff;
}
.pkp_search .search_loading {
  display: none;
}
.pkp_search .search_loading:after {
  display: inline-block;
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  vertical-align: middle;
  -webkit-animation: pkp_spin 0.6s linear infinite;
  -moz-animation: pkp_spin 0.6s linear infinite;
  -ms-animation: pkp_spin 0.6s linear infinite;
  -o-animation: pkp_spin 0.6s linear infinite;
  animation: pkp_spin 0.6s linear infinite;
  border-radius: 100%;
  border-top: 1px solid #888;
  border-bottom: 1px solid transparent;
  border-left: 1px solid #888;
  border-right: 1px solid transparent;
  border-top-color: rgba(0, 0, 0, 0.5);
  border-left-color: rgba(0, 0, 0, 0.5);
  content: "";
  opacity: 1;
}
.pkp_search_mobile {
  margin-top: 1rem;
  padding-bottom: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.pkp_search_mobile .search_controls {
  display: none;
}
.pkp_search_desktop {
  display: none;
  float: right;
  padding: 5px 0;
  font-size: 13px;
  line-height: 20px;
  text-align: center;
}
@media (min-width: 480px) {
  .pkp_search input[type="text"] {
    line-height: 30px;
    height: 30px;
  }
  .pkp_search button[type="submit"] {
    position: relative;
    top: auto;
    right: auto;
  }
}
@media (min-width: 992px) {
  .pkp_search_mobile {
    display: none;
  }
  .pkp_search_desktop {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    height: 40px;
    min-width: 25%;
    padding: 0;
    font-size: 14px;
    line-height: 20px;
    transition: min-width 0.4s;
    text-align: right;
    overflow-x: hidden;
  }
  .pkp_search_desktop button {
    position: absolute;
    top: 0;
    left: -9999px;
  }
  .pkp_search_desktop input[type="text"] {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    padding: 0;
    border: none;
  }
  .pkp_search_desktop .search_controls {
    display: inline-block;
  }
  .pkp_search_desktop .search_prompt {
    display: inline-block;
    position: relative;
    padding: 10px 20px;
    color: #fff;
    cursor: pointer;
  }
  .pkp_search_desktop .search_prompt:before {
    font-size: 16px;
    margin-right: 0.25em;
  }
  .pkp_search_desktop .search_prompt:hover,
  .pkp_search_desktop .search_prompt:focus {
    outline: 0;
    padding-bottom: 8px;
    border-bottom: 2px solid #fff;
  }
  .pkp_search_desktop.is_open {
    min-width: 100%;
    background: #fff;
  }
  .pkp_search_desktop.is_open input[type="text"] {
    width: 100%;
    max-width: 100%;
    line-height: 40px;
    height: 40px;
    top: 0;
    left: 0;
    padding-left: 0.5em;
    padding-right: 180px;
    border: none;
    border-bottom: 1px solid #e5e7eb;
    font-size: 16px;
    background: #fff;
  }
  .pkp_search_desktop.is_open input[type="text"]:hover,
  .pkp_search_desktop.is_open input[type="text"]:focus {
    outline: 0;
  }
  .pkp_search_desktop.is_open .search_cancel {
    display: block;
  }
  .pkp_search_desktop.is_open .search_prompt {
    padding-bottom: 9px;
    background: #fff;
    border-left: 1px solid #e5e7eb;
    border-bottom: 1px solid #ddd;
    color: #0f4c21;
  }
  .pkp_search_desktop.is_open .search_prompt:hover,
  .pkp_search_desktop.is_open .search_prompt:focus {
    border-bottom-color: #0f4c21;
  }
  .pkp_search_desktop.is_searching input[type="text"] {
    opacity: 0.5;
  }
  .pkp_search_desktop.is_searching input[type="text"]:hover,
  .pkp_search_desktop.is_searching input[type="text"]:focus {
    border-color: #fff;
  }
  .pkp_search_desktop.is_searching .search_prompt {
    background: #fff;
    border-left: 1px solid #e5e7eb;
    color: #0f4c21;
  }
  .pkp_search_desktop.is_searching .search_prompt:hover,
  .pkp_search_desktop.is_searching .search_prompt:focus {
    background: #fff;
    color: #54a003 ;
  }
  .pkp_search_desktop.is_searching .search_cancel {
    display: none;
  }
  .pkp_search_desktop.is_searching .search_loading {
    display: block;
  }
}
.pkp_page_index .journals {
  margin-top: 30px;
}
.pkp_page_index .journals > ul > li {
  margin: 30px 0;
}
.pkp_page_index .journals img {
  display: block;
  max-height: 20em;
}
.pkp_page_index .journals h3 {
  margin: 10px 0;
  font-size: 14px;
  font-weight: 700;
}
.pkp_page_index .journals h3 a {
  text-decoration: none;
}
.pkp_page_index .journals p {
  margin: 10px 0;
}
.pkp_page_index .journals .links li {
  display: inline-block;
  margin: 0 10px 10px 0;
}
@media (min-width: 768px) {
  .pkp_page_index .journals > ul > li {
    margin: 0 -20px;
    padding: 20px;
    border-top: 1px solid #e5e7eb;
  }
  .pkp_page_index .journals > ul > li:before,
  .pkp_page_index .journals > ul > li:after {
    content: " ";
    display: table;
  }
  .pkp_page_index .journals > ul > li:after {
    clear: both;
  }
  .pkp_page_index .journals .thumb {
    float: left;
    width: 25%;
    padding-right: 20px;
  }
  .pkp_page_index .journals .thumb + .body {
    float: right;
    width: 75%;
  }
}
@media (min-width: 992px) {
  .pkp_page_index .journals > ul > li {
    margin: 0 -30px;
    padding: 30px;
  }
  .pkp_page_index .journals .thumb {
    padding-right: 30px;
  }
}
.pkp_page_index .homepage_image,
.pkp_page_index .additional_content {
  margin-left: -10px;
  margin-right: -10px;
}
@media (min-width: 480px) {
  .pkp_page_index .homepage_image,
  .pkp_page_index .additional_content {
    margin-left: -20px;
    margin-right: -20px;
  }
}
@media (min-width: 992px) {
  .pkp_page_index .homepage_image,
  .pkp_page_index .additional_content {
    margin-left: -30px;
    margin-right: -30px;
  }
}
.pkp_page_index .homepage_image img {
  display: block;
  width: 100%;
  height: auto;
}
@media (min-width: 992px) {
  .pkp_page_index .homepage_image {
    margin-top: -30px;
  }
}
.pkp_page_index .homepage_about {
  padding-top: 30px;
  padding-bottom: 30px;
}
.pkp_page_index .homepage_about h2 {
  margin-top: -10px;
}
.pkp_page_index .cmp_announcements:before,
.pkp_page_index .cmp_announcements:after {
  content: " ";
  display: table;
}
.pkp_page_index .cmp_announcements:after {
  clear: both;
}
.pkp_page_index .cmp_announcements > .obj_announcement_summary {
  position: relative;
  padding: 30px 10px;
}
.pkp_page_index .cmp_announcements .more {
  position: relative;
}
.pkp_page_index .cmp_announcements .more .obj_announcement_summary {
  padding: 10px;
}
.pkp_page_index .cmp_announcements .more h4 {
  font-size: 13px;
}
@media (min-width: 480px) {
  .pkp_page_index .cmp_announcements > .obj_announcement_summary,
  .pkp_page_index .cmp_announcements .more .obj_announcement_summary {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (min-width: 768px) {
  .pkp_page_index .cmp_announcements > .obj_announcement_summary {
    float: left;
    width: 65%;
  }
  .pkp_page_index .cmp_announcements > .obj_announcement_summary:before {
    content: " ";
    position: absolute;
    top: 0;
    right: -1px;
    width: 1px;
    height: 100%;
  }
  .pkp_page_index .cmp_announcements .more {
    float: right;
    width: 35%;
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .pkp_page_index .cmp_announcements .more:before {
    content: " ";
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
  }
}
@media (min-width: 992px) {
  .pkp_page_index .cmp_announcements > .obj_announcement_summary,
  .pkp_page_index .cmp_announcements .more .obj_announcement_summary {
    padding-left: 30px;
    padding-right: 30px;
  }
}
.pkp_page_index .current_issue .current_issue_title {
  margin: 0px 0px 20px 0px;
  font-weight: 700;
}
.pkp_page_index .current_issue .read_more {
  display: inline-block;
  position: relative;
  padding-right: 30px;
  font-size: 13px;
  font-weight: 700;
  line-height: 30px;
  color: #0f4c21;
  text-decoration: none;
  margin-bottom: 20px;
}
.pkp_page_index .current_issue .read_more:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f054";
  position: absolute;
  top: 2px;
  right: 0;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
}
.pkp_page_index .current_issue .read_more:hover,
.pkp_page_index .current_issue .read_more:focus {
  color: #54a003 ;
}
@media (min-width: 768px) {
  .pkp_page_index .current_issue .section:last-child {
    margin-bottom: 0;
  }
}
.pkp_page_index .additional_content {
  padding: 30px 10px 0 10px;
  border-top: 1px solid #e5e7eb;
}
@media (min-width: 480px) {
  .pkp_page_index .additional_content {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (min-width: 992px) {
  .pkp_page_index .additional_content {
    padding-left: 30px;
    padding-right: 30px;
  }
}
.pkp_page_index .additional_content > p:first-child {
  margin-top: 0;
}
.pkp_page_index .additional_content > p:last-child {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .pkp_page_index .cmp_announcements + .additional_content {
    border-top: none;
  }
}
.page_catalog_category .article_count {
  float: right;
  padding: 10px 0;
  font-size: 13px;
  color: #fff;
}
.page_catalog_category .about_section .cover {
  float: right;
  width: 20%;
  margin-left: 10%;
  margin-right: 10%;
}
.page_catalog_category .subcategories li {
  padding-top: 5px;
  padding-bottom: 5px;
}
.page_catalog_category .subcategories a {
  text-decoration: none;
}
@media (min-width: 768px) {
  .page_catalog_category .subcategories {
    position: relative;
    margin-top: 60px;
    margin-left: -20px;
    margin-right: -20px;
    padding: 30px;
    border-top: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
  }
  .page_catalog_category .subcategories h2 {
    position: absolute;
    top: -15px;
    left: 20px;
    margin: 0;
    padding-left: 10px;
    padding-right: 10px;
    line-height: 30px;
    background: #fff;
    color: #fff;
  }
}
@media (min-width: 992px) {
  .page_catalog_category .subcategories {
    margin-left: -30px;
    margin-right: -30px;
  }
}
@media (min-width: 768px) {
  .page_catalog_category .cmp_article_list {
    padding-top: 20px;
  }
  .page_catalog_category h2.title {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    left: -2000px;
  }
  .page_catalog_category h2.title:focus {
    background-color: #fff;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    color: #000;
    display: block;
    font-size: 14px;
    height: auto;
    line-height: normal;
    padding: 1rem;
    position: absolute;
    left: 0.5rem;
    top: 0.5rem;
    text-decoration: none;
    width: auto;
    z-index: 100000;
  }
}
@media (min-width: 992px) {
  .page_catalog_category .cmp_article_list {
    padding-top: 30px;
  }
}
.page_contact .address,
.page_contact .phone,
.page_contact .email {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 13px;
}
.page_contact .address {
  margin-top: 0;
}
.page_contact .address p {
  margin: 0;
}
.page_contact .label {
  display: block;
  font-weight: 700;
}
.page_contact .contact.support {
  margin-top: 40px;
}
@media (min-width: 768px) {
  .page_contact .contact_section:before,
  .page_contact .contact_section:after {
    content: " ";
    display: table;
  }
  .page_contact .contact_section:after {
    clear: both;
  }
  .page_contact .contact {
    float: left;
    width: 50%;
  }
  .page_contact .contact.primary {
    padding-right: 20px;
  }
  .page_contact .contact.support {
    margin-top: 0;
  }
}
.page_issue_archive .issues_archive {
  margin-left: -10px;
  margin-right: -10px;
  border-top: 1px solid #e5e7eb;
}
.page_issue_archive .issues_archive > li {
  padding: 30px 10px;
  border-bottom: 1px solid #e5e7eb;
}
@media (min-width: 480px) {
  .page_issue_archive .issues_archive {
    margin-left: -20px;
    margin-right: -20px;
  }
  .page_issue_archive .issues_archive > li {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (min-width: 992px) {
  .page_issue_archive .issues_archive {
    margin-left: -30px;
    margin-right: -30px;
  }
  .page_issue_archive .issues_archive > li {
    padding-left: 30px;
    padding-right: 30px;
  }
}
.page_issue_archive .cmp_pagination {
  margin-top: 20px;
}
.page_login .login {
  margin-bottom: 0;
  max-width: 17em;
}
.page_login .login input[type="text"],
.page_login .login input[type="password"] {
  width: 100%;
}
.page_login .password a {
  font-size: 13px;
  font-style: normal;
}
.page_login .remember {
  padding-bottom: 0;
}
.page_login .remember .label {
  display: inline;
  font-style: normal;
}
.page_login .buttons button {
  float: right;
}
.page_login .buttons a {
  float: right;
  margin-right: 1em;
  margin-left: 0;
}
.page_lost_password .lost_password {
  margin-bottom: 0;
  max-width: 17em;
}
.page_lost_password .lost_password input[type="text"] {
  width: 100%;
}
.page_lost_password .pkp_form_error {
  margin: 20px 0;
  padding: 10px;
  background: #ff4040;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}
.page_lost_password .buttons:before,
.page_lost_password .buttons:after {
  content: " ";
  display: table;
}
.page_lost_password .buttons:after {
  clear: both;
}
.page_lost_password .buttons button {
  float: right;
}
.page_lost_password .buttons a {
  float: right;
  font-size: 13px;
  line-height: 30px;
  margin-right: 1em;
}
.page_register .required_label {
  font-size: 13px;
  line-height: 20px;
  color: #fff;
  margin-bottom: 20px;
}
.page_register .consent {
  margin-bottom: 0;
}
.page_register .fields .reviewer_interests {
  max-height: 0;
  padding-bottom: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s;
}
.page_register .fields .reviewer_interests.is_visible {
  max-height: 400px;
  overflow: visible;
  padding-bottom: 30px;
  opacity: 1;
}
.page_register .context_optin .contexts > li {
  margin-bottom: 1em;
}
.page_register .context_optin .contexts > li:last-child {
  margin-bottom: 0;
}
.page_register .context_optin .roles {
  padding: 5px 0;
  margin-bottom: 0;
}
.page_register .context_optin .roles label {
  display: inline-block;
  margin-right: 1em;
  font-size: 13px;
  line-height: 20px;
}
.page_register .context_optin .context_privacy {
  position: absolute;
  left: -9999px;
  padding: 5px 0;
  font-size: 13px;
  line-height: 20px;
}
.page_register .context_optin .context_privacy_visible {
  position: relative;
  left: auto;
}
.page_register #formErrors {
  margin: 20px 0;
  padding: 10px;
  background: #ff4040;
  color: #fff;
}
.page_register #formErrors .pkp_form_error {
  padding: 0px 0;
  font-size: 13px;
  font-weight: bold;
  line-height: 20px;
}
.page_register #formErrors .pkp_form_error_list {
  margin: 0;
  padding-left: 20px;
  font-size: 13px;
  line-height: 20px;
}
.page_register #formErrors .pkp_form_error_list a {
  color: #fff;
}
@media (min-width: 768px) {
  .page_register .identity li {
    display: inline-block;
    padding-right: 1em;
    max-width: 13em;
  }
}
@media (min-width: 1200px) {
  .page_register .identity li {
    max-width: 17em;
  }
}
.pkp_op_register .ui-helper-hidden-accessible {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  left: -2000px;
}
.pkp_op_register .ui-helper-hidden-accessible:focus {
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #000;
  display: block;
  font-size: 14px;
  height: auto;
  line-height: normal;
  padding: 10px;
  position: absolute;
  left: 5px;
  top: 5px;
  text-decoration: none;
  width: auto;
  z-index: 100000;
}
.pkp_op_register .ui-autocomplete {
  position: absolute !important;
}
.page_search .search_input .query {
  width: 100%;
  max-width: 100%;
  height: 38px;
  font-size: 18px;
  line-height: 38px;
}
.page_search .search_advanced {
  border: 1px solid #e5e7eb;
  padding: 0 20px 20px;
}
.page_search .search_advanced:before,
.page_search .search_advanced:after {
  content: " ";
  display: table;
}
.page_search .search_advanced:after {
  clear: both;
}
.page_search .search_advanced legend {
  padding: 10px 20px;
  margin: 0;
  font-weight: 400;
  color: #fff;
}
.page_search .date_range {
  float: left;
  width: 50%;
}
.page_search .date_range .from {
  margin-bottom: 20px;
}
.page_search .date_range [name*="Year"] {
  width: 6em;
}
.page_search .date_range [name*="Day"] {
  width: 4em;
}
.page_search .date_range [name*="Month"] {
  width: 10em;
}
.page_search .author {
  width: 50%;
  float: right;
}
.page_search .submit {
  text-align: right;
}
.page_search .submit button {
  position: relative;
  padding-right: 45px;
  border-right: none;
  padding-right: 1em;
  padding-left: 45px;
  border-right: 1px solid rgba(0, 0, 0, 0.4);
  border-left: none;
}
.page_search .submit button:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f002";
  position: absolute;
  top: -1px;
  right: 0;
  width: 30px;
  height: 30px;
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  line-height: 30px;
  text-align: center;
  background: #0f4c21;
  box-shadow: inset 0 -1em 1em rgba(0, 0, 0, 0.2);
  color: #fff;
}
.page_search .submit button:hover:after,
.page_search .submit button:focus:after {
  box-shadow: inset 0 1em 1em rgba(0, 0, 0, 0.2);
  background: #54a003 ;
}
.page_search .submit button:after {
  right: auto;
  left: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}
.page_search .submit button:after {
  right: auto;
  left: 0;
}
.page_search .search_results {
  margin: 40px 0;
}
.page_search .search_results .obj_article_summary {
  padding: 20px 0;
}
.page_search .cmp_pagination {
  margin-top: 20px;
  font-size: 13px;
  line-height: 20px;
  color: #fff;
  text-align: right;
}
.page_search .cmp_pagination a {
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.page_section .section_description {
  margin-bottom: 2em;
}
.page_submissions .submission_sections ul,
.page_submissions .submission_checklist ul {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
  border: none;
}
.page_submissions .submission_sections li,
.page_submissions .submission_checklist li {
  position: relative;
  border-bottom: none;
}
.page_submissions .submission_sections h3 {
  margin-top: 0;
}
.page_submissions .submission_sections .cmp_notification {
  margin-bottom: 0;
}
.page_submissions .submission_checklist li {
  padding: 20px;
}
.page_submissions .submission_checklist li .fa {
  top: 50%;
  left: 5px;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  position: absolute;
  font-size: 18px;
  color: #00b24e;
}
@media (min-width: 480px) {
  .page_submissions .submission_sections li .fa {
    top: 22px;
    left: 17px;
  }
  .page_submissions .submission_sections ul,
  .page_submissions .submission_checklist ul {
    border: 1px solid #e5e7eb;
    border-bottom: none;
  }
  .page_submissions .submission_sections li,
  .page_submissions .submission_checklist li {
    padding: 20px 20px 20px 40px;
    border-bottom: 1px solid #e5e7eb;
  }
  .page_submissions .submission_sections li .fa,
  .page_submissions .submission_checklist li .fa {
    left: 20px;
  }
}
.header_view {
  z-index: 2;
  position: relative;
  background: #54a003 ;
}
.header_view a {
  line-height: 30px;
  text-decoration: none;
}
.header_view .return {
  position: absolute;
  top: 0;
  left: 0;
  width: 30px;
  height: 30px;
  line-height: 30px;
  background: #fff;
  color: #54a003 ;
  text-align: center;
}
.header_view .return:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f060";
}
.header_view .return:hover,
.header_view .return:focus {
  background: #0f4c21;
  color: #fff;
}
.header_view .title {
  display: block;
  padding-left: 40px;
  max-width: 100%;
  overflow-x: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  color: #fff;
}
.header_view .title:hover,
.header_view .title:focus {
  background: #0f4c21;
}
.header_view .download {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 30px;
  background: #fff;
  text-align: center;
}
.header_view .download:hover,
.header_view .download:focus {
  background: #0f4c21;
  color: #fff;
}
.header_view .download:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f019";
}
.header_view .download .label {
  display: none;
}
@media (min-width: 768px) {
  .header_view .title {
    font-size: 14px;
  }
  .header_view .download {
    width: auto;
    padding: 0 20px;
  }
  .header_view .download .label {
    display: inline-block;
  }
  .header_view .download .pkp_screen_reader,
  .header_view .download .pkp_page_index .cmp_announcements h2 {
    display: none;
  }
}
.galley_view {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow-y: hidden;
}
.galley_view iframe {
  width: 100%;
  height: 100%;
  padding-top: 30px;
  border: none;
}
.galley_view.galley_view_with_notice iframe {
  padding-top: 90px;
}
.galley_view .galley_view_notice {
  position: absolute;
  top: 30px;
  width: 100%;
  height: 60px;
  background: #ff4040;
}
.galley_view .galley_view_notice_message {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-weight: 700;
  text-align: center;
}
.galley_view .galley_view_notice_message a {
  color: #fff;
  text-decoration: underline;
}
.obj_announcement_full h1 {
  margin: 0;
}
.obj_announcement_full .date {
  margin: 16px 0;
  color: rgba(0, 0, 0, 0.87);
}
.obj_announcement_full .date:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f073";
  margin-right: 0.5em;
  color: #ddd;
}
.obj_announcement_full .description {
  margin-top: 40px;
}
.obj_announcement_full .description p:first-child {
  margin-top: 0;
}
.obj_announcement_full .description p:last-child {
  margin-bottom: 0;
}
.obj_announcement_summary h2,
.obj_announcement_summary h3,
.obj_announcement_summary h4 {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
}
.obj_announcement_summary h2 a,
.obj_announcement_summary h3 a,
.obj_announcement_summary h4 a {
  text-decoration: none;
}
.obj_announcement_summary .date {
  font-size: 13px;
  line-height: 25px;
  color: rgba(0, 0, 0, 0.87);
}
.obj_announcement_summary .date:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f073";
  margin-right: 0.5em;
  font-size: 14px;
  color: #ddd;
}
.obj_announcement_summary .summary {
  font-size: 13px;
  line-height: 20px;
  margin-top: 10px;
}
.obj_announcement_summary .summary p:first-child {
  margin-top: 0;
}
.obj_announcement_summary .summary p:last-child {
  margin-bottom: 0;
}
.obj_announcement_summary .read_more {
  display: inline-block;
  position: relative;
  padding-right: 30px;
  font-size: 13px;
  font-weight: 700;
  line-height: 30px;
  color: #0f4c21;
  text-decoration: none;
}
.obj_announcement_summary .read_more:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f054";
  position: absolute;
  top: 2px;
  right: 0;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
}
.obj_announcement_summary .read_more:hover,
.obj_announcement_summary .read_more:focus {
  color: #54a003 ;
}
.obj_article_details > .page_title {
  margin-bottom: 0;
}
.obj_article_details > .subtitle {
  margin: 0;
  font-size: 14px;
  line-height: 30px;
  font-weight: 400;
}
.obj_article_details .row {
  margin-top: 30px;
}
.obj_article_details .item {
  padding-top: 10px;
}
.obj_article_details .item > *:first-child {
  margin-top: 0;
}
.obj_article_details .item > *:last-child {
  margin-bottom: 0;
}
.obj_article_details .sub_item {
  margin-bottom: 20px;
}
.obj_article_details .sub_item:last-child {
  margin-bottom: 0;
}
.obj_article_details .main_entry {
  width: 100%;
}
.obj_article_details .main_entry .item .label {
  margin: 0 0 20px;
  font-family: "Rubik", sans-serif;
  font-size: 16px;
  font-weight: 700;
}
.obj_article_details .main_entry .item.doi .label,
.obj_article_details .main_entry .item.keywords .label {
  display: inline;
  font-size: 14px;
}
.obj_article_details .main_entry .sub_item .label {
  font-size: 14px;
}
.obj_article_details .authors li {
  margin-bottom: 10px;
}
.obj_article_details .authors .name {
  font-weight: bold;
  display: block;
}
.obj_article_details .authors .orcid {
  display: block;
  font-size: 14px;
  line-height: 20px;
}
.obj_article_details .authors .orcid a {
  vertical-align: middle;
}
.obj_article_details .authors .orcid_icon {
  width: 20px;
  height: 20px;
}
.obj_article_details .authors .affiliation {
  font-size: 13px;
  color: rgba(0, 0, 0, 0.87);
}
.obj_article_details .author_bios .sub_item .label {
  margin-bottom: 0;
}
.obj_article_details .author_bios .sub_item .value > p:first-child {
  margin-top: 0;
}
.obj_article_details .item.doi,
.obj_article_details .item.keywords {
  padding-top: 0;
}
.obj_article_details .galleys_links li {
  display: inline-block;
}
.obj_article_details .supplementary_galleys_links {
  margin-top: 10px;
}
.obj_article_details .copyright {
  font-size: 13px;
  line-height: 20px;
}
.obj_article_details .copyright a[rel="license"] + p {
  margin-top: 0;
}
.obj_article_details .entry_details {
  margin-left: -20px;
  margin-right: -20px;
  border-top: 1px solid #e5e7eb;
}
.obj_article_details .entry_details .item {
  padding: 20px;
  border-bottom: 1px solid #e5e7eb;
  word-wrap: break-word;
}
.obj_article_details .entry_details .item:last-child {
  border-bottom: none;
}
.obj_article_details .entry_details .item .label {
  margin: 0;
  font-family: "Rubik", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #fff;
}
.obj_article_details .versions ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.obj_article_details .citation_display .value {
  font-size: 0.75rem;
}
.obj_article_details .citation_display .csl-left-margin {
  display: none;
}
.obj_article_details .citation_display [aria-hidden="true"] {
  display: none;
}
.obj_article_details .citation_display .citation_formats {
  margin-top: 1em;
  border: 1px solid rgba(0, 0, 0, 0.4);
  border-radius: 3px;
}
.obj_article_details .citation_display .citation_formats_button {
  position: relative;
  background: transparent;
  border: none;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  box-shadow: none;
  padding: 0 1em;
  width: 100%;
  font-family: "Rubik", sans-serif;
  font-weight: 400;
  color: rgba(0, 0, 0, 0.87);
  text-align: left;
}
.obj_article_details .citation_display .citation_formats_button:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f0d7";
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%);
}
.obj_article_details
  .citation_display
  .citation_formats_button[aria-expanded="true"]:after {
  content: "\f0d8";
}
.obj_article_details .citation_display .citation_formats_button:focus {
  background: #ddd;
  outline: 0;
}
.obj_article_details .citation_display .citation_formats_styles {
  margin: 0;
  padding: 0;
  list-style: none;
}
.obj_article_details .citation_display .citation_formats_styles a {
  display: block;
  padding: 0.5em 1em;
  border-bottom: 1px solid #e5e7eb;
  text-decoration: none;
}
.obj_article_details .citation_display .citation_formats_styles a:focus {
  background: #ddd;
  outline: 0;
}
.obj_article_details
  .citation_display
  .citation_formats_styles
  li:last-child
  a {
  border-bottom: none;
}
.obj_article_details .citation_display .citation_formats_list .label {
  padding: 1em 1em 0.25em 1em;
}
.obj_article_details .citation_display .citation_formats_styles + .label {
  border-top: 1px solid #e5e7eb;
}
.obj_article_details .citation_display span {
  margin-right: 0.5em;
}
@media (min-width: 480px) {
  .obj_article_details .entry_details {
    margin-left: -30px;
    margin-right: -30px;
  }
}
@media (min-width: 768px) {
  .obj_article_details .row {
    margin-left: -20px;
    margin-right: -20px;
    border-top: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
  }
  .obj_article_details .item .label {
    margin: 0 0 20px;
    font-family: "Rubik", sans-serif;
    font-size: 16px;
    font-weight: 700;
  }
  .obj_article_details .item.doi .label,
  .obj_article_details .item.keywords .label {
    display: inline;
    font-size: 14px;
  }
  .obj_article_details .entry_details {
    float: left;
    width: 300px;
    margin: 0 0 0 -1px;
    border-top: none;
    border-left: 1px solid #e5e7eb;
  }
  .obj_article_details .entry_details .item {
    margin-right: -1px;
    border-bottom: 1px solid #e5e7eb;
  }
  .obj_article_details .entry_details .item:last-child {
    border-bottom: none;
  }
}
@media (min-width: 992px) {
  .obj_article_details .row {
    margin-left: -30px;
    margin-right: -30px;
  }
}
.obj_article_summary:before,
.obj_article_summary:after {
  content: " ";
  display: table;
}
.obj_article_summary:after {
  clear: both;
}
/* tambahan */
.obj_article_summary {
  box-shadow: 3px 3px 5px;
  padding: 20px;
  border-radius: 10px;
  /* color: rgba(0, 0, 0, 0.6); */
  /* background: #f1f1f1; */
  /* background-image: url(/public/site/batik.png); */
  background-image: repeating-linear-gradient(
      45deg,
      rgba(0, 0, 0, 0.05) 0px,
      rgba(0, 0, 0, 0.05) 2px,
      transparent 2px,
      transparent 4px
    ),
    /* linear-gradient(0deg, rgb(255, 255, 255), rgb(110, 255, 165)); */
      linear-gradient(0deg, rgb(255, 255, 255), rgb(255, 255, 255));
}
.obj_article_summary .cover {
  display: block;
  margin-bottom: 20px;
}
.obj_article_summary .cover img {
  display: block;
  max-height: 250px;
  width: auto;
}
.obj_article_summary > .title {
  font-family: "Rubik", sans-serif;
  font-size: 1rem;
  line-height: 1.43rem;
  font-weight: 700;
  border-bottom: none;
  margin: 0;
  margin-bottom: 10px;
}
.obj_article_summary > .title a {
  text-decoration: none;
  color: #006798;
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
}
.obj_article_summary .subtitle {
  display: block;
  margin-top: 0.25em;
  margin-bottom: 0.5em;
  font-weight: 400;
}
.obj_article_summary .meta {
  position: relative;
  font-size: 13px;
  line-height: 20px;
}
.obj_article_summary .authors {
  /*tambahan*/
  padding-right: 5em;
  font-weight: 700;
}

.obj_article_summary .pages,
.obj_article_summary .published {
  color: rgba(0, 0, 0, 0.87);
}
.obj_article_summary .galleys_links li {
  display: inline-block;
  margin-right: 1em;
}
.obj_article_summary .galleys_links li:last-child {
  margin-right: 0;
}
@media (min-width: 768px) {
  .obj_article_summary .pages {
    position: absolute;
    top: 0;
    right: 0;
    line-height: 30px;
  }
  .obj_article_summary .cover {
    float: left;
    width: 25%;
    height: auto;
    max-height: none;
    margin-right: 20px;
  }
}
@media (min-width: 992px) {
  .obj_article_summary .cover {
    margin-right: 30px;
    margin-bottom: 30px;
  }
  .obj_article_summary .cover img {
    max-height: none;
  }
}
.obj_galley_link:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f0f6";
  margin-right: 0.25em;
}
.obj_galley_link.pdf:before {
  content: "\f1c1";
}
.obj_galley_link.restricted {
  border-color: #16532c;
  color: #16532c;
}
.obj_galley_link.restricted:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f023";
  color: #d00a6c;
}
.obj_galley_link.restricted:hover,
.obj_galley_link.restricted:focus {
  background: #d00a6c;
  color: #fff;
}
.obj_galley_link.restricted:hover:before,
.obj_galley_link.restricted:focus:before {
  color: #fff;
}
.obj_galley_link_supplementary {
  display: inline-block;
  position: relative;
  padding-right: 30px;
  font-size: 13px;
  font-weight: 700;
  line-height: 30px;
  color: #0f4c21;
  text-decoration: none;
  padding-right: 0;
  padding-left: 20px;
}
.obj_galley_link_supplementary:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transform: translate(0, 0);
  line-height: unset;
  content: "\f0f6";
  position: absolute;
  top: 2px;
  right: 0;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
}
.obj_galley_link_supplementary:hover,
.obj_galley_link_supplementary:focus {
  color: #54a003 ;
}
.obj_galley_link_supplementary:after {
  right: auto;
  left: 0;
  text-align: left;
}
.obj_issue_summary {
  box-shadow: 3px 3px 5px;
  padding: 20px;
  border-radius: 10px;
  background: #f1f1f1;
  background-image: repeating-linear-gradient(
      45deg,
      rgba(0, 0, 0, 0.05) 0px,
      rgba(0, 0, 0, 0.05) 2px,
      transparent 2px,
      transparent 4px
    ),
    /* linear-gradient(0deg, rgb(255, 255, 255), rgb(106, 250, 161)) !important; */
      linear-gradient(0deg, rgb(255, 255, 255), rgb(255, 255, 255)) !important;
  position: relative;
}

.obj_issue_summary h2 {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}
.obj_issue_summary .cover {
  display: block;
  margin-bottom: 20px;
}
.obj_issue_summary .cover img {
  display: block;
  width: auto;
  max-height: 250px;
}
.obj_issue_summary .title {
  font-family: "Rubik", sans-serif;
  font-weight: 700;
  text-decoration: none;
}
.obj_issue_summary .series {
  margin-bottom: 5px;
  color: rgba(0, 0, 0, 0.87);
}
.obj_issue_summary .description {
  font-size: 13px;
  line-height: 20px;
}
.obj_issue_summary .description p:first-child {
  margin-top: 0;
}
.obj_issue_summary .description p:last-child {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .obj_issue_summary:before,
  .obj_issue_summary:after {
    content: " ";
    display: table;
  }
  .obj_issue_summary:after {
    clear: both;
  }
  .obj_issue_summary .cover {
    float: left;
    width: 25%;
    height: auto;
    margin-right: 20px;
  }
  .obj_issue_summary .cover img {
    max-height: auto;
  }
}
.obj_issue_toc .cover {
  display: block;
  margin-bottom: 20px;
}
.obj_issue_toc .cover img {
  display: block;
  width: auto;
}
.obj_issue_toc .description > *:first-child {
  margin-top: 0;
}
.obj_issue_toc .description > *:last-child {
  margin-bottom: 0;
}
.obj_issue_toc .pub_id {
  margin: 20px 0;
}
.obj_issue_toc .pub_id .type {
  font-weight: 700;
}
.obj_issue_toc .published {
  margin: 20px 0;
}
.obj_issue_toc .published .label {
  font-weight: 700;
}
.obj_issue_toc .sections:not(:first-child) {
  margin-top: 20px;
}
.obj_issue_toc .section:last-child .articles > li:last-child {
  margin-bottom: 0;
}
.obj_issue_toc .galleys_links li {
  display: inline-block;
  margin-right: 1em;
}
.obj_issue_toc .galleys_links li:last-child {
  margin-right: 0;
}
@media (min-width: 768px) {
  .obj_issue_toc .heading:before,
  .obj_issue_toc .heading:after {
    content: " ";
    display: table;
  }
  .obj_issue_toc .heading:after {
    clear: both;
  }
  .obj_issue_toc .cover {
    float: left;
    width: 25%;
    height: auto;
    max-height: none;
    margin-right: 20px;
  }
  .obj_issue_toc .galleys,
  .obj_issue_toc .section {
    position: relative;
    margin: 0 -20px;
    padding: 30px;
  }
  .obj_issue_toc .galleys:before,
  .obj_issue_toc .section:before {
    content: "";
    position: absolute;
    top: 45px;
    left: 0;
    width: 100%;
    border-top: 1px solid #e5e7eb;
  }
  .obj_issue_toc .galleys > h2,
  .obj_issue_toc .section > h2,
  .obj_issue_toc .galleys > h3,
  .obj_issue_toc .section > h3 {
    display: inline-block;
    position: relative;
    left: -15px;
    margin-top: 0;
    padding: 0 15px;
    background: #fff;
    font-size: 24px;
    font-weight: 400;
    line-height: 30px;
  }
}
@media (min-width: 992px) {
  .obj_issue_toc .galleys,
  .obj_issue_toc .section {
    margin: 0 -30px;
  }
  .obj_issue_toc .cover {
    margin-right: 30px;
    margin-bottom: 30px;
  }
  .obj_issue_toc .cover img {
    max-height: none;
  }
}
.pkp_block {
  padding: 1em;
  font-size: 14px;
  line-height: 20px;
}
.pkp_block .title {
  display: block;
  margin-bottom: 10px;
  margin-top: 0;
  font-family: "Rubik", sans-serif;
  font-weight: 700;
  line-height: 20px;
  color: rgba(0, 0, 0, 0.87);
}
.pkp_block .content ul li {
  line-height: 20px;
  padding: 5px 0;
}
.pkp_block .content p {
  line-height: 25px;
}
.pkp_block .content p:first-child {
  margin-top: 0;
}
.pkp_block .content p:last-child {
  margin-bottom: 0;
}
.pkp_block a {
  text-decoration: none;
}
.block_browse {
  font-size: 13px;
}
.block_browse .has_submenu {
  margin-top: 20px;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
}
.block_browse .has_submenu ul {
  margin-top: 4px;
  padding-top: 5px;
  font-weight: 400;
}
.block_browse .is_sub {
  margin-left: 10px;
}
.block_browse .current a {
  padding-left: 0.5em;
  border-left: 4px solid #e5e7eb;
  color: #fff;
  cursor: text;
}
.block_information a,
.block_language_toggle a {
  font-size: 13px;
}
.block_subscription .subscription_name {
  margin-bottom: 0;
  font-weight: 700;
}
.block_subscription .subscription_membership {
  margin-top: 0;
}
.pkp_structure_footer_wrapper {
  /* background: #fff; */
  margin-top: 0;
}
.pkp_structure_footer {
  text-align: center;
}
.pkp_footer_content {
  padding: 10px;
  text-align: left;
}
.pkp_brand_footer {
  padding: 30px;
}
.pkp_brand_footer:before,
.pkp_brand_footer:after {
  content: " ";
  display: table;
}
.pkp_brand_footer:after {
  clear: both;
}
.pkp_brand_footer a {
  float: right;
  display: block;
  max-width: 150px;
}
body[dir="rtl"] {
  direction: rtl;
  unicode-bidi: embed;
}
@media (min-width: 768px) {
  body[dir="rtl"] .pkp_structure_main:before {
    left: auto;
    right: 0;
  }
  body[dir="rtl"] .pkp_structure_main:after {
    left: auto;
    right: 768px;
  }
}
@media (min-width: 992px) {
  body[dir="rtl"] .pkp_structure_main {
    float: right;
  }
  body[dir="rtl"] .pkp_structure_main:after {
    left: auto;
    right: 692px;
  }
  body[dir="rtl"] .pkp_structure_sidebar {
    float: left;
  }
}
@media (min-width: 1200px) {
  body[dir="rtl"] .pkp_structure_main:after {
    left: auto;
    right: 900px;
  }
}
@media (min-width: 992px) {
  body[dir="rtl"] .pkp_site_name {
    text-align: right;
  }
}
body[dir="rtl"] .pkp_navigation_primary ul {
  text-align: right;
}
body[dir="rtl"] .pkp_navigation_user {
  text-align: left;
}
body[dir="rtl"] .pkp_navigation_user li {
  text-align: right;
}
body[dir="rtl"] .pkp_head_wrapper .pkp_search {
  right: auto;
  left: 0;
  text-align: left;
}
body[dir="rtl"] .pkp_head_wrapper .pkp_search.is_open .search_prompt {
  border-left: none;
  border-right: 1px solid #e5e7eb;
}
body[dir="rtl"] .pkp_head_wrapper .pkp_search.is_open input[type="text"] {
  padding-right: 0.5em;
  padding-left: 180px;
}
body[dir="rtl"] .pkp_screen_reader,
body[dir="rtl"] .cmp_skip_to_content a,
body[dir="rtl"] .pkp_page_index .journals h2,
body[dir="rtl"] .pkp_page_index .cmp_announcements h2,
body[dir="rtl"] .page_register .context_optin .roles legend,
body[dir="rtl"] .pkp_page_index .cmp_announcements h2 {
  left: auto;
  right: -2000px;
}
body[dir="rtl"] .pkp_screen_reader:focus,
body[dir="rtl"] .cmp_skip_to_content a:focus,
body[dir="rtl"] .pkp_page_index .journals h2:focus,
body[dir="rtl"] .pkp_page_index .cmp_announcements h2:focus,
body[dir="rtl"] .page_register .context_optin .roles legend:focus,
body[dir="rtl"] .pkp_page_index .cmp_announcements h2:focus {
  right: 50%;
}
body[dir="rtl"] .obj_announcement_summary .date:before {
  margin-right: 0;
  margin-left: 0.5em;
}
body[dir="rtl"] .obj_issue_toc .galleys_links li {
  margin-right: inherit;
  margin-left: 1em;
}
@media (min-width: 768px) {
  body[dir="rtl"] .obj_issue_toc .galleys h2,
  body[dir="rtl"] .obj_issue_toc .section h2 {
    left: auto;
    right: 15px;
  }
  body[dir="rtl"] .obj_issue_toc .cover {
    float: right;
    margin-right: inherit;
    margin-left: 20px;
  }
}
@media (min-width: 992px) {
  body[dir="rtl"] .obj_issue_toc .cover {
    margin-right: inherit;
    margin-left: 30px;
  }
}
@media (min-width: 768px) {
  body[dir="rtl"] .obj_issue_summary .cover {
    float: right;
    margin-right: inherit;
    margin-left: 20px;
  }
}
@media (min-width: 768px) {
  body[dir="rtl"] .obj_article_summary {
    padding-right: 0;
  }
}
@media (min-width: 768px) {
  body[dir="rtl"] .galleys h2,
  body[dir="rtl"] .section h2 {
    left: auto;
    right: 15px;
  }
  body[dir="rtl"] .cover {
    float: right;
    margin-right: inherit;
    margin-left: 20px;
  }
}
@media (min-width: 992px) {
  body[dir="rtl"] .cover {
    margin-right: inherit;
    margin-left: 30px;
  }
}
@-webkit-keyframes "sk-bounce" {
  0%,
  100% {
    -webkit-transform: scale(0);
  }
  50% {
    -webkit-transform: scale(1);
  }
}
@keyframes "sk-bounce" {
  0%,
  100% {
    transform: scale(0);
    -webkit-transform: scale(0);
  }
  50% {
    transform: scale(1);
    -webkit-transform: scale(1);
  }
}
.overlay {
  position: fixed;
  z-index: 99999;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: white;
}
.spinner {
  width: 60px;
  height: 60px;
  z-index: 9999;
  position: fixed;
  left: 50%;
  top: 50%;
  margin: auto;
  z-index: -1;
}
.double-bounce1 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #54a003 ;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: sk-bounce 2s infinite ease-in-out;
  animation: sk-bounce 2s infinite ease-in-out;
}
.double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #54a003 ;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: sk-bounce 2s infinite ease-in-out;
  animation: sk-bounce 2s infinite ease-in-out;
  -webkit-animation-delay: -1s;
  animation-delay: -1s;
}
:root {
  --swiper-theme-color: #54a003 ;
  --bg-base: #54a003 ;
  --bg-secondary: #54a003 ;
}
.bg-base {
  background-color: #54a003 ;
}
.bg-primary {
  background-color: #54a003 ;
}
.bg-secondary {
  background-color: #54a003 ;
}
.color-secondary {
  color: #54a003 ;
}
.color-primary {
  color: #54a003 ;
}
.text-base {
  color: #54a003 ;
}
.text-secondary {
  color: #54a003 ;
}
.text-secondary {
  color: #fff;
}
.text-bg-secondary {
  color: #fff;
}
.border-primary {
  border-color: #54a003 ;
}
.border-primary:focus {
  color: #54a003 ;
  outline: 0;
  border-color: #54a003 ;
}
.border-primary-bottom {
  border-bottom-color: #54a003 ;
}
.issn a {
  color: rgba(0, 0, 0, 0.87);
}
.issn a:hover {
  color: #54a003 ;
  text-decoration: none;
}
.pkp_navigation_primary_wrapper ul li.active {
  background-color: #54a003 ;
}
.pkp_navigation_primary_wrapper ul li.active a {
  color: #fff;
}
.header-logo .is_img img {
  /* max-height: 2.5rem; */
  /* max-height: 9.9rem; */
  max-height: 160%;
  max-width: 110%;
  /* width: 100%; */
  height: auto;
  /* margin-top: 10px; */
  /* margin-bottom: 10px; */
}
@media (min-width: 992px) {
  .header-logo .is_img img {
    /* max-height: 4rem; */
    /* max-height: 9.9rem; */
    max-height: 160%;
    max-width: 110%;
    /* width: 100%; */
    height: auto;
    /* margin-top: 10px; */
    /* margin-bottom: 10px; */
  }
}
.about-journal:before {
  content: " ";
  filter: blur(8px);
  -webkit-filter: blur(8px);
}
.pkp_block h2 {
  color: #54a003  !important;
  padding-bottom: 10px;
  border-bottom: 1px solid #e5e7eb;
}
.mobile-primary-menu ul li {
  padding: 10px;
}
.mobile-primary-menu ul li a {
  font-size: 1.3em;
}
.mobile-primary-menu ul li ul li {
  padding-left: 28px;
  padding-right: 0;
}
.mobile-primary-menu ul li ul li:first-child {
  padding-top: 20px;
}
.mobile-primary-menu ul li ul li:last-child {
  padding-bottom: 0;
}
.mobile-secondary-menu ul li {
  padding: 10px;
}
.mobile-secondary-menu ul li a {
  font-size: 1.3em;
}
.mobile-secondary-menu ul li ul li {
  padding-left: 28px;
  padding-right: 0;
}
.mobile-secondary-menu ul li ul li:first-child {
  padding-top: 20px;
}
.mobile-secondary-menu ul li ul li:last-child {
  padding-bottom: 0;
}
.switch {
  width: 60px;
  height: 110px;
  padding-top: 2px;
  background-color: #514e4b;
  border-radius: 40px;
  cursor: pointer;
  outline: none;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  direction: initial !important;
}
.toggle-button {
  transform: scale(0.8);
  transform-origin: center center;
}
.toggle {
  position: relative;
  width: 35px;
  height: 35px;
  margin: 12px;
  margin-top: 12px;
  background-color: #fdb813;
  border-radius: 50%;
}
.moon-mask {
  position: absolute;
  width: 35px;
  height: 35px;
  margin: -74px 0 0 34px;
  background-color: #514e4b;
  border-radius: 50%;
}
.circles-wrapper .circle {
  position: absolute;
  width: 4px;
  height: 8px;
  background-color: #fff;
  border-radius: 10px;
}
.circles-wrapper .circle:first-child {
  margin: -57px 0 0 27px;
}
.circles-wrapper .circle:nth-child(2) {
  margin: -9px 0 0 28px;
}
.circles-wrapper .circle:nth-child(3) {
  margin: -32px 0 0 51px;
  transform: rotate(90deg);
}
.circles-wrapper .circle:nth-child(4) {
  margin: -33px 0 0 4px;
  transform: rotate(90deg);
}
.circles-wrapper .circle:nth-child(5) {
  margin: -14px 0 0 10px;
  transform: rotate(45deg);
}
.circles-wrapper .circle:nth-child(6) {
  margin: -14px 0 0 45px;
  transform: rotate(320deg);
}
.circles-wrapper .circle:nth-child(7) {
  margin: -50px 0 0 10px;
  transform: rotate(135deg);
}
.circles-wrapper .circle:nth-child(8) {
  margin: -50px 0 0 45px;
  transform: rotate(235deg);
}
.pkp_block h1,
.pkp_block h2,
.pkp_block h3,
.pkp_block h4 {
  font-size: 16px;
  margin-bottom: 0.6em;
}
.additional_content_noble {
  background-color: #fff;
}
.dropdown-menu-icon {
  float: right;
  text-align: right;
  margin-right: 12px;
}
.PlumX-Summary {
  margin: -1em;
  background: white;
}
.PlumX-Summary .pps-container-vertical.plx-no-print .pps-branding-top {
  padding: 10px 10px 25px;
}
.PlumX-Summary .pps-cols {
  padding: 5px;
}
.PlumX-Summary .pps-container-vertical .pps-col {
  margin-bottom: 1em;
  padding: 10px;
}
.PlumX-Summary .pps-col.plx-citation {
  border-top: 0;
}
.page_submissions h1,
.page_submissions h2,
.page_submissions h3,
.page_submissions h4 {
  margin: 0 0 10px;
}
.page_submissions .author_guidelines,
.page_submissions .submission_checklist,
.page_submissions .section_policy,
.page_submissions .copyright_notice,
.page_submissions .privacy_statement {
  margin-bottom: 1.25rem;
}
.stroke-color-pri {
  stroke: #54a003 ;
}
.stroke-color-sec {
  stroke: #54a003 ;
}
.noble-editorial-pick::-webkit-scrollbar-track {
  background-color: #f1f0f0;
}
.noble-editorial-pick::-webkit-scrollbar {
  width: 7px;
  height: 7px;
  background-color: #ffffff;
}
.noble-editorial-pick::-webkit-scrollbar-thumb {
  background-color: #dbdbdb;
  border-radius: 8px;
}
.ai,
.fa {
  line-height: unset;
}
.task_count {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: 0.5em;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  line-height: 20px;
  text-align: center;
  font-size: 12px;
}
#crossmark-widget {
  direction: ltr !important;
}
.prose {
  max-width: none;
}
.date-log .date-log-label {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #0f4c21 !important;
}
.date-log hr {
  margin: 5px 0;
}
.date-log .label-version {
  color: #0f4c21;
  font-size: 16px;
}

/* tambahan */
.cover_jurnal .cover_jurnal-label {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #0f4c21 !important;
}
.cover_jurnal hr {
  margin: 5px 0;
}
.cover_jurnal .label-version {
  color: #0f4c21;
  font-size: 16px;
}
.editorial-list {
  box-shadow: 3px 3px 5px;
  padding: 20px;
  border-radius: 10px;
  background: #f1f1f1;
  background-image: repeating-linear-gradient(
      45deg,
      rgba(0, 0, 0, 0.05) 0px,
      rgba(0, 0, 0, 0.05) 2px,
      transparent 2px,
      transparent 4px
    ),
    linear-gradient(0deg, rgb(77, 157, 255), rgb(106, 250, 161)) !important;
  position: relative;
}

.editorial-list:hover {
  background: #f8fff9;
}

.editorial-list {
  padding-bottom: 15px !important;
  border-bottom: solid 4px #54a003  !important;
  font-size: 12px;
  padding-top: 12px;
}
.editorial-list .list-unstyled ul li {
  /* line-height: 1.785rem; */
  margin: 0;
  display: flex; /* Use flexbox for better alignment */
  align-items: flex-start; /* Align items to the top */
}
.editorial-list li {
  list-style-type: none;
}
.editorial-list .team-aff ul li {
  list-style-type: none;
}
.editorial-list .img-profile {
  position: absolute;
  width: 95px;
  height: 105px;
  box-shadow: 3px 3px 5px;
  border-radius: 10px;
  border: 1px solid #ddd;
  padding: 0.5rem;
}
.editorial-list .img-profile .imgthumb {
  width: 80px;
  height: 90px;
  overflow: hidden;
  margin: 0 auto;
  object-fit: fill;
}
.editorial-list .img-profile img {
  width: 100%;
  height: 100%;
}
.team-content {
  /* font-family: 'Book Antiqua', Palatino, 'Palatino Linotype', 'Palatino LT STD',
    Georgia, serif !important;
  font-size: 1.1rem; */
  /* font-weight: 700; */
  margin-left: 110px;
  min-height: 130px;
  display: flex;
  flex-direction: column; /* Mengatur elemen tersusun secara horizontal */
}
.team-content strong {
  margin-bottom: 0;
  margin-left: 10px; /* Menambah jarak antara icon dan teks */
}
.team-aff ul {
  list-style: none;
  padding-left: 2.5rem;
  margin: 0;
}
.team-content .ico-label {
  width: 18px;
  height: 18px;
  margin-right: 0.5rem;
}
.team-aff ul li {
  display: flex;
  align-items: center;
  margin-bottom: 0.5rem;
}
.team-aff ul li .tm_label {
  display: inline-block;
  width: 80px;
}
.team-aff ul li .ico-label {
  width: 18px;
  height: 18px;
  margin-right: 5px;
}

/* akhir tambahan */

.dark body {
  color: #fff;
}
.dark a {
  color: #fff;
}
.dark a:hover,
.dark a:focus {
  color: #54a003 ;
}
.dark .pkp_nav_list ul a {
  color: #fff;
}
.dark .pkp_page_index .current_issue .read_more {
  color: #fff;
}
.dark .additional_content_noble {
  background-color: #1f2937;
}
.dark .pkp_structure_head,
.dark .pkp_structure_footer_wrapper {
  background-color: #1f2937;
}
.dark .obj_issue_sumarry .series {
  color: #fff;
}
.dark .obj_announcement_summary .date {
  color: #fff;
}
.dark .swiper-pagination-bullet {
  background-color: #fff;
}
.dark .obj_issue_toc .galleys > h2,
.dark .obj_issue_toc .section > h2,
.dark .obj_issue_toc .galleys > h3,
.dark .obj_issue_toc .section > h3 {
  background: #1f2937;
}
.dark .pkp_navigation_primary li a {
  color: #fff;
}
.dark .dropdown-menu a {
  color: #fff !important;
}
.dark .pkp_nav_list ul {
  background-color: #1f2937;
}
.dark .issn a {
  color: #fff;
}
.dark .issn a:hover {
  color: #54a003 ;
}
.dark .cmp_breadcrumbs ol li {
  /* background: #9ca3af; */
  background: #54a003 ;
}
.dark .cmp_breadcrumbs ol li:hover {
  /* background: #54a003 ; */
  background: #9ca3af;
  color: #1f2937;
}
.dark .cmp_breadcrumbs ol li:hover a,
.dark .cmp_breadcrumbs ol li:hover span {
  color: #fff;
}
.dark .cmp_breadcrumbs ol li:hover a:after,
.dark .cmp_breadcrumbs ol li:hover span:after {
  border-left-color: #54a003 ;
}
.dark .cmp_breadcrumbs ol li a,
.dark .cmp_breadcrumbs ol li span {
  color: #fff;
}
.dark .cmp_breadcrumbs ol li a:after,
.dark .cmp_breadcrumbs ol li span:after {
  content: "";
  border-left: 18px solid #9ca3af;
}
.dark .cmp_breadcrumbs ol li a:before,
.dark .cmp_breadcrumbs ol li span:before {
  content: "";
  border-left: 18px solid #1f2937;
}
.dark .cmp_breadcrumbs ol li.current {
  background: #54a003 ;
}
.dark .cmp_breadcrumbs ol li.current a,
.dark .cmp_breadcrumbs ol li.current span {
  color: #fff;
}
.dark .cmp_breadcrumbs ol li.current a:after,
.dark .cmp_breadcrumbs ol li.current span:after {
  border-left-color: #54a003 ;
  color: #fff;
}
.dark .citation_formats_button {
  color: #fff !important;
}
.dark .citation_formats_button:focus {
  background: #1f2937 !important;
}
.dark .obj_article_summary .pages {
  color: #fff;
}
.dark .obj_article_summary .published {
  color: #fff;
}
.dark .touch-menu-la {
  background-color: #1f2937;
}
.dark .cmp_button_wire,
.dark .obj_galley_link {
  background: #1f2937;
}
.dark .cmp_button_wire:hover,
.dark .obj_galley_link:hover,
.dark .cmp_button_wire:focus,
.dark .obj_galley_link:focus {
  background: #16532c;
  color: #fff;
}
.dark .cmp_form input[type="text"],
.dark .cmp_form input[type="email"],
.dark .cmp_form input[type="password"],
.dark .cmp_form input[type="url"],
.dark .cmp_form input[type="tel"],
.dark .cmp_form select,
.dark .cmp_form textarea {
  background: #54a003 ;
}
.dark .pkp_block .title {
  color: #fff;
}
.dark .overlay {
  background: #1f2937;
}
.dark .obj_article_details .authors .affiliation {
  color: #fff;
}
.dark .obj_announcement_full .date {
  color: #fff;
}
.dark .cmp_button,
.dark .cmp_form .buttons button,
.dark .pkp_search button[type="submit"],
.dark .page_lost_password .buttons button,
.dark .page_search .submit button,
.dark .block_make_submission a,
.dark .page_search .submit button {
  border: 1px solid #54a003 ;
  color: #fff;
}
.dark .share-bar:before {
  border-color: rgba(148, 148, 148, 0.3) rgba(148, 148, 148, 0.3)
    rgba(148, 148, 148, 0.3) transparent;
}
.dark .share-bar .trigger {
  border-color: transparent transparent transparent rgba(148, 148, 148, 0.3);
}
.dark .tip:after {
  background: rgba(148, 148, 148, 0.3);
}
.mini-card-grid {
  scrollbar-color: #666 #201c29;
  scrollbar-gutter: always;
  display: flex;
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
}
.pkp_structure_main .mini-card {
  max-width: 350px;
}
.pkp_structure_main .mini-card:hover ~ .mini-card {
  transform: translateX(130px);
}
.pkp_structure_main .mini-card:not(:first-child) {
  margin-inline-start: -130px;
  box-shadow: -1.6rem 0 3rem -1.9rem #000;
}
.pkp_structure_main .mini-card:hover {
  transform: translateY(-1rem) rotate(3deg);
}
.pkp_structure_main .mini-card-first {
  margin-inline-start: 0px !important;
  box-shadow: none !important;
}
.mini-card {
  display: flex;
  flex-direction: column;
  transition: 0.2s;
}
@media (min-width: 640px) {
  .mini-card-grid {
    margin: -30px;
    padding: 30px;
  }
}
body[dir="rtl"] .pkp_structure_main .mini-card:hover ~ .mini-card {
  transform: translateX(-130px);
}
body[dir="rtl"] .pkp_structure_main .mini-card:hover {
  transform: translateY(-1rem) rotate(-3deg);
}
.custom-button {
  border: 1px solid #e5e7eb;
  cursor: pointer;
  letter-spacing: 0.2125rem;
  line-height: 1;
  overflow: hidden;
  padding: 10px 20px;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  transition: background 5s cubic-bezier(0.19, 1, 0.22, 1),
    border 1s cubic-bezier(0.19, 1, 0.22, 1),
    color 0.6s cubic-bezier(0.19, 1, 0.22, 1);
  user-select: none;
  width: max-content;
}
.custom-button .mask {
  background-color: #1f2937;
  background-color: rgba(255, 255, 255, 0.5);
  height: 100px;
  position: absolute;
  transform: translate3d(-120%, -50px, 0) rotate3d(0, 0, 1, 45deg);
  transition: all 1.1s cubic-bezier(0.19, 1, 0.22, 1);
  width: 200px;
}
.custom-button .shift {
  display: inline-block;
  transition: all 1.1s cubic-bezier(0.19, 1, 0.22, 1);
  vertical-align: text-top;
}
.custom-button:hover {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: #1f2937;
  box-shadow: 0 0 5px rgba(255, 245, 245, 0.8);
  transition: background 0s;
}
.custom-button:hover a {
  color: #1f2937;
}
.custom-button:hover .mask {
  background-color: #1f2937;
  transform: translate3d(120%, -100px, 0) rotate3d(0, 0, 1, 90deg);
}
.custom-button:hover .shift {
  transform: translateX(5px);
}
.custom-button:active {
  background-color: #1f2937;
}
.custom-button:active a {
  color: #202020;
}
.dark .custom-button:hover {
  border-color: #fff;
  box-shadow: 0 0 5px rgba(255, 245, 245, 0.8);
  transition: background 0s;
}
.dark .custom-button:hover a {
  color: #fff;
}
.dark .custom-button:hover .mask {
  background-color: #fff;
  transform: translate3d(120%, -100px, 0) rotate3d(0, 0, 1, 90deg);
}
.dark .custom-button:hover .shift {
  transform: translateX(5px);
}
.share-button {
  display: flex;
  justify-content: flex-end;
  position: relative;
  float: right;
  margin: 10px 0;
}
.tip {
  direction: ltr;
  position: absolute;
  top: 50%;
  right: calc(110%);
  transform: translateY(-50%);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: flex;
  align-items: center;
}
.tip:after {
  content: "";
  width: 30px;
  height: 1px;
  background: rgba(44, 44, 44, 0.3);
  margin: 0 0 0 8px;
}
.trigger {
  height: 40px;
  line-height: 40px;
  font-size: 14px;
  text-align: center;
  cursor: pointer;
  transition: color 0.2s, border 0.2s;
}
.trigger a {
  color: currentColor;
  text-decoration: none;
  transform: skew(10deg);
  display: flex;
  align-items: center;
  justify-content: center;
}
.trigger i {
  font-size: 14px;
  line-height: 40px;
}
.trigger:hover {
  color: #54a003  !important;
  border-color: #54a003  !important;
}
.trigger.share-btn i {
  margin: 0 5px 0 0;
}
.like {
  transform: skew(-10deg);
  margin: 0 0 0 10px;
}
.like .trigger {
  width: 82px;
  border: 1px solid rgba(44, 44, 44, 0.3);
}
.like i {
  margin: 0 5px 0 0;
}
.share {
  transform: skew(-10deg);
  margin: 0 0 0 10px;
}
.share .trigger {
  width: 82px;
  border: 1px solid rgba(44, 44, 44, 0.3);
}
.share i {
  margin: 0 5px 0 0;
}
.share-window {
  transform: skew(-10deg);
  overflow: hidden;
}
.share-bar {
  position: relative;
  width: 82px;
  height: 40px;
  transition: width 0.4s ease 0.2s;
}
.share-bar:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-width: 1px;
  border-style: solid;
  border-color: rgba(44, 44, 44, 0.3) rgba(44, 44, 44, 0.3)
    rgba(44, 44, 44, 0.3) transparent;
}
.share-bar:hover {
  width: 247px;
  transition: width 0.4s ease;
}
.share-bar:hover .trigger:nth-child(3) {
  left: 82px;
  transition: left 0.45s ease 0.06s, color 0.2s, border 0.2s;
}
.share-bar:hover .trigger:nth-child(4) {
  left: 123px;
  transition: left 0.45s ease 0.12s, color 0.2s, border 0.2s;
}
.share-bar:hover .trigger:nth-child(5) {
  left: 164px;
  transition: left 0.45s ease 0.18s, color 0.2s, border 0.2s;
}
.share-bar:hover .trigger:nth-child(6) {
  left: 205px;
  transition: left 0.45s ease 0.24s, color 0.2s, border 0.2s;
}
.share-bar .trigger {
  position: absolute;
  top: 0;
  width: 42px;
  border-width: 1px;
  border-style: solid;
  border-color: transparent transparent transparent rgba(44, 44, 44, 0.3);
  transition: left 0s ease 0.45s, color 0.2s, border 0.2s;
}
.share-bar .trigger:nth-child(1) {
  left: 0;
}
.share-bar .trigger:nth-child(2) {
  left: 41px;
}
.share-bar .trigger:nth-child(3) {
  left: 102px;
}
.share-bar .trigger:nth-child(4) {
  left: 143px;
}
.share-bar .trigger:nth-child(5) {
  left: 184px;
}
.share-bar .trigger:nth-child(6) {
  left: 225px;
}
@media only screen and (max-width: 768px) {
  .tip {
    right: calc(100%);
  }
  .share-bar {
    width: 247px;
  }
  .share-bar .trigger:nth-child(3) {
    left: 82px;
    transition: left 0.45s ease 0.06s, color 0.2s, border 0.2s;
  }
  .share-bar .trigger:nth-child(4) {
    left: 123px;
    transition: left 0.45s ease 0.12s, color 0.2s, border 0.2s;
  }
  .share-bar .trigger:nth-child(5) {
    left: 164px;
    transition: left 0.45s ease 0.18s, color 0.2s, border 0.2s;
  }
  .share-bar .trigger:nth-child(6) {
    left: 205px;
    transition: left 0.45s ease 0.24s, color 0.2s, border 0.2s;
  }
}
@media only screen and (min-width: 601px) {
  .share {
    display: none;
  }
}
body[dir="rtl"] .cmp_breadcrumbs ol li {
  background: #f3f5fa;
  padding: 10px 23px 10px 10px;
  margin: 0 10px 10px 0;
}
body[dir="rtl"] .cmp_breadcrumbs ol li:first-child {
  padding: 10px 15px 10px 10px;
  margin: 0 0 10px 0;
}
body[dir="rtl"] .cmp_breadcrumbs ol li:hover {
  cursor: pointer;
  background: #54a003 ;
  color: #fff;
}
body[dir="rtl"] .cmp_breadcrumbs ol li:hover a,
body[dir="rtl"] .cmp_breadcrumbs ol li:hover span {
  color: #fff;
}
body[dir="rtl"] .cmp_breadcrumbs ol li:hover a:before,
body[dir="rtl"] .cmp_breadcrumbs ol li:hover span:before {
  border-right-color: #54a003 ;
  color: #fff;
}
body[dir="rtl"] .cmp_breadcrumbs ol li:first-child a:after,
body[dir="rtl"] .cmp_breadcrumbs ol li:first-child span:after {
  display: none;
}
body[dir="rtl"] .cmp_breadcrumbs ol li:first-child a:before,
body[dir="rtl"] .cmp_breadcrumbs ol li:first-child span:before {
  display: unset;
}
body[dir="rtl"] .cmp_breadcrumbs ol li:last-child a:after,
body[dir="rtl"] .cmp_breadcrumbs ol li:last-child span:after {
  display: unset;
}
body[dir="rtl"] .cmp_breadcrumbs ol li a,
body[dir="rtl"] .cmp_breadcrumbs ol li span {
  font-size: 14px;
  text-decoration: none;
  color: rgba(0, 0, 0, 0.87);
}
body[dir="rtl"] .cmp_breadcrumbs ol li a:after,
body[dir="rtl"] .cmp_breadcrumbs ol li span:after {
  content: "";
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-right: 18px solid #fff;
  border-left: unset;
  position: absolute;
  right: 0px;
  top: 0;
  z-index: unset;
}
body[dir="rtl"] .cmp_breadcrumbs ol li a:before,
body[dir="rtl"] .cmp_breadcrumbs ol li span:before {
  content: "";
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-right: 18px solid #f3f5fa;
  border-left: unset;
  position: absolute;
  left: -18px;
  top: 0;
  z-index: 1;
}
body[dir="rtl"] .cmp_breadcrumbs ol li span.separator {
  display: none;
}
body[dir="rtl"] .cmp_breadcrumbs ol li.current {
  background: #54a003 ;
}
body[dir="rtl"] .cmp_breadcrumbs ol li.current a,
body[dir="rtl"] .cmp_breadcrumbs ol li.current span {
  color: #fff;
  font-weight: bold;
}
body[dir="rtl"] .cmp_breadcrumbs ol li.current a::before,
body[dir="rtl"] .cmp_breadcrumbs ol li.current span::before {
  border-right-color: #54a003 ;
  color: #fff;
}
body[dir="rtl"] .custom-button:hover .shift {
  transform: translateX(-5px);
}
body[dir="rtl"] .dropdown-menu-icon {
  float: left;
  text-align: left;
  margin-right: 12px;
}
.dark body[dir="rtl"] .cmp_breadcrumbs ol li a:after,
.dark body[dir="rtl"] .cmp_breadcrumbs ol li span:after {
  border-right-color: #1f2937;
}

@import url("touch-menu-la.min.css");

a#clustrmaps-widget-v2,
#clustrmaps-widget-v2 {
  display: none !important;
}

.block_information a,
.block_language_toggle a {
  font-size: 15px;
}

.cover_image img {
  width: 180px;
  height: auto; /* Gunakan 'auto' untuk menjaga aspek rasio gambar */
}
.cover_image .sub_item {
  display: flex;
  justify-content: center;
}


table.journal-info {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-family: Arial, sans-serif;
}

.journal-info td {
  border: 1px solid #ddd;
  padding: 8px 12px;
  vertical-align: top;
}

.journal-info tr:nth-child(even) {
  background-color: #f9f9f9;
}

.journal-info tr:hover {
  background-color: #f1f1f1;
}

.journal-info td:first-child {
  font-weight: bold;
  width: 25%;
  background-color: #f2f2f2;
}

.journal-info a {
  color: blue;
  text-decoration: none;
}

.journal-info a:hover {
  text-decoration: underline;
}

.copyright a {
  color: white;        /* warna teks */
  text-decoration: none; /* hilangkan garis bawah */
}

.copyright a:hover {
  color: #ddd;         /* warna saat hover */
  text-decoration: underline; /* bisa aktifkan underline saat hover */
}


@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-regular.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Lora';
    font-style: italic;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-italic.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Lora';
    font-style: italic;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/lora-v16-vietnamese_latin-ext_latin_cyrillic-ext_cyrillic-700italic.svg#Lora') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 400;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.svg#OpenSans') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg');
    font-display: swap
}

@font-face {
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 700;
    src: url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.eot');
    src: local(''),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.eot?#iefix') format('embedded-opentype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.woff2') format('woff2'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.woff') format('woff'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.ttf') format('truetype'),url('//aladalah.uinkhas.ac.id/plugins/themes/default/fonts/open-sans-v18-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.svg#OpenSans') format('svg');
    font-display: swap
}
!function() {
    "use strict";
    function e(e) {
        try {
            if ("undefined" == typeof console)
                return;
            "error"in console ? console.error(e) : console.log(e)
        } catch (e) {}
    }
    function t(e) {
        return d.innerHTML = '<a href="' + e.replace(/"/g, "&quot;") + '"></a>',
        d.childNodes[0].getAttribute("href") || ""
    }
    function r(e, t) {
        var r = e.substr(t, 2);
        return parseInt(r, 16)
    }
    function n(n, c) {
        for (var o = "", a = r(n, c), i = c + 2; i < n.length; i += 2) {
            var l = r(n, i) ^ a;
            o += String.fromCharCode(l)
        }
        try {
            o = decodeURIComponent(escape(o))
        } catch (u) {
            e(u)
        }
        return t(o)
    }
    function c(t) {
        for (var r = t.querySelectorAll("a"), c = 0; c < r.length; c++)
            try {
                var o = r[c]
                  , a = o.href.indexOf(l);
                a > -1 && (o.href = "mailto:" + n(o.href, a + l.length))
            } catch (i) {
                e(i)
            }
    }
    function o(t) {
        for (var r = t.querySelectorAll(u), c = 0; c < r.length; c++)
            try {
                var o = r[c]
                  , a = o.parentNode
                  , i = o.getAttribute(f);
                if (i) {
                    var l = n(i, 0)
                      , d = document.createTextNode(l);
                    a.replaceChild(d, o)
                }
            } catch (h) {
                e(h)
            }
    }
    function a(t) {
        for (var r = t.querySelectorAll("template"), n = 0; n < r.length; n++)
            try {
                i(r[n].content)
            } catch (c) {
                e(c)
            }
    }
    function i(t) {
        try {
            c(t),
            o(t),
            a(t)
        } catch (r) {
            e(r)
        }
    }
    var l = "/cdn-cgi/l/email-protection#"
      , u = ".__cf_email__"
      , f = "data-cfemail"
      , d = document.createElement("div");
    i(document),
    function() {
        var e = document.currentScript || document.scripts[document.scripts.length - 1];
        e.parentNode.removeChild(e)
    }()
}();

/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('fontawesome-webfont.eot?v=4.7.0');
  src: url('fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('fontawesome-webfont.woff?v=4.7.0') format('woff'), url('fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eeeeee;
  border-radius: .1em;
}
.fa-pull-left {
  float: left;
}
.fa-pull-right {
  float: right;
}
.fa.fa-pull-left {
  margin-right: .3em;
}
.fa.fa-pull-right {
  margin-left: .3em;
}
/* Deprecated as of 4.4.0 */
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.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(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
  -webkit-transform: scale(-1, 1);
  -ms-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);
  -ms-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 {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #ffffff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-feed:before,
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before,
.fa-gratipay:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper-pp:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-resistance:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-y-combinator-square:before,
.fa-yc-square:before,
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
.fa-buysellads:before {
  content: "\f20d";
}
.fa-connectdevelop:before {
  content: "\f20e";
}
.fa-dashcube:before {
  content: "\f210";
}
.fa-forumbee:before {
  content: "\f211";
}
.fa-leanpub:before {
  content: "\f212";
}
.fa-sellsy:before {
  content: "\f213";
}
.fa-shirtsinbulk:before {
  content: "\f214";
}
.fa-simplybuilt:before {
  content: "\f215";
}
.fa-skyatlas:before {
  content: "\f216";
}
.fa-cart-plus:before {
  content: "\f217";
}
.fa-cart-arrow-down:before {
  content: "\f218";
}
.fa-diamond:before {
  content: "\f219";
}
.fa-ship:before {
  content: "\f21a";
}
.fa-user-secret:before {
  content: "\f21b";
}
.fa-motorcycle:before {
  content: "\f21c";
}
.fa-street-view:before {
  content: "\f21d";
}
.fa-heartbeat:before {
  content: "\f21e";
}
.fa-venus:before {
  content: "\f221";
}
.fa-mars:before {
  content: "\f222";
}
.fa-mercury:before {
  content: "\f223";
}
.fa-intersex:before,
.fa-transgender:before {
  content: "\f224";
}
.fa-transgender-alt:before {
  content: "\f225";
}
.fa-venus-double:before {
  content: "\f226";
}
.fa-mars-double:before {
  content: "\f227";
}
.fa-venus-mars:before {
  content: "\f228";
}
.fa-mars-stroke:before {
  content: "\f229";
}
.fa-mars-stroke-v:before {
  content: "\f22a";
}
.fa-mars-stroke-h:before {
  content: "\f22b";
}
.fa-neuter:before {
  content: "\f22c";
}
.fa-genderless:before {
  content: "\f22d";
}
.fa-facebook-official:before {
  content: "\f230";
}
.fa-pinterest-p:before {
  content: "\f231";
}
.fa-whatsapp:before {
  content: "\f232";
}
.fa-server:before {
  content: "\f233";
}
.fa-user-plus:before {
  content: "\f234";
}
.fa-user-times:before {
  content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
  content: "\f236";
}
.fa-viacoin:before {
  content: "\f237";
}
.fa-train:before {
  content: "\f238";
}
.fa-subway:before {
  content: "\f239";
}
.fa-medium:before {
  content: "\f23a";
}
.fa-yc:before,
.fa-y-combinator:before {
  content: "\f23b";
}
.fa-optin-monster:before {
  content: "\f23c";
}
.fa-opencart:before {
  content: "\f23d";
}
.fa-expeditedssl:before {
  content: "\f23e";
}
.fa-battery-4:before,
.fa-battery:before,
.fa-battery-full:before {
  content: "\f240";
}
.fa-battery-3:before,
.fa-battery-three-quarters:before {
  content: "\f241";
}
.fa-battery-2:before,
.fa-battery-half:before {
  content: "\f242";
}
.fa-battery-1:before,
.fa-battery-quarter:before {
  content: "\f243";
}
.fa-battery-0:before,
.fa-battery-empty:before {
  content: "\f244";
}
.fa-mouse-pointer:before {
  content: "\f245";
}
.fa-i-cursor:before {
  content: "\f246";
}
.fa-object-group:before {
  content: "\f247";
}
.fa-object-ungroup:before {
  content: "\f248";
}
.fa-sticky-note:before {
  content: "\f249";
}
.fa-sticky-note-o:before {
  content: "\f24a";
}
.fa-cc-jcb:before {
  content: "\f24b";
}
.fa-cc-diners-club:before {
  content: "\f24c";
}
.fa-clone:before {
  content: "\f24d";
}
.fa-balance-scale:before {
  content: "\f24e";
}
.fa-hourglass-o:before {
  content: "\f250";
}
.fa-hourglass-1:before,
.fa-hourglass-start:before {
  content: "\f251";
}
.fa-hourglass-2:before,
.fa-hourglass-half:before {
  content: "\f252";
}
.fa-hourglass-3:before,
.fa-hourglass-end:before {
  content: "\f253";
}
.fa-hourglass:before {
  content: "\f254";
}
.fa-hand-grab-o:before,
.fa-hand-rock-o:before {
  content: "\f255";
}
.fa-hand-stop-o:before,
.fa-hand-paper-o:before {
  content: "\f256";
}
.fa-hand-scissors-o:before {
  content: "\f257";
}
.fa-hand-lizard-o:before {
  content: "\f258";
}
.fa-hand-spock-o:before {
  content: "\f259";
}
.fa-hand-pointer-o:before {
  content: "\f25a";
}
.fa-hand-peace-o:before {
  content: "\f25b";
}
.fa-trademark:before {
  content: "\f25c";
}
.fa-registered:before {
  content: "\f25d";
}
.fa-creative-commons:before {
  content: "\f25e";
}
.fa-gg:before {
  content: "\f260";
}
.fa-gg-circle:before {
  content: "\f261";
}
.fa-tripadvisor:before {
  content: "\f262";
}
.fa-odnoklassniki:before {
  content: "\f263";
}
.fa-odnoklassniki-square:before {
  content: "\f264";
}
.fa-get-pocket:before {
  content: "\f265";
}
.fa-wikipedia-w:before {
  content: "\f266";
}
.fa-safari:before {
  content: "\f267";
}
.fa-chrome:before {
  content: "\f268";
}
.fa-firefox:before {
  content: "\f269";
}
.fa-opera:before {
  content: "\f26a";
}
.fa-internet-explorer:before {
  content: "\f26b";
}
.fa-tv:before,
.fa-television:before {
  content: "\f26c";
}
.fa-contao:before {
  content: "\f26d";
}
.fa-500px:before {
  content: "\f26e";
}
.fa-amazon:before {
  content: "\f270";
}
.fa-calendar-plus-o:before {
  content: "\f271";
}
.fa-calendar-minus-o:before {
  content: "\f272";
}
.fa-calendar-times-o:before {
  content: "\f273";
}
.fa-calendar-check-o:before {
  content: "\f274";
}
.fa-industry:before {
  content: "\f275";
}
.fa-map-pin:before {
  content: "\f276";
}
.fa-map-signs:before {
  content: "\f277";
}
.fa-map-o:before {
  content: "\f278";
}
.fa-map:before {
  content: "\f279";
}
.fa-commenting:before {
  content: "\f27a";
}
.fa-commenting-o:before {
  content: "\f27b";
}
.fa-houzz:before {
  content: "\f27c";
}
.fa-vimeo:before {
  content: "\f27d";
}
.fa-black-tie:before {
  content: "\f27e";
}
.fa-fonticons:before {
  content: "\f280";
}
.fa-reddit-alien:before {
  content: "\f281";
}
.fa-edge:before {
  content: "\f282";
}
.fa-credit-card-alt:before {
  content: "\f283";
}
.fa-codiepie:before {
  content: "\f284";
}
.fa-modx:before {
  content: "\f285";
}
.fa-fort-awesome:before {
  content: "\f286";
}
.fa-usb:before {
  content: "\f287";
}
.fa-product-hunt:before {
  content: "\f288";
}
.fa-mixcloud:before {
  content: "\f289";
}
.fa-scribd:before {
  content: "\f28a";
}
.fa-pause-circle:before {
  content: "\f28b";
}
.fa-pause-circle-o:before {
  content: "\f28c";
}
.fa-stop-circle:before {
  content: "\f28d";
}
.fa-stop-circle-o:before {
  content: "\f28e";
}
.fa-shopping-bag:before {
  content: "\f290";
}
.fa-shopping-basket:before {
  content: "\f291";
}
.fa-hashtag:before {
  content: "\f292";
}
.fa-bluetooth:before {
  content: "\f293";
}
.fa-bluetooth-b:before {
  content: "\f294";
}
.fa-percent:before {
  content: "\f295";
}
.fa-gitlab:before {
  content: "\f296";
}
.fa-wpbeginner:before {
  content: "\f297";
}
.fa-wpforms:before {
  content: "\f298";
}
.fa-envira:before {
  content: "\f299";
}
.fa-universal-access:before {
  content: "\f29a";
}
.fa-wheelchair-alt:before {
  content: "\f29b";
}
.fa-question-circle-o:before {
  content: "\f29c";
}
.fa-blind:before {
  content: "\f29d";
}
.fa-audio-description:before {
  content: "\f29e";
}
.fa-volume-control-phone:before {
  content: "\f2a0";
}
.fa-braille:before {
  content: "\f2a1";
}
.fa-assistive-listening-systems:before {
  content: "\f2a2";
}
.fa-asl-interpreting:before,
.fa-american-sign-language-interpreting:before {
  content: "\f2a3";
}
.fa-deafness:before,
.fa-hard-of-hearing:before,
.fa-deaf:before {
  content: "\f2a4";
}
.fa-glide:before {
  content: "\f2a5";
}
.fa-glide-g:before {
  content: "\f2a6";
}
.fa-signing:before,
.fa-sign-language:before {
  content: "\f2a7";
}
.fa-low-vision:before {
  content: "\f2a8";
}
.fa-viadeo:before {
  content: "\f2a9";
}
.fa-viadeo-square:before {
  content: "\f2aa";
}
.fa-snapchat:before {
  content: "\f2ab";
}
.fa-snapchat-ghost:before {
  content: "\f2ac";
}
.fa-snapchat-square:before {
  content: "\f2ad";
}
.fa-pied-piper:before {
  content: "\f2ae";
}
.fa-first-order:before {
  content: "\f2b0";
}
.fa-yoast:before {
  content: "\f2b1";
}
.fa-themeisle:before {
  content: "\f2b2";
}
.fa-google-plus-circle:before,
.fa-google-plus-official:before {
  content: "\f2b3";
}
.fa-fa:before,
.fa-font-awesome:before {
  content: "\f2b4";
}
.fa-handshake-o:before {
  content: "\f2b5";
}
.fa-envelope-open:before {
  content: "\f2b6";
}
.fa-envelope-open-o:before {
  content: "\f2b7";
}
.fa-linode:before {
  content: "\f2b8";
}
.fa-address-book:before {
  content: "\f2b9";
}
.fa-address-book-o:before {
  content: "\f2ba";
}
.fa-vcard:before,
.fa-address-card:before {
  content: "\f2bb";
}
.fa-vcard-o:before,
.fa-address-card-o:before {
  content: "\f2bc";
}
.fa-user-circle:before {
  content: "\f2bd";
}
.fa-user-circle-o:before {
  content: "\f2be";
}
.fa-user-o:before {
  content: "\f2c0";
}
.fa-id-badge:before {
  content: "\f2c1";
}
.fa-drivers-license:before,
.fa-id-card:before {
  content: "\f2c2";
}
.fa-drivers-license-o:before,
.fa-id-card-o:before {
  content: "\f2c3";
}
.fa-quora:before {
  content: "\f2c4";
}
.fa-free-code-camp:before {
  content: "\f2c5";
}
.fa-telegram:before {
  content: "\f2c6";
}
.fa-thermometer-4:before,
.fa-thermometer:before,
.fa-thermometer-full:before {
  content: "\f2c7";
}
.fa-thermometer-3:before,
.fa-thermometer-three-quarters:before {
  content: "\f2c8";
}
.fa-thermometer-2:before,
.fa-thermometer-half:before {
  content: "\f2c9";
}
.fa-thermometer-1:before,
.fa-thermometer-quarter:before {
  content: "\f2ca";
}
.fa-thermometer-0:before,
.fa-thermometer-empty:before {
  content: "\f2cb";
}
.fa-shower:before {
  content: "\f2cc";
}
.fa-bathtub:before,
.fa-s15:before,
.fa-bath:before {
  content: "\f2cd";
}
.fa-podcast:before {
  content: "\f2ce";
}
.fa-window-maximize:before {
  content: "\f2d0";
}
.fa-window-minimize:before {
  content: "\f2d1";
}
.fa-window-restore:before {
  content: "\f2d2";
}
.fa-times-rectangle:before,
.fa-window-close:before {
  content: "\f2d3";
}
.fa-times-rectangle-o:before,
.fa-window-close-o:before {
  content: "\f2d4";
}
.fa-bandcamp:before {
  content: "\f2d5";
}
.fa-grav:before {
  content: "\f2d6";
}
.fa-etsy:before {
  content: "\f2d7";
}
.fa-imdb:before {
  content: "\f2d8";
}
.fa-ravelry:before {
  content: "\f2d9";
}
.fa-eercast:before {
  content: "\f2da";
}
.fa-microchip:before {
  content: "\f2db";
}
.fa-snowflake-o:before {
  content: "\f2dc";
}
.fa-superpowers:before {
  content: "\f2dd";
}
.fa-wpexplorer:before {
  content: "\f2de";
}
.fa-meetup:before {
  content: "\f2e0";
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}

!function() {
    "use strict";
    function e(e) {
        try {
            if ("undefined" == typeof console)
                return;
            "error"in console ? console.error(e) : console.log(e)
        } catch (e) {}
    }
    function t(e) {
        return d.innerHTML = '<a href="' + e.replace(/"/g, "&quot;") + '"></a>',
        d.childNodes[0].getAttribute("href") || ""
    }
    function r(e, t) {
        var r = e.substr(t, 2);
        return parseInt(r, 16)
    }
    function n(n, c) {
        for (var o = "", a = r(n, c), i = c + 2; i < n.length; i += 2) {
            var l = r(n, i) ^ a;
            o += String.fromCharCode(l)
        }
        try {
            o = decodeURIComponent(escape(o))
        } catch (u) {
            e(u)
        }
        return t(o)
    }
    function c(t) {
        for (var r = t.querySelectorAll("a"), c = 0; c < r.length; c++)
            try {
                var o = r[c]
                  , a = o.href.indexOf(l);
                a > -1 && (o.href = "mailto:" + n(o.href, a + l.length))
            } catch (i) {
                e(i)
            }
    }
    function o(t) {
        for (var r = t.querySelectorAll(u), c = 0; c < r.length; c++)
            try {
                var o = r[c]
                  , a = o.parentNode
                  , i = o.getAttribute(f);
                if (i) {
                    var l = n(i, 0)
                      , d = document.createTextNode(l);
                    a.replaceChild(d, o)
                }
            } catch (h) {
                e(h)
            }
    }
    function a(t) {
        for (var r = t.querySelectorAll("template"), n = 0; n < r.length; n++)
            try {
                i(r[n].content)
            } catch (c) {
                e(c)
            }
    }
    function i(t) {
        try {
            c(t),
            o(t),
            a(t)
        } catch (r) {
            e(r)
        }
    }
    var l = "/cdn-cgi/l/email-protection#"
      , u = ".__cf_email__"
      , f = "data-cfemail"
      , d = document.createElement("div");
    i(document),
    function() {
        var e = document.currentScript || document.scripts[document.scripts.length - 1];
        e.parentNode.removeChild(e)
    }()
}();
/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e, t) {
    "use strict";
    "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
        if (!e.document)
            throw new Error("jQuery requires a window with a document");
        return t(e)
    }
    : t(e)
}("undefined" != typeof window ? window : this, function(ie, e) {
    "use strict";
    var oe = []
      , r = Object.getPrototypeOf
      , ae = oe.slice
      , g = oe.flat ? function(e) {
        return oe.flat.call(e)
    }
    : function(e) {
        return oe.concat.apply([], e)
    }
      , s = oe.push
      , se = oe.indexOf
      , n = {}
      , i = n.toString
      , ue = n.hasOwnProperty
      , o = ue.toString
      , a = o.call(Object)
      , le = {}
      , v = function(e) {
        return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item
    }
      , y = function(e) {
        return null != e && e === e.window
    }
      , C = ie.document
      , u = {
        type: !0,
        src: !0,
        nonce: !0,
        noModule: !0
    };
    function m(e, t, n) {
        var r, i, o = (n = n || C).createElement("script");
        if (o.text = e,
        t)
            for (r in u)
                (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
        n.head.appendChild(o).parentNode.removeChild(o)
    }
    function x(e) {
        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[i.call(e)] || "object" : typeof e
    }
    var t = "3.7.1"
      , l = /HTML$/i
      , ce = function(e, t) {
        return new ce.fn.init(e,t)
    };
    function c(e) {
        var t = !!e && "length"in e && e.length
          , n = x(e);
        return !v(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
    }
    function fe(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
    }
    ce.fn = ce.prototype = {
        jquery: t,
        constructor: ce,
        length: 0,
        toArray: function() {
            return ae.call(this)
        },
        get: function(e) {
            return null == e ? ae.call(this) : e < 0 ? this[e + this.length] : this[e]
        },
        pushStack: function(e) {
            var t = ce.merge(this.constructor(), e);
            return t.prevObject = this,
            t
        },
        each: function(e) {
            return ce.each(this, e)
        },
        map: function(n) {
            return this.pushStack(ce.map(this, function(e, t) {
                return n.call(e, t, e)
            }))
        },
        slice: function() {
            return this.pushStack(ae.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq(-1)
        },
        even: function() {
            return this.pushStack(ce.grep(this, function(e, t) {
                return (t + 1) % 2
            }))
        },
        odd: function() {
            return this.pushStack(ce.grep(this, function(e, t) {
                return t % 2
            }))
        },
        eq: function(e) {
            var t = this.length
              , n = +e + (e < 0 ? t : 0);
            return this.pushStack(0 <= n && n < t ? [this[n]] : [])
        },
        end: function() {
            return this.prevObject || this.constructor()
        },
        push: s,
        sort: oe.sort,
        splice: oe.splice
    },
    ce.extend = ce.fn.extend = function() {
        var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1;
        for ("boolean" == typeof a && (l = a,
        a = arguments[s] || {},
        s++),
        "object" == typeof a || v(a) || (a = {}),
        s === u && (a = this,
        s--); s < u; s++)
            if (null != (e = arguments[s]))
                for (t in e)
                    r = e[t],
                    "__proto__" !== t && a !== r && (l && r && (ce.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t],
                    o = i && !Array.isArray(n) ? [] : i || ce.isPlainObject(n) ? n : {},
                    i = !1,
                    a[t] = ce.extend(l, o, r)) : void 0 !== r && (a[t] = r));
        return a
    }
    ,
    ce.extend({
        expando: "jQuery" + (t + Math.random()).replace(/\D/g, ""),
        isReady: !0,
        error: function(e) {
            throw new Error(e)
        },
        noop: function() {},
        isPlainObject: function(e) {
            var t, n;
            return !(!e || "[object Object]" !== i.call(e)) && (!(t = r(e)) || "function" == typeof (n = ue.call(t, "constructor") && t.constructor) && o.call(n) === a)
        },
        isEmptyObject: function(e) {
            var t;
            for (t in e)
                return !1;
            return !0
        },
        globalEval: function(e, t, n) {
            m(e, {
                nonce: t && t.nonce
            }, n)
        },
        each: function(e, t) {
            var n, r = 0;
            if (c(e)) {
                for (n = e.length; r < n; r++)
                    if (!1 === t.call(e[r], r, e[r]))
                        break
            } else
                for (r in e)
                    if (!1 === t.call(e[r], r, e[r]))
                        break;
            return e
        },
        text: function(e) {
            var t, n = "", r = 0, i = e.nodeType;
            if (!i)
                while (t = e[r++])
                    n += ce.text(t);
            return 1 === i || 11 === i ? e.textContent : 9 === i ? e.documentElement.textContent : 3 === i || 4 === i ? e.nodeValue : n
        },
        makeArray: function(e, t) {
            var n = t || [];
            return null != e && (c(Object(e)) ? ce.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)),
            n
        },
        inArray: function(e, t, n) {
            return null == t ? -1 : se.call(t, e, n)
        },
        isXMLDoc: function(e) {
            var t = e && e.namespaceURI
              , n = e && (e.ownerDocument || e).documentElement;
            return !l.test(t || n && n.nodeName || "HTML")
        },
        merge: function(e, t) {
            for (var n = +t.length, r = 0, i = e.length; r < n; r++)
                e[i++] = t[r];
            return e.length = i,
            e
        },
        grep: function(e, t, n) {
            for (var r = [], i = 0, o = e.length, a = !n; i < o; i++)
                !t(e[i], i) !== a && r.push(e[i]);
            return r
        },
        map: function(e, t, n) {
            var r, i, o = 0, a = [];
            if (c(e))
                for (r = e.length; o < r; o++)
                    null != (i = t(e[o], o, n)) && a.push(i);
            else
                for (o in e)
                    null != (i = t(e[o], o, n)) && a.push(i);
            return g(a)
        },
        guid: 1,
        support: le
    }),
    "function" == typeof Symbol && (ce.fn[Symbol.iterator] = oe[Symbol.iterator]),
    ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
        n["[object " + t + "]"] = t.toLowerCase()
    });
    var pe = oe.pop
      , de = oe.sort
      , he = oe.splice
      , ge = "[\\x20\\t\\r\\n\\f]"
      , ve = new RegExp("^" + ge + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ge + "+$","g");
    ce.contains = function(e, t) {
        var n = t && t.parentNode;
        return e === n || !(!n || 1 !== n.nodeType || !(e.contains ? e.contains(n) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(n)))
    }
    ;
    var f = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
    function p(e, t) {
        return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
    }
    ce.escapeSelector = function(e) {
        return (e + "").replace(f, p)
    }
    ;
    var ye = C
      , me = s;
    !function() {
        var e, b, w, o, a, T, r, C, d, i, k = me, S = ce.expando, E = 0, n = 0, s = W(), c = W(), u = W(), h = W(), l = function(e, t) {
            return e === t && (a = !0),
            0
        }, f = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", t = "(?:\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", p = "\\[" + ge + "*(" + t + ")(?:" + ge + "*([*^$|!~]?=)" + ge + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + t + "))|)" + ge + "*\\]", g = ":(" + t + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + p + ")*)|.*)\\)|)", v = new RegExp(ge + "+","g"), y = new RegExp("^" + ge + "*," + ge + "*"), m = new RegExp("^" + ge + "*([>+~]|" + ge + ")" + ge + "*"), x = new RegExp(ge + "|>"), j = new RegExp(g), A = new RegExp("^" + t + "$"), D = {
            ID: new RegExp("^#(" + t + ")"),
            CLASS: new RegExp("^\\.(" + t + ")"),
            TAG: new RegExp("^(" + t + "|[*])"),
            ATTR: new RegExp("^" + p),
            PSEUDO: new RegExp("^" + g),
            CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ge + "*(even|odd|(([+-]|)(\\d*)n|)" + ge + "*(?:([+-]|)" + ge + "*(\\d+)|))" + ge + "*\\)|)","i"),
            bool: new RegExp("^(?:" + f + ")$","i"),
            needsContext: new RegExp("^" + ge + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ge + "*((?:-\\d)?\\d*)" + ge + "*\\)|)(?=[^-]|$)","i")
        }, N = /^(?:input|select|textarea|button)$/i, q = /^h\d$/i, L = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, H = /[+~]/, O = new RegExp("\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\([^\\r\\n\\f])","g"), P = function(e, t) {
            var n = "0x" + e.slice(1) - 65536;
            return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
        }, M = function() {
            V()
        }, R = J(function(e) {
            return !0 === e.disabled && fe(e, "fieldset")
        }, {
            dir: "parentNode",
            next: "legend"
        });
        try {
            k.apply(oe = ae.call(ye.childNodes), ye.childNodes),
            oe[ye.childNodes.length].nodeType
        } catch (e) {
            k = {
                apply: function(e, t) {
                    me.apply(e, ae.call(t))
                },
                call: function(e) {
                    me.apply(e, ae.call(arguments, 1))
                }
            }
        }
        function I(t, e, n, r) {
            var i, o, a, s, u, l, c, f = e && e.ownerDocument, p = e ? e.nodeType : 9;
            if (n = n || [],
            "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p)
                return n;
            if (!r && (V(e),
            e = e || T,
            C)) {
                if (11 !== p && (u = L.exec(t)))
                    if (i = u[1]) {
                        if (9 === p) {
                            if (!(a = e.getElementById(i)))
                                return n;
                            if (a.id === i)
                                return k.call(n, a),
                                n
                        } else if (f && (a = f.getElementById(i)) && I.contains(e, a) && a.id === i)
                            return k.call(n, a),
                            n
                    } else {
                        if (u[2])
                            return k.apply(n, e.getElementsByTagName(t)),
                            n;
                        if ((i = u[3]) && e.getElementsByClassName)
                            return k.apply(n, e.getElementsByClassName(i)),
                            n
                    }
                if (!(h[t + " "] || d && d.test(t))) {
                    if (c = t,
                    f = e,
                    1 === p && (x.test(t) || m.test(t))) {
                        (f = H.test(t) && U(e.parentNode) || e) == e && le.scope || ((s = e.getAttribute("id")) ? s = ce.escapeSelector(s) : e.setAttribute("id", s = S)),
                        o = (l = Y(t)).length;
                        while (o--)
                            l[o] = (s ? "#" + s : ":scope") + " " + Q(l[o]);
                        c = l.join(",")
                    }
                    try {
                        return k.apply(n, f.querySelectorAll(c)),
                        n
                    } catch (e) {
                        h(t, !0)
                    } finally {
                        s === S && e.removeAttribute("id")
                    }
                }
            }
            return re(t.replace(ve, "$1"), e, n, r)
        }
        function W() {
            var r = [];
            return function e(t, n) {
                return r.push(t + " ") > b.cacheLength && delete e[r.shift()],
                e[t + " "] = n
            }
        }
        function F(e) {
            return e[S] = !0,
            e
        }
        function $(e) {
            var t = T.createElement("fieldset");
            try {
                return !!e(t)
            } catch (e) {
                return !1
            } finally {
                t.parentNode && t.parentNode.removeChild(t),
                t = null
            }
        }
        function B(t) {
            return function(e) {
                return fe(e, "input") && e.type === t
            }
        }
        function _(t) {
            return function(e) {
                return (fe(e, "input") || fe(e, "button")) && e.type === t
            }
        }
        function z(t) {
            return function(e) {
                return "form"in e ? e.parentNode && !1 === e.disabled ? "label"in e ? "label"in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && R(e) === t : e.disabled === t : "label"in e && e.disabled === t
            }
        }
        function X(a) {
            return F(function(o) {
                return o = +o,
                F(function(e, t) {
                    var n, r = a([], e.length, o), i = r.length;
                    while (i--)
                        e[n = r[i]] && (e[n] = !(t[n] = e[n]))
                })
            })
        }
        function U(e) {
            return e && "undefined" != typeof e.getElementsByTagName && e
        }
        function V(e) {
            var t, n = e ? e.ownerDocument || e : ye;
            return n != T && 9 === n.nodeType && n.documentElement && (r = (T = n).documentElement,
            C = !ce.isXMLDoc(T),
            i = r.matches || r.webkitMatchesSelector || r.msMatchesSelector,
            r.msMatchesSelector && ye != T && (t = T.defaultView) && t.top !== t && t.addEventListener("unload", M),
            le.getById = $(function(e) {
                return r.appendChild(e).id = ce.expando,
                !T.getElementsByName || !T.getElementsByName(ce.expando).length
            }),
            le.disconnectedMatch = $(function(e) {
                return i.call(e, "*")
            }),
            le.scope = $(function() {
                return T.querySelectorAll(":scope")
            }),
            le.cssHas = $(function() {
                try {
                    return T.querySelector(":has(*,:jqfake)"),
                    !1
                } catch (e) {
                    return !0
                }
            }),
            le.getById ? (b.filter.ID = function(e) {
                var t = e.replace(O, P);
                return function(e) {
                    return e.getAttribute("id") === t
                }
            }
            ,
            b.find.ID = function(e, t) {
                if ("undefined" != typeof t.getElementById && C) {
                    var n = t.getElementById(e);
                    return n ? [n] : []
                }
            }
            ) : (b.filter.ID = function(e) {
                var n = e.replace(O, P);
                return function(e) {
                    var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
                    return t && t.value === n
                }
            }
            ,
            b.find.ID = function(e, t) {
                if ("undefined" != typeof t.getElementById && C) {
                    var n, r, i, o = t.getElementById(e);
                    if (o) {
                        if ((n = o.getAttributeNode("id")) && n.value === e)
                            return [o];
                        i = t.getElementsByName(e),
                        r = 0;
                        while (o = i[r++])
                            if ((n = o.getAttributeNode("id")) && n.value === e)
                                return [o]
                    }
                    return []
                }
            }
            ),
            b.find.TAG = function(e, t) {
                return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : t.querySelectorAll(e)
            }
            ,
            b.find.CLASS = function(e, t) {
                if ("undefined" != typeof t.getElementsByClassName && C)
                    return t.getElementsByClassName(e)
            }
            ,
            d = [],
            $(function(e) {
                var t;
                r.appendChild(e).innerHTML = "<a id='" + S + "' href='' disabled='disabled'></a><select id='" + S + "-\r\\' disabled='disabled'><option selected=''></option></select>",
                e.querySelectorAll("[selected]").length || d.push("\\[" + ge + "*(?:value|" + f + ")"),
                e.querySelectorAll("[id~=" + S + "-]").length || d.push("~="),
                e.querySelectorAll("a#" + S + "+*").length || d.push(".#.+[+~]"),
                e.querySelectorAll(":checked").length || d.push(":checked"),
                (t = T.createElement("input")).setAttribute("type", "hidden"),
                e.appendChild(t).setAttribute("name", "D"),
                r.appendChild(e).disabled = !0,
                2 !== e.querySelectorAll(":disabled").length && d.push(":enabled", ":disabled"),
                (t = T.createElement("input")).setAttribute("name", ""),
                e.appendChild(t),
                e.querySelectorAll("[name='']").length || d.push("\\[" + ge + "*name" + ge + "*=" + ge + "*(?:''|\"\")")
            }),
            le.cssHas || d.push(":has"),
            d = d.length && new RegExp(d.join("|")),
            l = function(e, t) {
                if (e === t)
                    return a = !0,
                    0;
                var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
                return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !le.sortDetached && t.compareDocumentPosition(e) === n ? e === T || e.ownerDocument == ye && I.contains(ye, e) ? -1 : t === T || t.ownerDocument == ye && I.contains(ye, t) ? 1 : o ? se.call(o, e) - se.call(o, t) : 0 : 4 & n ? -1 : 1)
            }
            ),
            T
        }
        for (e in I.matches = function(e, t) {
            return I(e, null, null, t)
        }
        ,
        I.matchesSelector = function(e, t) {
            if (V(e),
            C && !h[t + " "] && (!d || !d.test(t)))
                try {
                    var n = i.call(e, t);
                    if (n || le.disconnectedMatch || e.document && 11 !== e.document.nodeType)
                        return n
                } catch (e) {
                    h(t, !0)
                }
            return 0 < I(t, T, null, [e]).length
        }
        ,
        I.contains = function(e, t) {
            return (e.ownerDocument || e) != T && V(e),
            ce.contains(e, t)
        }
        ,
        I.attr = function(e, t) {
            (e.ownerDocument || e) != T && V(e);
            var n = b.attrHandle[t.toLowerCase()]
              , r = n && ue.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !C) : void 0;
            return void 0 !== r ? r : e.getAttribute(t)
        }
        ,
        I.error = function(e) {
            throw new Error("Syntax error, unrecognized expression: " + e)
        }
        ,
        ce.uniqueSort = function(e) {
            var t, n = [], r = 0, i = 0;
            if (a = !le.sortStable,
            o = !le.sortStable && ae.call(e, 0),
            de.call(e, l),
            a) {
                while (t = e[i++])
                    t === e[i] && (r = n.push(i));
                while (r--)
                    he.call(e, n[r], 1)
            }
            return o = null,
            e
        }
        ,
        ce.fn.uniqueSort = function() {
            return this.pushStack(ce.uniqueSort(ae.apply(this)))
        }
        ,
        (b = ce.expr = {
            cacheLength: 50,
            createPseudo: F,
            match: D,
            attrHandle: {},
            find: {},
            relative: {
                ">": {
                    dir: "parentNode",
                    first: !0
                },
                " ": {
                    dir: "parentNode"
                },
                "+": {
                    dir: "previousSibling",
                    first: !0
                },
                "~": {
                    dir: "previousSibling"
                }
            },
            preFilter: {
                ATTR: function(e) {
                    return e[1] = e[1].replace(O, P),
                    e[3] = (e[3] || e[4] || e[5] || "").replace(O, P),
                    "~=" === e[2] && (e[3] = " " + e[3] + " "),
                    e.slice(0, 4)
                },
                CHILD: function(e) {
                    return e[1] = e[1].toLowerCase(),
                    "nth" === e[1].slice(0, 3) ? (e[3] || I.error(e[0]),
                    e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])),
                    e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && I.error(e[0]),
                    e
                },
                PSEUDO: function(e) {
                    var t, n = !e[6] && e[2];
                    return D.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && j.test(n) && (t = Y(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t),
                    e[2] = n.slice(0, t)),
                    e.slice(0, 3))
                }
            },
            filter: {
                TAG: function(e) {
                    var t = e.replace(O, P).toLowerCase();
                    return "*" === e ? function() {
                        return !0
                    }
                    : function(e) {
                        return fe(e, t)
                    }
                },
                CLASS: function(e) {
                    var t = s[e + " "];
                    return t || (t = new RegExp("(^|" + ge + ")" + e + "(" + ge + "|$)")) && s(e, function(e) {
                        return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
                    })
                },
                ATTR: function(n, r, i) {
                    return function(e) {
                        var t = I.attr(e, n);
                        return null == t ? "!=" === r : !r || (t += "",
                        "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(v, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
                    }
                },
                CHILD: function(d, e, t, h, g) {
                    var v = "nth" !== d.slice(0, 3)
                      , y = "last" !== d.slice(-4)
                      , m = "of-type" === e;
                    return 1 === h && 0 === g ? function(e) {
                        return !!e.parentNode
                    }
                    : function(e, t, n) {
                        var r, i, o, a, s, u = v !== y ? "nextSibling" : "previousSibling", l = e.parentNode, c = m && e.nodeName.toLowerCase(), f = !n && !m, p = !1;
                        if (l) {
                            if (v) {
                                while (u) {
                                    o = e;
                                    while (o = o[u])
                                        if (m ? fe(o, c) : 1 === o.nodeType)
                                            return !1;
                                    s = u = "only" === d && !s && "nextSibling"
                                }
                                return !0
                            }
                            if (s = [y ? l.firstChild : l.lastChild],
                            y && f) {
                                p = (a = (r = (i = l[S] || (l[S] = {}))[d] || [])[0] === E && r[1]) && r[2],
                                o = a && l.childNodes[a];
                                while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                    if (1 === o.nodeType && ++p && o === e) {
                                        i[d] = [E, a, p];
                                        break
                                    }
                            } else if (f && (p = a = (r = (i = e[S] || (e[S] = {}))[d] || [])[0] === E && r[1]),
                            !1 === p)
                                while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                    if ((m ? fe(o, c) : 1 === o.nodeType) && ++p && (f && ((i = o[S] || (o[S] = {}))[d] = [E, p]),
                                    o === e))
                                        break;
                            return (p -= g) === h || p % h == 0 && 0 <= p / h
                        }
                    }
                },
                PSEUDO: function(e, o) {
                    var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || I.error("unsupported pseudo: " + e);
                    return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o],
                    b.setFilters.hasOwnProperty(e.toLowerCase()) ? F(function(e, t) {
                        var n, r = a(e, o), i = r.length;
                        while (i--)
                            e[n = se.call(e, r[i])] = !(t[n] = r[i])
                    }) : function(e) {
                        return a(e, 0, t)
                    }
                    ) : a
                }
            },
            pseudos: {
                not: F(function(e) {
                    var r = []
                      , i = []
                      , s = ne(e.replace(ve, "$1"));
                    return s[S] ? F(function(e, t, n, r) {
                        var i, o = s(e, null, r, []), a = e.length;
                        while (a--)
                            (i = o[a]) && (e[a] = !(t[a] = i))
                    }) : function(e, t, n) {
                        return r[0] = e,
                        s(r, null, n, i),
                        r[0] = null,
                        !i.pop()
                    }
                }),
                has: F(function(t) {
                    return function(e) {
                        return 0 < I(t, e).length
                    }
                }),
                contains: F(function(t) {
                    return t = t.replace(O, P),
                    function(e) {
                        return -1 < (e.textContent || ce.text(e)).indexOf(t)
                    }
                }),
                lang: F(function(n) {
                    return A.test(n || "") || I.error("unsupported lang: " + n),
                    n = n.replace(O, P).toLowerCase(),
                    function(e) {
                        var t;
                        do {
                            if (t = C ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang"))
                                return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
                        } while ((e = e.parentNode) && 1 === e.nodeType);
                        return !1
                    }
                }),
                target: function(e) {
                    var t = ie.location && ie.location.hash;
                    return t && t.slice(1) === e.id
                },
                root: function(e) {
                    return e === r
                },
                focus: function(e) {
                    return e === function() {
                        try {
                            return T.activeElement
                        } catch (e) {}
                    }() && T.hasFocus() && !!(e.type || e.href || ~e.tabIndex)
                },
                enabled: z(!1),
                disabled: z(!0),
                checked: function(e) {
                    return fe(e, "input") && !!e.checked || fe(e, "option") && !!e.selected
                },
                selected: function(e) {
                    return e.parentNode && e.parentNode.selectedIndex,
                    !0 === e.selected
                },
                empty: function(e) {
                    for (e = e.firstChild; e; e = e.nextSibling)
                        if (e.nodeType < 6)
                            return !1;
                    return !0
                },
                parent: function(e) {
                    return !b.pseudos.empty(e)
                },
                header: function(e) {
                    return q.test(e.nodeName)
                },
                input: function(e) {
                    return N.test(e.nodeName)
                },
                button: function(e) {
                    return fe(e, "input") && "button" === e.type || fe(e, "button")
                },
                text: function(e) {
                    var t;
                    return fe(e, "input") && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                },
                first: X(function() {
                    return [0]
                }),
                last: X(function(e, t) {
                    return [t - 1]
                }),
                eq: X(function(e, t, n) {
                    return [n < 0 ? n + t : n]
                }),
                even: X(function(e, t) {
                    for (var n = 0; n < t; n += 2)
                        e.push(n);
                    return e
                }),
                odd: X(function(e, t) {
                    for (var n = 1; n < t; n += 2)
                        e.push(n);
                    return e
                }),
                lt: X(function(e, t, n) {
                    var r;
                    for (r = n < 0 ? n + t : t < n ? t : n; 0 <= --r; )
                        e.push(r);
                    return e
                }),
                gt: X(function(e, t, n) {
                    for (var r = n < 0 ? n + t : n; ++r < t; )
                        e.push(r);
                    return e
                })
            }
        }).pseudos.nth = b.pseudos.eq,
        {
            radio: !0,
            checkbox: !0,
            file: !0,
            password: !0,
            image: !0
        })
            b.pseudos[e] = B(e);
        for (e in {
            submit: !0,
            reset: !0
        })
            b.pseudos[e] = _(e);
        function G() {}
        function Y(e, t) {
            var n, r, i, o, a, s, u, l = c[e + " "];
            if (l)
                return t ? 0 : l.slice(0);
            a = e,
            s = [],
            u = b.preFilter;
            while (a) {
                for (o in n && !(r = y.exec(a)) || (r && (a = a.slice(r[0].length) || a),
                s.push(i = [])),
                n = !1,
                (r = m.exec(a)) && (n = r.shift(),
                i.push({
                    value: n,
                    type: r[0].replace(ve, " ")
                }),
                a = a.slice(n.length)),
                b.filter)
                    !(r = D[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(),
                    i.push({
                        value: n,
                        type: o,
                        matches: r
                    }),
                    a = a.slice(n.length));
                if (!n)
                    break
            }
            return t ? a.length : a ? I.error(e) : c(e, s).slice(0)
        }
        function Q(e) {
            for (var t = 0, n = e.length, r = ""; t < n; t++)
                r += e[t].value;
            return r
        }
        function J(a, e, t) {
            var s = e.dir
              , u = e.next
              , l = u || s
              , c = t && "parentNode" === l
              , f = n++;
            return e.first ? function(e, t, n) {
                while (e = e[s])
                    if (1 === e.nodeType || c)
                        return a(e, t, n);
                return !1
            }
            : function(e, t, n) {
                var r, i, o = [E, f];
                if (n) {
                    while (e = e[s])
                        if ((1 === e.nodeType || c) && a(e, t, n))
                            return !0
                } else
                    while (e = e[s])
                        if (1 === e.nodeType || c)
                            if (i = e[S] || (e[S] = {}),
                            u && fe(e, u))
                                e = e[s] || e;
                            else {
                                if ((r = i[l]) && r[0] === E && r[1] === f)
                                    return o[2] = r[2];
                                if ((i[l] = o)[2] = a(e, t, n))
                                    return !0
                            }
                return !1
            }
        }
        function K(i) {
            return 1 < i.length ? function(e, t, n) {
                var r = i.length;
                while (r--)
                    if (!i[r](e, t, n))
                        return !1;
                return !0
            }
            : i[0]
        }
        function Z(e, t, n, r, i) {
            for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)
                (o = e[s]) && (n && !n(o, r, i) || (a.push(o),
                l && t.push(s)));
            return a
        }
        function ee(d, h, g, v, y, e) {
            return v && !v[S] && (v = ee(v)),
            y && !y[S] && (y = ee(y, e)),
            F(function(e, t, n, r) {
                var i, o, a, s, u = [], l = [], c = t.length, f = e || function(e, t, n) {
                    for (var r = 0, i = t.length; r < i; r++)
                        I(e, t[r], n);
                    return n
                }(h || "*", n.nodeType ? [n] : n, []), p = !d || !e && h ? f : Z(f, u, d, n, r);
                if (g ? g(p, s = y || (e ? d : c || v) ? [] : t, n, r) : s = p,
                v) {
                    i = Z(s, l),
                    v(i, [], n, r),
                    o = i.length;
                    while (o--)
                        (a = i[o]) && (s[l[o]] = !(p[l[o]] = a))
                }
                if (e) {
                    if (y || d) {
                        if (y) {
                            i = [],
                            o = s.length;
                            while (o--)
                                (a = s[o]) && i.push(p[o] = a);
                            y(null, s = [], i, r)
                        }
                        o = s.length;
                        while (o--)
                            (a = s[o]) && -1 < (i = y ? se.call(e, a) : u[o]) && (e[i] = !(t[i] = a))
                    }
                } else
                    s = Z(s === t ? s.splice(c, s.length) : s),
                    y ? y(null, t, s, r) : k.apply(t, s)
            })
        }
        function te(e) {
            for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = J(function(e) {
                return e === i
            }, a, !0), l = J(function(e) {
                return -1 < se.call(i, e)
            }, a, !0), c = [function(e, t, n) {
                var r = !o && (n || t != w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
                return i = null,
                r
            }
            ]; s < r; s++)
                if (t = b.relative[e[s].type])
                    c = [J(K(c), t)];
                else {
                    if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
                        for (n = ++s; n < r; n++)
                            if (b.relative[e[n].type])
                                break;
                        return ee(1 < s && K(c), 1 < s && Q(e.slice(0, s - 1).concat({
                            value: " " === e[s - 2].type ? "*" : ""
                        })).replace(ve, "$1"), t, s < n && te(e.slice(s, n)), n < r && te(e = e.slice(n)), n < r && Q(e))
                    }
                    c.push(t)
                }
            return K(c)
        }
        function ne(e, t) {
            var n, v, y, m, x, r, i = [], o = [], a = u[e + " "];
            if (!a) {
                t || (t = Y(e)),
                n = t.length;
                while (n--)
                    (a = te(t[n]))[S] ? i.push(a) : o.push(a);
                (a = u(e, (v = o,
                m = 0 < (y = i).length,
                x = 0 < v.length,
                r = function(e, t, n, r, i) {
                    var o, a, s, u = 0, l = "0", c = e && [], f = [], p = w, d = e || x && b.find.TAG("*", i), h = E += null == p ? 1 : Math.random() || .1, g = d.length;
                    for (i && (w = t == T || t || i); l !== g && null != (o = d[l]); l++) {
                        if (x && o) {
                            a = 0,
                            t || o.ownerDocument == T || (V(o),
                            n = !C);
                            while (s = v[a++])
                                if (s(o, t || T, n)) {
                                    k.call(r, o);
                                    break
                                }
                            i && (E = h)
                        }
                        m && ((o = !s && o) && u--,
                        e && c.push(o))
                    }
                    if (u += l,
                    m && l !== u) {
                        a = 0;
                        while (s = y[a++])
                            s(c, f, t, n);
                        if (e) {
                            if (0 < u)
                                while (l--)
                                    c[l] || f[l] || (f[l] = pe.call(r));
                            f = Z(f)
                        }
                        k.apply(r, f),
                        i && !e && 0 < f.length && 1 < u + y.length && ce.uniqueSort(r)
                    }
                    return i && (E = h,
                    w = p),
                    c
                }
                ,
                m ? F(r) : r))).selector = e
            }
            return a
        }
        function re(e, t, n, r) {
            var i, o, a, s, u, l = "function" == typeof e && e, c = !r && Y(e = l.selector || e);
            if (n = n || [],
            1 === c.length) {
                if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && C && b.relative[o[1].type]) {
                    if (!(t = (b.find.ID(a.matches[0].replace(O, P), t) || [])[0]))
                        return n;
                    l && (t = t.parentNode),
                    e = e.slice(o.shift().value.length)
                }
                i = D.needsContext.test(e) ? 0 : o.length;
                while (i--) {
                    if (a = o[i],
                    b.relative[s = a.type])
                        break;
                    if ((u = b.find[s]) && (r = u(a.matches[0].replace(O, P), H.test(o[0].type) && U(t.parentNode) || t))) {
                        if (o.splice(i, 1),
                        !(e = r.length && Q(o)))
                            return k.apply(n, r),
                            n;
                        break
                    }
                }
            }
            return (l || ne(e, c))(r, t, !C, n, !t || H.test(e) && U(t.parentNode) || t),
            n
        }
        G.prototype = b.filters = b.pseudos,
        b.setFilters = new G,
        le.sortStable = S.split("").sort(l).join("") === S,
        V(),
        le.sortDetached = $(function(e) {
            return 1 & e.compareDocumentPosition(T.createElement("fieldset"))
        }),
        ce.find = I,
        ce.expr[":"] = ce.expr.pseudos,
        ce.unique = ce.uniqueSort,
        I.compile = ne,
        I.select = re,
        I.setDocument = V,
        I.tokenize = Y,
        I.escape = ce.escapeSelector,
        I.getText = ce.text,
        I.isXML = ce.isXMLDoc,
        I.selectors = ce.expr,
        I.support = ce.support,
        I.uniqueSort = ce.uniqueSort
    }();
    var d = function(e, t, n) {
        var r = []
          , i = void 0 !== n;
        while ((e = e[t]) && 9 !== e.nodeType)
            if (1 === e.nodeType) {
                if (i && ce(e).is(n))
                    break;
                r.push(e)
            }
        return r
    }
      , h = function(e, t) {
        for (var n = []; e; e = e.nextSibling)
            1 === e.nodeType && e !== t && n.push(e);
        return n
    }
      , b = ce.expr.match.needsContext
      , w = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
    function T(e, n, r) {
        return v(n) ? ce.grep(e, function(e, t) {
            return !!n.call(e, t, e) !== r
        }) : n.nodeType ? ce.grep(e, function(e) {
            return e === n !== r
        }) : "string" != typeof n ? ce.grep(e, function(e) {
            return -1 < se.call(n, e) !== r
        }) : ce.filter(n, e, r)
    }
    ce.filter = function(e, t, n) {
        var r = t[0];
        return n && (e = ":not(" + e + ")"),
        1 === t.length && 1 === r.nodeType ? ce.find.matchesSelector(r, e) ? [r] : [] : ce.find.matches(e, ce.grep(t, function(e) {
            return 1 === e.nodeType
        }))
    }
    ,
    ce.fn.extend({
        find: function(e) {
            var t, n, r = this.length, i = this;
            if ("string" != typeof e)
                return this.pushStack(ce(e).filter(function() {
                    for (t = 0; t < r; t++)
                        if (ce.contains(i[t], this))
                            return !0
                }));
            for (n = this.pushStack([]),
            t = 0; t < r; t++)
                ce.find(e, i[t], n);
            return 1 < r ? ce.uniqueSort(n) : n
        },
        filter: function(e) {
            return this.pushStack(T(this, e || [], !1))
        },
        not: function(e) {
            return this.pushStack(T(this, e || [], !0))
        },
        is: function(e) {
            return !!T(this, "string" == typeof e && b.test(e) ? ce(e) : e || [], !1).length
        }
    });
    var k, S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
    (ce.fn.init = function(e, t, n) {
        var r, i;
        if (!e)
            return this;
        if (n = n || k,
        "string" == typeof e) {
            if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : S.exec(e)) || !r[1] && t)
                return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
            if (r[1]) {
                if (t = t instanceof ce ? t[0] : t,
                ce.merge(this, ce.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : C, !0)),
                w.test(r[1]) && ce.isPlainObject(t))
                    for (r in t)
                        v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
                return this
            }
            return (i = C.getElementById(r[2])) && (this[0] = i,
            this.length = 1),
            this
        }
        return e.nodeType ? (this[0] = e,
        this.length = 1,
        this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(ce) : ce.makeArray(e, this)
    }
    ).prototype = ce.fn,
    k = ce(C);
    var E = /^(?:parents|prev(?:Until|All))/
      , j = {
        children: !0,
        contents: !0,
        next: !0,
        prev: !0
    };
    function A(e, t) {
        while ((e = e[t]) && 1 !== e.nodeType)
            ;
        return e
    }
    ce.fn.extend({
        has: function(e) {
            var t = ce(e, this)
              , n = t.length;
            return this.filter(function() {
                for (var e = 0; e < n; e++)
                    if (ce.contains(this, t[e]))
                        return !0
            })
        },
        closest: function(e, t) {
            var n, r = 0, i = this.length, o = [], a = "string" != typeof e && ce(e);
            if (!b.test(e))
                for (; r < i; r++)
                    for (n = this[r]; n && n !== t; n = n.parentNode)
                        if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && ce.find.matchesSelector(n, e))) {
                            o.push(n);
                            break
                        }
            return this.pushStack(1 < o.length ? ce.uniqueSort(o) : o)
        },
        index: function(e) {
            return e ? "string" == typeof e ? se.call(ce(e), this[0]) : se.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },
        add: function(e, t) {
            return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e, t))))
        },
        addBack: function(e) {
            return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
        }
    }),
    ce.each({
        parent: function(e) {
            var t = e.parentNode;
            return t && 11 !== t.nodeType ? t : null
        },
        parents: function(e) {
            return d(e, "parentNode")
        },
        parentsUntil: function(e, t, n) {
            return d(e, "parentNode", n)
        },
        next: function(e) {
            return A(e, "nextSibling")
        },
        prev: function(e) {
            return A(e, "previousSibling")
        },
        nextAll: function(e) {
            return d(e, "nextSibling")
        },
        prevAll: function(e) {
            return d(e, "previousSibling")
        },
        nextUntil: function(e, t, n) {
            return d(e, "nextSibling", n)
        },
        prevUntil: function(e, t, n) {
            return d(e, "previousSibling", n)
        },
        siblings: function(e) {
            return h((e.parentNode || {}).firstChild, e)
        },
        children: function(e) {
            return h(e.firstChild)
        },
        contents: function(e) {
            return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (fe(e, "template") && (e = e.content || e),
            ce.merge([], e.childNodes))
        }
    }, function(r, i) {
        ce.fn[r] = function(e, t) {
            var n = ce.map(this, i, e);
            return "Until" !== r.slice(-5) && (t = e),
            t && "string" == typeof t && (n = ce.filter(t, n)),
            1 < this.length && (j[r] || ce.uniqueSort(n),
            E.test(r) && n.reverse()),
            this.pushStack(n)
        }
    });
    var D = /[^\x20\t\r\n\f]+/g;
    function N(e) {
        return e
    }
    function q(e) {
        throw e
    }
    function L(e, t, n, r) {
        var i;
        try {
            e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
        } catch (e) {
            n.apply(void 0, [e])
        }
    }
    ce.Callbacks = function(r) {
        var e, n;
        r = "string" == typeof r ? (e = r,
        n = {},
        ce.each(e.match(D) || [], function(e, t) {
            n[t] = !0
        }),
        n) : ce.extend({}, r);
        var i, t, o, a, s = [], u = [], l = -1, c = function() {
            for (a = a || r.once,
            o = i = !0; u.length; l = -1) {
                t = u.shift();
                while (++l < s.length)
                    !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length,
                    t = !1)
            }
            r.memory || (t = !1),
            i = !1,
            a && (s = t ? [] : "")
        }, f = {
            add: function() {
                return s && (t && !i && (l = s.length - 1,
                u.push(t)),
                function n(e) {
                    ce.each(e, function(e, t) {
                        v(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== x(t) && n(t)
                    })
                }(arguments),
                t && !i && c()),
                this
            },
            remove: function() {
                return ce.each(arguments, function(e, t) {
                    var n;
                    while (-1 < (n = ce.inArray(t, s, n)))
                        s.splice(n, 1),
                        n <= l && l--
                }),
                this
            },
            has: function(e) {
                return e ? -1 < ce.inArray(e, s) : 0 < s.length
            },
            empty: function() {
                return s && (s = []),
                this
            },
            disable: function() {
                return a = u = [],
                s = t = "",
                this
            },
            disabled: function() {
                return !s
            },
            lock: function() {
                return a = u = [],
                t || i || (s = t = ""),
                this
            },
            locked: function() {
                return !!a
            },
            fireWith: function(e, t) {
                return a || (t = [e, (t = t || []).slice ? t.slice() : t],
                u.push(t),
                i || c()),
                this
            },
            fire: function() {
                return f.fireWith(this, arguments),
                this
            },
            fired: function() {
                return !!o
            }
        };
        return f
    }
    ,
    ce.extend({
        Deferred: function(e) {
            var o = [["notify", "progress", ce.Callbacks("memory"), ce.Callbacks("memory"), 2], ["resolve", "done", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 1, "rejected"]]
              , i = "pending"
              , a = {
                state: function() {
                    return i
                },
                always: function() {
                    return s.done(arguments).fail(arguments),
                    this
                },
                "catch": function(e) {
                    return a.then(null, e)
                },
                pipe: function() {
                    var i = arguments;
                    return ce.Deferred(function(r) {
                        ce.each(o, function(e, t) {
                            var n = v(i[t[4]]) && i[t[4]];
                            s[t[1]](function() {
                                var e = n && n.apply(this, arguments);
                                e && v(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
                            })
                        }),
                        i = null
                    }).promise()
                },
                then: function(t, n, r) {
                    var u = 0;
                    function l(i, o, a, s) {
                        return function() {
                            var n = this
                              , r = arguments
                              , e = function() {
                                var e, t;
                                if (!(i < u)) {
                                    if ((e = a.apply(n, r)) === o.promise())
                                        throw new TypeError("Thenable self-resolution");
                                    t = e && ("object" == typeof e || "function" == typeof e) && e.then,
                                    v(t) ? s ? t.call(e, l(u, o, N, s), l(u, o, q, s)) : (u++,
                                    t.call(e, l(u, o, N, s), l(u, o, q, s), l(u, o, N, o.notifyWith))) : (a !== N && (n = void 0,
                                    r = [e]),
                                    (s || o.resolveWith)(n, r))
                                }
                            }
                              , t = s ? e : function() {
                                try {
                                    e()
                                } catch (e) {
                                    ce.Deferred.exceptionHook && ce.Deferred.exceptionHook(e, t.error),
                                    u <= i + 1 && (a !== q && (n = void 0,
                                    r = [e]),
                                    o.rejectWith(n, r))
                                }
                            }
                            ;
                            i ? t() : (ce.Deferred.getErrorHook ? t.error = ce.Deferred.getErrorHook() : ce.Deferred.getStackHook && (t.error = ce.Deferred.getStackHook()),
                            ie.setTimeout(t))
                        }
                    }
                    return ce.Deferred(function(e) {
                        o[0][3].add(l(0, e, v(r) ? r : N, e.notifyWith)),
                        o[1][3].add(l(0, e, v(t) ? t : N)),
                        o[2][3].add(l(0, e, v(n) ? n : q))
                    }).promise()
                },
                promise: function(e) {
                    return null != e ? ce.extend(e, a) : a
                }
            }
              , s = {};
            return ce.each(o, function(e, t) {
                var n = t[2]
                  , r = t[5];
                a[t[1]] = n.add,
                r && n.add(function() {
                    i = r
                }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock),
                n.add(t[3].fire),
                s[t[0]] = function() {
                    return s[t[0] + "With"](this === s ? void 0 : this, arguments),
                    this
                }
                ,
                s[t[0] + "With"] = n.fireWith
            }),
            a.promise(s),
            e && e.call(s, s),
            s
        },
        when: function(e) {
            var n = arguments.length
              , t = n
              , r = Array(t)
              , i = ae.call(arguments)
              , o = ce.Deferred()
              , a = function(t) {
                return function(e) {
                    r[t] = this,
                    i[t] = 1 < arguments.length ? ae.call(arguments) : e,
                    --n || o.resolveWith(r, i)
                }
            };
            if (n <= 1 && (L(e, o.done(a(t)).resolve, o.reject, !n),
            "pending" === o.state() || v(i[t] && i[t].then)))
                return o.then();
            while (t--)
                L(i[t], a(t), o.reject);
            return o.promise()
        }
    });
    var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
    ce.Deferred.exceptionHook = function(e, t) {
        ie.console && ie.console.warn && e && H.test(e.name) && ie.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
    }
    ,
    ce.readyException = function(e) {
        ie.setTimeout(function() {
            throw e
        })
    }
    ;
    var O = ce.Deferred();
    function P() {
        C.removeEventListener("DOMContentLoaded", P),
        ie.removeEventListener("load", P),
        ce.ready()
    }
    ce.fn.ready = function(e) {
        return O.then(e)["catch"](function(e) {
            ce.readyException(e)
        }),
        this
    }
    ,
    ce.extend({
        isReady: !1,
        readyWait: 1,
        ready: function(e) {
            (!0 === e ? --ce.readyWait : ce.isReady) || (ce.isReady = !0) !== e && 0 < --ce.readyWait || O.resolveWith(C, [ce])
        }
    }),
    ce.ready.then = O.then,
    "complete" === C.readyState || "loading" !== C.readyState && !C.documentElement.doScroll ? ie.setTimeout(ce.ready) : (C.addEventListener("DOMContentLoaded", P),
    ie.addEventListener("load", P));
    var M = function(e, t, n, r, i, o, a) {
        var s = 0
          , u = e.length
          , l = null == n;
        if ("object" === x(n))
            for (s in i = !0,
            n)
                M(e, t, s, n[s], !0, o, a);
        else if (void 0 !== r && (i = !0,
        v(r) || (a = !0),
        l && (a ? (t.call(e, r),
        t = null) : (l = t,
        t = function(e, t, n) {
            return l.call(ce(e), n)
        }
        )),
        t))
            for (; s < u; s++)
                t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
        return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
    }
      , R = /^-ms-/
      , I = /-([a-z])/g;
    function W(e, t) {
        return t.toUpperCase()
    }
    function F(e) {
        return e.replace(R, "ms-").replace(I, W)
    }
    var $ = function(e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
    };
    function B() {
        this.expando = ce.expando + B.uid++
    }
    B.uid = 1,
    B.prototype = {
        cache: function(e) {
            var t = e[this.expando];
            return t || (t = {},
            $(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
                value: t,
                configurable: !0
            }))),
            t
        },
        set: function(e, t, n) {
            var r, i = this.cache(e);
            if ("string" == typeof t)
                i[F(t)] = n;
            else
                for (r in t)
                    i[F(r)] = t[r];
            return i
        },
        get: function(e, t) {
            return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][F(t)]
        },
        access: function(e, t, n) {
            return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n),
            void 0 !== n ? n : t)
        },
        remove: function(e, t) {
            var n, r = e[this.expando];
            if (void 0 !== r) {
                if (void 0 !== t) {
                    n = (t = Array.isArray(t) ? t.map(F) : (t = F(t))in r ? [t] : t.match(D) || []).length;
                    while (n--)
                        delete r[t[n]]
                }
                (void 0 === t || ce.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
            }
        },
        hasData: function(e) {
            var t = e[this.expando];
            return void 0 !== t && !ce.isEmptyObject(t)
        }
    };
    var _ = new B
      , z = new B
      , X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
      , U = /[A-Z]/g;
    function V(e, t, n) {
        var r, i;
        if (void 0 === n && 1 === e.nodeType)
            if (r = "data-" + t.replace(U, "-$&").toLowerCase(),
            "string" == typeof (n = e.getAttribute(r))) {
                try {
                    n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : X.test(i) ? JSON.parse(i) : i)
                } catch (e) {}
                z.set(e, t, n)
            } else
                n = void 0;
        return n
    }
    ce.extend({
        hasData: function(e) {
            return z.hasData(e) || _.hasData(e)
        },
        data: function(e, t, n) {
            return z.access(e, t, n)
        },
        removeData: function(e, t) {
            z.remove(e, t)
        },
        _data: function(e, t, n) {
            return _.access(e, t, n)
        },
        _removeData: function(e, t) {
            _.remove(e, t)
        }
    }),
    ce.fn.extend({
        data: function(n, e) {
            var t, r, i, o = this[0], a = o && o.attributes;
            if (void 0 === n) {
                if (this.length && (i = z.get(o),
                1 === o.nodeType && !_.get(o, "hasDataAttrs"))) {
                    t = a.length;
                    while (t--)
                        a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = F(r.slice(5)),
                        V(o, r, i[r]));
                    _.set(o, "hasDataAttrs", !0)
                }
                return i
            }
            return "object" == typeof n ? this.each(function() {
                z.set(this, n)
            }) : M(this, function(e) {
                var t;
                if (o && void 0 === e)
                    return void 0 !== (t = z.get(o, n)) ? t : void 0 !== (t = V(o, n)) ? t : void 0;
                this.each(function() {
                    z.set(this, n, e)
                })
            }, null, e, 1 < arguments.length, null, !0)
        },
        removeData: function(e) {
            return this.each(function() {
                z.remove(this, e)
            })
        }
    }),
    ce.extend({
        queue: function(e, t, n) {
            var r;
            if (e)
                return t = (t || "fx") + "queue",
                r = _.get(e, t),
                n && (!r || Array.isArray(n) ? r = _.access(e, t, ce.makeArray(n)) : r.push(n)),
                r || []
        },
        dequeue: function(e, t) {
            t = t || "fx";
            var n = ce.queue(e, t)
              , r = n.length
              , i = n.shift()
              , o = ce._queueHooks(e, t);
            "inprogress" === i && (i = n.shift(),
            r--),
            i && ("fx" === t && n.unshift("inprogress"),
            delete o.stop,
            i.call(e, function() {
                ce.dequeue(e, t)
            }, o)),
            !r && o && o.empty.fire()
        },
        _queueHooks: function(e, t) {
            var n = t + "queueHooks";
            return _.get(e, n) || _.access(e, n, {
                empty: ce.Callbacks("once memory").add(function() {
                    _.remove(e, [t + "queue", n])
                })
            })
        }
    }),
    ce.fn.extend({
        queue: function(t, n) {
            var e = 2;
            return "string" != typeof t && (n = t,
            t = "fx",
            e--),
            arguments.length < e ? ce.queue(this[0], t) : void 0 === n ? this : this.each(function() {
                var e = ce.queue(this, t, n);
                ce._queueHooks(this, t),
                "fx" === t && "inprogress" !== e[0] && ce.dequeue(this, t)
            })
        },
        dequeue: function(e) {
            return this.each(function() {
                ce.dequeue(this, e)
            })
        },
        clearQueue: function(e) {
            return this.queue(e || "fx", [])
        },
        promise: function(e, t) {
            var n, r = 1, i = ce.Deferred(), o = this, a = this.length, s = function() {
                --r || i.resolveWith(o, [o])
            };
            "string" != typeof e && (t = e,
            e = void 0),
            e = e || "fx";
            while (a--)
                (n = _.get(o[a], e + "queueHooks")) && n.empty && (r++,
                n.empty.add(s));
            return s(),
            i.promise(t)
        }
    });
    var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
      , Y = new RegExp("^(?:([+-])=|)(" + G + ")([a-z%]*)$","i")
      , Q = ["Top", "Right", "Bottom", "Left"]
      , J = C.documentElement
      , K = function(e) {
        return ce.contains(e.ownerDocument, e)
    }
      , Z = {
        composed: !0
    };
    J.getRootNode && (K = function(e) {
        return ce.contains(e.ownerDocument, e) || e.getRootNode(Z) === e.ownerDocument
    }
    );
    var ee = function(e, t) {
        return "none" === (e = t || e).style.display || "" === e.style.display && K(e) && "none" === ce.css(e, "display")
    };
    function te(e, t, n, r) {
        var i, o, a = 20, s = r ? function() {
            return r.cur()
        }
        : function() {
            return ce.css(e, t, "")
        }
        , u = s(), l = n && n[3] || (ce.cssNumber[t] ? "" : "px"), c = e.nodeType && (ce.cssNumber[t] || "px" !== l && +u) && Y.exec(ce.css(e, t));
        if (c && c[3] !== l) {
            u /= 2,
            l = l || c[3],
            c = +u || 1;
            while (a--)
                ce.style(e, t, c + l),
                (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0),
                c /= o;
            c *= 2,
            ce.style(e, t, c + l),
            n = n || []
        }
        return n && (c = +c || +u || 0,
        i = n[1] ? c + (n[1] + 1) * n[2] : +n[2],
        r && (r.unit = l,
        r.start = c,
        r.end = i)),
        i
    }
    var ne = {};
    function re(e, t) {
        for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)
            (r = e[c]).style && (n = r.style.display,
            t ? ("none" === n && (l[c] = _.get(r, "display") || null,
            l[c] || (r.style.display = "")),
            "" === r.style.display && ee(r) && (l[c] = (u = a = o = void 0,
            a = (i = r).ownerDocument,
            s = i.nodeName,
            (u = ne[s]) || (o = a.body.appendChild(a.createElement(s)),
            u = ce.css(o, "display"),
            o.parentNode.removeChild(o),
            "none" === u && (u = "block"),
            ne[s] = u)))) : "none" !== n && (l[c] = "none",
            _.set(r, "display", n)));
        for (c = 0; c < f; c++)
            null != l[c] && (e[c].style.display = l[c]);
        return e
    }
    ce.fn.extend({
        show: function() {
            return re(this, !0)
        },
        hide: function() {
            return re(this)
        },
        toggle: function(e) {
            return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
                ee(this) ? ce(this).show() : ce(this).hide()
            })
        }
    });
    var xe, be, we = /^(?:checkbox|radio)$/i, Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, Ce = /^$|^module$|\/(?:java|ecma)script/i;
    xe = C.createDocumentFragment().appendChild(C.createElement("div")),
    (be = C.createElement("input")).setAttribute("type", "radio"),
    be.setAttribute("checked", "checked"),
    be.setAttribute("name", "t"),
    xe.appendChild(be),
    le.checkClone = xe.cloneNode(!0).cloneNode(!0).lastChild.checked,
    xe.innerHTML = "<textarea>x</textarea>",
    le.noCloneChecked = !!xe.cloneNode(!0).lastChild.defaultValue,
    xe.innerHTML = "<option></option>",
    le.option = !!xe.lastChild;
    var ke = {
        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, "", ""]
    };
    function Se(e, t) {
        var n;
        return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [],
        void 0 === t || t && fe(e, t) ? ce.merge([e], n) : n
    }
    function Ee(e, t) {
        for (var n = 0, r = e.length; n < r; n++)
            _.set(e[n], "globalEval", !t || _.get(t[n], "globalEval"))
    }
    ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead,
    ke.th = ke.td,
    le.option || (ke.optgroup = ke.option = [1, "<select multiple='multiple'>", "</select>"]);
    var je = /<|&#?\w+;/;
    function Ae(e, t, n, r, i) {
        for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
            if ((o = e[d]) || 0 === o)
                if ("object" === x(o))
                    ce.merge(p, o.nodeType ? [o] : o);
                else if (je.test(o)) {
                    a = a || f.appendChild(t.createElement("div")),
                    s = (Te.exec(o) || ["", ""])[1].toLowerCase(),
                    u = ke[s] || ke._default,
                    a.innerHTML = u[1] + ce.htmlPrefilter(o) + u[2],
                    c = u[0];
                    while (c--)
                        a = a.lastChild;
                    ce.merge(p, a.childNodes),
                    (a = f.firstChild).textContent = ""
                } else
                    p.push(t.createTextNode(o));
        f.textContent = "",
        d = 0;
        while (o = p[d++])
            if (r && -1 < ce.inArray(o, r))
                i && i.push(o);
            else if (l = K(o),
            a = Se(f.appendChild(o), "script"),
            l && Ee(a),
            n) {
                c = 0;
                while (o = a[c++])
                    Ce.test(o.type || "") && n.push(o)
            }
        return f
    }
    var De = /^([^.]*)(?:\.(.+)|)/;
    function Ne() {
        return !0
    }
    function qe() {
        return !1
    }
    function Le(e, t, n, r, i, o) {
        var a, s;
        if ("object" == typeof t) {
            for (s in "string" != typeof n && (r = r || n,
            n = void 0),
            t)
                Le(e, s, n, r, t[s], o);
            return e
        }
        if (null == r && null == i ? (i = n,
        r = n = void 0) : null == i && ("string" == typeof n ? (i = r,
        r = void 0) : (i = r,
        r = n,
        n = void 0)),
        !1 === i)
            i = qe;
        else if (!i)
            return e;
        return 1 === o && (a = i,
        (i = function(e) {
            return ce().off(e),
            a.apply(this, arguments)
        }
        ).guid = a.guid || (a.guid = ce.guid++)),
        e.each(function() {
            ce.event.add(this, t, i, r, n)
        })
    }
    function He(e, r, t) {
        t ? (_.set(e, r, !1),
        ce.event.add(e, r, {
            namespace: !1,
            handler: function(e) {
                var t, n = _.get(this, r);
                if (1 & e.isTrigger && this[r]) {
                    if (n)
                        (ce.event.special[r] || {}).delegateType && e.stopPropagation();
                    else if (n = ae.call(arguments),
                    _.set(this, r, n),
                    this[r](),
                    t = _.get(this, r),
                    _.set(this, r, !1),
                    n !== t)
                        return e.stopImmediatePropagation(),
                        e.preventDefault(),
                        t
                } else
                    n && (_.set(this, r, ce.event.trigger(n[0], n.slice(1), this)),
                    e.stopPropagation(),
                    e.isImmediatePropagationStopped = Ne)
            }
        })) : void 0 === _.get(e, r) && ce.event.add(e, r, Ne)
    }
    ce.event = {
        global: {},
        add: function(t, e, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.get(t);
            if ($(t)) {
                n.handler && (n = (o = n).handler,
                i = o.selector),
                i && ce.find.matchesSelector(J, i),
                n.guid || (n.guid = ce.guid++),
                (u = v.events) || (u = v.events = Object.create(null)),
                (a = v.handle) || (a = v.handle = function(e) {
                    return "undefined" != typeof ce && ce.event.triggered !== e.type ? ce.event.dispatch.apply(t, arguments) : void 0
                }
                ),
                l = (e = (e || "").match(D) || [""]).length;
                while (l--)
                    d = g = (s = De.exec(e[l]) || [])[1],
                    h = (s[2] || "").split(".").sort(),
                    d && (f = ce.event.special[d] || {},
                    d = (i ? f.delegateType : f.bindType) || d,
                    f = ce.event.special[d] || {},
                    c = ce.extend({
                        type: d,
                        origType: g,
                        data: r,
                        handler: n,
                        guid: n.guid,
                        selector: i,
                        needsContext: i && ce.expr.match.needsContext.test(i),
                        namespace: h.join(".")
                    }, o),
                    (p = u[d]) || ((p = u[d] = []).delegateCount = 0,
                    f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)),
                    f.add && (f.add.call(t, c),
                    c.handler.guid || (c.handler.guid = n.guid)),
                    i ? p.splice(p.delegateCount++, 0, c) : p.push(c),
                    ce.event.global[d] = !0)
            }
        },
        remove: function(e, t, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.hasData(e) && _.get(e);
            if (v && (u = v.events)) {
                l = (t = (t || "").match(D) || [""]).length;
                while (l--)
                    if (d = g = (s = De.exec(t[l]) || [])[1],
                    h = (s[2] || "").split(".").sort(),
                    d) {
                        f = ce.event.special[d] || {},
                        p = u[d = (r ? f.delegateType : f.bindType) || d] || [],
                        s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                        a = o = p.length;
                        while (o--)
                            c = p[o],
                            !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1),
                            c.selector && p.delegateCount--,
                            f.remove && f.remove.call(e, c));
                        a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || ce.removeEvent(e, d, v.handle),
                        delete u[d])
                    } else
                        for (d in u)
                            ce.event.remove(e, d + t[l], n, r, !0);
                ce.isEmptyObject(u) && _.remove(e, "handle events")
            }
        },
        dispatch: function(e) {
            var t, n, r, i, o, a, s = new Array(arguments.length), u = ce.event.fix(e), l = (_.get(this, "events") || Object.create(null))[u.type] || [], c = ce.event.special[u.type] || {};
            for (s[0] = u,
            t = 1; t < arguments.length; t++)
                s[t] = arguments[t];
            if (u.delegateTarget = this,
            !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
                a = ce.event.handlers.call(this, u, l),
                t = 0;
                while ((i = a[t++]) && !u.isPropagationStopped()) {
                    u.currentTarget = i.elem,
                    n = 0;
                    while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped())
                        u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o,
                        u.data = o.data,
                        void 0 !== (r = ((ce.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(),
                        u.stopPropagation()))
                }
                return c.postDispatch && c.postDispatch.call(this, u),
                u.result
            }
        },
        handlers: function(e, t) {
            var n, r, i, o, a, s = [], u = t.delegateCount, l = e.target;
            if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
                for (; l !== this; l = l.parentNode || this)
                    if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
                        for (o = [],
                        a = {},
                        n = 0; n < u; n++)
                            void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < ce(i, this).index(l) : ce.find(i, this, null, [l]).length),
                            a[i] && o.push(r);
                        o.length && s.push({
                            elem: l,
                            handlers: o
                        })
                    }
            return l = this,
            u < t.length && s.push({
                elem: l,
                handlers: t.slice(u)
            }),
            s
        },
        addProp: function(t, e) {
            Object.defineProperty(ce.Event.prototype, t, {
                enumerable: !0,
                configurable: !0,
                get: v(e) ? function() {
                    if (this.originalEvent)
                        return e(this.originalEvent)
                }
                : function() {
                    if (this.originalEvent)
                        return this.originalEvent[t]
                }
                ,
                set: function(e) {
                    Object.defineProperty(this, t, {
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                        value: e
                    })
                }
            })
        },
        fix: function(e) {
            return e[ce.expando] ? e : new ce.Event(e)
        },
        special: {
            load: {
                noBubble: !0
            },
            click: {
                setup: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click", !0),
                    !1
                },
                trigger: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click"),
                    !0
                },
                _default: function(e) {
                    var t = e.target;
                    return we.test(t.type) && t.click && fe(t, "input") && _.get(t, "click") || fe(t, "a")
                }
            },
            beforeunload: {
                postDispatch: function(e) {
                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                }
            }
        }
    },
    ce.removeEvent = function(e, t, n) {
        e.removeEventListener && e.removeEventListener(t, n)
    }
    ,
    ce.Event = function(e, t) {
        if (!(this instanceof ce.Event))
            return new ce.Event(e,t);
        e && e.type ? (this.originalEvent = e,
        this.type = e.type,
        this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ne : qe,
        this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target,
        this.currentTarget = e.currentTarget,
        this.relatedTarget = e.relatedTarget) : this.type = e,
        t && ce.extend(this, t),
        this.timeStamp = e && e.timeStamp || Date.now(),
        this[ce.expando] = !0
    }
    ,
    ce.Event.prototype = {
        constructor: ce.Event,
        isDefaultPrevented: qe,
        isPropagationStopped: qe,
        isImmediatePropagationStopped: qe,
        isSimulated: !1,
        preventDefault: function() {
            var e = this.originalEvent;
            this.isDefaultPrevented = Ne,
            e && !this.isSimulated && e.preventDefault()
        },
        stopPropagation: function() {
            var e = this.originalEvent;
            this.isPropagationStopped = Ne,
            e && !this.isSimulated && e.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = Ne,
            e && !this.isSimulated && e.stopImmediatePropagation(),
            this.stopPropagation()
        }
    },
    ce.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,
        code: !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: !0
    }, ce.event.addProp),
    ce.each({
        focus: "focusin",
        blur: "focusout"
    }, function(r, i) {
        function o(e) {
            if (C.documentMode) {
                var t = _.get(this, "handle")
                  , n = ce.event.fix(e);
                n.type = "focusin" === e.type ? "focus" : "blur",
                n.isSimulated = !0,
                t(e),
                n.target === n.currentTarget && t(n)
            } else
                ce.event.simulate(i, e.target, ce.event.fix(e))
        }
        ce.event.special[r] = {
            setup: function() {
                var e;
                if (He(this, r, !0),
                !C.documentMode)
                    return !1;
                (e = _.get(this, i)) || this.addEventListener(i, o),
                _.set(this, i, (e || 0) + 1)
            },
            trigger: function() {
                return He(this, r),
                !0
            },
            teardown: function() {
                var e;
                if (!C.documentMode)
                    return !1;
                (e = _.get(this, i) - 1) ? _.set(this, i, e) : (this.removeEventListener(i, o),
                _.remove(this, i))
            },
            _default: function(e) {
                return _.get(e.target, r)
            },
            delegateType: i
        },
        ce.event.special[i] = {
            setup: function() {
                var e = this.ownerDocument || this.document || this
                  , t = C.documentMode ? this : e
                  , n = _.get(t, i);
                n || (C.documentMode ? this.addEventListener(i, o) : e.addEventListener(r, o, !0)),
                _.set(t, i, (n || 0) + 1)
            },
            teardown: function() {
                var e = this.ownerDocument || this.document || this
                  , t = C.documentMode ? this : e
                  , n = _.get(t, i) - 1;
                n ? _.set(t, i, n) : (C.documentMode ? this.removeEventListener(i, o) : e.removeEventListener(r, o, !0),
                _.remove(t, i))
            }
        }
    }),
    ce.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function(e, i) {
        ce.event.special[e] = {
            delegateType: i,
            bindType: i,
            handle: function(e) {
                var t, n = e.relatedTarget, r = e.handleObj;
                return n && (n === this || ce.contains(this, n)) || (e.type = r.origType,
                t = r.handler.apply(this, arguments),
                e.type = i),
                t
            }
        }
    }),
    ce.fn.extend({
        on: function(e, t, n, r) {
            return Le(this, e, t, n, r)
        },
        one: function(e, t, n, r) {
            return Le(this, e, t, n, r, 1)
        },
        off: function(e, t, n) {
            var r, i;
            if (e && e.preventDefault && e.handleObj)
                return r = e.handleObj,
                ce(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler),
                this;
            if ("object" == typeof e) {
                for (i in e)
                    this.off(i, t, e[i]);
                return this
            }
            return !1 !== t && "function" != typeof t || (n = t,
            t = void 0),
            !1 === n && (n = qe),
            this.each(function() {
                ce.event.remove(this, e, n, t)
            })
        }
    });
    var Oe = /<script|<style|<link/i
      , Pe = /checked\s*(?:[^=]|=\s*.checked.)/i
      , Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
    function Re(e, t) {
        return fe(e, "table") && fe(11 !== t.nodeType ? t : t.firstChild, "tr") && ce(e).children("tbody")[0] || e
    }
    function Ie(e) {
        return e.type = (null !== e.getAttribute("type")) + "/" + e.type,
        e
    }
    function We(e) {
        return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"),
        e
    }
    function Fe(e, t) {
        var n, r, i, o, a, s;
        if (1 === t.nodeType) {
            if (_.hasData(e) && (s = _.get(e).events))
                for (i in _.remove(t, "handle events"),
                s)
                    for (n = 0,
                    r = s[i].length; n < r; n++)
                        ce.event.add(t, i, s[i][n]);
            z.hasData(e) && (o = z.access(e),
            a = ce.extend({}, o),
            z.set(t, a))
        }
    }
    function $e(n, r, i, o) {
        r = g(r);
        var e, t, a, s, u, l, c = 0, f = n.length, p = f - 1, d = r[0], h = v(d);
        if (h || 1 < f && "string" == typeof d && !le.checkClone && Pe.test(d))
            return n.each(function(e) {
                var t = n.eq(e);
                h && (r[0] = d.call(this, e, t.html())),
                $e(t, r, i, o)
            });
        if (f && (t = (e = Ae(r, n[0].ownerDocument, !1, n, o)).firstChild,
        1 === e.childNodes.length && (e = t),
        t || o)) {
            for (s = (a = ce.map(Se(e, "script"), Ie)).length; c < f; c++)
                u = e,
                c !== p && (u = ce.clone(u, !0, !0),
                s && ce.merge(a, Se(u, "script"))),
                i.call(n[c], u, c);
            if (s)
                for (l = a[a.length - 1].ownerDocument,
                ce.map(a, We),
                c = 0; c < s; c++)
                    u = a[c],
                    Ce.test(u.type || "") && !_.access(u, "globalEval") && ce.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? ce._evalUrl && !u.noModule && ce._evalUrl(u.src, {
                        nonce: u.nonce || u.getAttribute("nonce")
                    }, l) : m(u.textContent.replace(Me, ""), u, l))
        }
        return n
    }
    function Be(e, t, n) {
        for (var r, i = t ? ce.filter(t, e) : e, o = 0; null != (r = i[o]); o++)
            n || 1 !== r.nodeType || ce.cleanData(Se(r)),
            r.parentNode && (n && K(r) && Ee(Se(r, "script")),
            r.parentNode.removeChild(r));
        return e
    }
    ce.extend({
        htmlPrefilter: function(e) {
            return e
        },
        clone: function(e, t, n) {
            var r, i, o, a, s, u, l, c = e.cloneNode(!0), f = K(e);
            if (!(le.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || ce.isXMLDoc(e)))
                for (a = Se(c),
                r = 0,
                i = (o = Se(e)).length; r < i; r++)
                    s = o[r],
                    u = a[r],
                    void 0,
                    "input" === (l = u.nodeName.toLowerCase()) && we.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue);
            if (t)
                if (n)
                    for (o = o || Se(e),
                    a = a || Se(c),
                    r = 0,
                    i = o.length; r < i; r++)
                        Fe(o[r], a[r]);
                else
                    Fe(e, c);
            return 0 < (a = Se(c, "script")).length && Ee(a, !f && Se(e, "script")),
            c
        },
        cleanData: function(e) {
            for (var t, n, r, i = ce.event.special, o = 0; void 0 !== (n = e[o]); o++)
                if ($(n)) {
                    if (t = n[_.expando]) {
                        if (t.events)
                            for (r in t.events)
                                i[r] ? ce.event.remove(n, r) : ce.removeEvent(n, r, t.handle);
                        n[_.expando] = void 0
                    }
                    n[z.expando] && (n[z.expando] = void 0)
                }
        }
    }),
    ce.fn.extend({
        detach: function(e) {
            return Be(this, e, !0)
        },
        remove: function(e) {
            return Be(this, e)
        },
        text: function(e) {
            return M(this, function(e) {
                return void 0 === e ? ce.text(this) : this.empty().each(function() {
                    1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
                })
            }, null, e, arguments.length)
        },
        append: function() {
            return $e(this, arguments, function(e) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Re(this, e).appendChild(e)
            })
        },
        prepend: function() {
            return $e(this, arguments, function(e) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var t = Re(this, e);
                    t.insertBefore(e, t.firstChild)
                }
            })
        },
        before: function() {
            return $e(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this)
            })
        },
        after: function() {
            return $e(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
            })
        },
        empty: function() {
            for (var e, t = 0; null != (e = this[t]); t++)
                1 === e.nodeType && (ce.cleanData(Se(e, !1)),
                e.textContent = "");
            return this
        },
        clone: function(e, t) {
            return e = null != e && e,
            t = null == t ? e : t,
            this.map(function() {
                return ce.clone(this, e, t)
            })
        },
        html: function(e) {
            return M(this, function(e) {
                var t = this[0] || {}
                  , n = 0
                  , r = this.length;
                if (void 0 === e && 1 === t.nodeType)
                    return t.innerHTML;
                if ("string" == typeof e && !Oe.test(e) && !ke[(Te.exec(e) || ["", ""])[1].toLowerCase()]) {
                    e = ce.htmlPrefilter(e);
                    try {
                        for (; n < r; n++)
                            1 === (t = this[n] || {}).nodeType && (ce.cleanData(Se(t, !1)),
                            t.innerHTML = e);
                        t = 0
                    } catch (e) {}
                }
                t && this.empty().append(e)
            }, null, e, arguments.length)
        },
        replaceWith: function() {
            var n = [];
            return $e(this, arguments, function(e) {
                var t = this.parentNode;
                ce.inArray(this, n) < 0 && (ce.cleanData(Se(this)),
                t && t.replaceChild(e, this))
            }, n)
        }
    }),
    ce.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(e, a) {
        ce.fn[e] = function(e) {
            for (var t, n = [], r = ce(e), i = r.length - 1, o = 0; o <= i; o++)
                t = o === i ? this : this.clone(!0),
                ce(r[o])[a](t),
                s.apply(n, t.get());
            return this.pushStack(n)
        }
    });
    var _e = new RegExp("^(" + G + ")(?!px)[a-z%]+$","i")
      , ze = /^--/
      , Xe = function(e) {
        var t = e.ownerDocument.defaultView;
        return t && t.opener || (t = ie),
        t.getComputedStyle(e)
    }
      , Ue = function(e, t, n) {
        var r, i, o = {};
        for (i in t)
            o[i] = e.style[i],
            e.style[i] = t[i];
        for (i in r = n.call(e),
        t)
            e.style[i] = o[i];
        return r
    }
      , Ve = new RegExp(Q.join("|"),"i");
    function Ge(e, t, n) {
        var r, i, o, a, s = ze.test(t), u = e.style;
        return (n = n || Xe(e)) && (a = n.getPropertyValue(t) || n[t],
        s && a && (a = a.replace(ve, "$1") || void 0),
        "" !== a || K(e) || (a = ce.style(e, t)),
        !le.pixelBoxStyles() && _e.test(a) && Ve.test(t) && (r = u.width,
        i = u.minWidth,
        o = u.maxWidth,
        u.minWidth = u.maxWidth = u.width = a,
        a = n.width,
        u.width = r,
        u.minWidth = i,
        u.maxWidth = o)),
        void 0 !== a ? a + "" : a
    }
    function Ye(e, t) {
        return {
            get: function() {
                if (!e())
                    return (this.get = t).apply(this, arguments);
                delete this.get
            }
        }
    }
    !function() {
        function e() {
            if (l) {
                u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",
                l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",
                J.appendChild(u).appendChild(l);
                var e = ie.getComputedStyle(l);
                n = "1%" !== e.top,
                s = 12 === t(e.marginLeft),
                l.style.right = "60%",
                o = 36 === t(e.right),
                r = 36 === t(e.width),
                l.style.position = "absolute",
                i = 12 === t(l.offsetWidth / 3),
                J.removeChild(u),
                l = null
            }
        }
        function t(e) {
            return Math.round(parseFloat(e))
        }
        var n, r, i, o, a, s, u = C.createElement("div"), l = C.createElement("div");
        l.style && (l.style.backgroundClip = "content-box",
        l.cloneNode(!0).style.backgroundClip = "",
        le.clearCloneStyle = "content-box" === l.style.backgroundClip,
        ce.extend(le, {
            boxSizingReliable: function() {
                return e(),
                r
            },
            pixelBoxStyles: function() {
                return e(),
                o
            },
            pixelPosition: function() {
                return e(),
                n
            },
            reliableMarginLeft: function() {
                return e(),
                s
            },
            scrollboxSize: function() {
                return e(),
                i
            },
            reliableTrDimensions: function() {
                var e, t, n, r;
                return null == a && (e = C.createElement("table"),
                t = C.createElement("tr"),
                n = C.createElement("div"),
                e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate",
                t.style.cssText = "box-sizing:content-box;border:1px solid",
                t.style.height = "1px",
                n.style.height = "9px",
                n.style.display = "block",
                J.appendChild(e).appendChild(t).appendChild(n),
                r = ie.getComputedStyle(t),
                a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight,
                J.removeChild(e)),
                a
            }
        }))
    }();
    var Qe = ["Webkit", "Moz", "ms"]
      , Je = C.createElement("div").style
      , Ke = {};
    function Ze(e) {
        var t = ce.cssProps[e] || Ke[e];
        return t || (e in Je ? e : Ke[e] = function(e) {
            var t = e[0].toUpperCase() + e.slice(1)
              , n = Qe.length;
            while (n--)
                if ((e = Qe[n] + t)in Je)
                    return e
        }(e) || e)
    }
    var et = /^(none|table(?!-c[ea]).+)/
      , tt = {
        position: "absolute",
        visibility: "hidden",
        display: "block"
    }
      , nt = {
        letterSpacing: "0",
        fontWeight: "400"
    };
    function rt(e, t, n) {
        var r = Y.exec(t);
        return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
    }
    function it(e, t, n, r, i, o) {
        var a = "width" === t ? 1 : 0
          , s = 0
          , u = 0
          , l = 0;
        if (n === (r ? "border" : "content"))
            return 0;
        for (; a < 4; a += 2)
            "margin" === n && (l += ce.css(e, n + Q[a], !0, i)),
            r ? ("content" === n && (u -= ce.css(e, "padding" + Q[a], !0, i)),
            "margin" !== n && (u -= ce.css(e, "border" + Q[a] + "Width", !0, i))) : (u += ce.css(e, "padding" + Q[a], !0, i),
            "padding" !== n ? u += ce.css(e, "border" + Q[a] + "Width", !0, i) : s += ce.css(e, "border" + Q[a] + "Width", !0, i));
        return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0),
        u + l
    }
    function ot(e, t, n) {
        var r = Xe(e)
          , i = (!le.boxSizingReliable() || n) && "border-box" === ce.css(e, "boxSizing", !1, r)
          , o = i
          , a = Ge(e, t, r)
          , s = "offset" + t[0].toUpperCase() + t.slice(1);
        if (_e.test(a)) {
            if (!n)
                return a;
            a = "auto"
        }
        return (!le.boxSizingReliable() && i || !le.reliableTrDimensions() && fe(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === ce.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === ce.css(e, "boxSizing", !1, r),
        (o = s in e) && (a = e[s])),
        (a = parseFloat(a) || 0) + it(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
    }
    function at(e, t, n, r, i) {
        return new at.prototype.init(e,t,n,r,i)
    }
    ce.extend({
        cssHooks: {
            opacity: {
                get: function(e, t) {
                    if (t) {
                        var n = Ge(e, "opacity");
                        return "" === n ? "1" : n
                    }
                }
            }
        },
        cssNumber: {
            animationIterationCount: !0,
            aspectRatio: !0,
            borderImageSlice: !0,
            columnCount: !0,
            flexGrow: !0,
            flexShrink: !0,
            fontWeight: !0,
            gridArea: !0,
            gridColumn: !0,
            gridColumnEnd: !0,
            gridColumnStart: !0,
            gridRow: !0,
            gridRowEnd: !0,
            gridRowStart: !0,
            lineHeight: !0,
            opacity: !0,
            order: !0,
            orphans: !0,
            scale: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0,
            fillOpacity: !0,
            floodOpacity: !0,
            stopOpacity: !0,
            strokeMiterlimit: !0,
            strokeOpacity: !0
        },
        cssProps: {},
        style: function(e, t, n, r) {
            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                var i, o, a, s = F(t), u = ze.test(t), l = e.style;
                if (u || (t = Ze(s)),
                a = ce.cssHooks[t] || ce.cssHooks[s],
                void 0 === n)
                    return a && "get"in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
                "string" === (o = typeof n) && (i = Y.exec(n)) && i[1] && (n = te(e, t, i),
                o = "number"),
                null != n && n == n && ("number" !== o || u || (n += i && i[3] || (ce.cssNumber[s] ? "" : "px")),
                le.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"),
                a && "set"in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n))
            }
        },
        css: function(e, t, n, r) {
            var i, o, a, s = F(t);
            return ze.test(t) || (t = Ze(s)),
            (a = ce.cssHooks[t] || ce.cssHooks[s]) && "get"in a && (i = a.get(e, !0, n)),
            void 0 === i && (i = Ge(e, t, r)),
            "normal" === i && t in nt && (i = nt[t]),
            "" === n || n ? (o = parseFloat(i),
            !0 === n || isFinite(o) ? o || 0 : i) : i
        }
    }),
    ce.each(["height", "width"], function(e, u) {
        ce.cssHooks[u] = {
            get: function(e, t, n) {
                if (t)
                    return !et.test(ce.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? ot(e, u, n) : Ue(e, tt, function() {
                        return ot(e, u, n)
                    })
            },
            set: function(e, t, n) {
                var r, i = Xe(e), o = !le.scrollboxSize() && "absolute" === i.position, a = (o || n) && "border-box" === ce.css(e, "boxSizing", !1, i), s = n ? it(e, u, n, a, i) : 0;
                return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - it(e, u, "border", !1, i) - .5)),
                s && (r = Y.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t,
                t = ce.css(e, u)),
                rt(0, t, s)
            }
        }
    }),
    ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function(e, t) {
        if (t)
            return (parseFloat(Ge(e, "marginLeft")) || e.getBoundingClientRect().left - Ue(e, {
                marginLeft: 0
            }, function() {
                return e.getBoundingClientRect().left
            })) + "px"
    }),
    ce.each({
        margin: "",
        padding: "",
        border: "Width"
    }, function(i, o) {
        ce.cssHooks[i + o] = {
            expand: function(e) {
                for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++)
                    n[i + Q[t] + o] = r[t] || r[t - 2] || r[0];
                return n
            }
        },
        "margin" !== i && (ce.cssHooks[i + o].set = rt)
    }),
    ce.fn.extend({
        css: function(e, t) {
            return M(this, function(e, t, n) {
                var r, i, o = {}, a = 0;
                if (Array.isArray(t)) {
                    for (r = Xe(e),
                    i = t.length; a < i; a++)
                        o[t[a]] = ce.css(e, t[a], !1, r);
                    return o
                }
                return void 0 !== n ? ce.style(e, t, n) : ce.css(e, t)
            }, e, t, 1 < arguments.length)
        }
    }),
    ((ce.Tween = at).prototype = {
        constructor: at,
        init: function(e, t, n, r, i, o) {
            this.elem = e,
            this.prop = n,
            this.easing = i || ce.easing._default,
            this.options = t,
            this.start = this.now = this.cur(),
            this.end = r,
            this.unit = o || (ce.cssNumber[n] ? "" : "px")
        },
        cur: function() {
            var e = at.propHooks[this.prop];
            return e && e.get ? e.get(this) : at.propHooks._default.get(this)
        },
        run: function(e) {
            var t, n = at.propHooks[this.prop];
            return this.options.duration ? this.pos = t = ce.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e,
            this.now = (this.end - this.start) * t + this.start,
            this.options.step && this.options.step.call(this.elem, this.now, this),
            n && n.set ? n.set(this) : at.propHooks._default.set(this),
            this
        }
    }).init.prototype = at.prototype,
    (at.propHooks = {
        _default: {
            get: function(e) {
                var t;
                return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = ce.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
            },
            set: function(e) {
                ce.fx.step[e.prop] ? ce.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !ce.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)] ? e.elem[e.prop] = e.now : ce.style(e.elem, e.prop, e.now + e.unit)
            }
        }
    }).scrollTop = at.propHooks.scrollLeft = {
        set: function(e) {
            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
        }
    },
    ce.easing = {
        linear: function(e) {
            return e
        },
        swing: function(e) {
            return .5 - Math.cos(e * Math.PI) / 2
        },
        _default: "swing"
    },
    ce.fx = at.prototype.init,
    ce.fx.step = {};
    var st, ut, lt, ct, ft = /^(?:toggle|show|hide)$/, pt = /queueHooks$/;
    function dt() {
        ut && (!1 === C.hidden && ie.requestAnimationFrame ? ie.requestAnimationFrame(dt) : ie.setTimeout(dt, ce.fx.interval),
        ce.fx.tick())
    }
    function ht() {
        return ie.setTimeout(function() {
            st = void 0
        }),
        st = Date.now()
    }
    function gt(e, t) {
        var n, r = 0, i = {
            height: e
        };
        for (t = t ? 1 : 0; r < 4; r += 2 - t)
            i["margin" + (n = Q[r])] = i["padding" + n] = e;
        return t && (i.opacity = i.width = e),
        i
    }
    function vt(e, t, n) {
        for (var r, i = (yt.tweeners[t] || []).concat(yt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
            if (r = i[o].call(n, t, e))
                return r
    }
    function yt(o, e, t) {
        var n, a, r = 0, i = yt.prefilters.length, s = ce.Deferred().always(function() {
            delete u.elem
        }), u = function() {
            if (a)
                return !1;
            for (var e = st || ht(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++)
                l.tweens[r].run(n);
            return s.notifyWith(o, [l, n, t]),
            n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]),
            s.resolveWith(o, [l]),
            !1)
        }, l = s.promise({
            elem: o,
            props: ce.extend({}, e),
            opts: ce.extend(!0, {
                specialEasing: {},
                easing: ce.easing._default
            }, t),
            originalProperties: e,
            originalOptions: t,
            startTime: st || ht(),
            duration: t.duration,
            tweens: [],
            createTween: function(e, t) {
                var n = ce.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing);
                return l.tweens.push(n),
                n
            },
            stop: function(e) {
                var t = 0
                  , n = e ? l.tweens.length : 0;
                if (a)
                    return this;
                for (a = !0; t < n; t++)
                    l.tweens[t].run(1);
                return e ? (s.notifyWith(o, [l, 1, 0]),
                s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]),
                this
            }
        }), c = l.props;
        for (!function(e, t) {
            var n, r, i, o, a;
            for (n in e)
                if (i = t[r = F(n)],
                o = e[n],
                Array.isArray(o) && (i = o[1],
                o = e[n] = o[0]),
                n !== r && (e[r] = o,
                delete e[n]),
                (a = ce.cssHooks[r]) && "expand"in a)
                    for (n in o = a.expand(o),
                    delete e[r],
                    o)
                        n in e || (e[n] = o[n],
                        t[n] = i);
                else
                    t[r] = i
        }(c, l.opts.specialEasing); r < i; r++)
            if (n = yt.prefilters[r].call(l, o, c, l.opts))
                return v(n.stop) && (ce._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)),
                n;
        return ce.map(c, vt, l),
        v(l.opts.start) && l.opts.start.call(o, l),
        l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always),
        ce.fx.timer(ce.extend(u, {
            elem: o,
            anim: l,
            queue: l.opts.queue
        })),
        l
    }
    ce.Animation = ce.extend(yt, {
        tweeners: {
            "*": [function(e, t) {
                var n = this.createTween(e, t);
                return te(n.elem, e, Y.exec(t), n),
                n
            }
            ]
        },
        tweener: function(e, t) {
            v(e) ? (t = e,
            e = ["*"]) : e = e.match(D);
            for (var n, r = 0, i = e.length; r < i; r++)
                n = e[r],
                yt.tweeners[n] = yt.tweeners[n] || [],
                yt.tweeners[n].unshift(t)
        },
        prefilters: [function(e, t, n) {
            var r, i, o, a, s, u, l, c, f = "width"in t || "height"in t, p = this, d = {}, h = e.style, g = e.nodeType && ee(e), v = _.get(e, "fxshow");
            for (r in n.queue || (null == (a = ce._queueHooks(e, "fx")).unqueued && (a.unqueued = 0,
            s = a.empty.fire,
            a.empty.fire = function() {
                a.unqueued || s()
            }
            ),
            a.unqueued++,
            p.always(function() {
                p.always(function() {
                    a.unqueued--,
                    ce.queue(e, "fx").length || a.empty.fire()
                })
            })),
            t)
                if (i = t[r],
                ft.test(i)) {
                    if (delete t[r],
                    o = o || "toggle" === i,
                    i === (g ? "hide" : "show")) {
                        if ("show" !== i || !v || void 0 === v[r])
                            continue;
                        g = !0
                    }
                    d[r] = v && v[r] || ce.style(e, r)
                }
            if ((u = !ce.isEmptyObject(t)) || !ce.isEmptyObject(d))
                for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY],
                null == (l = v && v.display) && (l = _.get(e, "display")),
                "none" === (c = ce.css(e, "display")) && (l ? c = l : (re([e], !0),
                l = e.style.display || l,
                c = ce.css(e, "display"),
                re([e]))),
                ("inline" === c || "inline-block" === c && null != l) && "none" === ce.css(e, "float") && (u || (p.done(function() {
                    h.display = l
                }),
                null == l && (c = h.display,
                l = "none" === c ? "" : c)),
                h.display = "inline-block")),
                n.overflow && (h.overflow = "hidden",
                p.always(function() {
                    h.overflow = n.overflow[0],
                    h.overflowX = n.overflow[1],
                    h.overflowY = n.overflow[2]
                })),
                u = !1,
                d)
                    u || (v ? "hidden"in v && (g = v.hidden) : v = _.access(e, "fxshow", {
                        display: l
                    }),
                    o && (v.hidden = !g),
                    g && re([e], !0),
                    p.done(function() {
                        for (r in g || re([e]),
                        _.remove(e, "fxshow"),
                        d)
                            ce.style(e, r, d[r])
                    })),
                    u = vt(g ? v[r] : 0, r, p),
                    r in v || (v[r] = u.start,
                    g && (u.end = u.start,
                    u.start = 0))
        }
        ],
        prefilter: function(e, t) {
            t ? yt.prefilters.unshift(e) : yt.prefilters.push(e)
        }
    }),
    ce.speed = function(e, t, n) {
        var r = e && "object" == typeof e ? ce.extend({}, e) : {
            complete: n || !n && t || v(e) && e,
            duration: e,
            easing: n && t || t && !v(t) && t
        };
        return ce.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in ce.fx.speeds ? r.duration = ce.fx.speeds[r.duration] : r.duration = ce.fx.speeds._default),
        null != r.queue && !0 !== r.queue || (r.queue = "fx"),
        r.old = r.complete,
        r.complete = function() {
            v(r.old) && r.old.call(this),
            r.queue && ce.dequeue(this, r.queue)
        }
        ,
        r
    }
    ,
    ce.fn.extend({
        fadeTo: function(e, t, n, r) {
            return this.filter(ee).css("opacity", 0).show().end().animate({
                opacity: t
            }, e, n, r)
        },
        animate: function(t, e, n, r) {
            var i = ce.isEmptyObject(t)
              , o = ce.speed(e, n, r)
              , a = function() {
                var e = yt(this, ce.extend({}, t), o);
                (i || _.get(this, "finish")) && e.stop(!0)
            };
            return a.finish = a,
            i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
        },
        stop: function(i, e, o) {
            var a = function(e) {
                var t = e.stop;
                delete e.stop,
                t(o)
            };
            return "string" != typeof i && (o = e,
            e = i,
            i = void 0),
            e && this.queue(i || "fx", []),
            this.each(function() {
                var e = !0
                  , t = null != i && i + "queueHooks"
                  , n = ce.timers
                  , r = _.get(this);
                if (t)
                    r[t] && r[t].stop && a(r[t]);
                else
                    for (t in r)
                        r[t] && r[t].stop && pt.test(t) && a(r[t]);
                for (t = n.length; t--; )
                    n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o),
                    e = !1,
                    n.splice(t, 1));
                !e && o || ce.dequeue(this, i)
            })
        },
        finish: function(a) {
            return !1 !== a && (a = a || "fx"),
            this.each(function() {
                var e, t = _.get(this), n = t[a + "queue"], r = t[a + "queueHooks"], i = ce.timers, o = n ? n.length : 0;
                for (t.finish = !0,
                ce.queue(this, a, []),
                r && r.stop && r.stop.call(this, !0),
                e = i.length; e--; )
                    i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0),
                    i.splice(e, 1));
                for (e = 0; e < o; e++)
                    n[e] && n[e].finish && n[e].finish.call(this);
                delete t.finish
            })
        }
    }),
    ce.each(["toggle", "show", "hide"], function(e, r) {
        var i = ce.fn[r];
        ce.fn[r] = function(e, t, n) {
            return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(gt(r, !0), e, t, n)
        }
    }),
    ce.each({
        slideDown: gt("show"),
        slideUp: gt("hide"),
        slideToggle: gt("toggle"),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function(e, r) {
        ce.fn[e] = function(e, t, n) {
            return this.animate(r, e, t, n)
        }
    }),
    ce.timers = [],
    ce.fx.tick = function() {
        var e, t = 0, n = ce.timers;
        for (st = Date.now(); t < n.length; t++)
            (e = n[t])() || n[t] !== e || n.splice(t--, 1);
        n.length || ce.fx.stop(),
        st = void 0
    }
    ,
    ce.fx.timer = function(e) {
        ce.timers.push(e),
        ce.fx.start()
    }
    ,
    ce.fx.interval = 13,
    ce.fx.start = function() {
        ut || (ut = !0,
        dt())
    }
    ,
    ce.fx.stop = function() {
        ut = null
    }
    ,
    ce.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    },
    ce.fn.delay = function(r, e) {
        return r = ce.fx && ce.fx.speeds[r] || r,
        e = e || "fx",
        this.queue(e, function(e, t) {
            var n = ie.setTimeout(e, r);
            t.stop = function() {
                ie.clearTimeout(n)
            }
        })
    }
    ,
    lt = C.createElement("input"),
    ct = C.createElement("select").appendChild(C.createElement("option")),
    lt.type = "checkbox",
    le.checkOn = "" !== lt.value,
    le.optSelected = ct.selected,
    (lt = C.createElement("input")).value = "t",
    lt.type = "radio",
    le.radioValue = "t" === lt.value;
    var mt, xt = ce.expr.attrHandle;
    ce.fn.extend({
        attr: function(e, t) {
            return M(this, ce.attr, e, t, 1 < arguments.length)
        },
        removeAttr: function(e) {
            return this.each(function() {
                ce.removeAttr(this, e)
            })
        }
    }),
    ce.extend({
        attr: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
                return "undefined" == typeof e.getAttribute ? ce.prop(e, t, n) : (1 === o && ce.isXMLDoc(e) || (i = ce.attrHooks[t.toLowerCase()] || (ce.expr.match.bool.test(t) ? mt : void 0)),
                void 0 !== n ? null === n ? void ce.removeAttr(e, t) : i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""),
                n) : i && "get"in i && null !== (r = i.get(e, t)) ? r : null == (r = ce.find.attr(e, t)) ? void 0 : r)
        },
        attrHooks: {
            type: {
                set: function(e, t) {
                    if (!le.radioValue && "radio" === t && fe(e, "input")) {
                        var n = e.value;
                        return e.setAttribute("type", t),
                        n && (e.value = n),
                        t
                    }
                }
            }
        },
        removeAttr: function(e, t) {
            var n, r = 0, i = t && t.match(D);
            if (i && 1 === e.nodeType)
                while (n = i[r++])
                    e.removeAttribute(n)
        }
    }),
    mt = {
        set: function(e, t, n) {
            return !1 === t ? ce.removeAttr(e, n) : e.setAttribute(n, n),
            n
        }
    },
    ce.each(ce.expr.match.bool.source.match(/\w+/g), function(e, t) {
        var a = xt[t] || ce.find.attr;
        xt[t] = function(e, t, n) {
            var r, i, o = t.toLowerCase();
            return n || (i = xt[o],
            xt[o] = r,
            r = null != a(e, t, n) ? o : null,
            xt[o] = i),
            r
        }
    });
    var bt = /^(?:input|select|textarea|button)$/i
      , wt = /^(?:a|area)$/i;
    function Tt(e) {
        return (e.match(D) || []).join(" ")
    }
    function Ct(e) {
        return e.getAttribute && e.getAttribute("class") || ""
    }
    function kt(e) {
        return Array.isArray(e) ? e : "string" == typeof e && e.match(D) || []
    }
    ce.fn.extend({
        prop: function(e, t) {
            return M(this, ce.prop, e, t, 1 < arguments.length)
        },
        removeProp: function(e) {
            return this.each(function() {
                delete this[ce.propFix[e] || e]
            })
        }
    }),
    ce.extend({
        prop: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
                return 1 === o && ce.isXMLDoc(e) || (t = ce.propFix[t] || t,
                i = ce.propHooks[t]),
                void 0 !== n ? i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get"in i && null !== (r = i.get(e, t)) ? r : e[t]
        },
        propHooks: {
            tabIndex: {
                get: function(e) {
                    var t = ce.find.attr(e, "tabindex");
                    return t ? parseInt(t, 10) : bt.test(e.nodeName) || wt.test(e.nodeName) && e.href ? 0 : -1
                }
            }
        },
        propFix: {
            "for": "htmlFor",
            "class": "className"
        }
    }),
    le.optSelected || (ce.propHooks.selected = {
        get: function(e) {
            var t = e.parentNode;
            return t && t.parentNode && t.parentNode.selectedIndex,
            null
        },
        set: function(e) {
            var t = e.parentNode;
            t && (t.selectedIndex,
            t.parentNode && t.parentNode.selectedIndex)
        }
    }),
    ce.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        ce.propFix[this.toLowerCase()] = this
    }),
    ce.fn.extend({
        addClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).addClass(t.call(this, e, Ct(this)))
            }) : (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this),
                n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++)
                        i = e[o],
                        n.indexOf(" " + i + " ") < 0 && (n += i + " ");
                    a = Tt(n),
                    r !== a && this.setAttribute("class", a)
                }
            }) : this
        },
        removeClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).removeClass(t.call(this, e, Ct(this)))
            }) : arguments.length ? (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this),
                n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++) {
                        i = e[o];
                        while (-1 < n.indexOf(" " + i + " "))
                            n = n.replace(" " + i + " ", " ")
                    }
                    a = Tt(n),
                    r !== a && this.setAttribute("class", a)
                }
            }) : this : this.attr("class", "")
        },
        toggleClass: function(t, n) {
            var e, r, i, o, a = typeof t, s = "string" === a || Array.isArray(t);
            return v(t) ? this.each(function(e) {
                ce(this).toggleClass(t.call(this, e, Ct(this), n), n)
            }) : "boolean" == typeof n && s ? n ? this.addClass(t) : this.removeClass(t) : (e = kt(t),
            this.each(function() {
                if (s)
                    for (o = ce(this),
                    i = 0; i < e.length; i++)
                        r = e[i],
                        o.hasClass(r) ? o.removeClass(r) : o.addClass(r);
                else
                    void 0 !== t && "boolean" !== a || ((r = Ct(this)) && _.set(this, "__className__", r),
                    this.setAttribute && this.setAttribute("class", r || !1 === t ? "" : _.get(this, "__className__") || ""))
            }))
        },
        hasClass: function(e) {
            var t, n, r = 0;
            t = " " + e + " ";
            while (n = this[r++])
                if (1 === n.nodeType && -1 < (" " + Tt(Ct(n)) + " ").indexOf(t))
                    return !0;
            return !1
        }
    });
    var St = /\r/g;
    ce.fn.extend({
        val: function(n) {
            var r, e, i, t = this[0];
            return arguments.length ? (i = v(n),
            this.each(function(e) {
                var t;
                1 === this.nodeType && (null == (t = i ? n.call(this, e, ce(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = ce.map(t, function(e) {
                    return null == e ? "" : e + ""
                })),
                (r = ce.valHooks[this.type] || ce.valHooks[this.nodeName.toLowerCase()]) && "set"in r && void 0 !== r.set(this, t, "value") || (this.value = t))
            })) : t ? (r = ce.valHooks[t.type] || ce.valHooks[t.nodeName.toLowerCase()]) && "get"in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof (e = t.value) ? e.replace(St, "") : null == e ? "" : e : void 0
        }
    }),
    ce.extend({
        valHooks: {
            option: {
                get: function(e) {
                    var t = ce.find.attr(e, "value");
                    return null != t ? t : Tt(ce.text(e))
                }
            },
            select: {
                get: function(e) {
                    var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], u = a ? o + 1 : i.length;
                    for (r = o < 0 ? u : a ? o : 0; r < u; r++)
                        if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !fe(n.parentNode, "optgroup"))) {
                            if (t = ce(n).val(),
                            a)
                                return t;
                            s.push(t)
                        }
                    return s
                },
                set: function(e, t) {
                    var n, r, i = e.options, o = ce.makeArray(t), a = i.length;
                    while (a--)
                        ((r = i[a]).selected = -1 < ce.inArray(ce.valHooks.option.get(r), o)) && (n = !0);
                    return n || (e.selectedIndex = -1),
                    o
                }
            }
        }
    }),
    ce.each(["radio", "checkbox"], function() {
        ce.valHooks[this] = {
            set: function(e, t) {
                if (Array.isArray(t))
                    return e.checked = -1 < ce.inArray(ce(e).val(), t)
            }
        },
        le.checkOn || (ce.valHooks[this].get = function(e) {
            return null === e.getAttribute("value") ? "on" : e.value
        }
        )
    });
    var Et = ie.location
      , jt = {
        guid: Date.now()
    }
      , At = /\?/;
    ce.parseXML = function(e) {
        var t, n;
        if (!e || "string" != typeof e)
            return null;
        try {
            t = (new ie.DOMParser).parseFromString(e, "text/xml")
        } catch (e) {}
        return n = t && t.getElementsByTagName("parsererror")[0],
        t && !n || ce.error("Invalid XML: " + (n ? ce.map(n.childNodes, function(e) {
            return e.textContent
        }).join("\n") : e)),
        t
    }
    ;
    var Dt = /^(?:focusinfocus|focusoutblur)$/
      , Nt = function(e) {
        e.stopPropagation()
    };
    ce.extend(ce.event, {
        trigger: function(e, t, n, r) {
            var i, o, a, s, u, l, c, f, p = [n || C], d = ue.call(e, "type") ? e.type : e, h = ue.call(e, "namespace") ? e.namespace.split(".") : [];
            if (o = f = a = n = n || C,
            3 !== n.nodeType && 8 !== n.nodeType && !Dt.test(d + ce.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(),
            h.sort()),
            u = d.indexOf(":") < 0 && "on" + d,
            (e = e[ce.expando] ? e : new ce.Event(d,"object" == typeof e && e)).isTrigger = r ? 2 : 3,
            e.namespace = h.join("."),
            e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
            e.result = void 0,
            e.target || (e.target = n),
            t = null == t ? [e] : ce.makeArray(t, [e]),
            c = ce.event.special[d] || {},
            r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
                if (!r && !c.noBubble && !y(n)) {
                    for (s = c.delegateType || d,
                    Dt.test(s + d) || (o = o.parentNode); o; o = o.parentNode)
                        p.push(o),
                        a = o;
                    a === (n.ownerDocument || C) && p.push(a.defaultView || a.parentWindow || ie)
                }
                i = 0;
                while ((o = p[i++]) && !e.isPropagationStopped())
                    f = o,
                    e.type = 1 < i ? s : c.bindType || d,
                    (l = (_.get(o, "events") || Object.create(null))[e.type] && _.get(o, "handle")) && l.apply(o, t),
                    (l = u && o[u]) && l.apply && $(o) && (e.result = l.apply(o, t),
                    !1 === e.result && e.preventDefault());
                return e.type = d,
                r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !$(n) || u && v(n[d]) && !y(n) && ((a = n[u]) && (n[u] = null),
                ce.event.triggered = d,
                e.isPropagationStopped() && f.addEventListener(d, Nt),
                n[d](),
                e.isPropagationStopped() && f.removeEventListener(d, Nt),
                ce.event.triggered = void 0,
                a && (n[u] = a)),
                e.result
            }
        },
        simulate: function(e, t, n) {
            var r = ce.extend(new ce.Event, n, {
                type: e,
                isSimulated: !0
            });
            ce.event.trigger(r, null, t)
        }
    }),
    ce.fn.extend({
        trigger: function(e, t) {
            return this.each(function() {
                ce.event.trigger(e, t, this)
            })
        },
        triggerHandler: function(e, t) {
            var n = this[0];
            if (n)
                return ce.event.trigger(e, t, n, !0)
        }
    });
    var qt = /\[\]$/
      , Lt = /\r?\n/g
      , Ht = /^(?:submit|button|image|reset|file)$/i
      , Ot = /^(?:input|select|textarea|keygen)/i;
    function Pt(n, e, r, i) {
        var t;
        if (Array.isArray(e))
            ce.each(e, function(e, t) {
                r || qt.test(n) ? i(n, t) : Pt(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i)
            });
        else if (r || "object" !== x(e))
            i(n, e);
        else
            for (t in e)
                Pt(n + "[" + t + "]", e[t], r, i)
    }
    ce.param = function(e, t) {
        var n, r = [], i = function(e, t) {
            var n = v(t) ? t() : t;
            r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
        };
        if (null == e)
            return "";
        if (Array.isArray(e) || e.jquery && !ce.isPlainObject(e))
            ce.each(e, function() {
                i(this.name, this.value)
            });
        else
            for (n in e)
                Pt(n, e[n], t, i);
        return r.join("&")
    }
    ,
    ce.fn.extend({
        serialize: function() {
            return ce.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                var e = ce.prop(this, "elements");
                return e ? ce.makeArray(e) : this
            }).filter(function() {
                var e = this.type;
                return this.name && !ce(this).is(":disabled") && Ot.test(this.nodeName) && !Ht.test(e) && (this.checked || !we.test(e))
            }).map(function(e, t) {
                var n = ce(this).val();
                return null == n ? null : Array.isArray(n) ? ce.map(n, function(e) {
                    return {
                        name: t.name,
                        value: e.replace(Lt, "\r\n")
                    }
                }) : {
                    name: t.name,
                    value: n.replace(Lt, "\r\n")
                }
            }).get()
        }
    });
    var Mt = /%20/g
      , Rt = /#.*$/
      , It = /([?&])_=[^&]*/
      , Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm
      , Ft = /^(?:GET|HEAD)$/
      , $t = /^\/\//
      , Bt = {}
      , _t = {}
      , zt = "*/".concat("*")
      , Xt = C.createElement("a");
    function Ut(o) {
        return function(e, t) {
            "string" != typeof e && (t = e,
            e = "*");
            var n, r = 0, i = e.toLowerCase().match(D) || [];
            if (v(t))
                while (n = i[r++])
                    "+" === n[0] ? (n = n.slice(1) || "*",
                    (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
        }
    }
    function Vt(t, i, o, a) {
        var s = {}
          , u = t === _t;
        function l(e) {
            var r;
            return s[e] = !0,
            ce.each(t[e] || [], function(e, t) {
                var n = t(i, o, a);
                return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n),
                l(n),
                !1)
            }),
            r
        }
        return l(i.dataTypes[0]) || !s["*"] && l("*")
    }
    function Gt(e, t) {
        var n, r, i = ce.ajaxSettings.flatOptions || {};
        for (n in t)
            void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
        return r && ce.extend(!0, e, r),
        e
    }
    Xt.href = Et.href,
    ce.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: Et.href,
            type: "GET",
            isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
                "*": zt,
                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": ce.parseXML
            },
            flatOptions: {
                url: !0,
                context: !0
            }
        },
        ajaxSetup: function(e, t) {
            return t ? Gt(Gt(e, ce.ajaxSettings), t) : Gt(ce.ajaxSettings, e)
        },
        ajaxPrefilter: Ut(Bt),
        ajaxTransport: Ut(_t),
        ajax: function(e, t) {
            "object" == typeof e && (t = e,
            e = void 0),
            t = t || {};
            var c, f, p, n, d, r, h, g, i, o, v = ce.ajaxSetup({}, t), y = v.context || v, m = v.context && (y.nodeType || y.jquery) ? ce(y) : ce.event, x = ce.Deferred(), b = ce.Callbacks("once memory"), w = v.statusCode || {}, a = {}, s = {}, u = "canceled", T = {
                readyState: 0,
                getResponseHeader: function(e) {
                    var t;
                    if (h) {
                        if (!n) {
                            n = {};
                            while (t = Wt.exec(p))
                                n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2])
                        }
                        t = n[e.toLowerCase() + " "]
                    }
                    return null == t ? null : t.join(", ")
                },
                getAllResponseHeaders: function() {
                    return h ? p : null
                },
                setRequestHeader: function(e, t) {
                    return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e,
                    a[e] = t),
                    this
                },
                overrideMimeType: function(e) {
                    return null == h && (v.mimeType = e),
                    this
                },
                statusCode: function(e) {
                    var t;
                    if (e)
                        if (h)
                            T.always(e[T.status]);
                        else
                            for (t in e)
                                w[t] = [w[t], e[t]];
                    return this
                },
                abort: function(e) {
                    var t = e || u;
                    return c && c.abort(t),
                    l(0, t),
                    this
                }
            };
            if (x.promise(T),
            v.url = ((e || v.url || Et.href) + "").replace($t, Et.protocol + "//"),
            v.type = t.method || t.type || v.method || v.type,
            v.dataTypes = (v.dataType || "*").toLowerCase().match(D) || [""],
            null == v.crossDomain) {
                r = C.createElement("a");
                try {
                    r.href = v.url,
                    r.href = r.href,
                    v.crossDomain = Xt.protocol + "//" + Xt.host != r.protocol + "//" + r.host
                } catch (e) {
                    v.crossDomain = !0
                }
            }
            if (v.data && v.processData && "string" != typeof v.data && (v.data = ce.param(v.data, v.traditional)),
            Vt(Bt, v, t, T),
            h)
                return T;
            for (i in (g = ce.event && v.global) && 0 == ce.active++ && ce.event.trigger("ajaxStart"),
            v.type = v.type.toUpperCase(),
            v.hasContent = !Ft.test(v.type),
            f = v.url.replace(Rt, ""),
            v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Mt, "+")) : (o = v.url.slice(f.length),
            v.data && (v.processData || "string" == typeof v.data) && (f += (At.test(f) ? "&" : "?") + v.data,
            delete v.data),
            !1 === v.cache && (f = f.replace(It, "$1"),
            o = (At.test(f) ? "&" : "?") + "_=" + jt.guid++ + o),
            v.url = f + o),
            v.ifModified && (ce.lastModified[f] && T.setRequestHeader("If-Modified-Since", ce.lastModified[f]),
            ce.etag[f] && T.setRequestHeader("If-None-Match", ce.etag[f])),
            (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType),
            T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + zt + "; q=0.01" : "") : v.accepts["*"]),
            v.headers)
                T.setRequestHeader(i, v.headers[i]);
            if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h))
                return T.abort();
            if (u = "abort",
            b.add(v.complete),
            T.done(v.success),
            T.fail(v.error),
            c = Vt(_t, v, t, T)) {
                if (T.readyState = 1,
                g && m.trigger("ajaxSend", [T, v]),
                h)
                    return T;
                v.async && 0 < v.timeout && (d = ie.setTimeout(function() {
                    T.abort("timeout")
                }, v.timeout));
                try {
                    h = !1,
                    c.send(a, l)
                } catch (e) {
                    if (h)
                        throw e;
                    l(-1, e)
                }
            } else
                l(-1, "No Transport");
            function l(e, t, n, r) {
                var i, o, a, s, u, l = t;
                h || (h = !0,
                d && ie.clearTimeout(d),
                c = void 0,
                p = r || "",
                T.readyState = 0 < e ? 4 : 0,
                i = 200 <= e && e < 300 || 304 === e,
                n && (s = function(e, t, n) {
                    var r, i, o, a, s = e.contents, u = e.dataTypes;
                    while ("*" === u[0])
                        u.shift(),
                        void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
                    if (r)
                        for (i in s)
                            if (s[i] && s[i].test(r)) {
                                u.unshift(i);
                                break
                            }
                    if (u[0]in n)
                        o = u[0];
                    else {
                        for (i in n) {
                            if (!u[0] || e.converters[i + " " + u[0]]) {
                                o = i;
                                break
                            }
                            a || (a = i)
                        }
                        o = o || a
                    }
                    if (o)
                        return o !== u[0] && u.unshift(o),
                        n[o]
                }(v, T, n)),
                !i && -1 < ce.inArray("script", v.dataTypes) && ce.inArray("json", v.dataTypes) < 0 && (v.converters["text script"] = function() {}
                ),
                s = function(e, t, n, r) {
                    var i, o, a, s, u, l = {}, c = e.dataTypes.slice();
                    if (c[1])
                        for (a in e.converters)
                            l[a.toLowerCase()] = e.converters[a];
                    o = c.shift();
                    while (o)
                        if (e.responseFields[o] && (n[e.responseFields[o]] = t),
                        !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)),
                        u = o,
                        o = c.shift())
                            if ("*" === o)
                                o = u;
                            else if ("*" !== u && u !== o) {
                                if (!(a = l[u + " " + o] || l["* " + o]))
                                    for (i in l)
                                        if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
                                            !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0],
                                            c.unshift(s[1]));
                                            break
                                        }
                                if (!0 !== a)
                                    if (a && e["throws"])
                                        t = a(t);
                                    else
                                        try {
                                            t = a(t)
                                        } catch (e) {
                                            return {
                                                state: "parsererror",
                                                error: a ? e : "No conversion from " + u + " to " + o
                                            }
                                        }
                            }
                    return {
                        state: "success",
                        data: t
                    }
                }(v, s, T, i),
                i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (ce.lastModified[f] = u),
                (u = T.getResponseHeader("etag")) && (ce.etag[f] = u)),
                204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state,
                o = s.data,
                i = !(a = s.error))) : (a = l,
                !e && l || (l = "error",
                e < 0 && (e = 0))),
                T.status = e,
                T.statusText = (t || l) + "",
                i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]),
                T.statusCode(w),
                w = void 0,
                g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]),
                b.fireWith(y, [T, l]),
                g && (m.trigger("ajaxComplete", [T, v]),
                --ce.active || ce.event.trigger("ajaxStop")))
            }
            return T
        },
        getJSON: function(e, t, n) {
            return ce.get(e, t, n, "json")
        },
        getScript: function(e, t) {
            return ce.get(e, void 0, t, "script")
        }
    }),
    ce.each(["get", "post"], function(e, i) {
        ce[i] = function(e, t, n, r) {
            return v(t) && (r = r || n,
            n = t,
            t = void 0),
            ce.ajax(ce.extend({
                url: e,
                type: i,
                dataType: r,
                data: t,
                success: n
            }, ce.isPlainObject(e) && e))
        }
    }),
    ce.ajaxPrefilter(function(e) {
        var t;
        for (t in e.headers)
            "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
    }),
    ce._evalUrl = function(e, t, n) {
        return ce.ajax({
            url: e,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            converters: {
                "text script": function() {}
            },
            dataFilter: function(e) {
                ce.globalEval(e, t, n)
            }
        })
    }
    ,
    ce.fn.extend({
        wrapAll: function(e) {
            var t;
            return this[0] && (v(e) && (e = e.call(this[0])),
            t = ce(e, this[0].ownerDocument).eq(0).clone(!0),
            this[0].parentNode && t.insertBefore(this[0]),
            t.map(function() {
                var e = this;
                while (e.firstElementChild)
                    e = e.firstElementChild;
                return e
            }).append(this)),
            this
        },
        wrapInner: function(n) {
            return v(n) ? this.each(function(e) {
                ce(this).wrapInner(n.call(this, e))
            }) : this.each(function() {
                var e = ce(this)
                  , t = e.contents();
                t.length ? t.wrapAll(n) : e.append(n)
            })
        },
        wrap: function(t) {
            var n = v(t);
            return this.each(function(e) {
                ce(this).wrapAll(n ? t.call(this, e) : t)
            })
        },
        unwrap: function(e) {
            return this.parent(e).not("body").each(function() {
                ce(this).replaceWith(this.childNodes)
            }),
            this
        }
    }),
    ce.expr.pseudos.hidden = function(e) {
        return !ce.expr.pseudos.visible(e)
    }
    ,
    ce.expr.pseudos.visible = function(e) {
        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
    }
    ,
    ce.ajaxSettings.xhr = function() {
        try {
            return new ie.XMLHttpRequest
        } catch (e) {}
    }
    ;
    var Yt = {
        0: 200,
        1223: 204
    }
      , Qt = ce.ajaxSettings.xhr();
    le.cors = !!Qt && "withCredentials"in Qt,
    le.ajax = Qt = !!Qt,
    ce.ajaxTransport(function(i) {
        var o, a;
        if (le.cors || Qt && !i.crossDomain)
            return {
                send: function(e, t) {
                    var n, r = i.xhr();
                    if (r.open(i.type, i.url, i.async, i.username, i.password),
                    i.xhrFields)
                        for (n in i.xhrFields)
                            r[n] = i.xhrFields[n];
                    for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType),
                    i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"),
                    e)
                        r.setRequestHeader(n, e[n]);
                    o = function(e) {
                        return function() {
                            o && (o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null,
                            "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(Yt[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? {
                                binary: r.response
                            } : {
                                text: r.responseText
                            }, r.getAllResponseHeaders()))
                        }
                    }
                    ,
                    r.onload = o(),
                    a = r.onerror = r.ontimeout = o("error"),
                    void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function() {
                        4 === r.readyState && ie.setTimeout(function() {
                            o && a()
                        })
                    }
                    ,
                    o = o("abort");
                    try {
                        r.send(i.hasContent && i.data || null)
                    } catch (e) {
                        if (o)
                            throw e
                    }
                },
                abort: function() {
                    o && o()
                }
            }
    }),
    ce.ajaxPrefilter(function(e) {
        e.crossDomain && (e.contents.script = !1)
    }),
    ce.ajaxSetup({
        accepts: {
            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
            script: /\b(?:java|ecma)script\b/
        },
        converters: {
            "text script": function(e) {
                return ce.globalEval(e),
                e
            }
        }
    }),
    ce.ajaxPrefilter("script", function(e) {
        void 0 === e.cache && (e.cache = !1),
        e.crossDomain && (e.type = "GET")
    }),
    ce.ajaxTransport("script", function(n) {
        var r, i;
        if (n.crossDomain || n.scriptAttrs)
            return {
                send: function(e, t) {
                    r = ce("<script>").attr(n.scriptAttrs || {}).prop({
                        charset: n.scriptCharset,
                        src: n.url
                    }).on("load error", i = function(e) {
                        r.remove(),
                        i = null,
                        e && t("error" === e.type ? 404 : 200, e.type)
                    }
                    ),
                    C.head.appendChild(r[0])
                },
                abort: function() {
                    i && i()
                }
            }
    });
    var Jt, Kt = [], Zt = /(=)\?(?=&|$)|\?\?/;
    ce.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
            var e = Kt.pop() || ce.expando + "_" + jt.guid++;
            return this[e] = !0,
            e
        }
    }),
    ce.ajaxPrefilter("json jsonp", function(e, t, n) {
        var r, i, o, a = !1 !== e.jsonp && (Zt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Zt.test(e.data) && "data");
        if (a || "jsonp" === e.dataTypes[0])
            return r = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback,
            a ? e[a] = e[a].replace(Zt, "$1" + r) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + r),
            e.converters["script json"] = function() {
                return o || ce.error(r + " was not called"),
                o[0]
            }
            ,
            e.dataTypes[0] = "json",
            i = ie[r],
            ie[r] = function() {
                o = arguments
            }
            ,
            n.always(function() {
                void 0 === i ? ce(ie).removeProp(r) : ie[r] = i,
                e[r] && (e.jsonpCallback = t.jsonpCallback,
                Kt.push(r)),
                o && v(i) && i(o[0]),
                o = i = void 0
            }),
            "script"
    }),
    le.createHTMLDocument = ((Jt = C.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>",
    2 === Jt.childNodes.length),
    ce.parseHTML = function(e, t, n) {
        return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t,
        t = !1),
        t || (le.createHTMLDocument ? ((r = (t = C.implementation.createHTMLDocument("")).createElement("base")).href = C.location.href,
        t.head.appendChild(r)) : t = C),
        o = !n && [],
        (i = w.exec(e)) ? [t.createElement(i[1])] : (i = Ae([e], t, o),
        o && o.length && ce(o).remove(),
        ce.merge([], i.childNodes)));
        var r, i, o
    }
    ,
    ce.fn.load = function(e, t, n) {
        var r, i, o, a = this, s = e.indexOf(" ");
        return -1 < s && (r = Tt(e.slice(s)),
        e = e.slice(0, s)),
        v(t) ? (n = t,
        t = void 0) : t && "object" == typeof t && (i = "POST"),
        0 < a.length && ce.ajax({
            url: e,
            type: i || "GET",
            dataType: "html",
            data: t
        }).done(function(e) {
            o = arguments,
            a.html(r ? ce("<div>").append(ce.parseHTML(e)).find(r) : e)
        }).always(n && function(e, t) {
            a.each(function() {
                n.apply(this, o || [e.responseText, t, e])
            })
        }
        ),
        this
    }
    ,
    ce.expr.pseudos.animated = function(t) {
        return ce.grep(ce.timers, function(e) {
            return t === e.elem
        }).length
    }
    ,
    ce.offset = {
        setOffset: function(e, t, n) {
            var r, i, o, a, s, u, l = ce.css(e, "position"), c = ce(e), f = {};
            "static" === l && (e.style.position = "relative"),
            s = c.offset(),
            o = ce.css(e, "top"),
            u = ce.css(e, "left"),
            ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top,
            i = r.left) : (a = parseFloat(o) || 0,
            i = parseFloat(u) || 0),
            v(t) && (t = t.call(e, n, ce.extend({}, s))),
            null != t.top && (f.top = t.top - s.top + a),
            null != t.left && (f.left = t.left - s.left + i),
            "using"in t ? t.using.call(e, f) : c.css(f)
        }
    },
    ce.fn.extend({
        offset: function(t) {
            if (arguments.length)
                return void 0 === t ? this : this.each(function(e) {
                    ce.offset.setOffset(this, t, e)
                });
            var e, n, r = this[0];
            return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(),
            n = r.ownerDocument.defaultView,
            {
                top: e.top + n.pageYOffset,
                left: e.left + n.pageXOffset
            }) : {
                top: 0,
                left: 0
            } : void 0
        },
        position: function() {
            if (this[0]) {
                var e, t, n, r = this[0], i = {
                    top: 0,
                    left: 0
                };
                if ("fixed" === ce.css(r, "position"))
                    t = r.getBoundingClientRect();
                else {
                    t = this.offset(),
                    n = r.ownerDocument,
                    e = r.offsetParent || n.documentElement;
                    while (e && (e === n.body || e === n.documentElement) && "static" === ce.css(e, "position"))
                        e = e.parentNode;
                    e && e !== r && 1 === e.nodeType && ((i = ce(e).offset()).top += ce.css(e, "borderTopWidth", !0),
                    i.left += ce.css(e, "borderLeftWidth", !0))
                }
                return {
                    top: t.top - i.top - ce.css(r, "marginTop", !0),
                    left: t.left - i.left - ce.css(r, "marginLeft", !0)
                }
            }
        },
        offsetParent: function() {
            return this.map(function() {
                var e = this.offsetParent;
                while (e && "static" === ce.css(e, "position"))
                    e = e.offsetParent;
                return e || J
            })
        }
    }),
    ce.each({
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset"
    }, function(t, i) {
        var o = "pageYOffset" === i;
        ce.fn[t] = function(e) {
            return M(this, function(e, t, n) {
                var r;
                if (y(e) ? r = e : 9 === e.nodeType && (r = e.defaultView),
                void 0 === n)
                    return r ? r[i] : e[t];
                r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n
            }, t, e, arguments.length)
        }
    }),
    ce.each(["top", "left"], function(e, n) {
        ce.cssHooks[n] = Ye(le.pixelPosition, function(e, t) {
            if (t)
                return t = Ge(e, n),
                _e.test(t) ? ce(e).position()[n] + "px" : t
        })
    }),
    ce.each({
        Height: "height",
        Width: "width"
    }, function(a, s) {
        ce.each({
            padding: "inner" + a,
            content: s,
            "": "outer" + a
        }, function(r, o) {
            ce.fn[o] = function(e, t) {
                var n = arguments.length && (r || "boolean" != typeof e)
                  , i = r || (!0 === e || !0 === t ? "margin" : "border");
                return M(this, function(e, t, n) {
                    var r;
                    return y(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement,
                    Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? ce.css(e, t, i) : ce.style(e, t, n, i)
                }, s, n ? e : void 0, n)
            }
        })
    }),
    ce.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
        ce.fn[t] = function(e) {
            return this.on(t, e)
        }
    }),
    ce.fn.extend({
        bind: function(e, t, n) {
            return this.on(e, null, t, n)
        },
        unbind: function(e, t) {
            return this.off(e, null, t)
        },
        delegate: function(e, t, n, r) {
            return this.on(t, e, n, r)
        },
        undelegate: function(e, t, n) {
            return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
        },
        hover: function(e, t) {
            return this.on("mouseenter", e).on("mouseleave", t || e)
        }
    }),
    ce.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(e, n) {
        ce.fn[n] = function(e, t) {
            return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
        }
    });
    var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
    ce.proxy = function(e, t) {
        var n, r, i;
        if ("string" == typeof t && (n = e[t],
        t = e,
        e = n),
        v(e))
            return r = ae.call(arguments, 2),
            (i = function() {
                return e.apply(t || this, r.concat(ae.call(arguments)))
            }
            ).guid = e.guid = e.guid || ce.guid++,
            i
    }
    ,
    ce.holdReady = function(e) {
        e ? ce.readyWait++ : ce.ready(!0)
    }
    ,
    ce.isArray = Array.isArray,
    ce.parseJSON = JSON.parse,
    ce.nodeName = fe,
    ce.isFunction = v,
    ce.isWindow = y,
    ce.camelCase = F,
    ce.type = x,
    ce.now = Date.now,
    ce.isNumeric = function(e) {
        var t = ce.type(e);
        return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
    }
    ,
    ce.trim = function(e) {
        return null == e ? "" : (e + "").replace(en, "$1")
    }
    ,
    "function" == typeof define && define.amd && define("jquery", [], function() {
        return ce
    });
    var tn = ie.jQuery
      , nn = ie.$;
    return ce.noConflict = function(e) {
        return ie.$ === ce && (ie.$ = nn),
        e && ie.jQuery === ce && (ie.jQuery = tn),
        ce
    }
    ,
    "undefined" == typeof e && (ie.jQuery = ie.$ = ce),
    ce
});

/*! jQuery UI - v1.13.3 - 2024-04-26
* https://jqueryui.com
* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
* Copyright OpenJS Foundation and other contributors; Licensed MIT */

!function(t) {
    "use strict";
    "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
}(function(V) {
    "use strict";
    V.ui = V.ui || {};
    V.ui.version = "1.13.3";
    var n, s, x, k, o, a, r, l, h, i, N = 0, E = Array.prototype.hasOwnProperty, c = Array.prototype.slice;
    V.cleanData = (n = V.cleanData,
    function(t) {
        for (var e, i, s = 0; null != (i = t[s]); s++)
            (e = V._data(i, "events")) && e.remove && V(i).triggerHandler("remove");
        n(t)
    }
    ),
    V.widget = function(t, i, e) {
        var s, n, o, a = {}, r = t.split(".")[0], l = r + "-" + (t = t.split(".")[1]);
        return e || (e = i,
        i = V.Widget),
        Array.isArray(e) && (e = V.extend.apply(null, [{}].concat(e))),
        V.expr.pseudos[l.toLowerCase()] = function(t) {
            return !!V.data(t, l)
        }
        ,
        V[r] = V[r] || {},
        s = V[r][t],
        n = V[r][t] = function(t, e) {
            if (!this || !this._createWidget)
                return new n(t,e);
            arguments.length && this._createWidget(t, e)
        }
        ,
        V.extend(n, s, {
            version: e.version,
            _proto: V.extend({}, e),
            _childConstructors: []
        }),
        (o = new i).options = V.widget.extend({}, o.options),
        V.each(e, function(e, s) {
            function n() {
                return i.prototype[e].apply(this, arguments)
            }
            function o(t) {
                return i.prototype[e].apply(this, t)
            }
            a[e] = "function" != typeof s ? s : function() {
                var t, e = this._super, i = this._superApply;
                return this._super = n,
                this._superApply = o,
                t = s.apply(this, arguments),
                this._super = e,
                this._superApply = i,
                t
            }
        }),
        n.prototype = V.widget.extend(o, {
            widgetEventPrefix: s && o.widgetEventPrefix || t
        }, a, {
            constructor: n,
            namespace: r,
            widgetName: t,
            widgetFullName: l
        }),
        s ? (V.each(s._childConstructors, function(t, e) {
            var i = e.prototype;
            V.widget(i.namespace + "." + i.widgetName, n, e._proto)
        }),
        delete s._childConstructors) : i._childConstructors.push(n),
        V.widget.bridge(t, n),
        n
    }
    ,
    V.widget.extend = function(t) {
        for (var e, i, s = c.call(arguments, 1), n = 0, o = s.length; n < o; n++)
            for (e in s[n])
                i = s[n][e],
                E.call(s[n], e) && void 0 !== i && (V.isPlainObject(i) ? t[e] = V.isPlainObject(t[e]) ? V.widget.extend({}, t[e], i) : V.widget.extend({}, i) : t[e] = i);
        return t
    }
    ,
    V.widget.bridge = function(o, e) {
        var a = e.prototype.widgetFullName || o;
        V.fn[o] = function(i) {
            var t = "string" == typeof i
              , s = c.call(arguments, 1)
              , n = this;
            return t ? this.length || "instance" !== i ? this.each(function() {
                var t, e = V.data(this, a);
                return "instance" === i ? (n = e,
                !1) : e ? "function" != typeof e[i] || "_" === i.charAt(0) ? V.error("no such method '" + i + "' for " + o + " widget instance") : (t = e[i].apply(e, s)) !== e && void 0 !== t ? (n = t && t.jquery ? n.pushStack(t.get()) : t,
                !1) : void 0 : V.error("cannot call methods on " + o + " prior to initialization; attempted to call method '" + i + "'")
            }) : n = void 0 : (s.length && (i = V.widget.extend.apply(null, [i].concat(s))),
            this.each(function() {
                var t = V.data(this, a);
                t ? (t.option(i || {}),
                t._init && t._init()) : V.data(this, a, new e(i,this))
            })),
            n
        }
    }
    ,
    V.Widget = function() {}
    ,
    V.Widget._childConstructors = [],
    V.Widget.prototype = {
        widgetName: "widget",
        widgetEventPrefix: "",
        defaultElement: "<div>",
        options: {
            classes: {},
            disabled: !1,
            create: null
        },
        _createWidget: function(t, e) {
            e = V(e || this.defaultElement || this)[0],
            this.element = V(e),
            this.uuid = N++,
            this.eventNamespace = "." + this.widgetName + this.uuid,
            this.bindings = V(),
            this.hoverable = V(),
            this.focusable = V(),
            this.classesElementLookup = {},
            e !== this && (V.data(e, this.widgetFullName, this),
            this._on(!0, this.element, {
                remove: function(t) {
                    t.target === e && this.destroy()
                }
            }),
            this.document = V(e.style ? e.ownerDocument : e.document || e),
            this.window = V(this.document[0].defaultView || this.document[0].parentWindow)),
            this.options = V.widget.extend({}, this.options, this._getCreateOptions(), t),
            this._create(),
            this.options.disabled && this._setOptionDisabled(this.options.disabled),
            this._trigger("create", null, this._getCreateEventData()),
            this._init()
        },
        _getCreateOptions: function() {
            return {}
        },
        _getCreateEventData: V.noop,
        _create: V.noop,
        _init: V.noop,
        destroy: function() {
            var i = this;
            this._destroy(),
            V.each(this.classesElementLookup, function(t, e) {
                i._removeClass(e, t)
            }),
            this.element.off(this.eventNamespace).removeData(this.widgetFullName),
            this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),
            this.bindings.off(this.eventNamespace)
        },
        _destroy: V.noop,
        widget: function() {
            return this.element
        },
        option: function(t, e) {
            var i, s, n, o = t;
            if (0 === arguments.length)
                return V.widget.extend({}, this.options);
            if ("string" == typeof t)
                if (o = {},
                t = (i = t.split(".")).shift(),
                i.length) {
                    for (s = o[t] = V.widget.extend({}, this.options[t]),
                    n = 0; n < i.length - 1; n++)
                        s[i[n]] = s[i[n]] || {},
                        s = s[i[n]];
                    if (t = i.pop(),
                    1 === arguments.length)
                        return void 0 === s[t] ? null : s[t];
                    s[t] = e
                } else {
                    if (1 === arguments.length)
                        return void 0 === this.options[t] ? null : this.options[t];
                    o[t] = e
                }
            return this._setOptions(o),
            this
        },
        _setOptions: function(t) {
            for (var e in t)
                this._setOption(e, t[e]);
            return this
        },
        _setOption: function(t, e) {
            return "classes" === t && this._setOptionClasses(e),
            this.options[t] = e,
            "disabled" === t && this._setOptionDisabled(e),
            this
        },
        _setOptionClasses: function(t) {
            var e, i, s;
            for (e in t)
                s = this.classesElementLookup[e],
                t[e] !== this.options.classes[e] && s && s.length && (i = V(s.get()),
                this._removeClass(s, e),
                i.addClass(this._classes({
                    element: i,
                    keys: e,
                    classes: t,
                    add: !0
                })))
        },
        _setOptionDisabled: function(t) {
            this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t),
            t && (this._removeClass(this.hoverable, null, "ui-state-hover"),
            this._removeClass(this.focusable, null, "ui-state-focus"))
        },
        enable: function() {
            return this._setOptions({
                disabled: !1
            })
        },
        disable: function() {
            return this._setOptions({
                disabled: !0
            })
        },
        _classes: function(n) {
            var o = []
              , a = this;
            function t(t, e) {
                for (var i, s = 0; s < t.length; s++)
                    i = a.classesElementLookup[t[s]] || V(),
                    i = n.add ? (function() {
                        var i = [];
                        n.element.each(function(t, e) {
                            V.map(a.classesElementLookup, function(t) {
                                return t
                            }).some(function(t) {
                                return t.is(e)
                            }) || i.push(e)
                        }),
                        a._on(V(i), {
                            remove: "_untrackClassesElement"
                        })
                    }(),
                    V(V.uniqueSort(i.get().concat(n.element.get())))) : V(i.not(n.element).get()),
                    a.classesElementLookup[t[s]] = i,
                    o.push(t[s]),
                    e && n.classes[t[s]] && o.push(n.classes[t[s]])
            }
            return (n = V.extend({
                element: this.element,
                classes: this.options.classes || {}
            }, n)).keys && t(n.keys.match(/\S+/g) || [], !0),
            n.extra && t(n.extra.match(/\S+/g) || []),
            o.join(" ")
        },
        _untrackClassesElement: function(i) {
            var s = this;
            V.each(s.classesElementLookup, function(t, e) {
                -1 !== V.inArray(i.target, e) && (s.classesElementLookup[t] = V(e.not(i.target).get()))
            }),
            this._off(V(i.target))
        },
        _removeClass: function(t, e, i) {
            return this._toggleClass(t, e, i, !1)
        },
        _addClass: function(t, e, i) {
            return this._toggleClass(t, e, i, !0)
        },
        _toggleClass: function(t, e, i, s) {
            var n = "string" == typeof t || null === t
              , e = {
                extra: n ? e : i,
                keys: n ? t : e,
                element: n ? this.element : t,
                add: s = "boolean" == typeof s ? s : i
            };
            return e.element.toggleClass(this._classes(e), s),
            this
        },
        _on: function(n, o, t) {
            var a, r = this;
            "boolean" != typeof n && (t = o,
            o = n,
            n = !1),
            t ? (o = a = V(o),
            this.bindings = this.bindings.add(o)) : (t = o,
            o = this.element,
            a = this.widget()),
            V.each(t, function(t, e) {
                function i() {
                    if (n || !0 !== r.options.disabled && !V(this).hasClass("ui-state-disabled"))
                        return ("string" == typeof e ? r[e] : e).apply(r, arguments)
                }
                "string" != typeof e && (i.guid = e.guid = e.guid || i.guid || V.guid++);
                var t = t.match(/^([\w:-]*)\s*(.*)$/)
                  , s = t[1] + r.eventNamespace
                  , t = t[2];
                t ? a.on(s, t, i) : o.on(s, i)
            })
        },
        _off: function(t, e) {
            e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace,
            t.off(e),
            this.bindings = V(this.bindings.not(t).get()),
            this.focusable = V(this.focusable.not(t).get()),
            this.hoverable = V(this.hoverable.not(t).get())
        },
        _delay: function(t, e) {
            var i = this;
            return setTimeout(function() {
                return ("string" == typeof t ? i[t] : t).apply(i, arguments)
            }, e || 0)
        },
        _hoverable: function(t) {
            this.hoverable = this.hoverable.add(t),
            this._on(t, {
                mouseenter: function(t) {
                    this._addClass(V(t.currentTarget), null, "ui-state-hover")
                },
                mouseleave: function(t) {
                    this._removeClass(V(t.currentTarget), null, "ui-state-hover")
                }
            })
        },
        _focusable: function(t) {
            this.focusable = this.focusable.add(t),
            this._on(t, {
                focusin: function(t) {
                    this._addClass(V(t.currentTarget), null, "ui-state-focus")
                },
                focusout: function(t) {
                    this._removeClass(V(t.currentTarget), null, "ui-state-focus")
                }
            })
        },
        _trigger: function(t, e, i) {
            var s, n, o = this.options[t];
            if (i = i || {},
            (e = V.Event(e)).type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(),
            e.target = this.element[0],
            n = e.originalEvent)
                for (s in n)
                    s in e || (e[s] = n[s]);
            return this.element.trigger(e, i),
            !("function" == typeof o && !1 === o.apply(this.element[0], [e].concat(i)) || e.isDefaultPrevented())
        }
    },
    V.each({
        show: "fadeIn",
        hide: "fadeOut"
    }, function(o, a) {
        V.Widget.prototype["_" + o] = function(e, t, i) {
            var s, n = (t = "string" == typeof t ? {
                effect: t
            } : t) ? !0 !== t && "number" != typeof t && t.effect || a : o;
            "number" == typeof (t = t || {}) ? t = {
                duration: t
            } : !0 === t && (t = {}),
            s = !V.isEmptyObject(t),
            t.complete = i,
            t.delay && e.delay(t.delay),
            s && V.effects && V.effects.effect[n] ? e[o](t) : n !== o && e[n] ? e[n](t.duration, t.easing, i) : e.queue(function(t) {
                V(this)[o](),
                i && i.call(e[0]),
                t()
            })
        }
    }),
    V.widget;
    function C(t, e, i) {
        return [parseFloat(t[0]) * (h.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (h.test(t[1]) ? i / 100 : 1)]
    }
    function D(t, e) {
        return parseInt(V.css(t, e), 10) || 0
    }
    function I(t) {
        return null != t && t === t.window
    }
    x = Math.max,
    k = Math.abs,
    o = /left|center|right/,
    a = /top|center|bottom/,
    r = /[\+\-]\d+(\.[\d]+)?%?/,
    l = /^\w+/,
    h = /%$/,
    i = V.fn.position,
    V.position = {
        scrollbarWidth: function() {
            var t, e, i;
            return void 0 !== s ? s : (i = (e = V("<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>")).children()[0],
            V("body").append(e),
            t = i.offsetWidth,
            e.css("overflow", "scroll"),
            t === (i = i.offsetWidth) && (i = e[0].clientWidth),
            e.remove(),
            s = t - i)
        },
        getScrollInfo: function(t) {
            var e = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x")
              , i = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y")
              , e = "scroll" === e || "auto" === e && t.width < t.element[0].scrollWidth;
            return {
                width: "scroll" === i || "auto" === i && t.height < t.element[0].scrollHeight ? V.position.scrollbarWidth() : 0,
                height: e ? V.position.scrollbarWidth() : 0
            }
        },
        getWithinInfo: function(t) {
            var e = V(t || window)
              , i = I(e[0])
              , s = !!e[0] && 9 === e[0].nodeType;
            return {
                element: e,
                isWindow: i,
                isDocument: s,
                offset: !i && !s ? V(t).offset() : {
                    left: 0,
                    top: 0
                },
                scrollLeft: e.scrollLeft(),
                scrollTop: e.scrollTop(),
                width: e.outerWidth(),
                height: e.outerHeight()
            }
        }
    },
    V.fn.position = function(u) {
        var d, p, f, g, m, _, v, b, y, w, t, e;
        return u && u.of ? (_ = "string" == typeof (u = V.extend({}, u)).of ? V(document).find(u.of) : V(u.of),
        v = V.position.getWithinInfo(u.within),
        b = V.position.getScrollInfo(v),
        y = (u.collision || "flip").split(" "),
        w = {},
        e = 9 === (e = (t = _)[0]).nodeType ? {
            width: t.width(),
            height: t.height(),
            offset: {
                top: 0,
                left: 0
            }
        } : I(e) ? {
            width: t.width(),
            height: t.height(),
            offset: {
                top: t.scrollTop(),
                left: t.scrollLeft()
            }
        } : e.preventDefault ? {
            width: 0,
            height: 0,
            offset: {
                top: e.pageY,
                left: e.pageX
            }
        } : {
            width: t.outerWidth(),
            height: t.outerHeight(),
            offset: t.offset()
        },
        _[0].preventDefault && (u.at = "left top"),
        p = e.width,
        f = e.height,
        m = V.extend({}, g = e.offset),
        V.each(["my", "at"], function() {
            var t, e, i = (u[this] || "").split(" ");
            (i = 1 === i.length ? o.test(i[0]) ? i.concat(["center"]) : a.test(i[0]) ? ["center"].concat(i) : ["center", "center"] : i)[0] = o.test(i[0]) ? i[0] : "center",
            i[1] = a.test(i[1]) ? i[1] : "center",
            t = r.exec(i[0]),
            e = r.exec(i[1]),
            w[this] = [t ? t[0] : 0, e ? e[0] : 0],
            u[this] = [l.exec(i[0])[0], l.exec(i[1])[0]]
        }),
        1 === y.length && (y[1] = y[0]),
        "right" === u.at[0] ? m.left += p : "center" === u.at[0] && (m.left += p / 2),
        "bottom" === u.at[1] ? m.top += f : "center" === u.at[1] && (m.top += f / 2),
        d = C(w.at, p, f),
        m.left += d[0],
        m.top += d[1],
        this.each(function() {
            var i, t, a = V(this), r = a.outerWidth(), l = a.outerHeight(), e = D(this, "marginLeft"), s = D(this, "marginTop"), n = r + e + D(this, "marginRight") + b.width, o = l + s + D(this, "marginBottom") + b.height, h = V.extend({}, m), c = C(w.my, a.outerWidth(), a.outerHeight());
            "right" === u.my[0] ? h.left -= r : "center" === u.my[0] && (h.left -= r / 2),
            "bottom" === u.my[1] ? h.top -= l : "center" === u.my[1] && (h.top -= l / 2),
            h.left += c[0],
            h.top += c[1],
            i = {
                marginLeft: e,
                marginTop: s
            },
            V.each(["left", "top"], function(t, e) {
                V.ui.position[y[t]] && V.ui.position[y[t]][e](h, {
                    targetWidth: p,
                    targetHeight: f,
                    elemWidth: r,
                    elemHeight: l,
                    collisionPosition: i,
                    collisionWidth: n,
                    collisionHeight: o,
                    offset: [d[0] + c[0], d[1] + c[1]],
                    my: u.my,
                    at: u.at,
                    within: v,
                    elem: a
                })
            }),
            u.using && (t = function(t) {
                var e = g.left - h.left
                  , i = e + p - r
                  , s = g.top - h.top
                  , n = s + f - l
                  , o = {
                    target: {
                        element: _,
                        left: g.left,
                        top: g.top,
                        width: p,
                        height: f
                    },
                    element: {
                        element: a,
                        left: h.left,
                        top: h.top,
                        width: r,
                        height: l
                    },
                    horizontal: i < 0 ? "left" : 0 < e ? "right" : "center",
                    vertical: n < 0 ? "top" : 0 < s ? "bottom" : "middle"
                };
                p < r && k(e + i) < p && (o.horizontal = "center"),
                f < l && k(s + n) < f && (o.vertical = "middle"),
                x(k(e), k(i)) > x(k(s), k(n)) ? o.important = "horizontal" : o.important = "vertical",
                u.using.call(this, t, o)
            }
            ),
            a.offset(V.extend(h, {
                using: t
            }))
        })) : i.apply(this, arguments)
    }
    ,
    V.ui.position = {
        fit: {
            left: function(t, e) {
                var i, s = e.within, n = s.isWindow ? s.scrollLeft : s.offset.left, s = s.width, o = t.left - e.collisionPosition.marginLeft, a = n - o, r = o + e.collisionWidth - s - n;
                e.collisionWidth > s ? 0 < a && r <= 0 ? (i = t.left + a + e.collisionWidth - s - n,
                t.left += a - i) : t.left = !(0 < r && a <= 0) && r < a ? n + s - e.collisionWidth : n : 0 < a ? t.left += a : 0 < r ? t.left -= r : t.left = x(t.left - o, t.left)
            },
            top: function(t, e) {
                var i, s = e.within, s = s.isWindow ? s.scrollTop : s.offset.top, n = e.within.height, o = t.top - e.collisionPosition.marginTop, a = s - o, r = o + e.collisionHeight - n - s;
                e.collisionHeight > n ? 0 < a && r <= 0 ? (i = t.top + a + e.collisionHeight - n - s,
                t.top += a - i) : t.top = !(0 < r && a <= 0) && r < a ? s + n - e.collisionHeight : s : 0 < a ? t.top += a : 0 < r ? t.top -= r : t.top = x(t.top - o, t.top)
            }
        },
        flip: {
            left: function(t, e) {
                var i = e.within
                  , s = i.offset.left + i.scrollLeft
                  , n = i.width
                  , i = i.isWindow ? i.scrollLeft : i.offset.left
                  , o = t.left - e.collisionPosition.marginLeft
                  , a = o - i
                  , o = o + e.collisionWidth - n - i
                  , r = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0
                  , l = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0
                  , h = -2 * e.offset[0];
                a < 0 ? ((n = t.left + r + l + h + e.collisionWidth - n - s) < 0 || n < k(a)) && (t.left += r + l + h) : 0 < o && (0 < (s = t.left - e.collisionPosition.marginLeft + r + l + h - i) || k(s) < o) && (t.left += r + l + h)
            },
            top: function(t, e) {
                var i = e.within
                  , s = i.offset.top + i.scrollTop
                  , n = i.height
                  , i = i.isWindow ? i.scrollTop : i.offset.top
                  , o = t.top - e.collisionPosition.marginTop
                  , a = o - i
                  , o = o + e.collisionHeight - n - i
                  , r = "top" === e.my[1] ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0
                  , l = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0
                  , h = -2 * e.offset[1];
                a < 0 ? ((n = t.top + r + l + h + e.collisionHeight - n - s) < 0 || n < k(a)) && (t.top += r + l + h) : 0 < o && (0 < (s = t.top - e.collisionPosition.marginTop + r + l + h - i) || k(s) < o) && (t.top += r + l + h)
            }
        },
        flipfit: {
            left: function() {
                V.ui.position.flip.left.apply(this, arguments),
                V.ui.position.fit.left.apply(this, arguments)
            },
            top: function() {
                V.ui.position.flip.top.apply(this, arguments),
                V.ui.position.fit.top.apply(this, arguments)
            }
        }
    };
    V.ui.position,
    V.extend(V.expr.pseudos, {
        data: V.expr.createPseudo ? V.expr.createPseudo(function(e) {
            return function(t) {
                return !!V.data(t, e)
            }
        }) : function(t, e, i) {
            return !!V.data(t, i[3])
        }
    }),
    V.fn.extend({
        disableSelection: (W = "onselectstart"in document.createElement("div") ? "selectstart" : "mousedown",
        function() {
            return this.on(W + ".ui-disableSelection", function(t) {
                t.preventDefault()
            })
        }
        ),
        enableSelection: function() {
            return this.off(".ui-disableSelection")
        }
    });
    var W, u = V, d = {}, F = d.toString, L = /^([\-+])=\s*(\d+\.?\d*)/, R = [{
        re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
        parse: function(t) {
            return [t[1], t[2], t[3], t[4]]
        }
    }, {
        re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
        parse: function(t) {
            return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]]
        }
    }, {
        re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/,
        parse: function(t) {
            return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16), t[4] ? (parseInt(t[4], 16) / 255).toFixed(2) : 1]
        }
    }, {
        re: /#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/,
        parse: function(t) {
            return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16), t[4] ? (parseInt(t[4] + t[4], 16) / 255).toFixed(2) : 1]
        }
    }, {
        re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
        space: "hsla",
        parse: function(t) {
            return [t[1], t[2] / 100, t[3] / 100, t[4]]
        }
    }], p = u.Color = function(t, e, i, s) {
        return new u.Color.fn.parse(t,e,i,s)
    }
    , f = {
        rgba: {
            props: {
                red: {
                    idx: 0,
                    type: "byte"
                },
                green: {
                    idx: 1,
                    type: "byte"
                },
                blue: {
                    idx: 2,
                    type: "byte"
                }
            }
        },
        hsla: {
            props: {
                hue: {
                    idx: 0,
                    type: "degrees"
                },
                saturation: {
                    idx: 1,
                    type: "percent"
                },
                lightness: {
                    idx: 2,
                    type: "percent"
                }
            }
        }
    }, Y = {
        byte: {
            floor: !0,
            max: 255
        },
        percent: {
            max: 1
        },
        degrees: {
            mod: 360,
            floor: !0
        }
    }, B = p.support = {}, t = u("<p>")[0], g = u.each;
    function m(t) {
        return null == t ? t + "" : "object" == typeof t ? d[F.call(t)] || "object" : typeof t
    }
    function _(t, e, i) {
        var s = Y[e.type] || {};
        return null == t ? i || !e.def ? null : e.def : (t = s.floor ? ~~t : parseFloat(t),
        isNaN(t) ? e.def : s.mod ? (t + s.mod) % s.mod : Math.min(s.max, Math.max(0, t)))
    }
    function j(s) {
        var n = p()
          , o = n._rgba = [];
        return s = s.toLowerCase(),
        g(R, function(t, e) {
            var i = e.re.exec(s)
              , i = i && e.parse(i)
              , e = e.space || "rgba";
            if (i)
                return i = n[e](i),
                n[f[e].cache] = i[f[e].cache],
                o = n._rgba = i._rgba,
                !1
        }),
        o.length ? ("0,0,0,0" === o.join() && u.extend(o, y.transparent),
        n) : y[s]
    }
    function v(t, e, i) {
        return 6 * (i = (i + 1) % 1) < 1 ? t + (e - t) * i * 6 : 2 * i < 1 ? e : 3 * i < 2 ? t + (e - t) * (2 / 3 - i) * 6 : t
    }
    t.style.cssText = "background-color:rgba(1,1,1,.5)",
    B.rgba = -1 < t.style.backgroundColor.indexOf("rgba"),
    g(f, function(t, e) {
        e.cache = "_" + t,
        e.props.alpha = {
            idx: 3,
            type: "percent",
            def: 1
        }
    }),
    u.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(t, e) {
        d["[object " + e + "]"] = e.toLowerCase()
    }),
    (p.fn = u.extend(p.prototype, {
        parse: function(n, t, e, i) {
            if (void 0 === n)
                return this._rgba = [null, null, null, null],
                this;
            (n.jquery || n.nodeType) && (n = u(n).css(t),
            t = void 0);
            var o = this
              , s = m(n)
              , a = this._rgba = [];
            return void 0 !== t && (n = [n, t, e, i],
            s = "array"),
            "string" === s ? this.parse(j(n) || y._default) : "array" === s ? (g(f.rgba.props, function(t, e) {
                a[e.idx] = _(n[e.idx], e)
            }),
            this) : "object" === s ? (n instanceof p ? g(f, function(t, e) {
                n[e.cache] && (o[e.cache] = n[e.cache].slice())
            }) : g(f, function(t, i) {
                var s = i.cache;
                g(i.props, function(t, e) {
                    if (!o[s] && i.to) {
                        if ("alpha" === t || null == n[t])
                            return;
                        o[s] = i.to(o._rgba)
                    }
                    o[s][e.idx] = _(n[t], e, !0)
                }),
                o[s] && u.inArray(null, o[s].slice(0, 3)) < 0 && (null == o[s][3] && (o[s][3] = 1),
                i.from) && (o._rgba = i.from(o[s]))
            }),
            this) : void 0
        },
        is: function(t) {
            var n = p(t)
              , o = !0
              , a = this;
            return g(f, function(t, e) {
                var i, s = n[e.cache];
                return s && (i = a[e.cache] || e.to && e.to(a._rgba) || [],
                g(e.props, function(t, e) {
                    if (null != s[e.idx])
                        return o = s[e.idx] === i[e.idx]
                })),
                o
            }),
            o
        },
        _space: function() {
            var i = []
              , s = this;
            return g(f, function(t, e) {
                s[e.cache] && i.push(t)
            }),
            i.pop()
        },
        transition: function(t, a) {
            var t = (h = p(t))._space()
              , e = f[t]
              , i = 0 === this.alpha() ? p("transparent") : this
              , r = i[e.cache] || e.to(i._rgba)
              , l = r.slice()
              , h = h[e.cache];
            return g(e.props, function(t, e) {
                var i = e.idx
                  , s = r[i]
                  , n = h[i]
                  , o = Y[e.type] || {};
                null !== n && (null === s ? l[i] = n : (o.mod && (n - s > o.mod / 2 ? s += o.mod : s - n > o.mod / 2 && (s -= o.mod)),
                l[i] = _((n - s) * a + s, e)))
            }),
            this[t](l)
        },
        blend: function(t) {
            var e, i, s;
            return 1 === this._rgba[3] ? this : (e = this._rgba.slice(),
            i = e.pop(),
            s = p(t)._rgba,
            p(u.map(e, function(t, e) {
                return (1 - i) * s[e] + i * t
            })))
        },
        toRgbaString: function() {
            var t = "rgba("
              , e = u.map(this._rgba, function(t, e) {
                return null != t ? t : 2 < e ? 1 : 0
            });
            return 1 === e[3] && (e.pop(),
            t = "rgb("),
            t + e.join() + ")"
        },
        toHslaString: function() {
            var t = "hsla("
              , e = u.map(this.hsla(), function(t, e) {
                return null == t && (t = 2 < e ? 1 : 0),
                t = e && e < 3 ? Math.round(100 * t) + "%" : t
            });
            return 1 === e[3] && (e.pop(),
            t = "hsl("),
            t + e.join() + ")"
        },
        toHexString: function(t) {
            var e = this._rgba.slice()
              , i = e.pop();
            return t && e.push(~~(255 * i)),
            "#" + u.map(e, function(t) {
                return 1 === (t = (t || 0).toString(16)).length ? "0" + t : t
            }).join("")
        },
        toString: function() {
            return 0 === this._rgba[3] ? "transparent" : this.toRgbaString()
        }
    })).parse.prototype = p.fn,
    f.hsla.to = function(t) {
        var e, i, s, n, o, a, r, l;
        return null == t[0] || null == t[1] || null == t[2] ? [null, null, null, t[3]] : (e = t[0] / 255,
        i = t[1] / 255,
        s = t[2] / 255,
        t = t[3],
        n = (l = Math.max(e, i, s)) - (r = Math.min(e, i, s)),
        a = .5 * (o = l + r),
        r = r === l ? 0 : e === l ? 60 * (i - s) / n + 360 : i === l ? 60 * (s - e) / n + 120 : 60 * (e - i) / n + 240,
        l = 0 == n ? 0 : a <= .5 ? n / o : n / (2 - o),
        [Math.round(r) % 360, l, a, null == t ? 1 : t])
    }
    ,
    f.hsla.from = function(t) {
        var e, i, s;
        return null == t[0] || null == t[1] || null == t[2] ? [null, null, null, t[3]] : (e = t[0] / 360,
        s = t[1],
        i = t[2],
        t = t[3],
        s = 2 * i - (i = i <= .5 ? i * (1 + s) : i + s - i * s),
        [Math.round(255 * v(s, i, e + 1 / 3)), Math.round(255 * v(s, i, e)), Math.round(255 * v(s, i, e - 1 / 3)), t])
    }
    ,
    g(f, function(r, t) {
        var e = t.props
          , o = t.cache
          , a = t.to
          , l = t.from;
        p.fn[r] = function(t) {
            var i, s, n;
            return a && !this[o] && (this[o] = a(this._rgba)),
            void 0 === t ? this[o].slice() : (i = m(t),
            s = "array" === i || "object" === i ? t : arguments,
            n = this[o].slice(),
            g(e, function(t, e) {
                t = s["object" === i ? t : e.idx];
                null == t && (t = n[e.idx]),
                n[e.idx] = _(t, e)
            }),
            l ? ((t = p(l(n)))[o] = n,
            t) : p(n))
        }
        ,
        g(e, function(o, a) {
            p.fn[o] || (p.fn[o] = function(t) {
                var e = m(t)
                  , i = "alpha" === o ? this._hsla ? "hsla" : "rgba" : r
                  , s = this[i]()
                  , n = s[a.idx];
                return "undefined" === e ? n : ("function" === e && (e = m(t = t.call(this, n))),
                null == t && a.empty ? this : ("string" === e && (e = L.exec(t)) && (t = n + parseFloat(e[2]) * ("+" === e[1] ? 1 : -1)),
                s[a.idx] = t,
                this[i](s)))
            }
            )
        })
    }),
    (p.hook = function(t) {
        t = t.split(" ");
        g(t, function(t, o) {
            u.cssHooks[o] = {
                set: function(t, e) {
                    var i, s, n = "";
                    if ("transparent" !== e && ("string" !== m(e) || (i = j(e)))) {
                        if (e = p(i || e),
                        !B.rgba && 1 !== e._rgba[3]) {
                            for (s = "backgroundColor" === o ? t.parentNode : t; ("" === n || "transparent" === n) && s && s.style; )
                                try {
                                    n = u.css(s, "backgroundColor"),
                                    s = s.parentNode
                                } catch (t) {}
                            e = e.blend(n && "transparent" !== n ? n : "_default")
                        }
                        e = e.toRgbaString()
                    }
                    try {
                        t.style[o] = e
                    } catch (t) {}
                }
            },
            u.fx.step[o] = function(t) {
                t.colorInit || (t.start = p(t.elem, o),
                t.end = p(t.end),
                t.colorInit = !0),
                u.cssHooks[o].set(t.elem, t.start.transition(t.end, t.pos))
            }
        })
    }
    )("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"),
    u.cssHooks.borderColor = {
        expand: function(i) {
            var s = {};
            return g(["Top", "Right", "Bottom", "Left"], function(t, e) {
                s["border" + e + "Color"] = i
            }),
            s
        }
    };
    var q, K, U, X, $, G, Q, J, Z, b, y = u.Color.names = {
        aqua: "#00ffff",
        black: "#000000",
        blue: "#0000ff",
        fuchsia: "#ff00ff",
        gray: "#808080",
        green: "#008000",
        lime: "#00ff00",
        maroon: "#800000",
        navy: "#000080",
        olive: "#808000",
        purple: "#800080",
        red: "#ff0000",
        silver: "#c0c0c0",
        teal: "#008080",
        white: "#ffffff",
        yellow: "#ffff00",
        transparent: [null, null, null, 0],
        _default: "#ffffff"
    }, w = "ui-effects-", e = "ui-effects-style", T = "ui-effects-animated";
    function tt(t) {
        var e, i, s = t.ownerDocument.defaultView ? t.ownerDocument.defaultView.getComputedStyle(t, null) : t.currentStyle, n = {};
        if (s && s.length && s[0] && s[s[0]])
            for (i = s.length; i--; )
                "string" == typeof s[e = s[i]] && (n[e.replace(/-([\da-z])/gi, function(t, e) {
                    return e.toUpperCase()
                })] = s[e]);
        else
            for (e in s)
                "string" == typeof s[e] && (n[e] = s[e]);
        return n
    }
    function P(t, e, i, s) {
        return t = {
            effect: t = V.isPlainObject(t) ? (e = t).effect : t
        },
        "function" == typeof (e = null == e ? {} : e) && (s = e,
        i = null,
        e = {}),
        "number" != typeof e && !V.fx.speeds[e] || (s = i,
        i = e,
        e = {}),
        "function" == typeof i && (s = i,
        i = null),
        e && V.extend(t, e),
        i = i || e.duration,
        t.duration = V.fx.off ? 0 : "number" == typeof i ? i : i in V.fx.speeds ? V.fx.speeds[i] : V.fx.speeds._default,
        t.complete = s || e.complete,
        t
    }
    function M(t) {
        return !t || "number" == typeof t || V.fx.speeds[t] || "string" == typeof t && !V.effects.effect[t] || "function" == typeof t || "object" == typeof t && !t.effect
    }
    function et(t, e) {
        var i = e.outerWidth()
          , e = e.outerHeight()
          , t = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/.exec(t) || ["", 0, i, e, 0];
        return {
            top: parseFloat(t[1]) || 0,
            right: "auto" === t[2] ? i : parseFloat(t[2]),
            bottom: "auto" === t[3] ? e : parseFloat(t[3]),
            left: parseFloat(t[4]) || 0
        }
    }
    V.effects = {
        effect: {}
    },
    X = ["add", "remove", "toggle"],
    $ = {
        border: 1,
        borderBottom: 1,
        borderColor: 1,
        borderLeft: 1,
        borderRight: 1,
        borderTop: 1,
        borderWidth: 1,
        margin: 1,
        padding: 1
    },
    V.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(t, e) {
        V.fx.step[e] = function(t) {
            ("none" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (u.style(t.elem, e, t.end),
            t.setAttr = !0)
        }
    }),
    V.fn.addBack || (V.fn.addBack = function(t) {
        return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
    }
    ),
    V.effects.animateClass = function(n, t, e, i) {
        var o = V.speed(t, e, i);
        return this.queue(function() {
            var i = V(this)
              , t = i.attr("class") || ""
              , e = (e = o.children ? i.find("*").addBack() : i).map(function() {
                return {
                    el: V(this),
                    start: tt(this)
                }
            })
              , s = function() {
                V.each(X, function(t, e) {
                    n[e] && i[e + "Class"](n[e])
                })
            };
            s(),
            e = e.map(function() {
                return this.end = tt(this.el[0]),
                this.diff = function(t, e) {
                    var i, s, n = {};
                    for (i in e)
                        s = e[i],
                        t[i] === s || $[i] || !V.fx.step[i] && isNaN(parseFloat(s)) || (n[i] = s);
                    return n
                }(this.start, this.end),
                this
            }),
            i.attr("class", t),
            e = e.map(function() {
                var t = this
                  , e = V.Deferred()
                  , i = V.extend({}, o, {
                    queue: !1,
                    complete: function() {
                        e.resolve(t)
                    }
                });
                return this.el.animate(this.diff, i),
                e.promise()
            }),
            V.when.apply(V, e.get()).done(function() {
                s(),
                V.each(arguments, function() {
                    var e = this.el;
                    V.each(this.diff, function(t) {
                        e.css(t, "")
                    })
                }),
                o.complete.call(i[0])
            })
        })
    }
    ,
    V.fn.extend({
        addClass: (U = V.fn.addClass,
        function(t, e, i, s) {
            return e ? V.effects.animateClass.call(this, {
                add: t
            }, e, i, s) : U.apply(this, arguments)
        }
        ),
        removeClass: (K = V.fn.removeClass,
        function(t, e, i, s) {
            return 1 < arguments.length ? V.effects.animateClass.call(this, {
                remove: t
            }, e, i, s) : K.apply(this, arguments)
        }
        ),
        toggleClass: (q = V.fn.toggleClass,
        function(t, e, i, s, n) {
            return "boolean" == typeof e || void 0 === e ? i ? V.effects.animateClass.call(this, e ? {
                add: t
            } : {
                remove: t
            }, i, s, n) : q.apply(this, arguments) : V.effects.animateClass.call(this, {
                toggle: t
            }, e, i, s)
        }
        ),
        switchClass: function(t, e, i, s, n) {
            return V.effects.animateClass.call(this, {
                add: e,
                remove: t
            }, i, s, n)
        }
    }),
    V.expr && V.expr.pseudos && V.expr.pseudos.animated && (V.expr.pseudos.animated = (G = V.expr.pseudos.animated,
    function(t) {
        return !!V(t).data(T) || G(t)
    }
    )),
    !1 !== V.uiBackCompat && V.extend(V.effects, {
        save: function(t, e) {
            for (var i = 0, s = e.length; i < s; i++)
                null !== e[i] && t.data(w + e[i], t[0].style[e[i]])
        },
        restore: function(t, e) {
            for (var i, s = 0, n = e.length; s < n; s++)
                null !== e[s] && (i = t.data(w + e[s]),
                t.css(e[s], i))
        },
        setMode: function(t, e) {
            return e = "toggle" === e ? t.is(":hidden") ? "show" : "hide" : e
        },
        createWrapper: function(i) {
            if (i.parent().is(".ui-effects-wrapper"))
                return i.parent();
            var s = {
                width: i.outerWidth(!0),
                height: i.outerHeight(!0),
                float: i.css("float")
            }
              , t = V("<div></div>").addClass("ui-effects-wrapper").css({
                fontSize: "100%",
                background: "transparent",
                border: "none",
                margin: 0,
                padding: 0
            })
              , e = {
                width: i.width(),
                height: i.height()
            }
              , n = document.activeElement;
            try {
                n.id
            } catch (t) {
                n = document.body
            }
            return i.wrap(t),
            i[0] !== n && !V.contains(i[0], n) || V(n).trigger("focus"),
            t = i.parent(),
            "static" === i.css("position") ? (t.css({
                position: "relative"
            }),
            i.css({
                position: "relative"
            })) : (V.extend(s, {
                position: i.css("position"),
                zIndex: i.css("z-index")
            }),
            V.each(["top", "left", "bottom", "right"], function(t, e) {
                s[e] = i.css(e),
                isNaN(parseInt(s[e], 10)) && (s[e] = "auto")
            }),
            i.css({
                position: "relative",
                top: 0,
                left: 0,
                right: "auto",
                bottom: "auto"
            })),
            i.css(e),
            t.css(s).show()
        },
        removeWrapper: function(t) {
            var e = document.activeElement;
            return t.parent().is(".ui-effects-wrapper") && (t.parent().replaceWith(t),
            t[0] !== e && !V.contains(t[0], e) || V(e).trigger("focus")),
            t
        }
    }),
    V.extend(V.effects, {
        version: "1.13.3",
        define: function(t, e, i) {
            return i || (i = e,
            e = "effect"),
            V.effects.effect[t] = i,
            V.effects.effect[t].mode = e,
            i
        },
        scaledDimensions: function(t, e, i) {
            var s;
            return 0 === e ? {
                height: 0,
                width: 0,
                outerHeight: 0,
                outerWidth: 0
            } : (s = "horizontal" !== i ? (e || 100) / 100 : 1,
            i = "vertical" !== i ? (e || 100) / 100 : 1,
            {
                height: t.height() * i,
                width: t.width() * s,
                outerHeight: t.outerHeight() * i,
                outerWidth: t.outerWidth() * s
            })
        },
        clipToBox: function(t) {
            return {
                width: t.clip.right - t.clip.left,
                height: t.clip.bottom - t.clip.top,
                left: t.clip.left,
                top: t.clip.top
            }
        },
        unshift: function(t, e, i) {
            var s = t.queue();
            1 < e && s.splice.apply(s, [1, 0].concat(s.splice(e, i))),
            t.dequeue()
        },
        saveStyle: function(t) {
            t.data(e, t[0].style.cssText)
        },
        restoreStyle: function(t) {
            t[0].style.cssText = t.data(e) || "",
            t.removeData(e)
        },
        mode: function(t, e) {
            t = t.is(":hidden");
            return "toggle" === e && (e = t ? "show" : "hide"),
            e = (t ? "hide" === e : "show" === e) ? "none" : e
        },
        getBaseline: function(t, e) {
            var i, s;
            switch (t[0]) {
            case "top":
                i = 0;
                break;
            case "middle":
                i = .5;
                break;
            case "bottom":
                i = 1;
                break;
            default:
                i = t[0] / e.height
            }
            switch (t[1]) {
            case "left":
                s = 0;
                break;
            case "center":
                s = .5;
                break;
            case "right":
                s = 1;
                break;
            default:
                s = t[1] / e.width
            }
            return {
                x: s,
                y: i
            }
        },
        createPlaceholder: function(t) {
            var e, i = t.css("position"), s = t.position();
            return t.css({
                marginTop: t.css("marginTop"),
                marginBottom: t.css("marginBottom"),
                marginLeft: t.css("marginLeft"),
                marginRight: t.css("marginRight")
            }).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()),
            /^(static|relative)/.test(i) && (i = "absolute",
            e = V("<" + t[0].nodeName + ">").insertAfter(t).css({
                display: /^(inline|ruby)/.test(t.css("display")) ? "inline-block" : "block",
                visibility: "hidden",
                marginTop: t.css("marginTop"),
                marginBottom: t.css("marginBottom"),
                marginLeft: t.css("marginLeft"),
                marginRight: t.css("marginRight"),
                float: t.css("float")
            }).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),
            t.data(w + "placeholder", e)),
            t.css({
                position: i,
                left: s.left,
                top: s.top
            }),
            e
        },
        removePlaceholder: function(t) {
            var e = w + "placeholder"
              , i = t.data(e);
            i && (i.remove(),
            t.removeData(e))
        },
        cleanUp: function(t) {
            V.effects.restoreStyle(t),
            V.effects.removePlaceholder(t)
        },
        setTransition: function(s, t, n, o) {
            return o = o || {},
            V.each(t, function(t, e) {
                var i = s.cssUnit(e);
                0 < i[0] && (o[e] = i[0] * n + i[1])
            }),
            o
        }
    }),
    V.fn.extend({
        effect: function() {
            function t(t) {
                var e = V(this)
                  , i = V.effects.mode(e, r) || o;
                e.data(T, !0),
                l.push(i),
                o && ("show" === i || i === o && "hide" === i) && e.show(),
                o && "none" === i || V.effects.saveStyle(e),
                "function" == typeof t && t()
            }
            var s = P.apply(this, arguments)
              , n = V.effects.effect[s.effect]
              , o = n.mode
              , e = s.queue
              , i = e || "fx"
              , a = s.complete
              , r = s.mode
              , l = [];
            return V.fx.off || !n ? r ? this[r](s.duration, a) : this.each(function() {
                a && a.call(this)
            }) : !1 === e ? this.each(t).each(h) : this.queue(i, t).queue(i, h);
            function h(t) {
                var e = V(this);
                function i() {
                    "function" == typeof a && a.call(e[0]),
                    "function" == typeof t && t()
                }
                s.mode = l.shift(),
                !1 === V.uiBackCompat || o ? "none" === s.mode ? (e[r](),
                i()) : n.call(e[0], s, function() {
                    e.removeData(T),
                    V.effects.cleanUp(e),
                    "hide" === s.mode && e.hide(),
                    i()
                }) : (e.is(":hidden") ? "hide" === r : "show" === r) ? (e[r](),
                i()) : n.call(e[0], s, i)
            }
        },
        show: (Z = V.fn.show,
        function(t) {
            return M(t) ? Z.apply(this, arguments) : ((t = P.apply(this, arguments)).mode = "show",
            this.effect.call(this, t))
        }
        ),
        hide: (J = V.fn.hide,
        function(t) {
            return M(t) ? J.apply(this, arguments) : ((t = P.apply(this, arguments)).mode = "hide",
            this.effect.call(this, t))
        }
        ),
        toggle: (Q = V.fn.toggle,
        function(t) {
            return M(t) || "boolean" == typeof t ? Q.apply(this, arguments) : ((t = P.apply(this, arguments)).mode = "toggle",
            this.effect.call(this, t))
        }
        ),
        cssUnit: function(t) {
            var i = this.css(t)
              , s = [];
            return V.each(["em", "px", "%", "pt"], function(t, e) {
                0 < i.indexOf(e) && (s = [parseFloat(i), e])
            }),
            s
        },
        cssClip: function(t) {
            return t ? this.css("clip", "rect(" + t.top + "px " + t.right + "px " + t.bottom + "px " + t.left + "px)") : et(this.css("clip"), this)
        },
        transfer: function(t, e) {
            var i = V(this)
              , s = V(t.to)
              , n = "fixed" === s.css("position")
              , o = V("body")
              , a = n ? o.scrollTop() : 0
              , o = n ? o.scrollLeft() : 0
              , r = s.offset()
              , r = {
                top: r.top - a,
                left: r.left - o,
                height: s.innerHeight(),
                width: s.innerWidth()
            }
              , s = i.offset()
              , l = V("<div class='ui-effects-transfer'></div>");
            l.appendTo("body").addClass(t.className).css({
                top: s.top - a,
                left: s.left - o,
                height: i.innerHeight(),
                width: i.innerWidth(),
                position: n ? "fixed" : "absolute"
            }).animate(r, t.duration, t.easing, function() {
                l.remove(),
                "function" == typeof e && e()
            })
        }
    }),
    V.fx.step.clip = function(t) {
        t.clipInit || (t.start = V(t.elem).cssClip(),
        "string" == typeof t.end && (t.end = et(t.end, t.elem)),
        t.clipInit = !0),
        V(t.elem).cssClip({
            top: t.pos * (t.end.top - t.start.top) + t.start.top,
            right: t.pos * (t.end.right - t.start.right) + t.start.right,
            bottom: t.pos * (t.end.bottom - t.start.bottom) + t.start.bottom,
            left: t.pos * (t.end.left - t.start.left) + t.start.left
        })
    }
    ,
    b = {},
    V.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(e, t) {
        b[t] = function(t) {
            return Math.pow(t, e + 2)
        }
    }),
    V.extend(b, {
        Sine: function(t) {
            return 1 - Math.cos(t * Math.PI / 2)
        },
        Circ: function(t) {
            return 1 - Math.sqrt(1 - t * t)
        },
        Elastic: function(t) {
            return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15)
        },
        Back: function(t) {
            return t * t * (3 * t - 2)
        },
        Bounce: function(t) {
            for (var e, i = 4; t < ((e = Math.pow(2, --i)) - 1) / 11; )
                ;
            return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2)
        }
    }),
    V.each(b, function(t, e) {
        V.easing["easeIn" + t] = e,
        V.easing["easeOut" + t] = function(t) {
            return 1 - e(1 - t)
        }
        ,
        V.easing["easeInOut" + t] = function(t) {
            return t < .5 ? e(2 * t) / 2 : 1 - e(-2 * t + 2) / 2
        }
    });
    t = V.effects;
    V.effects.define("blind", "hide", function(t, e) {
        var i = {
            up: ["bottom", "top"],
            vertical: ["bottom", "top"],
            down: ["top", "bottom"],
            left: ["right", "left"],
            horizontal: ["right", "left"],
            right: ["left", "right"]
        }
          , s = V(this)
          , n = t.direction || "up"
          , o = s.cssClip()
          , a = {
            clip: V.extend({}, o)
        }
          , r = V.effects.createPlaceholder(s);
        a.clip[i[n][0]] = a.clip[i[n][1]],
        "show" === t.mode && (s.cssClip(a.clip),
        r && r.css(V.effects.clipToBox(a)),
        a.clip = o),
        r && r.animate(V.effects.clipToBox(a), t.duration, t.easing),
        s.animate(a, {
            queue: !1,
            duration: t.duration,
            easing: t.easing,
            complete: e
        })
    }),
    V.effects.define("bounce", function(t, e) {
        var i, s, n = V(this), o = t.mode, a = "hide" === o, o = "show" === o, r = t.direction || "up", l = t.distance, h = t.times || 5, c = 2 * h + (o || a ? 1 : 0), u = t.duration / c, d = t.easing, p = "up" === r || "down" === r ? "top" : "left", f = "up" === r || "left" === r, g = 0, t = n.queue().length;
        for (V.effects.createPlaceholder(n),
        r = n.css(p),
        l = l || n["top" == p ? "outerHeight" : "outerWidth"]() / 3,
        o && ((s = {
            opacity: 1
        })[p] = r,
        n.css("opacity", 0).css(p, f ? 2 * -l : 2 * l).animate(s, u, d)),
        a && (l /= Math.pow(2, h - 1)),
        (s = {})[p] = r; g < h; g++)
            (i = {})[p] = (f ? "-=" : "+=") + l,
            n.animate(i, u, d).animate(s, u, d),
            l = a ? 2 * l : l / 2;
        a && ((i = {
            opacity: 0
        })[p] = (f ? "-=" : "+=") + l,
        n.animate(i, u, d)),
        n.queue(e),
        V.effects.unshift(n, t, 1 + c)
    }),
    V.effects.define("clip", "hide", function(t, e) {
        var i = {}
          , s = V(this)
          , n = t.direction || "vertical"
          , o = "both" === n
          , a = o || "horizontal" === n
          , o = o || "vertical" === n
          , n = s.cssClip();
        i.clip = {
            top: o ? (n.bottom - n.top) / 2 : n.top,
            right: a ? (n.right - n.left) / 2 : n.right,
            bottom: o ? (n.bottom - n.top) / 2 : n.bottom,
            left: a ? (n.right - n.left) / 2 : n.left
        },
        V.effects.createPlaceholder(s),
        "show" === t.mode && (s.cssClip(i.clip),
        i.clip = n),
        s.animate(i, {
            queue: !1,
            duration: t.duration,
            easing: t.easing,
            complete: e
        })
    }),
    V.effects.define("drop", "hide", function(t, e) {
        var i, s = V(this), n = "show" === t.mode, o = t.direction || "left", a = "up" === o || "down" === o ? "top" : "left", o = "up" === o || "left" === o ? "-=" : "+=", r = "+=" == o ? "-=" : "+=", l = {
            opacity: 0
        };
        V.effects.createPlaceholder(s),
        i = t.distance || s["top" == a ? "outerHeight" : "outerWidth"](!0) / 2,
        l[a] = o + i,
        n && (s.css(l),
        l[a] = r + i,
        l.opacity = 1),
        s.animate(l, {
            queue: !1,
            duration: t.duration,
            easing: t.easing,
            complete: e
        })
    }),
    V.effects.define("explode", "hide", function(t, e) {
        var i, s, n, o, a, r, l = t.pieces ? Math.round(Math.sqrt(t.pieces)) : 3, h = l, c = V(this), u = "show" === t.mode, d = c.show().css("visibility", "hidden").offset(), p = Math.ceil(c.outerWidth() / h), f = Math.ceil(c.outerHeight() / l), g = [];
        function m() {
            g.push(this),
            g.length === l * h && (c.css({
                visibility: "visible"
            }),
            V(g).remove(),
            e())
        }
        for (i = 0; i < l; i++)
            for (o = d.top + i * f,
            r = i - (l - 1) / 2,
            s = 0; s < h; s++)
                n = d.left + s * p,
                a = s - (h - 1) / 2,
                c.clone().appendTo("body").wrap("<div></div>").css({
                    position: "absolute",
                    visibility: "visible",
                    left: -s * p,
                    top: -i * f
                }).parent().addClass("ui-effects-explode").css({
                    position: "absolute",
                    overflow: "hidden",
                    width: p,
                    height: f,
                    left: n + (u ? a * p : 0),
                    top: o + (u ? r * f : 0),
                    opacity: u ? 0 : 1
                }).animate({
                    left: n + (u ? 0 : a * p),
                    top: o + (u ? 0 : r * f),
                    opacity: u ? 1 : 0
                }, t.duration || 500, t.easing, m)
    }),
    V.effects.define("fade", "toggle", function(t, e) {
        var i = "show" === t.mode;
        V(this).css("opacity", i ? 0 : 1).animate({
            opacity: i ? 1 : 0
        }, {
            queue: !1,
            duration: t.duration,
            easing: t.easing,
            complete: e
        })
    }),
    V.effects.define("fold", "hide", function(e, t) {
        var i = V(this)
          , s = e.mode
          , n = "show" === s
          , s = "hide" === s
          , o = e.size || 15
          , a = /([0-9]+)%/.exec(o)
          , r = !!e.horizFirst ? ["right", "bottom"] : ["bottom", "right"]
          , l = e.duration / 2
          , h = V.effects.createPlaceholder(i)
          , c = i.cssClip()
          , u = {
            clip: V.extend({}, c)
        }
          , d = {
            clip: V.extend({}, c)
        }
          , p = [c[r[0]], c[r[1]]]
          , f = i.queue().length;
        a && (o = parseInt(a[1], 10) / 100 * p[s ? 0 : 1]),
        u.clip[r[0]] = o,
        d.clip[r[0]] = o,
        d.clip[r[1]] = 0,
        n && (i.cssClip(d.clip),
        h && h.css(V.effects.clipToBox(d)),
        d.clip = c),
        i.queue(function(t) {
            h && h.animate(V.effects.clipToBox(u), l, e.easing).animate(V.effects.clipToBox(d), l, e.easing),
            t()
        }).animate(u, l, e.easing).animate(d, l, e.easing).queue(t),
        V.effects.unshift(i, f, 4)
    }),
    V.effects.define("highlight", "show", function(t, e) {
        var i = V(this)
          , s = {
            backgroundColor: i.css("backgroundColor")
        };
        "hide" === t.mode && (s.opacity = 0),
        V.effects.saveStyle(i),
        i.css({
            backgroundImage: "none",
            backgroundColor: t.color || "#ffff99"
        }).animate(s, {
            queue: !1,
            duration: t.duration,
            easing: t.easing,
            complete: e
        })
    }),
    V.effects.define("size", function(s, e) {
        var n, i = V(this), t = ["fontSize"], o = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], a = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], r = s.mode, l = "effect" !== r, h = s.scale || "both", c = s.origin || ["middle", "center"], u = i.css("position"), d = i.position(), p = V.effects.scaledDimensions(i), f = s.from || p, g = s.to || V.effects.scaledDimensions(i, 0);
        V.effects.createPlaceholder(i),
        "show" === r && (r = f,
        f = g,
        g = r),
        n = {
            from: {
                y: f.height / p.height,
                x: f.width / p.width
            },
            to: {
                y: g.height / p.height,
                x: g.width / p.width
            }
        },
        "box" !== h && "both" !== h || (n.from.y !== n.to.y && (f = V.effects.setTransition(i, o, n.from.y, f),
        g = V.effects.setTransition(i, o, n.to.y, g)),
        n.from.x !== n.to.x && (f = V.effects.setTransition(i, a, n.from.x, f),
        g = V.effects.setTransition(i, a, n.to.x, g))),
        "content" !== h && "both" !== h || n.from.y !== n.to.y && (f = V.effects.setTransition(i, t, n.from.y, f),
        g = V.effects.setTransition(i, t, n.to.y, g)),
        c && (r = V.effects.getBaseline(c, p),
        f.top = (p.outerHeight - f.outerHeight) * r.y + d.top,
        f.left = (p.outerWidth - f.outerWidth) * r.x + d.left,
        g.top = (p.outerHeight - g.outerHeight) * r.y + d.top,
        g.left = (p.outerWidth - g.outerWidth) * r.x + d.left),
        delete f.outerHeight,
        delete f.outerWidth,
        i.css(f),
        "content" !== h && "both" !== h || (o = o.concat(["marginTop", "marginBottom"]).concat(t),
        a = a.concat(["marginLeft", "marginRight"]),
        i.find("*[width]").each(function() {
            var t = V(this)
              , e = V.effects.scaledDimensions(t)
              , i = {
                height: e.height * n.from.y,
                width: e.width * n.from.x,
                outerHeight: e.outerHeight * n.from.y,
                outerWidth: e.outerWidth * n.from.x
            }
              , e = {
                height: e.height * n.to.y,
                width: e.width * n.to.x,
                outerHeight: e.height * n.to.y,
                outerWidth: e.width * n.to.x
            };
            n.from.y !== n.to.y && (i = V.effects.setTransition(t, o, n.from.y, i),
            e = V.effects.setTransition(t, o, n.to.y, e)),
            n.from.x !== n.to.x && (i = V.effects.setTransition(t, a, n.from.x, i),
            e = V.effects.setTransition(t, a, n.to.x, e)),
            l && V.effects.saveStyle(t),
            t.css(i),
            t.animate(e, s.duration, s.easing, function() {
                l && V.effects.restoreStyle(t)
            })
        })),
        i.animate(g, {
            queue: !1,
            duration: s.duration,
            easing: s.easing,
            complete: function() {
                var t = i.offset();
                0 === g.opacity && i.css("opacity", f.opacity),
                l || (i.css("position", "static" === u ? "relative" : u).offset(t),
                V.effects.saveStyle(i)),
                e()
            }
        })
    }),
    V.effects.define("scale", function(t, e) {
        var i = V(this)
          , s = t.mode
          , s = parseInt(t.percent, 10) || (0 === parseInt(t.percent, 10) || "effect" !== s ? 0 : 100)
          , i = V.extend(!0, {
            from: V.effects.scaledDimensions(i),
            to: V.effects.scaledDimensions(i, s, t.direction || "both"),
            origin: t.origin || ["middle", "center"]
        }, t);
        t.fade && (i.from.opacity = 1,
        i.to.opacity = 0),
        V.effects.effect.size.call(this, i, e)
    }),
    V.effects.define("puff", "hide", function(t, e) {
        t = V.extend(!0, {}, t, {
            fade: !0,
            percent: parseInt(t.percent, 10) || 150
        });
        V.effects.effect.scale.call(this, t, e)
    }),
    V.effects.define("pulsate", "show", function(t, e) {
        var i = V(this)
          , s = t.mode
          , n = "show" === s
          , o = 2 * (t.times || 5) + (n || "hide" === s ? 1 : 0)
          , a = t.duration / o
          , r = 0
          , l = 1
          , s = i.queue().length;
        for (!n && i.is(":visible") || (i.css("opacity", 0).show(),
        r = 1); l < o; l++)
            i.animate({
                opacity: r
            }, a, t.easing),
            r = 1 - r;
        i.animate({
            opacity: r
        }, a, t.easing),
        i.queue(e),
        V.effects.unshift(i, s, 1 + o)
    }),
    V.effects.define("shake", function(t, e) {
        var i = 1
          , s = V(this)
          , n = t.direction || "left"
          , o = t.distance || 20
          , a = t.times || 3
          , r = 2 * a + 1
          , l = Math.round(t.duration / r)
          , h = "up" === n || "down" === n ? "top" : "left"
          , n = "up" === n || "left" === n
          , c = {}
          , u = {}
          , d = {}
          , p = s.queue().length;
        for (V.effects.createPlaceholder(s),
        c[h] = (n ? "-=" : "+=") + o,
        u[h] = (n ? "+=" : "-=") + 2 * o,
        d[h] = (n ? "-=" : "+=") + 2 * o,
        s.animate(c, l, t.easing); i < a; i++)
            s.animate(u, l, t.easing).animate(d, l, t.easing);
        s.animate(u, l, t.easing).animate(c, l / 2, t.easing).queue(e),
        V.effects.unshift(s, p, 1 + r)
    }),
    V.effects.define("slide", "show", function(t, e) {
        var i, s, n = V(this), o = {
            up: ["bottom", "top"],
            down: ["top", "bottom"],
            left: ["right", "left"],
            right: ["left", "right"]
        }, a = t.mode, r = t.direction || "left", l = "up" === r || "down" === r ? "top" : "left", h = "up" === r || "left" === r, c = t.distance || n["top" == l ? "outerHeight" : "outerWidth"](!0), u = {};
        V.effects.createPlaceholder(n),
        i = n.cssClip(),
        s = n.position()[l],
        u[l] = (h ? -1 : 1) * c + s,
        u.clip = n.cssClip(),
        u.clip[o[r][1]] = u.clip[o[r][0]],
        "show" === a && (n.cssClip(u.clip),
        n.css(l, u[l]),
        u.clip = i,
        u[l] = s),
        n.animate(u, {
            queue: !1,
            duration: t.duration,
            easing: t.easing,
            complete: e
        })
    }),
    t = !1 !== V.uiBackCompat ? V.effects.define("transfer", function(t, e) {
        V(this).transfer(t, e)
    }) : t;
    V.ui.focusable = function(t, e) {
        var i, s, n, o = t.nodeName.toLowerCase();
        return "area" === o ? (n = (i = t.parentNode).name,
        !(!t.href || !n || "map" !== i.nodeName.toLowerCase()) && 0 < (i = V("img[usemap='#" + n + "']")).length && i.is(":visible")) : (/^(input|select|textarea|button|object)$/.test(o) ? (s = !t.disabled) && (n = V(t).closest("fieldset")[0]) && (s = !n.disabled) : s = "a" === o && t.href || e,
        s && V(t).is(":visible") && function(t) {
            var e = t.css("visibility");
            for (; "inherit" === e; )
                t = t.parent(),
                e = t.css("visibility");
            return "visible" === e
        }(V(t)))
    }
    ,
    V.extend(V.expr.pseudos, {
        focusable: function(t) {
            return V.ui.focusable(t, null != V.attr(t, "tabindex"))
        }
    });
    V.ui.focusable,
    V.fn._form = function() {
        return "string" == typeof this[0].form ? this.closest("form") : V(this[0].form)
    }
    ,
    V.ui.formResetMixin = {
        _formResetHandler: function() {
            var e = V(this);
            setTimeout(function() {
                var t = e.data("ui-form-reset-instances");
                V.each(t, function() {
                    this.refresh()
                })
            })
        },
        _bindFormResetHandler: function() {
            var t;
            this.form = this.element._form(),
            this.form.length && ((t = this.form.data("ui-form-reset-instances") || []).length || this.form.on("reset.ui-form-reset", this._formResetHandler),
            t.push(this),
            this.form.data("ui-form-reset-instances", t))
        },
        _unbindFormResetHandler: function() {
            var t;
            this.form.length && ((t = this.form.data("ui-form-reset-instances")).splice(V.inArray(this, t), 1),
            t.length ? this.form.data("ui-form-reset-instances", t) : this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset"))
        }
    },
    V.expr.pseudos || (V.expr.pseudos = V.expr[":"]),
    V.uniqueSort || (V.uniqueSort = V.unique),
    V.escapeSelector || (it = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
    st = function(t, e) {
        return e ? "\0" === t ? " " : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t
    }
    ,
    V.escapeSelector = function(t) {
        return (t + "").replace(it, st)
    }
    ),
    V.fn.even && V.fn.odd || V.fn.extend({
        even: function() {
            return this.filter(function(t) {
                return t % 2 == 0
            })
        },
        odd: function() {
            return this.filter(function(t) {
                return t % 2 == 1
            })
        }
    }),
    V.ui.keyCode = {
        BACKSPACE: 8,
        COMMA: 188,
        DELETE: 46,
        DOWN: 40,
        END: 35,
        ENTER: 13,
        ESCAPE: 27,
        HOME: 36,
        LEFT: 37,
        PAGE_DOWN: 34,
        PAGE_UP: 33,
        PERIOD: 190,
        RIGHT: 39,
        SPACE: 32,
        TAB: 9,
        UP: 38
    },
    V.fn.labels = function() {
        var t, e, i;
        return this.length ? this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (e = this.eq(0).parents("label"),
        (t = this.attr("id")) && (i = (i = this.eq(0).parents().last()).add((i.length ? i : this).siblings()),
        t = "label[for='" + V.escapeSelector(t) + "']",
        e = e.add(i.find(t).addBack(t))),
        this.pushStack(e)) : this.pushStack([])
    }
    ,
    V.fn.scrollParent = function(t) {
        var e = this.css("position")
          , i = "absolute" === e
          , s = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/
          , t = this.parents().filter(function() {
            var t = V(this);
            return (!i || "static" !== t.css("position")) && s.test(t.css("overflow") + t.css("overflow-y") + t.css("overflow-x"))
        }).eq(0);
        return "fixed" !== e && t.length ? t : V(this[0].ownerDocument || document)
    }
    ,
    V.extend(V.expr.pseudos, {
        tabbable: function(t) {
            var e = V.attr(t, "tabindex")
              , i = null != e;
            return (!i || 0 <= e) && V.ui.focusable(t, i)
        }
    }),
    V.fn.extend({
        uniqueId: (nt = 0,
        function() {
            return this.each(function() {
                this.id || (this.id = "ui-id-" + ++nt)
            })
        }
        ),
        removeUniqueId: function() {
            return this.each(function() {
                /^ui-id-\d+$/.test(this.id) && V(this).removeAttr("id")
            })
        }
    }),
    V.widget("ui.accordion", {
        version: "1.13.3",
        options: {
            active: 0,
            animate: {},
            classes: {
                "ui-accordion-header": "ui-corner-top",
                "ui-accordion-header-collapsed": "ui-corner-all",
                "ui-accordion-content": "ui-corner-bottom"
            },
            collapsible: !1,
            event: "click",
            header: function(t) {
                return t.find("> li > :first-child").add(t.find("> :not(li)").even())
            },
            heightStyle: "auto",
            icons: {
                activeHeader: "ui-icon-triangle-1-s",
                header: "ui-icon-triangle-1-e"
            },
            activate: null,
            beforeActivate: null
        },
        hideProps: {
            borderTopWidth: "hide",
            borderBottomWidth: "hide",
            paddingTop: "hide",
            paddingBottom: "hide",
            height: "hide"
        },
        showProps: {
            borderTopWidth: "show",
            borderBottomWidth: "show",
            paddingTop: "show",
            paddingBottom: "show",
            height: "show"
        },
        _create: function() {
            var t = this.options;
            this.prevShow = this.prevHide = V(),
            this._addClass("ui-accordion", "ui-widget ui-helper-reset"),
            this.element.attr("role", "tablist"),
            t.collapsible || !1 !== t.active && null != t.active || (t.active = 0),
            this._processPanels(),
            t.active < 0 && (t.active += this.headers.length),
            this._refresh()
        },
        _getCreateEventData: function() {
            return {
                header: this.active,
                panel: this.active.length ? this.active.next() : V()
            }
        },
        _createIcons: function() {
            var t, e = this.options.icons;
            e && (t = V("<span>"),
            this._addClass(t, "ui-accordion-header-icon", "ui-icon " + e.header),
            t.prependTo(this.headers),
            t = this.active.children(".ui-accordion-header-icon"),
            this._removeClass(t, e.header)._addClass(t, null, e.activeHeader)._addClass(this.headers, "ui-accordion-icons"))
        },
        _destroyIcons: function() {
            this._removeClass(this.headers, "ui-accordion-icons"),
            this.headers.children(".ui-accordion-header-icon").remove()
        },
        _destroy: function() {
            var t;
            this.element.removeAttr("role"),
            this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),
            this._destroyIcons(),
            t = this.headers.next().css("display", "").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),
            "content" !== this.options.heightStyle && t.css("height", "")
        },
        _setOption: function(t, e) {
            "active" === t ? this._activate(e) : ("event" === t && (this.options.event && this._off(this.headers, this.options.event),
            this._setupEvents(e)),
            this._super(t, e),
            "collapsible" !== t || e || !1 !== this.options.active || this._activate(0),
            "icons" === t && (this._destroyIcons(),
            e) && this._createIcons())
        },
        _setOptionDisabled: function(t) {
            this._super(t),
            this.element.attr("aria-disabled", t),
            this._toggleClass(null, "ui-state-disabled", !!t),
            this._toggleClass(this.headers.add(this.headers.next()), null, "ui-state-disabled", !!t)
        },
        _keydown: function(t) {
            if (!t.altKey && !t.ctrlKey) {
                var e = V.ui.keyCode
                  , i = this.headers.length
                  , s = this.headers.index(t.target)
                  , n = !1;
                switch (t.keyCode) {
                case e.RIGHT:
                case e.DOWN:
                    n = this.headers[(s + 1) % i];
                    break;
                case e.LEFT:
                case e.UP:
                    n = this.headers[(s - 1 + i) % i];
                    break;
                case e.SPACE:
                case e.ENTER:
                    this._eventHandler(t);
                    break;
                case e.HOME:
                    n = this.headers[0];
                    break;
                case e.END:
                    n = this.headers[i - 1]
                }
                n && (V(t.target).attr("tabIndex", -1),
                V(n).attr("tabIndex", 0),
                V(n).trigger("focus"),
                t.preventDefault())
            }
        },
        _panelKeyDown: function(t) {
            t.keyCode === V.ui.keyCode.UP && t.ctrlKey && V(t.currentTarget).prev().trigger("focus")
        },
        refresh: function() {
            var t = this.options;
            this._processPanels(),
            !1 === t.active && !0 === t.collapsible || !this.headers.length ? (t.active = !1,
            this.active = V()) : !1 === t.active ? this._activate(0) : this.active.length && !V.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(".ui-state-disabled").length ? (t.active = !1,
            this.active = V()) : this._activate(Math.max(0, t.active - 1)) : t.active = this.headers.index(this.active),
            this._destroyIcons(),
            this._refresh()
        },
        _processPanels: function() {
            var t = this.headers
              , e = this.panels;
            "function" == typeof this.options.header ? this.headers = this.options.header(this.element) : this.headers = this.element.find(this.options.header),
            this._addClass(this.headers, "ui-accordion-header ui-accordion-header-collapsed", "ui-state-default"),
            this.panels = this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),
            this._addClass(this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content"),
            e && (this._off(t.not(this.headers)),
            this._off(e.not(this.panels)))
        },
        _refresh: function() {
            var i, t = this.options, e = t.heightStyle, s = this.element.parent();
            this.active = this._findActive(t.active),
            this._addClass(this.active, "ui-accordion-header-active", "ui-state-active")._removeClass(this.active, "ui-accordion-header-collapsed"),
            this._addClass(this.active.next(), "ui-accordion-content-active"),
            this.active.next().show(),
            this.headers.attr("role", "tab").each(function() {
                var t = V(this)
                  , e = t.uniqueId().attr("id")
                  , i = t.next()
                  , s = i.uniqueId().attr("id");
                t.attr("aria-controls", s),
                i.attr("aria-labelledby", e)
            }).next().attr("role", "tabpanel"),
            this.headers.not(this.active).attr({
                "aria-selected": "false",
                "aria-expanded": "false",
                tabIndex: -1
            }).next().attr({
                "aria-hidden": "true"
            }).hide(),
            this.active.length ? this.active.attr({
                "aria-selected": "true",
                "aria-expanded": "true",
                tabIndex: 0
            }).next().attr({
                "aria-hidden": "false"
            }) : this.headers.eq(0).attr("tabIndex", 0),
            this._createIcons(),
            this._setupEvents(t.event),
            "fill" === e ? (i = s.height(),
            this.element.siblings(":visible").each(function() {
                var t = V(this)
                  , e = t.css("position");
                "absolute" !== e && "fixed" !== e && (i -= t.outerHeight(!0))
            }),
            this.headers.each(function() {
                i -= V(this).outerHeight(!0)
            }),
            this.headers.next().each(function() {
                V(this).height(Math.max(0, i - V(this).innerHeight() + V(this).height()))
            }).css("overflow", "auto")) : "auto" === e && (i = 0,
            this.headers.next().each(function() {
                var t = V(this).is(":visible");
                t || V(this).show(),
                i = Math.max(i, V(this).css("height", "").height()),
                t || V(this).hide()
            }).height(i))
        },
        _activate: function(t) {
            t = this._findActive(t)[0];
            t !== this.active[0] && (t = t || this.active[0],
            this._eventHandler({
                target: t,
                currentTarget: t,
                preventDefault: V.noop
            }))
        },
        _findActive: function(t) {
            return "number" == typeof t ? this.headers.eq(t) : V()
        },
        _setupEvents: function(t) {
            var i = {
                keydown: "_keydown"
            };
            t && V.each(t.split(" "), function(t, e) {
                i[e] = "_eventHandler"
            }),
            this._off(this.headers.add(this.headers.next())),
            this._on(this.headers, i),
            this._on(this.headers.next(), {
                keydown: "_panelKeyDown"
            }),
            this._hoverable(this.headers),
            this._focusable(this.headers)
        },
        _eventHandler: function(t) {
            var e = this.options
              , i = this.active
              , s = V(t.currentTarget)
              , n = s[0] === i[0]
              , o = n && e.collapsible
              , a = o ? V() : s.next()
              , r = i.next()
              , r = {
                oldHeader: i,
                oldPanel: r,
                newHeader: o ? V() : s,
                newPanel: a
            };
            t.preventDefault(),
            n && !e.collapsible || !1 === this._trigger("beforeActivate", t, r) || (e.active = !o && this.headers.index(s),
            this.active = n ? V() : s,
            this._toggle(r),
            this._removeClass(i, "ui-accordion-header-active", "ui-state-active"),
            e.icons && (a = i.children(".ui-accordion-header-icon"),
            this._removeClass(a, null, e.icons.activeHeader)._addClass(a, null, e.icons.header)),
            n) || (this._removeClass(s, "ui-accordion-header-collapsed")._addClass(s, "ui-accordion-header-active", "ui-state-active"),
            e.icons && (t = s.children(".ui-accordion-header-icon"),
            this._removeClass(t, null, e.icons.header)._addClass(t, null, e.icons.activeHeader)),
            this._addClass(s.next(), "ui-accordion-content-active"))
        },
        _toggle: function(t) {
            var e = t.newPanel
              , i = this.prevShow.length ? this.prevShow : t.oldPanel;
            this.prevShow.add(this.prevHide).stop(!0, !0),
            this.prevShow = e,
            this.prevHide = i,
            this.options.animate ? this._animate(e, i, t) : (i.hide(),
            e.show(),
            this._toggleComplete(t)),
            i.attr({
                "aria-hidden": "true"
            }),
            i.prev().attr({
                "aria-selected": "false",
                "aria-expanded": "false"
            }),
            e.length && i.length ? i.prev().attr({
                tabIndex: -1,
                "aria-expanded": "false"
            }) : e.length && this.headers.filter(function() {
                return 0 === parseInt(V(this).attr("tabIndex"), 10)
            }).attr("tabIndex", -1),
            e.attr("aria-hidden", "false").prev().attr({
                "aria-selected": "true",
                "aria-expanded": "true",
                tabIndex: 0
            })
        },
        _animate: function(t, i, e) {
            function s() {
                o._toggleComplete(e)
            }
            var n, o = this, a = 0, r = t.css("box-sizing"), l = t.length && (!i.length || t.index() < i.index()), h = this.options.animate || {}, l = l && h.down || h, c = (c = "string" == typeof l ? l : c) || l.easing || h.easing, u = (u = "number" == typeof l ? l : u) || l.duration || h.duration;
            return i.length ? t.length ? (n = t.show().outerHeight(),
            i.animate(this.hideProps, {
                duration: u,
                easing: c,
                step: function(t, e) {
                    e.now = Math.round(t)
                }
            }),
            void t.hide().animate(this.showProps, {
                duration: u,
                easing: c,
                complete: s,
                step: function(t, e) {
                    e.now = Math.round(t),
                    "height" !== e.prop ? "content-box" === r && (a += e.now) : "content" !== o.options.heightStyle && (e.now = Math.round(n - i.outerHeight() - a),
                    a = 0)
                }
            })) : i.animate(this.hideProps, u, c, s) : t.animate(this.showProps, u, c, s)
        },
        _toggleComplete: function(t) {
            var e = t.oldPanel
              , i = e.prev();
            this._removeClass(e, "ui-accordion-content-active"),
            this._removeClass(i, "ui-accordion-header-active")._addClass(i, "ui-accordion-header-collapsed"),
            e.length && (e.parent()[0].className = e.parent()[0].className),
            this._trigger("activate", null, t)
        }
    }),
    V.ui.safeActiveElement = function(e) {
        var i;
        try {
            i = e.activeElement
        } catch (t) {
            i = e.body
        }
        return i = (i = i || e.body).nodeName ? i : e.body
    }
    ,
    V.widget("ui.menu", {
        version: "1.13.3",
        defaultElement: "<ul>",
        delay: 300,
        options: {
            icons: {
                submenu: "ui-icon-caret-1-e"
            },
            items: "> *",
            menus: "ul",
            position: {
                my: "left top",
                at: "right top"
            },
            role: "menu",
            blur: null,
            focus: null,
            select: null
        },
        _create: function() {
            this.activeMenu = this.element,
            this.mouseHandled = !1,
            this.lastMousePosition = {
                x: null,
                y: null
            },
            this.element.uniqueId().attr({
                role: this.options.role,
                tabIndex: 0
            }),
            this._addClass("ui-menu", "ui-widget ui-widget-content"),
            this._on({
                "mousedown .ui-menu-item": function(t) {
                    t.preventDefault(),
                    this._activateItem(t)
                },
                "click .ui-menu-item": function(t) {
                    var e = V(t.target)
                      , i = V(V.ui.safeActiveElement(this.document[0]));
                    !this.mouseHandled && e.not(".ui-state-disabled").length && (this.select(t),
                    t.isPropagationStopped() || (this.mouseHandled = !0),
                    e.has(".ui-menu").length ? this.expand(t) : !this.element.is(":focus") && i.closest(".ui-menu").length && (this.element.trigger("focus", [!0]),
                    this.active) && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer))
                },
                "mouseenter .ui-menu-item": "_activateItem",
                "mousemove .ui-menu-item": "_activateItem",
                mouseleave: "collapseAll",
                "mouseleave .ui-menu": "collapseAll",
                focus: function(t, e) {
                    var i = this.active || this._menuItems().first();
                    e || this.focus(t, i)
                },
                blur: function(t) {
                    this._delay(function() {
                        V.contains(this.element[0], V.ui.safeActiveElement(this.document[0])) || this.collapseAll(t)
                    })
                },
                keydown: "_keydown"
            }),
            this.refresh(),
            this._on(this.document, {
                click: function(t) {
                    this._closeOnDocumentClick(t) && this.collapseAll(t, !0),
                    this.mouseHandled = !1
                }
            })
        },
        _activateItem: function(t) {
            var e, i;
            this.previousFilter || t.clientX === this.lastMousePosition.x && t.clientY === this.lastMousePosition.y || (this.lastMousePosition = {
                x: t.clientX,
                y: t.clientY
            },
            e = V(t.target).closest(".ui-menu-item"),
            i = V(t.currentTarget),
            e[0] !== i[0]) || i.is(".ui-state-active") || (this._removeClass(i.siblings().children(".ui-state-active"), null, "ui-state-active"),
            this.focus(t, i))
        },
        _destroy: function() {
            var t = this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");
            this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),
            t.children().each(function() {
                var t = V(this);
                t.data("ui-menu-submenu-caret") && t.remove()
            })
        },
        _keydown: function(t) {
            var e, i, s, n = !0;
            switch (t.keyCode) {
            case V.ui.keyCode.PAGE_UP:
                this.previousPage(t);
                break;
            case V.ui.keyCode.PAGE_DOWN:
                this.nextPage(t);
                break;
            case V.ui.keyCode.HOME:
                this._move("first", "first", t);
                break;
            case V.ui.keyCode.END:
                this._move("last", "last", t);
                break;
            case V.ui.keyCode.UP:
                this.previous(t);
                break;
            case V.ui.keyCode.DOWN:
                this.next(t);
                break;
            case V.ui.keyCode.LEFT:
                this.collapse(t);
                break;
            case V.ui.keyCode.RIGHT:
                this.active && !this.active.is(".ui-state-disabled") && this.expand(t);
                break;
            case V.ui.keyCode.ENTER:
            case V.ui.keyCode.SPACE:
                this._activate(t);
                break;
            case V.ui.keyCode.ESCAPE:
                this.collapse(t);
                break;
            default:
                e = this.previousFilter || "",
                s = n = !1,
                i = 96 <= t.keyCode && t.keyCode <= 105 ? (t.keyCode - 96).toString() : String.fromCharCode(t.keyCode),
                clearTimeout(this.filterTimer),
                i === e ? s = !0 : i = e + i,
                e = this._filterMenuItems(i),
                (e = s && -1 !== e.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : e).length || (i = String.fromCharCode(t.keyCode),
                e = this._filterMenuItems(i)),
                e.length ? (this.focus(t, e),
                this.previousFilter = i,
                this.filterTimer = this._delay(function() {
                    delete this.previousFilter
                }, 1e3)) : delete this.previousFilter
            }
            n && t.preventDefault()
        },
        _activate: function(t) {
            this.active && !this.active.is(".ui-state-disabled") && (this.active.children("[aria-haspopup='true']").length ? this.expand(t) : this.select(t))
        },
        refresh: function() {
            var t, e, s = this, n = this.options.icons.submenu, i = this.element.find(this.options.menus);
            this._toggleClass("ui-menu-icons", null, !!this.element.find(".ui-icon").length),
            t = i.filter(":not(.ui-menu)").hide().attr({
                role: this.options.role,
                "aria-hidden": "true",
                "aria-expanded": "false"
            }).each(function() {
                var t = V(this)
                  , e = t.prev()
                  , i = V("<span>").data("ui-menu-submenu-caret", !0);
                s._addClass(i, "ui-menu-icon", "ui-icon " + n),
                e.attr("aria-haspopup", "true").prepend(i),
                t.attr("aria-labelledby", e.attr("id"))
            }),
            this._addClass(t, "ui-menu", "ui-widget ui-widget-content ui-front"),
            (t = i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function() {
                var t = V(this);
                s._isDivider(t) && s._addClass(t, "ui-menu-divider", "ui-widget-content")
            }),
            e = (i = t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({
                tabIndex: -1,
                role: this._itemRole()
            }),
            this._addClass(i, "ui-menu-item")._addClass(e, "ui-menu-item-wrapper"),
            t.filter(".ui-state-disabled").attr("aria-disabled", "true"),
            this.active && !V.contains(this.element[0], this.active[0]) && this.blur()
        },
        _itemRole: function() {
            return {
                menu: "menuitem",
                listbox: "option"
            }[this.options.role]
        },
        _setOption: function(t, e) {
            var i;
            "icons" === t && (i = this.element.find(".ui-menu-icon"),
            this._removeClass(i, null, this.options.icons.submenu)._addClass(i, null, e.submenu)),
            this._super(t, e)
        },
        _setOptionDisabled: function(t) {
            this._super(t),
            this.element.attr("aria-disabled", String(t)),
            this._toggleClass(null, "ui-state-disabled", !!t)
        },
        focus: function(t, e) {
            var i;
            this.blur(t, t && "focus" === t.type),
            this._scrollIntoView(e),
            this.active = e.first(),
            i = this.active.children(".ui-menu-item-wrapper"),
            this._addClass(i, null, "ui-state-active"),
            this.options.role && this.element.attr("aria-activedescendant", i.attr("id")),
            i = this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),
            this._addClass(i, null, "ui-state-active"),
            t && "keydown" === t.type ? this._close() : this.timer = this._delay(function() {
                this._close()
            }, this.delay),
            (i = e.children(".ui-menu")).length && t && /^mouse/.test(t.type) && this._startOpening(i),
            this.activeMenu = e.parent(),
            this._trigger("focus", t, {
                item: e
            })
        },
        _scrollIntoView: function(t) {
            var e, i, s;
            this._hasScroll() && (e = parseFloat(V.css(this.activeMenu[0], "borderTopWidth")) || 0,
            i = parseFloat(V.css(this.activeMenu[0], "paddingTop")) || 0,
            e = t.offset().top - this.activeMenu.offset().top - e - i,
            i = this.activeMenu.scrollTop(),
            s = this.activeMenu.height(),
            t = t.outerHeight(),
            e < 0 ? this.activeMenu.scrollTop(i + e) : s < e + t && this.activeMenu.scrollTop(i + e - s + t))
        },
        blur: function(t, e) {
            e || clearTimeout(this.timer),
            this.active && (this._removeClass(this.active.children(".ui-menu-item-wrapper"), null, "ui-state-active"),
            this._trigger("blur", t, {
                item: this.active
            }),
            this.active = null)
        },
        _startOpening: function(t) {
            clearTimeout(this.timer),
            "true" === t.attr("aria-hidden") && (this.timer = this._delay(function() {
                this._close(),
                this._open(t)
            }, this.delay))
        },
        _open: function(t) {
            var e = V.extend({
                of: this.active
            }, this.options.position);
            clearTimeout(this.timer),
            this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden", "true"),
            t.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(e)
        },
        collapseAll: function(e, i) {
            clearTimeout(this.timer),
            this.timer = this._delay(function() {
                var t = i ? this.element : V(e && e.target).closest(this.element.find(".ui-menu"));
                t.length || (t = this.element),
                this._close(t),
                this.blur(e),
                this._removeClass(t.find(".ui-state-active"), null, "ui-state-active"),
                this.activeMenu = t
            }, i ? 0 : this.delay)
        },
        _close: function(t) {
            (t = t || (this.active ? this.active.parent() : this.element)).find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false")
        },
        _closeOnDocumentClick: function(t) {
            return !V(t.target).closest(".ui-menu").length
        },
        _isDivider: function(t) {
            return !/[^\-\u2014\u2013\s]/.test(t.text())
        },
        collapse: function(t) {
            var e = this.active && this.active.parent().closest(".ui-menu-item", this.element);
            e && e.length && (this._close(),
            this.focus(t, e))
        },
        expand: function(t) {
            var e = this.active && this._menuItems(this.active.children(".ui-menu")).first();
            e && e.length && (this._open(e.parent()),
            this._delay(function() {
                this.focus(t, e)
            }))
        },
        next: function(t) {
            this._move("next", "first", t)
        },
        previous: function(t) {
            this._move("prev", "last", t)
        },
        isFirstItem: function() {
            return this.active && !this.active.prevAll(".ui-menu-item").length
        },
        isLastItem: function() {
            return this.active && !this.active.nextAll(".ui-menu-item").length
        },
        _menuItems: function(t) {
            return (t || this.element).find(this.options.items).filter(".ui-menu-item")
        },
        _move: function(t, e, i) {
            var s;
            (s = this.active ? "first" === t || "last" === t ? this.active["first" === t ? "prevAll" : "nextAll"](".ui-menu-item").last() : this.active[t + "All"](".ui-menu-item").first() : s) && s.length && this.active || (s = this._menuItems(this.activeMenu)[e]()),
            this.focus(i, s)
        },
        nextPage: function(t) {
            var e, i, s;
            this.active ? this.isLastItem() || (this._hasScroll() ? (i = this.active.offset().top,
            s = this.element.innerHeight(),
            0 === V.fn.jquery.indexOf("3.2.") && (s += this.element[0].offsetHeight - this.element.outerHeight()),
            this.active.nextAll(".ui-menu-item").each(function() {
                return (e = V(this)).offset().top - i - s < 0
            }),
            this.focus(t, e)) : this.focus(t, this._menuItems(this.activeMenu)[this.active ? "last" : "first"]())) : this.next(t)
        },
        previousPage: function(t) {
            var e, i, s;
            this.active ? this.isFirstItem() || (this._hasScroll() ? (i = this.active.offset().top,
            s = this.element.innerHeight(),
            0 === V.fn.jquery.indexOf("3.2.") && (s += this.element[0].offsetHeight - this.element.outerHeight()),
            this.active.prevAll(".ui-menu-item").each(function() {
                return 0 < (e = V(this)).offset().top - i + s
            }),
            this.focus(t, e)) : this.focus(t, this._menuItems(this.activeMenu).first())) : this.next(t)
        },
        _hasScroll: function() {
            return this.element.outerHeight() < this.element.prop("scrollHeight")
        },
        select: function(t) {
            this.active = this.active || V(t.target).closest(".ui-menu-item");
            var e = {
                item: this.active
            };
            this.active.has(".ui-menu").length || this.collapseAll(t, !0),
            this._trigger("select", t, e)
        },
        _filterMenuItems: function(t) {
            var t = t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
              , e = new RegExp("^" + t,"i");
            return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function() {
                return e.test(String.prototype.trim.call(V(this).children(".ui-menu-item-wrapper").text()))
            })
        }
    }),
    V.widget("ui.autocomplete", {
        version: "1.13.3",
        defaultElement: "<input>",
        options: {
            appendTo: null,
            autoFocus: !1,
            delay: 300,
            minLength: 1,
            position: {
                my: "left top",
                at: "left bottom",
                collision: "none"
            },
            source: null,
            change: null,
            close: null,
            focus: null,
            open: null,
            response: null,
            search: null,
            select: null
        },
        requestIndex: 0,
        pending: 0,
        liveRegionTimer: null,
        _create: function() {
            var i, s, n, t = this.element[0].nodeName.toLowerCase(), e = "textarea" === t, t = "input" === t;
            this.isMultiLine = e || !t && this._isContentEditable(this.element),
            this.valueMethod = this.element[e || t ? "val" : "text"],
            this.isNewMenu = !0,
            this._addClass("ui-autocomplete-input"),
            this.element.attr("autocomplete", "off"),
            this._on(this.element, {
                keydown: function(t) {
                    if (this.element.prop("readOnly"))
                        s = n = i = !0;
                    else {
                        s = n = i = !1;
                        var e = V.ui.keyCode;
                        switch (t.keyCode) {
                        case e.PAGE_UP:
                            i = !0,
                            this._move("previousPage", t);
                            break;
                        case e.PAGE_DOWN:
                            i = !0,
                            this._move("nextPage", t);
                            break;
                        case e.UP:
                            i = !0,
                            this._keyEvent("previous", t);
                            break;
                        case e.DOWN:
                            i = !0,
                            this._keyEvent("next", t);
                            break;
                        case e.ENTER:
                            this.menu.active && (i = !0,
                            t.preventDefault(),
                            this.menu.select(t));
                            break;
                        case e.TAB:
                            this.menu.active && this.menu.select(t);
                            break;
                        case e.ESCAPE:
                            this.menu.element.is(":visible") && (this.isMultiLine || this._value(this.term),
                            this.close(t),
                            t.preventDefault());
                            break;
                        default:
                            s = !0,
                            this._searchTimeout(t)
                        }
                    }
                },
                keypress: function(t) {
                    if (i)
                        i = !1,
                        this.isMultiLine && !this.menu.element.is(":visible") || t.preventDefault();
                    else if (!s) {
                        var e = V.ui.keyCode;
                        switch (t.keyCode) {
                        case e.PAGE_UP:
                            this._move("previousPage", t);
                            break;
                        case e.PAGE_DOWN:
                            this._move("nextPage", t);
                            break;
                        case e.UP:
                            this._keyEvent("previous", t);
                            break;
                        case e.DOWN:
                            this._keyEvent("next", t)
                        }
                    }
                },
                input: function(t) {
                    n ? (n = !1,
                    t.preventDefault()) : this._searchTimeout(t)
                },
                focus: function() {
                    this.selectedItem = null,
                    this.previous = this._value()
                },
                blur: function(t) {
                    clearTimeout(this.searching),
                    this.close(t),
                    this._change(t)
                }
            }),
            this._initSource(),
            this.menu = V("<ul>").appendTo(this._appendTo()).menu({
                role: null
            }).hide().attr({
                unselectable: "on"
            }).menu("instance"),
            this._addClass(this.menu.element, "ui-autocomplete", "ui-front"),
            this._on(this.menu.element, {
                mousedown: function(t) {
                    t.preventDefault()
                },
                menufocus: function(t, e) {
                    var i, s;
                    this.isNewMenu && (this.isNewMenu = !1,
                    t.originalEvent) && /^mouse/.test(t.originalEvent.type) ? (this.menu.blur(),
                    this.document.one("mousemove", function() {
                        V(t.target).trigger(t.originalEvent)
                    })) : (s = e.item.data("ui-autocomplete-item"),
                    !1 !== this._trigger("focus", t, {
                        item: s
                    }) && t.originalEvent && /^key/.test(t.originalEvent.type) && this._value(s.value),
                    (i = e.item.attr("aria-label") || s.value) && String.prototype.trim.call(i).length && (clearTimeout(this.liveRegionTimer),
                    this.liveRegionTimer = this._delay(function() {
                        this.liveRegion.html(V("<div>").text(i))
                    }, 100)))
                },
                menuselect: function(t, e) {
                    var i = e.item.data("ui-autocomplete-item")
                      , s = this.previous;
                    this.element[0] !== V.ui.safeActiveElement(this.document[0]) && (this.element.trigger("focus"),
                    this.previous = s,
                    this._delay(function() {
                        this.previous = s,
                        this.selectedItem = i
                    })),
                    !1 !== this._trigger("select", t, {
                        item: i
                    }) && this._value(i.value),
                    this.term = this._value(),
                    this.close(t),
                    this.selectedItem = i
                }
            }),
            this.liveRegion = V("<div>", {
                role: "status",
                "aria-live": "assertive",
                "aria-relevant": "additions"
            }).appendTo(this.document[0].body),
            this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"),
            this._on(this.window, {
                beforeunload: function() {
                    this.element.removeAttr("autocomplete")
                }
            })
        },
        _destroy: function() {
            clearTimeout(this.searching),
            this.element.removeAttr("autocomplete"),
            this.menu.element.remove(),
            this.liveRegion.remove()
        },
        _setOption: function(t, e) {
            this._super(t, e),
            "source" === t && this._initSource(),
            "appendTo" === t && this.menu.element.appendTo(this._appendTo()),
            "disabled" === t && e && this.xhr && this.xhr.abort()
        },
        _isEventTargetInWidget: function(t) {
            var e = this.menu.element[0];
            return t.target === this.element[0] || t.target === e || V.contains(e, t.target)
        },
        _closeOnClickOutside: function(t) {
            this._isEventTargetInWidget(t) || this.close()
        },
        _appendTo: function() {
            var t = this.options.appendTo;
            return t = (t = (t = t && (t.jquery || t.nodeType ? V(t) : this.document.find(t).eq(0))) && t[0] ? t : this.element.closest(".ui-front, dialog")).length ? t : this.document[0].body
        },
        _initSource: function() {
            var i, s, n = this;
            Array.isArray(this.options.source) ? (i = this.options.source,
            this.source = function(t, e) {
                e(V.ui.autocomplete.filter(i, t.term))
            }
            ) : "string" == typeof this.options.source ? (s = this.options.source,
            this.source = function(t, e) {
                n.xhr && n.xhr.abort(),
                n.xhr = V.ajax({
                    url: s,
                    data: t,
                    dataType: "json",
                    success: function(t) {
                        e(t)
                    },
                    error: function() {
                        e([])
                    }
                })
            }
            ) : this.source = this.options.source
        },
        _searchTimeout: function(s) {
            clearTimeout(this.searching),
            this.searching = this._delay(function() {
                var t = this.term === this._value()
                  , e = this.menu.element.is(":visible")
                  , i = s.altKey || s.ctrlKey || s.metaKey || s.shiftKey;
                t && (e || i) || (this.selectedItem = null,
                this.search(null, s))
            }, this.options.delay)
        },
        search: function(t, e) {
            return t = null != t ? t : this._value(),
            this.term = this._value(),
            t.length < this.options.minLength ? this.close(e) : !1 !== this._trigger("search", e) ? this._search(t) : void 0
        },
        _search: function(t) {
            this.pending++,
            this._addClass("ui-autocomplete-loading"),
            this.cancelSearch = !1,
            this.source({
                term: t
            }, this._response())
        },
        _response: function() {
            var e = ++this.requestIndex;
            return function(t) {
                e === this.requestIndex && this.__response(t),
                this.pending--,
                this.pending || this._removeClass("ui-autocomplete-loading")
            }
            .bind(this)
        },
        __response: function(t) {
            t = t && this._normalize(t),
            this._trigger("response", null, {
                content: t
            }),
            !this.options.disabled && t && t.length && !this.cancelSearch ? (this._suggest(t),
            this._trigger("open")) : this._close()
        },
        close: function(t) {
            this.cancelSearch = !0,
            this._close(t)
        },
        _close: function(t) {
            this._off(this.document, "mousedown"),
            this.menu.element.is(":visible") && (this.menu.element.hide(),
            this.menu.blur(),
            this.isNewMenu = !0,
            this._trigger("close", t))
        },
        _change: function(t) {
            this.previous !== this._value() && this._trigger("change", t, {
                item: this.selectedItem
            })
        },
        _normalize: function(t) {
            return t.length && t[0].label && t[0].value ? t : V.map(t, function(t) {
                return "string" == typeof t ? {
                    label: t,
                    value: t
                } : V.extend({}, t, {
                    label: t.label || t.value,
                    value: t.value || t.label
                })
            })
        },
        _suggest: function(t) {
            var e = this.menu.element.empty();
            this._renderMenu(e, t),
            this.isNewMenu = !0,
            this.menu.refresh(),
            e.show(),
            this._resizeMenu(),
            e.position(V.extend({
                of: this.element
            }, this.options.position)),
            this.options.autoFocus && this.menu.next(),
            this._on(this.document, {
                mousedown: "_closeOnClickOutside"
            })
        },
        _resizeMenu: function() {
            var t = this.menu.element;
            t.outerWidth(Math.max(t.width("").outerWidth() + 1, this.element.outerWidth()))
        },
        _renderMenu: function(i, t) {
            var s = this;
            V.each(t, function(t, e) {
                s._renderItemData(i, e)
            })
        },
        _renderItemData: function(t, e) {
            return this._renderItem(t, e).data("ui-autocomplete-item", e)
        },
        _renderItem: function(t, e) {
            return V("<li>").append(V("<div>").text(e.label)).appendTo(t)
        },
        _move: function(t, e) {
            this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(t) || this.menu.isLastItem() && /^next/.test(t) ? (this.isMultiLine || this._value(this.term),
            this.menu.blur()) : this.menu[t](e) : this.search(null, e)
        },
        widget: function() {
            return this.menu.element
        },
        _value: function() {
            return this.valueMethod.apply(this.element, arguments)
        },
        _keyEvent: function(t, e) {
            this.isMultiLine && !this.menu.element.is(":visible") || (this._move(t, e),
            e.preventDefault())
        },
        _isContentEditable: function(t) {
            var e;
            return !!t.length && ("inherit" === (e = t.prop("contentEditable")) ? this._isContentEditable(t.parent()) : "true" === e)
        }
    }),
    V.extend(V.ui.autocomplete, {
        escapeRegex: function(t) {
            return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
        },
        filter: function(t, e) {
            var i = new RegExp(V.ui.autocomplete.escapeRegex(e),"i");
            return V.grep(t, function(t) {
                return i.test(t.label || t.value || t)
            })
        }
    }),
    V.widget("ui.autocomplete", V.ui.autocomplete, {
        options: {
            messages: {
                noResults: "No search results.",
                results: function(t) {
                    return t + (1 < t ? " results are" : " result is") + " available, use up and down arrow keys to navigate."
                }
            }
        },
        __response: function(t) {
            var e;
            this._superApply(arguments),
            this.options.disabled || this.cancelSearch || (e = t && t.length ? this.options.messages.results(t.length) : this.options.messages.noResults,
            clearTimeout(this.liveRegionTimer),
            this.liveRegionTimer = this._delay(function() {
                this.liveRegion.html(V("<div>").text(e))
            }, 100))
        }
    }),
    V.ui.autocomplete;
    var it, st, nt, ot, S, at = /ui-corner-([a-z]){2,6}/g;
    V.widget("ui.controlgroup", {
        version: "1.13.3",
        defaultElement: "<div>",
        options: {
            direction: "horizontal",
            disabled: null,
            onlyVisible: !0,
            items: {
                button: "input[type=button], input[type=submit], input[type=reset], button, a",
                controlgroupLabel: ".ui-controlgroup-label",
                checkboxradio: "input[type='checkbox'], input[type='radio']",
                selectmenu: "select",
                spinner: ".ui-spinner-input"
            }
        },
        _create: function() {
            this._enhance()
        },
        _enhance: function() {
            this.element.attr("role", "toolbar"),
            this.refresh()
        },
        _destroy: function() {
            this._callChildMethod("destroy"),
            this.childWidgets.removeData("ui-controlgroup-data"),
            this.element.removeAttr("role"),
            this.options.items.controlgroupLabel && this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()
        },
        _initWidgets: function() {
            var o = this
              , a = [];
            V.each(this.options.items, function(s, t) {
                var e, n = {};
                t && ("controlgroupLabel" === s ? ((e = o.element.find(t)).each(function() {
                    var t = V(this);
                    t.children(".ui-controlgroup-label-contents").length || t.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")
                }),
                o._addClass(e, null, "ui-widget ui-widget-content ui-state-default"),
                a = a.concat(e.get())) : V.fn[s] && (n = o["_" + s + "Options"] ? o["_" + s + "Options"]("middle") : {
                    classes: {}
                },
                o.element.find(t).each(function() {
                    var t = V(this)
                      , e = t[s]("instance")
                      , i = V.widget.extend({}, n);
                    "button" === s && t.parent(".ui-spinner").length || ((e = e || t[s]()[s]("instance")) && (i.classes = o._resolveClassesValues(i.classes, e)),
                    t[s](i),
                    i = t[s]("widget"),
                    V.data(i[0], "ui-controlgroup-data", e || t[s]("instance")),
                    a.push(i[0]))
                })))
            }),
            this.childWidgets = V(V.uniqueSort(a)),
            this._addClass(this.childWidgets, "ui-controlgroup-item")
        },
        _callChildMethod: function(e) {
            this.childWidgets.each(function() {
                var t = V(this).data("ui-controlgroup-data");
                t && t[e] && t[e]()
            })
        },
        _updateCornerClass: function(t, e) {
            e = this._buildSimpleOptions(e, "label").classes.label;
            this._removeClass(t, null, "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),
            this._addClass(t, null, e)
        },
        _buildSimpleOptions: function(t, e) {
            var i = "vertical" === this.options.direction
              , s = {
                classes: {}
            };
            return s.classes[e] = {
                middle: "",
                first: "ui-corner-" + (i ? "top" : "left"),
                last: "ui-corner-" + (i ? "bottom" : "right"),
                only: "ui-corner-all"
            }[t],
            s
        },
        _spinnerOptions: function(t) {
            t = this._buildSimpleOptions(t, "ui-spinner");
            return t.classes["ui-spinner-up"] = "",
            t.classes["ui-spinner-down"] = "",
            t
        },
        _buttonOptions: function(t) {
            return this._buildSimpleOptions(t, "ui-button")
        },
        _checkboxradioOptions: function(t) {
            return this._buildSimpleOptions(t, "ui-checkboxradio-label")
        },
        _selectmenuOptions: function(t) {
            var e = "vertical" === this.options.direction;
            return {
                width: e && "auto",
                classes: {
                    middle: {
                        "ui-selectmenu-button-open": "",
                        "ui-selectmenu-button-closed": ""
                    },
                    first: {
                        "ui-selectmenu-button-open": "ui-corner-" + (e ? "top" : "tl"),
                        "ui-selectmenu-button-closed": "ui-corner-" + (e ? "top" : "left")
                    },
                    last: {
                        "ui-selectmenu-button-open": e ? "" : "ui-corner-tr",
                        "ui-selectmenu-button-closed": "ui-corner-" + (e ? "bottom" : "right")
                    },
                    only: {
                        "ui-selectmenu-button-open": "ui-corner-top",
                        "ui-selectmenu-button-closed": "ui-corner-all"
                    }
                }[t]
            }
        },
        _resolveClassesValues: function(i, s) {
            var n = {};
            return V.each(i, function(t) {
                var e = s.options.classes[t] || ""
                  , e = String.prototype.trim.call(e.replace(at, ""));
                n[t] = (e + " " + i[t]).replace(/\s+/g, " ")
            }),
            n
        },
        _setOption: function(t, e) {
            "direction" === t && this._removeClass("ui-controlgroup-" + this.options.direction),
            this._super(t, e),
            "disabled" === t ? this._callChildMethod(e ? "disable" : "enable") : this.refresh()
        },
        refresh: function() {
            var n, o = this;
            this._addClass("ui-controlgroup ui-controlgroup-" + this.options.direction),
            "horizontal" === this.options.direction && this._addClass(null, "ui-helper-clearfix"),
            this._initWidgets(),
            n = this.childWidgets,
            (n = this.options.onlyVisible ? n.filter(":visible") : n).length && (V.each(["first", "last"], function(t, e) {
                var i, s = n[e]().data("ui-controlgroup-data");
                s && o["_" + s.widgetName + "Options"] ? ((i = o["_" + s.widgetName + "Options"](1 === n.length ? "only" : e)).classes = o._resolveClassesValues(i.classes, s),
                s.element[s.widgetName](i)) : o._updateCornerClass(n[e](), e)
            }),
            this._callChildMethod("refresh"))
        }
    }),
    V.widget("ui.checkboxradio", [V.ui.formResetMixin, {
        version: "1.13.3",
        options: {
            disabled: null,
            label: null,
            icon: !0,
            classes: {
                "ui-checkboxradio-label": "ui-corner-all",
                "ui-checkboxradio-icon": "ui-corner-all"
            }
        },
        _getCreateOptions: function() {
            var t, e = this._super() || {};
            return this._readType(),
            t = this.element.labels(),
            this.label = V(t[t.length - 1]),
            this.label.length || V.error("No label found for checkboxradio widget"),
            this.originalLabel = "",
            (t = this.label.contents().not(this.element[0])).length && (this.originalLabel += t.clone().wrapAll("<div></div>").parent().html()),
            this.originalLabel && (e.label = this.originalLabel),
            null != (t = this.element[0].disabled) && (e.disabled = t),
            e
        },
        _create: function() {
            var t = this.element[0].checked;
            this._bindFormResetHandler(),
            null == this.options.disabled && (this.options.disabled = this.element[0].disabled),
            this._setOption("disabled", this.options.disabled),
            this._addClass("ui-checkboxradio", "ui-helper-hidden-accessible"),
            this._addClass(this.label, "ui-checkboxradio-label", "ui-button ui-widget"),
            "radio" === this.type && this._addClass(this.label, "ui-checkboxradio-radio-label"),
            this.options.label && this.options.label !== this.originalLabel ? this._updateLabel() : this.originalLabel && (this.options.label = this.originalLabel),
            this._enhance(),
            t && this._addClass(this.label, "ui-checkboxradio-checked", "ui-state-active"),
            this._on({
                change: "_toggleClasses",
                focus: function() {
                    this._addClass(this.label, null, "ui-state-focus ui-visual-focus")
                },
                blur: function() {
                    this._removeClass(this.label, null, "ui-state-focus ui-visual-focus")
                }
            })
        },
        _readType: function() {
            var t = this.element[0].nodeName.toLowerCase();
            this.type = this.element[0].type,
            "input" === t && /radio|checkbox/.test(this.type) || V.error("Can't create checkboxradio on element.nodeName=" + t + " and element.type=" + this.type)
        },
        _enhance: function() {
            this._updateIcon(this.element[0].checked)
        },
        widget: function() {
            return this.label
        },
        _getRadioGroup: function() {
            var t = this.element[0].name
              , e = "input[name='" + V.escapeSelector(t) + "']";
            return t ? (this.form.length ? V(this.form[0].elements).filter(e) : V(e).filter(function() {
                return 0 === V(this)._form().length
            })).not(this.element) : V([])
        },
        _toggleClasses: function() {
            var t = this.element[0].checked;
            this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t),
            this.options.icon && "checkbox" === this.type && this._toggleClass(this.icon, null, "ui-icon-check ui-state-checked", t)._toggleClass(this.icon, null, "ui-icon-blank", !t),
            "radio" === this.type && this._getRadioGroup().each(function() {
                var t = V(this).checkboxradio("instance");
                t && t._removeClass(t.label, "ui-checkboxradio-checked", "ui-state-active")
            })
        },
        _destroy: function() {
            this._unbindFormResetHandler(),
            this.icon && (this.icon.remove(),
            this.iconSpace.remove())
        },
        _setOption: function(t, e) {
            "label" === t && !e || (this._super(t, e),
            "disabled" === t ? (this._toggleClass(this.label, null, "ui-state-disabled", e),
            this.element[0].disabled = e) : this.refresh())
        },
        _updateIcon: function(t) {
            var e = "ui-icon ui-icon-background ";
            this.options.icon ? (this.icon || (this.icon = V("<span>"),
            this.iconSpace = V("<span> </span>"),
            this._addClass(this.iconSpace, "ui-checkboxradio-icon-space")),
            "checkbox" === this.type ? (e += t ? "ui-icon-check ui-state-checked" : "ui-icon-blank",
            this._removeClass(this.icon, null, t ? "ui-icon-blank" : "ui-icon-check")) : e += "ui-icon-blank",
            this._addClass(this.icon, "ui-checkboxradio-icon", e),
            t || this._removeClass(this.icon, null, "ui-icon-check ui-state-checked"),
            this.icon.prependTo(this.label).after(this.iconSpace)) : void 0 !== this.icon && (this.icon.remove(),
            this.iconSpace.remove(),
            delete this.icon)
        },
        _updateLabel: function() {
            var t = this.label.contents().not(this.element[0]);
            this.icon && (t = t.not(this.icon[0])),
            (t = this.iconSpace ? t.not(this.iconSpace[0]) : t).remove(),
            this.label.append(this.options.label)
        },
        refresh: function() {
            var t = this.element[0].checked
              , e = this.element[0].disabled;
            this._updateIcon(t),
            this._toggleClass(this.label, "ui-checkboxradio-checked", "ui-state-active", t),
            null !== this.options.label && this._updateLabel(),
            e !== this.options.disabled && this._setOptions({
                disabled: e
            })
        }
    }]),
    V.ui.checkboxradio,
    V.widget("ui.button", {
        version: "1.13.3",
        defaultElement: "<button>",
        options: {
            classes: {
                "ui-button": "ui-corner-all"
            },
            disabled: null,
            icon: null,
            iconPosition: "beginning",
            label: null,
            showLabel: !0
        },
        _getCreateOptions: function() {
            var t, e = this._super() || {};
            return this.isInput = this.element.is("input"),
            null != (t = this.element[0].disabled) && (e.disabled = t),
            this.originalLabel = this.isInput ? this.element.val() : this.element.html(),
            this.originalLabel && (e.label = this.originalLabel),
            e
        },
        _create: function() {
            !this.option.showLabel & !this.options.icon && (this.options.showLabel = !0),
            null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1),
            this.hasTitle = !!this.element.attr("title"),
            this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)),
            this._addClass("ui-button", "ui-widget"),
            this._setOption("disabled", this.options.disabled),
            this._enhance(),
            this.element.is("a") && this._on({
                keyup: function(t) {
                    t.keyCode === V.ui.keyCode.SPACE && (t.preventDefault(),
                    this.element[0].click ? this.element[0].click() : this.element.trigger("click"))
                }
            })
        },
        _enhance: function() {
            this.element.is("button") || this.element.attr("role", "button"),
            this.options.icon && (this._updateIcon("icon", this.options.icon),
            this._updateTooltip())
        },
        _updateTooltip: function() {
            this.title = this.element.attr("title"),
            this.options.showLabel || this.title || this.element.attr("title", this.options.label)
        },
        _updateIcon: function(t, e) {
            var t = "iconPosition" !== t
              , i = t ? this.options.iconPosition : e
              , s = "top" === i || "bottom" === i;
            this.icon ? t && this._removeClass(this.icon, null, this.options.icon) : (this.icon = V("<span>"),
            this._addClass(this.icon, "ui-button-icon", "ui-icon"),
            this.options.showLabel || this._addClass("ui-button-icon-only")),
            t && this._addClass(this.icon, null, e),
            this._attachIcon(i),
            s ? (this._addClass(this.icon, null, "ui-widget-icon-block"),
            this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = V("<span> </span>"),
            this._addClass(this.iconSpace, "ui-button-icon-space")),
            this._removeClass(this.icon, null, "ui-wiget-icon-block"),
            this._attachIconSpace(i))
        },
        _destroy: function() {
            this.element.removeAttr("role"),
            this.icon && this.icon.remove(),
            this.iconSpace && this.iconSpace.remove(),
            this.hasTitle || this.element.removeAttr("title")
        },
        _attachIconSpace: function(t) {
            this.icon[/^(?:end|bottom)/.test(t) ? "before" : "after"](this.iconSpace)
        },
        _attachIcon: function(t) {
            this.element[/^(?:end|bottom)/.test(t) ? "append" : "prepend"](this.icon)
        },
        _setOptions: function(t) {
            var e = (void 0 === t.showLabel ? this.options : t).showLabel
              , i = (void 0 === t.icon ? this.options : t).icon;
            e || i || (t.showLabel = !0),
            this._super(t)
        },
        _setOption: function(t, e) {
            "icon" === t && (e ? this._updateIcon(t, e) : this.icon && (this.icon.remove(),
            this.iconSpace) && this.iconSpace.remove()),
            "iconPosition" === t && this._updateIcon(t, e),
            "showLabel" === t && (this._toggleClass("ui-button-icon-only", null, !e),
            this._updateTooltip()),
            "label" === t && (this.isInput ? this.element.val(e) : (this.element.html(e),
            this.icon && (this._attachIcon(this.options.iconPosition),
            this._attachIconSpace(this.options.iconPosition)))),
            this._super(t, e),
            "disabled" === t && (this._toggleClass(null, "ui-state-disabled", e),
            this.element[0].disabled = e) && this.element.trigger("blur")
        },
        refresh: function() {
            var t = this.element.is("input, button") ? this.element[0].disabled : this.element.hasClass("ui-button-disabled");
            t !== this.options.disabled && this._setOptions({
                disabled: t
            }),
            this._updateTooltip()
        }
    }),
    !1 !== V.uiBackCompat && (V.widget("ui.button", V.ui.button, {
        options: {
            text: !0,
            icons: {
                primary: null,
                secondary: null
            }
        },
        _create: function() {
            this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text),
            !this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel),
            this.options.icon || !this.options.icons.primary && !this.options.icons.secondary ? this.options.icon && (this.options.icons.primary = this.options.icon) : this.options.icons.primary ? this.options.icon = this.options.icons.primary : (this.options.icon = this.options.icons.secondary,
            this.options.iconPosition = "end"),
            this._super()
        },
        _setOption: function(t, e) {
            "text" === t ? this._super("showLabel", e) : ("showLabel" === t && (this.options.text = e),
            "icon" === t && (this.options.icons.primary = e),
            "icons" === t && (e.primary ? (this._super("icon", e.primary),
            this._super("iconPosition", "beginning")) : e.secondary && (this._super("icon", e.secondary),
            this._super("iconPosition", "end"))),
            this._superApply(arguments))
        }
    }),
    V.fn.button = (ot = V.fn.button,
    function(i) {
        var t = "string" == typeof i
          , s = Array.prototype.slice.call(arguments, 1)
          , n = this;
        return t ? this.length || "instance" !== i ? this.each(function() {
            var t, e = V(this).attr("type"), e = V.data(this, "ui-" + ("checkbox" !== e && "radio" !== e ? "button" : "checkboxradio"));
            return "instance" === i ? (n = e,
            !1) : e ? "function" != typeof e[i] || "_" === i.charAt(0) ? V.error("no such method '" + i + "' for button widget instance") : (t = e[i].apply(e, s)) !== e && void 0 !== t ? (n = t && t.jquery ? n.pushStack(t.get()) : t,
            !1) : void 0 : V.error("cannot call methods on button prior to initialization; attempted to call method '" + i + "'")
        }) : n = void 0 : (s.length && (i = V.widget.extend.apply(null, [i].concat(s))),
        this.each(function() {
            var t = V(this).attr("type")
              , t = "checkbox" !== t && "radio" !== t ? "button" : "checkboxradio"
              , e = V.data(this, "ui-" + t);
            e ? (e.option(i || {}),
            e._init && e._init()) : "button" == t ? ot.call(V(this), i) : V(this).checkboxradio(V.extend({
                icon: !1
            }, i))
        })),
        n
    }
    ),
    V.fn.buttonset = function() {
        return V.ui.controlgroup || V.error("Controlgroup widget missing"),
        "option" === arguments[0] && "items" === arguments[1] && arguments[2] ? this.controlgroup.apply(this, [arguments[0], "items.button", arguments[2]]) : "option" === arguments[0] && "items" === arguments[1] ? this.controlgroup.apply(this, [arguments[0], "items.button"]) : ("object" == typeof arguments[0] && arguments[0].items && (arguments[0].items = {
            button: arguments[0].items
        }),
        this.controlgroup.apply(this, arguments))
    }
    ),
    V.ui.button;
    function rt() {
        this._curInst = null,
        this._keyEvent = !1,
        this._disabledInputs = [],
        this._datepickerShowing = !1,
        this._inDialog = !1,
        this._mainDivId = "ui-datepicker-div",
        this._inlineClass = "ui-datepicker-inline",
        this._appendClass = "ui-datepicker-append",
        this._triggerClass = "ui-datepicker-trigger",
        this._dialogClass = "ui-datepicker-dialog",
        this._disableClass = "ui-datepicker-disabled",
        this._unselectableClass = "ui-datepicker-unselectable",
        this._currentClass = "ui-datepicker-current-day",
        this._dayOverClass = "ui-datepicker-days-cell-over",
        this.regional = [],
        this.regional[""] = {
            closeText: "Done",
            prevText: "Prev",
            nextText: "Next",
            currentText: "Today",
            monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
            monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
            dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
            dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
            dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
            weekHeader: "Wk",
            dateFormat: "mm/dd/yy",
            firstDay: 0,
            isRTL: !1,
            showMonthAfterYear: !1,
            yearSuffix: "",
            selectMonthLabel: "Select month",
            selectYearLabel: "Select year"
        },
        this._defaults = {
            showOn: "focus",
            showAnim: "fadeIn",
            showOptions: {},
            defaultDate: null,
            appendText: "",
            buttonText: "...",
            buttonImage: "",
            buttonImageOnly: !1,
            hideIfNoPrevNext: !1,
            navigationAsDateFormat: !1,
            gotoCurrent: !1,
            changeMonth: !1,
            changeYear: !1,
            yearRange: "c-10:c+10",
            showOtherMonths: !1,
            selectOtherMonths: !1,
            showWeek: !1,
            calculateWeek: this.iso8601Week,
            shortYearCutoff: "+10",
            minDate: null,
            maxDate: null,
            duration: "fast",
            beforeShowDay: null,
            beforeShow: null,
            onSelect: null,
            onChangeMonthYear: null,
            onClose: null,
            onUpdateDatepicker: null,
            numberOfMonths: 1,
            showCurrentAtPos: 0,
            stepMonths: 1,
            stepBigMonths: 12,
            altField: "",
            altFormat: "",
            constrainInput: !0,
            showButtonPanel: !1,
            autoSize: !1,
            disabled: !1
        },
        V.extend(this._defaults, this.regional[""]),
        this.regional.en = V.extend(!0, {}, this.regional[""]),
        this.regional["en-US"] = V.extend(!0, {}, this.regional.en),
        this.dpDiv = lt(V("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))
    }
    function lt(t) {
        var e = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
        return t.on("mouseout", e, function() {
            V(this).removeClass("ui-state-hover"),
            -1 !== this.className.indexOf("ui-datepicker-prev") && V(this).removeClass("ui-datepicker-prev-hover"),
            -1 !== this.className.indexOf("ui-datepicker-next") && V(this).removeClass("ui-datepicker-next-hover")
        }).on("mouseover", e, ht)
    }
    function ht() {
        V.datepicker._isDisabledDatepicker((S.inline ? S.dpDiv.parent() : S.input)[0]) || (V(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),
        V(this).addClass("ui-state-hover"),
        -1 !== this.className.indexOf("ui-datepicker-prev") && V(this).addClass("ui-datepicker-prev-hover"),
        -1 !== this.className.indexOf("ui-datepicker-next") && V(this).addClass("ui-datepicker-next-hover"))
    }
    function H(t, e) {
        for (var i in V.extend(t, e),
        e)
            null == e[i] && (t[i] = e[i])
    }
    V.extend(V.ui, {
        datepicker: {
            version: "1.13.3"
        }
    }),
    V.extend(rt.prototype, {
        markerClassName: "hasDatepicker",
        maxRows: 4,
        _widgetDatepicker: function() {
            return this.dpDiv
        },
        setDefaults: function(t) {
            return H(this._defaults, t || {}),
            this
        },
        _attachDatepicker: function(t, e) {
            var i, s = t.nodeName.toLowerCase(), n = "div" === s || "span" === s;
            t.id || (this.uuid += 1,
            t.id = "dp" + this.uuid),
            (i = this._newInst(V(t), n)).settings = V.extend({}, e || {}),
            "input" === s ? this._connectDatepicker(t, i) : n && this._inlineDatepicker(t, i)
        },
        _newInst: function(t, e) {
            return {
                id: t[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"),
                input: t,
                selectedDay: 0,
                selectedMonth: 0,
                selectedYear: 0,
                drawMonth: 0,
                drawYear: 0,
                inline: e,
                dpDiv: e ? lt(V("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv
            }
        },
        _connectDatepicker: function(t, e) {
            var i = V(t);
            e.append = V([]),
            e.trigger = V([]),
            i.hasClass(this.markerClassName) || (this._attachments(i, e),
            i.addClass(this.markerClassName).on("keydown", this._doKeyDown).on("keypress", this._doKeyPress).on("keyup", this._doKeyUp),
            this._autoSize(e),
            V.data(t, "datepicker", e),
            e.settings.disabled && this._disableDatepicker(t))
        },
        _attachments: function(t, e) {
            var i, s = this._get(e, "appendText"), n = this._get(e, "isRTL");
            e.append && e.append.remove(),
            s && (e.append = V("<span>").addClass(this._appendClass).text(s),
            t[n ? "before" : "after"](e.append)),
            t.off("focus", this._showDatepicker),
            e.trigger && e.trigger.remove(),
            "focus" !== (s = this._get(e, "showOn")) && "both" !== s || t.on("focus", this._showDatepicker),
            "button" !== s && "both" !== s || (s = this._get(e, "buttonText"),
            i = this._get(e, "buttonImage"),
            this._get(e, "buttonImageOnly") ? e.trigger = V("<img>").addClass(this._triggerClass).attr({
                src: i,
                alt: s,
                title: s
            }) : (e.trigger = V("<button type='button'>").addClass(this._triggerClass),
            i ? e.trigger.html(V("<img>").attr({
                src: i,
                alt: s,
                title: s
            })) : e.trigger.text(s)),
            t[n ? "before" : "after"](e.trigger),
            e.trigger.on("click", function() {
                return V.datepicker._datepickerShowing && V.datepicker._lastInput === t[0] ? V.datepicker._hideDatepicker() : (V.datepicker._datepickerShowing && V.datepicker._lastInput !== t[0] && V.datepicker._hideDatepicker(),
                V.datepicker._showDatepicker(t[0])),
                !1
            }))
        },
        _autoSize: function(t) {
            var e, i, s, n, o, a;
            this._get(t, "autoSize") && !t.inline && (o = new Date(2009,11,20),
            (a = this._get(t, "dateFormat")).match(/[DM]/) && (o.setMonth((e = function(t) {
                for (n = s = i = 0; n < t.length; n++)
                    t[n].length > i && (i = t[n].length,
                    s = n);
                return s
            }
            )(this._get(t, a.match(/MM/) ? "monthNames" : "monthNamesShort"))),
            o.setDate(e(this._get(t, a.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - o.getDay())),
            t.input.attr("size", this._formatDate(t, o).length))
        },
        _inlineDatepicker: function(t, e) {
            var i = V(t);
            i.hasClass(this.markerClassName) || (i.addClass(this.markerClassName).append(e.dpDiv),
            V.data(t, "datepicker", e),
            this._setDate(e, this._getDefaultDate(e), !0),
            this._updateDatepicker(e),
            this._updateAlternate(e),
            e.settings.disabled && this._disableDatepicker(t),
            e.dpDiv.css("display", "block"))
        },
        _dialogDatepicker: function(t, e, i, s, n) {
            var o, a = this._dialogInst;
            return a || (this.uuid += 1,
            o = "dp" + this.uuid,
            this._dialogInput = V("<input type='text' id='" + o + "' style='position: absolute; top: -100px; width: 0px;'/>"),
            this._dialogInput.on("keydown", this._doKeyDown),
            V("body").append(this._dialogInput),
            (a = this._dialogInst = this._newInst(this._dialogInput, !1)).settings = {},
            V.data(this._dialogInput[0], "datepicker", a)),
            H(a.settings, s || {}),
            e = e && e.constructor === Date ? this._formatDate(a, e) : e,
            this._dialogInput.val(e),
            this._pos = n ? n.length ? n : [n.pageX, n.pageY] : null,
            this._pos || (o = document.documentElement.clientWidth,
            s = document.documentElement.clientHeight,
            e = document.documentElement.scrollLeft || document.body.scrollLeft,
            n = document.documentElement.scrollTop || document.body.scrollTop,
            this._pos = [o / 2 - 100 + e, s / 2 - 150 + n]),
            this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"),
            a.settings.onSelect = i,
            this._inDialog = !0,
            this.dpDiv.addClass(this._dialogClass),
            this._showDatepicker(this._dialogInput[0]),
            V.blockUI && V.blockUI(this.dpDiv),
            V.data(this._dialogInput[0], "datepicker", a),
            this
        },
        _destroyDatepicker: function(t) {
            var e, i = V(t), s = V.data(t, "datepicker");
            i.hasClass(this.markerClassName) && (e = t.nodeName.toLowerCase(),
            V.removeData(t, "datepicker"),
            "input" === e ? (s.append.remove(),
            s.trigger.remove(),
            i.removeClass(this.markerClassName).off("focus", this._showDatepicker).off("keydown", this._doKeyDown).off("keypress", this._doKeyPress).off("keyup", this._doKeyUp)) : "div" !== e && "span" !== e || i.removeClass(this.markerClassName).empty(),
            S === s) && (S = null,
            this._curInst = null)
        },
        _enableDatepicker: function(e) {
            var t, i = V(e), s = V.data(e, "datepicker");
            i.hasClass(this.markerClassName) && ("input" === (t = e.nodeName.toLowerCase()) ? (e.disabled = !1,
            s.trigger.filter("button").each(function() {
                this.disabled = !1
            }).end().filter("img").css({
                opacity: "1.0",
                cursor: ""
            })) : "div" !== t && "span" !== t || ((s = i.children("." + this._inlineClass)).children().removeClass("ui-state-disabled"),
            s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)),
            this._disabledInputs = V.map(this._disabledInputs, function(t) {
                return t === e ? null : t
            }))
        },
        _disableDatepicker: function(e) {
            var t, i = V(e), s = V.data(e, "datepicker");
            i.hasClass(this.markerClassName) && ("input" === (t = e.nodeName.toLowerCase()) ? (e.disabled = !0,
            s.trigger.filter("button").each(function() {
                this.disabled = !0
            }).end().filter("img").css({
                opacity: "0.5",
                cursor: "default"
            })) : "div" !== t && "span" !== t || ((s = i.children("." + this._inlineClass)).children().addClass("ui-state-disabled"),
            s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)),
            this._disabledInputs = V.map(this._disabledInputs, function(t) {
                return t === e ? null : t
            }),
            this._disabledInputs[this._disabledInputs.length] = e)
        },
        _isDisabledDatepicker: function(t) {
            if (t)
                for (var e = 0; e < this._disabledInputs.length; e++)
                    if (this._disabledInputs[e] === t)
                        return !0;
            return !1
        },
        _getInst: function(t) {
            try {
                return V.data(t, "datepicker")
            } catch (t) {
                throw "Missing instance data for this datepicker"
            }
        },
        _optionDatepicker: function(t, e, i) {
            var s, n, o = this._getInst(t);
            if (2 === arguments.length && "string" == typeof e)
                return "defaults" === e ? V.extend({}, V.datepicker._defaults) : o ? "all" === e ? V.extend({}, o.settings) : this._get(o, e) : null;
            s = e || {},
            "string" == typeof e && ((s = {})[e] = i),
            o && (this._curInst === o && this._hideDatepicker(),
            e = this._getDateDatepicker(t, !0),
            i = this._getMinMaxDate(o, "min"),
            n = this._getMinMaxDate(o, "max"),
            H(o.settings, s),
            null !== i && void 0 !== s.dateFormat && void 0 === s.minDate && (o.settings.minDate = this._formatDate(o, i)),
            null !== n && void 0 !== s.dateFormat && void 0 === s.maxDate && (o.settings.maxDate = this._formatDate(o, n)),
            "disabled"in s && (s.disabled ? this._disableDatepicker(t) : this._enableDatepicker(t)),
            this._attachments(V(t), o),
            this._autoSize(o),
            this._setDate(o, e),
            this._updateAlternate(o),
            this._updateDatepicker(o))
        },
        _changeDatepicker: function(t, e, i) {
            this._optionDatepicker(t, e, i)
        },
        _refreshDatepicker: function(t) {
            t = this._getInst(t);
            t && this._updateDatepicker(t)
        },
        _setDateDatepicker: function(t, e) {
            t = this._getInst(t);
            t && (this._setDate(t, e),
            this._updateDatepicker(t),
            this._updateAlternate(t))
        },
        _getDateDatepicker: function(t, e) {
            t = this._getInst(t);
            return t && !t.inline && this._setDateFromField(t, e),
            t ? this._getDate(t) : null
        },
        _doKeyDown: function(t) {
            var e, i, s = V.datepicker._getInst(t.target), n = !0, o = s.dpDiv.is(".ui-datepicker-rtl");
            if (s._keyEvent = !0,
            V.datepicker._datepickerShowing)
                switch (t.keyCode) {
                case 9:
                    V.datepicker._hideDatepicker(),
                    n = !1;
                    break;
                case 13:
                    return (i = V("td." + V.datepicker._dayOverClass + ":not(." + V.datepicker._currentClass + ")", s.dpDiv))[0] && V.datepicker._selectDay(t.target, s.selectedMonth, s.selectedYear, i[0]),
                    (i = V.datepicker._get(s, "onSelect")) ? (e = V.datepicker._formatDate(s),
                    i.apply(s.input ? s.input[0] : null, [e, s])) : V.datepicker._hideDatepicker(),
                    !1;
                case 27:
                    V.datepicker._hideDatepicker();
                    break;
                case 33:
                    V.datepicker._adjustDate(t.target, t.ctrlKey ? -V.datepicker._get(s, "stepBigMonths") : -V.datepicker._get(s, "stepMonths"), "M");
                    break;
                case 34:
                    V.datepicker._adjustDate(t.target, t.ctrlKey ? +V.datepicker._get(s, "stepBigMonths") : +V.datepicker._get(s, "stepMonths"), "M");
                    break;
                case 35:
                    (t.ctrlKey || t.metaKey) && V.datepicker._clearDate(t.target),
                    n = t.ctrlKey || t.metaKey;
                    break;
                case 36:
                    (t.ctrlKey || t.metaKey) && V.datepicker._gotoToday(t.target),
                    n = t.ctrlKey || t.metaKey;
                    break;
                case 37:
                    (t.ctrlKey || t.metaKey) && V.datepicker._adjustDate(t.target, o ? 1 : -1, "D"),
                    n = t.ctrlKey || t.metaKey,
                    t.originalEvent.altKey && V.datepicker._adjustDate(t.target, t.ctrlKey ? -V.datepicker._get(s, "stepBigMonths") : -V.datepicker._get(s, "stepMonths"), "M");
                    break;
                case 38:
                    (t.ctrlKey || t.metaKey) && V.datepicker._adjustDate(t.target, -7, "D"),
                    n = t.ctrlKey || t.metaKey;
                    break;
                case 39:
                    (t.ctrlKey || t.metaKey) && V.datepicker._adjustDate(t.target, o ? -1 : 1, "D"),
                    n = t.ctrlKey || t.metaKey,
                    t.originalEvent.altKey && V.datepicker._adjustDate(t.target, t.ctrlKey ? +V.datepicker._get(s, "stepBigMonths") : +V.datepicker._get(s, "stepMonths"), "M");
                    break;
                case 40:
                    (t.ctrlKey || t.metaKey) && V.datepicker._adjustDate(t.target, 7, "D"),
                    n = t.ctrlKey || t.metaKey;
                    break;
                default:
                    n = !1
                }
            else
                36 === t.keyCode && t.ctrlKey ? V.datepicker._showDatepicker(this) : n = !1;
            n && (t.preventDefault(),
            t.stopPropagation())
        },
        _doKeyPress: function(t) {
            var e, i = V.datepicker._getInst(t.target);
            if (V.datepicker._get(i, "constrainInput"))
                return i = V.datepicker._possibleChars(V.datepicker._get(i, "dateFormat")),
                e = String.fromCharCode(null == t.charCode ? t.keyCode : t.charCode),
                t.ctrlKey || t.metaKey || e < " " || !i || -1 < i.indexOf(e)
        },
        _doKeyUp: function(t) {
            t = V.datepicker._getInst(t.target);
            if (t.input.val() !== t.lastVal)
                try {
                    V.datepicker.parseDate(V.datepicker._get(t, "dateFormat"), t.input ? t.input.val() : null, V.datepicker._getFormatConfig(t)) && (V.datepicker._setDateFromField(t),
                    V.datepicker._updateAlternate(t),
                    V.datepicker._updateDatepicker(t))
                } catch (t) {}
            return !0
        },
        _showDatepicker: function(t) {
            var e, i, s, n;
            "input" !== (t = t.target || t).nodeName.toLowerCase() && (t = V("input", t.parentNode)[0]),
            V.datepicker._isDisabledDatepicker(t) || V.datepicker._lastInput === t || (n = V.datepicker._getInst(t),
            V.datepicker._curInst && V.datepicker._curInst !== n && (V.datepicker._curInst.dpDiv.stop(!0, !0),
            n) && V.datepicker._datepickerShowing && V.datepicker._hideDatepicker(V.datepicker._curInst.input[0]),
            !1 === (i = (i = V.datepicker._get(n, "beforeShow")) ? i.apply(t, [t, n]) : {})) || (H(n.settings, i),
            n.lastVal = null,
            V.datepicker._lastInput = t,
            V.datepicker._setDateFromField(n),
            V.datepicker._inDialog && (t.value = ""),
            V.datepicker._pos || (V.datepicker._pos = V.datepicker._findPos(t),
            V.datepicker._pos[1] += t.offsetHeight),
            e = !1,
            V(t).parents().each(function() {
                return !(e |= "fixed" === V(this).css("position"))
            }),
            i = {
                left: V.datepicker._pos[0],
                top: V.datepicker._pos[1]
            },
            V.datepicker._pos = null,
            n.dpDiv.empty(),
            n.dpDiv.css({
                position: "absolute",
                display: "block",
                top: "-1000px"
            }),
            V.datepicker._updateDatepicker(n),
            i = V.datepicker._checkOffset(n, i, e),
            n.dpDiv.css({
                position: V.datepicker._inDialog && V.blockUI ? "static" : e ? "fixed" : "absolute",
                display: "none",
                left: i.left + "px",
                top: i.top + "px"
            }),
            n.inline) || (i = V.datepicker._get(n, "showAnim"),
            s = V.datepicker._get(n, "duration"),
            n.dpDiv.css("z-index", function(t) {
                for (var e; t.length && t[0] !== document; ) {
                    if (("absolute" === (e = t.css("position")) || "relative" === e || "fixed" === e) && (e = parseInt(t.css("zIndex"), 10),
                    !isNaN(e)) && 0 !== e)
                        return e;
                    t = t.parent()
                }
                return 0
            }(V(t)) + 1),
            V.datepicker._datepickerShowing = !0,
            V.effects && V.effects.effect[i] ? n.dpDiv.show(i, V.datepicker._get(n, "showOptions"), s) : n.dpDiv[i || "show"](i ? s : null),
            V.datepicker._shouldFocusInput(n) && n.input.trigger("focus"),
            V.datepicker._curInst = n)
        },
        _updateDatepicker: function(t) {
            this.maxRows = 4,
            (S = t).dpDiv.empty().append(this._generateHTML(t)),
            this._attachHandlers(t);
            var e, i = this._getNumberOfMonths(t), s = i[1], n = t.dpDiv.find("." + this._dayOverClass + " a"), o = V.datepicker._get(t, "onUpdateDatepicker");
            0 < n.length && ht.apply(n.get(0)),
            t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),
            1 < s && t.dpDiv.addClass("ui-datepicker-multi-" + s).css("width", 17 * s + "em"),
            t.dpDiv[(1 !== i[0] || 1 !== i[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"),
            t.dpDiv[(this._get(t, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"),
            t === V.datepicker._curInst && V.datepicker._datepickerShowing && V.datepicker._shouldFocusInput(t) && t.input.trigger("focus"),
            t.yearshtml && (e = t.yearshtml,
            setTimeout(function() {
                e === t.yearshtml && t.yearshtml && t.dpDiv.find("select.ui-datepicker-year").first().replaceWith(t.yearshtml),
                e = t.yearshtml = null
            }, 0)),
            o && o.apply(t.input ? t.input[0] : null, [t])
        },
        _shouldFocusInput: function(t) {
            return t.input && t.input.is(":visible") && !t.input.is(":disabled") && !t.input.is(":focus")
        },
        _checkOffset: function(t, e, i) {
            var s = t.dpDiv.outerWidth()
              , n = t.dpDiv.outerHeight()
              , o = t.input ? t.input.outerWidth() : 0
              , a = t.input ? t.input.outerHeight() : 0
              , r = document.documentElement.clientWidth + (i ? 0 : V(document).scrollLeft())
              , l = document.documentElement.clientHeight + (i ? 0 : V(document).scrollTop());
            return e.left -= this._get(t, "isRTL") ? s - o : 0,
            e.left -= i && e.left === t.input.offset().left ? V(document).scrollLeft() : 0,
            e.top -= i && e.top === t.input.offset().top + a ? V(document).scrollTop() : 0,
            e.left -= Math.min(e.left, e.left + s > r && s < r ? Math.abs(e.left + s - r) : 0),
            e.top -= Math.min(e.top, e.top + n > l && n < l ? Math.abs(n + a) : 0),
            e
        },
        _findPos: function(t) {
            for (var e = this._getInst(t), i = this._get(e, "isRTL"); t && ("hidden" === t.type || 1 !== t.nodeType || V.expr.pseudos.hidden(t)); )
                t = t[i ? "previousSibling" : "nextSibling"];
            return [(e = V(t).offset()).left, e.top]
        },
        _hideDatepicker: function(t) {
            var e, i, s = this._curInst;
            !s || t && s !== V.data(t, "datepicker") || this._datepickerShowing && (t = this._get(s, "showAnim"),
            i = this._get(s, "duration"),
            e = function() {
                V.datepicker._tidyDialog(s)
            }
            ,
            V.effects && (V.effects.effect[t] || V.effects[t]) ? s.dpDiv.hide(t, V.datepicker._get(s, "showOptions"), i, e) : s.dpDiv["slideDown" === t ? "slideUp" : "fadeIn" === t ? "fadeOut" : "hide"](t ? i : null, e),
            t || e(),
            this._datepickerShowing = !1,
            (i = this._get(s, "onClose")) && i.apply(s.input ? s.input[0] : null, [s.input ? s.input.val() : "", s]),
            this._lastInput = null,
            this._inDialog && (this._dialogInput.css({
                position: "absolute",
                left: "0",
                top: "-100px"
            }),
            V.blockUI) && (V.unblockUI(),
            V("body").append(this.dpDiv)),
            this._inDialog = !1)
        },
        _tidyDialog: function(t) {
            t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")
        },
        _checkExternalClick: function(t) {
            var e;
            V.datepicker._curInst && (t = V(t.target),
            e = V.datepicker._getInst(t[0]),
            !(t[0].id === V.datepicker._mainDivId || 0 !== t.parents("#" + V.datepicker._mainDivId).length || t.hasClass(V.datepicker.markerClassName) || t.closest("." + V.datepicker._triggerClass).length || !V.datepicker._datepickerShowing || V.datepicker._inDialog && V.blockUI) || t.hasClass(V.datepicker.markerClassName) && V.datepicker._curInst !== e) && V.datepicker._hideDatepicker()
        },
        _adjustDate: function(t, e, i) {
            var t = V(t)
              , s = this._getInst(t[0]);
            this._isDisabledDatepicker(t[0]) || (this._adjustInstDate(s, e, i),
            this._updateDatepicker(s))
        },
        _gotoToday: function(t) {
            var e, t = V(t), i = this._getInst(t[0]);
            this._get(i, "gotoCurrent") && i.currentDay ? (i.selectedDay = i.currentDay,
            i.drawMonth = i.selectedMonth = i.currentMonth,
            i.drawYear = i.selectedYear = i.currentYear) : (e = new Date,
            i.selectedDay = e.getDate(),
            i.drawMonth = i.selectedMonth = e.getMonth(),
            i.drawYear = i.selectedYear = e.getFullYear()),
            this._notifyChange(i),
            this._adjustDate(t)
        },
        _selectMonthYear: function(t, e, i) {
            var t = V(t)
              , s = this._getInst(t[0]);
            s["selected" + ("M" === i ? "Month" : "Year")] = s["draw" + ("M" === i ? "Month" : "Year")] = parseInt(e.options[e.selectedIndex].value, 10),
            this._notifyChange(s),
            this._adjustDate(t)
        },
        _selectDay: function(t, e, i, s) {
            var n = V(t);
            V(s).hasClass(this._unselectableClass) || this._isDisabledDatepicker(n[0]) || ((n = this._getInst(n[0])).selectedDay = n.currentDay = parseInt(V("a", s).attr("data-date")),
            n.selectedMonth = n.currentMonth = e,
            n.selectedYear = n.currentYear = i,
            this._selectDate(t, this._formatDate(n, n.currentDay, n.currentMonth, n.currentYear)))
        },
        _clearDate: function(t) {
            t = V(t);
            this._selectDate(t, "")
        },
        _selectDate: function(t, e) {
            var i, t = V(t), t = this._getInst(t[0]);
            e = null != e ? e : this._formatDate(t),
            t.input && t.input.val(e),
            this._updateAlternate(t),
            (i = this._get(t, "onSelect")) ? i.apply(t.input ? t.input[0] : null, [e, t]) : t.input && t.input.trigger("change"),
            t.inline ? this._updateDatepicker(t) : (this._hideDatepicker(),
            this._lastInput = t.input[0],
            "object" != typeof t.input[0] && t.input.trigger("focus"),
            this._lastInput = null)
        },
        _updateAlternate: function(t) {
            var e, i, s = this._get(t, "altField");
            s && (i = this._get(t, "altFormat") || this._get(t, "dateFormat"),
            e = this._getDate(t),
            i = this.formatDate(i, e, this._getFormatConfig(t)),
            V(document).find(s).val(i))
        },
        noWeekends: function(t) {
            t = t.getDay();
            return [0 < t && t < 6, ""]
        },
        iso8601Week: function(t) {
            var e, t = new Date(t.getTime());
            return t.setDate(t.getDate() + 4 - (t.getDay() || 7)),
            e = t.getTime(),
            t.setMonth(0),
            t.setDate(1),
            Math.floor(Math.round((e - t) / 864e5) / 7) + 1
        },
        parseDate: function(e, n, t) {
            if (null == e || null == n)
                throw "Invalid arguments";
            if ("" === (n = "object" == typeof n ? n.toString() : n + ""))
                return null;
            for (var i, s, o = 0, a = (t ? t.shortYearCutoff : null) || this._defaults.shortYearCutoff, a = "string" != typeof a ? a : (new Date).getFullYear() % 100 + parseInt(a, 10), r = (t ? t.dayNamesShort : null) || this._defaults.dayNamesShort, l = (t ? t.dayNames : null) || this._defaults.dayNames, h = (t ? t.monthNamesShort : null) || this._defaults.monthNamesShort, c = (t ? t.monthNames : null) || this._defaults.monthNames, u = -1, d = -1, p = -1, f = -1, g = !1, m = function(t) {
                t = y + 1 < e.length && e.charAt(y + 1) === t;
                return t && y++,
                t
            }, _ = function(t) {
                var e = m(t)
                  , e = "@" === t ? 14 : "!" === t ? 20 : "y" === t && e ? 4 : "o" === t ? 3 : 2
                  , t = new RegExp("^\\d{" + ("y" === t ? e : 1) + "," + e + "}")
                  , e = n.substring(o).match(t);
                if (e)
                    return o += e[0].length,
                    parseInt(e[0], 10);
                throw "Missing number at position " + o
            }, v = function(t, e, i) {
                var s = -1
                  , t = V.map(m(t) ? i : e, function(t, e) {
                    return [[e, t]]
                }).sort(function(t, e) {
                    return -(t[1].length - e[1].length)
                });
                if (V.each(t, function(t, e) {
                    var i = e[1];
                    if (n.substr(o, i.length).toLowerCase() === i.toLowerCase())
                        return s = e[0],
                        o += i.length,
                        !1
                }),
                -1 !== s)
                    return s + 1;
                throw "Unknown name at position " + o
            }, b = function() {
                if (n.charAt(o) !== e.charAt(y))
                    throw "Unexpected literal at position " + o;
                o++
            }, y = 0; y < e.length; y++)
                if (g)
                    "'" !== e.charAt(y) || m("'") ? b() : g = !1;
                else
                    switch (e.charAt(y)) {
                    case "d":
                        p = _("d");
                        break;
                    case "D":
                        v("D", r, l);
                        break;
                    case "o":
                        f = _("o");
                        break;
                    case "m":
                        d = _("m");
                        break;
                    case "M":
                        d = v("M", h, c);
                        break;
                    case "y":
                        u = _("y");
                        break;
                    case "@":
                        u = (s = new Date(_("@"))).getFullYear(),
                        d = s.getMonth() + 1,
                        p = s.getDate();
                        break;
                    case "!":
                        u = (s = new Date((_("!") - this._ticksTo1970) / 1e4)).getFullYear(),
                        d = s.getMonth() + 1,
                        p = s.getDate();
                        break;
                    case "'":
                        m("'") ? b() : g = !0;
                        break;
                    default:
                        b()
                    }
            if (o < n.length && (t = n.substr(o),
            !/^\s+/.test(t)))
                throw "Extra/unparsed characters found in date: " + t;
            if (-1 === u ? u = (new Date).getFullYear() : u < 100 && (u += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (u <= a ? 0 : -100)),
            -1 < f)
                for (d = 1,
                p = f; ; ) {
                    if (p <= (i = this._getDaysInMonth(u, d - 1)))
                        break;
                    d++,
                    p -= i
                }
            if ((s = this._daylightSavingAdjust(new Date(u,d - 1,p))).getFullYear() !== u || s.getMonth() + 1 !== d || s.getDate() !== p)
                throw "Invalid date";
            return s
        },
        ATOM: "yy-mm-dd",
        COOKIE: "D, dd M yy",
        ISO_8601: "yy-mm-dd",
        RFC_822: "D, d M y",
        RFC_850: "DD, dd-M-y",
        RFC_1036: "D, d M y",
        RFC_1123: "D, d M yy",
        RFC_2822: "D, d M yy",
        RSS: "D, d M y",
        TICKS: "!",
        TIMESTAMP: "@",
        W3C: "yy-mm-dd",
        _ticksTo1970: 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 60 * 60 * 1e7,
        formatDate: function(e, t, i) {
            if (!t)
                return "";
            function s(t, e, i) {
                var s = "" + e;
                if (c(t))
                    for (; s.length < i; )
                        s = "0" + s;
                return s
            }
            function n(t, e, i, s) {
                return (c(t) ? s : i)[e]
            }
            var o, a = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort, r = (i ? i.dayNames : null) || this._defaults.dayNames, l = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort, h = (i ? i.monthNames : null) || this._defaults.monthNames, c = function(t) {
                t = o + 1 < e.length && e.charAt(o + 1) === t;
                return t && o++,
                t
            }, u = "", d = !1;
            if (t)
                for (o = 0; o < e.length; o++)
                    if (d)
                        "'" !== e.charAt(o) || c("'") ? u += e.charAt(o) : d = !1;
                    else
                        switch (e.charAt(o)) {
                        case "d":
                            u += s("d", t.getDate(), 2);
                            break;
                        case "D":
                            u += n("D", t.getDay(), a, r);
                            break;
                        case "o":
                            u += s("o", Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime() - new Date(t.getFullYear(),0,0).getTime()) / 864e5), 3);
                            break;
                        case "m":
                            u += s("m", t.getMonth() + 1, 2);
                            break;
                        case "M":
                            u += n("M", t.getMonth(), l, h);
                            break;
                        case "y":
                            u += c("y") ? t.getFullYear() : (t.getFullYear() % 100 < 10 ? "0" : "") + t.getFullYear() % 100;
                            break;
                        case "@":
                            u += t.getTime();
                            break;
                        case "!":
                            u += 1e4 * t.getTime() + this._ticksTo1970;
                            break;
                        case "'":
                            c("'") ? u += "'" : d = !0;
                            break;
                        default:
                            u += e.charAt(o)
                        }
            return u
        },
        _possibleChars: function(e) {
            for (var t = "", i = !1, s = function(t) {
                t = n + 1 < e.length && e.charAt(n + 1) === t;
                return t && n++,
                t
            }, n = 0; n < e.length; n++)
                if (i)
                    "'" !== e.charAt(n) || s("'") ? t += e.charAt(n) : i = !1;
                else
                    switch (e.charAt(n)) {
                    case "d":
                    case "m":
                    case "y":
                    case "@":
                        t += "0123456789";
                        break;
                    case "D":
                    case "M":
                        return null;
                    case "'":
                        s("'") ? t += "'" : i = !0;
                        break;
                    default:
                        t += e.charAt(n)
                    }
            return t
        },
        _get: function(t, e) {
            return (void 0 !== t.settings[e] ? t.settings : this._defaults)[e]
        },
        _setDateFromField: function(t, e) {
            if (t.input.val() !== t.lastVal) {
                var i = this._get(t, "dateFormat")
                  , s = t.lastVal = t.input ? t.input.val() : null
                  , n = this._getDefaultDate(t)
                  , o = n
                  , a = this._getFormatConfig(t);
                try {
                    o = this.parseDate(i, s, a) || n
                } catch (t) {
                    s = e ? "" : s
                }
                t.selectedDay = o.getDate(),
                t.drawMonth = t.selectedMonth = o.getMonth(),
                t.drawYear = t.selectedYear = o.getFullYear(),
                t.currentDay = s ? o.getDate() : 0,
                t.currentMonth = s ? o.getMonth() : 0,
                t.currentYear = s ? o.getFullYear() : 0,
                this._adjustInstDate(t)
            }
        },
        _getDefaultDate: function(t) {
            return this._restrictMinMax(t, this._determineDate(t, this._get(t, "defaultDate"), new Date))
        },
        _determineDate: function(r, t, e) {
            var i, s = null == t || "" === t ? e : "string" == typeof t ? function(t) {
                try {
                    return V.datepicker.parseDate(V.datepicker._get(r, "dateFormat"), t, V.datepicker._getFormatConfig(r))
                } catch (t) {}
                for (var e = (t.toLowerCase().match(/^c/) ? V.datepicker._getDate(r) : null) || new Date, i = e.getFullYear(), s = e.getMonth(), n = e.getDate(), o = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, a = o.exec(t); a; ) {
                    switch (a[2] || "d") {
                    case "d":
                    case "D":
                        n += parseInt(a[1], 10);
                        break;
                    case "w":
                    case "W":
                        n += 7 * parseInt(a[1], 10);
                        break;
                    case "m":
                    case "M":
                        s += parseInt(a[1], 10),
                        n = Math.min(n, V.datepicker._getDaysInMonth(i, s));
                        break;
                    case "y":
                    case "Y":
                        i += parseInt(a[1], 10),
                        n = Math.min(n, V.datepicker._getDaysInMonth(i, s))
                    }
                    a = o.exec(t)
                }
                return new Date(i,s,n)
            }(t) : "number" == typeof t ? isNaN(t) ? e : (s = t,
            (i = new Date).setDate(i.getDate() + s),
            i) : new Date(t.getTime());
            return (s = s && "Invalid Date" === s.toString() ? e : s) && (s.setHours(0),
            s.setMinutes(0),
            s.setSeconds(0),
            s.setMilliseconds(0)),
            this._daylightSavingAdjust(s)
        },
        _daylightSavingAdjust: function(t) {
            return t ? (t.setHours(12 < t.getHours() ? t.getHours() + 2 : 0),
            t) : null
        },
        _setDate: function(t, e, i) {
            var s = !e
              , n = t.selectedMonth
              , o = t.selectedYear
              , e = this._restrictMinMax(t, this._determineDate(t, e, new Date));
            t.selectedDay = t.currentDay = e.getDate(),
            t.drawMonth = t.selectedMonth = t.currentMonth = e.getMonth(),
            t.drawYear = t.selectedYear = t.currentYear = e.getFullYear(),
            n === t.selectedMonth && o === t.selectedYear || i || this._notifyChange(t),
            this._adjustInstDate(t),
            t.input && t.input.val(s ? "" : this._formatDate(t))
        },
        _getDate: function(t) {
            return !t.currentYear || t.input && "" === t.input.val() ? null : this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay))
        },
        _attachHandlers: function(t) {
            var e = this._get(t, "stepMonths")
              , i = "#" + t.id.replace(/\\\\/g, "\\");
            t.dpDiv.find("[data-handler]").map(function() {
                var t = {
                    prev: function() {
                        V.datepicker._adjustDate(i, -e, "M")
                    },
                    next: function() {
                        V.datepicker._adjustDate(i, +e, "M")
                    },
                    hide: function() {
                        V.datepicker._hideDatepicker()
                    },
                    today: function() {
                        V.datepicker._gotoToday(i)
                    },
                    selectDay: function() {
                        return V.datepicker._selectDay(i, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this),
                        !1
                    },
                    selectMonth: function() {
                        return V.datepicker._selectMonthYear(i, this, "M"),
                        !1
                    },
                    selectYear: function() {
                        return V.datepicker._selectMonthYear(i, this, "Y"),
                        !1
                    }
                };
                V(this).on(this.getAttribute("data-event"), t[this.getAttribute("data-handler")])
            })
        },
        _generateHTML: function(t) {
            var e, i, s, n, o, E, W, F, L, a, r, R, l, h, c, u, d, p, f, g, m, _, Y, v, b, B, y, j, q, w, x, k, C = new Date, K = this._daylightSavingAdjust(new Date(C.getFullYear(),C.getMonth(),C.getDate())), D = this._get(t, "isRTL"), C = this._get(t, "showButtonPanel"), I = this._get(t, "hideIfNoPrevNext"), T = this._get(t, "navigationAsDateFormat"), P = this._getNumberOfMonths(t), M = this._get(t, "showCurrentAtPos"), S = this._get(t, "stepMonths"), U = 1 !== P[0] || 1 !== P[1], H = this._daylightSavingAdjust(t.currentDay ? new Date(t.currentYear,t.currentMonth,t.currentDay) : new Date(9999,9,9)), z = this._getMinMaxDate(t, "min"), A = this._getMinMaxDate(t, "max"), O = t.drawMonth - M, N = t.drawYear;
            if (O < 0 && (O += 12,
            N--),
            A)
                for (e = this._daylightSavingAdjust(new Date(A.getFullYear(),A.getMonth() - P[0] * P[1] + 1,A.getDate())),
                e = z && e < z ? z : e; this._daylightSavingAdjust(new Date(N,O,1)) > e; )
                    --O < 0 && (O = 11,
                    N--);
            for (t.drawMonth = O,
            t.drawYear = N,
            M = this._get(t, "prevText"),
            M = T ? this.formatDate(M, this._daylightSavingAdjust(new Date(N,O - S,1)), this._getFormatConfig(t)) : M,
            i = this._canAdjustMonth(t, -1, N, O) ? V("<a>").attr({
                class: "ui-datepicker-prev ui-corner-all",
                "data-handler": "prev",
                "data-event": "click",
                title: M
            }).append(V("<span>").addClass("ui-icon ui-icon-circle-triangle-" + (D ? "e" : "w")).text(M))[0].outerHTML : I ? "" : V("<a>").attr({
                class: "ui-datepicker-prev ui-corner-all ui-state-disabled",
                title: M
            }).append(V("<span>").addClass("ui-icon ui-icon-circle-triangle-" + (D ? "e" : "w")).text(M))[0].outerHTML,
            M = this._get(t, "nextText"),
            M = T ? this.formatDate(M, this._daylightSavingAdjust(new Date(N,O + S,1)), this._getFormatConfig(t)) : M,
            s = this._canAdjustMonth(t, 1, N, O) ? V("<a>").attr({
                class: "ui-datepicker-next ui-corner-all",
                "data-handler": "next",
                "data-event": "click",
                title: M
            }).append(V("<span>").addClass("ui-icon ui-icon-circle-triangle-" + (D ? "w" : "e")).text(M))[0].outerHTML : I ? "" : V("<a>").attr({
                class: "ui-datepicker-next ui-corner-all ui-state-disabled",
                title: M
            }).append(V("<span>").attr("class", "ui-icon ui-icon-circle-triangle-" + (D ? "w" : "e")).text(M))[0].outerHTML,
            S = this._get(t, "currentText"),
            I = this._get(t, "gotoCurrent") && t.currentDay ? H : K,
            S = T ? this.formatDate(S, I, this._getFormatConfig(t)) : S,
            M = "",
            t.inline || (M = V("<button>").attr({
                type: "button",
                class: "ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all",
                "data-handler": "hide",
                "data-event": "click"
            }).text(this._get(t, "closeText"))[0].outerHTML),
            T = "",
            C && (T = V("<div class='ui-datepicker-buttonpane ui-widget-content'>").append(D ? M : "").append(this._isInRange(t, I) ? V("<button>").attr({
                type: "button",
                class: "ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all",
                "data-handler": "today",
                "data-event": "click"
            }).text(S) : "").append(D ? "" : M)[0].outerHTML),
            n = parseInt(this._get(t, "firstDay"), 10),
            n = isNaN(n) ? 0 : n,
            o = this._get(t, "showWeek"),
            E = this._get(t, "dayNames"),
            W = this._get(t, "dayNamesMin"),
            F = this._get(t, "monthNames"),
            L = this._get(t, "monthNamesShort"),
            a = this._get(t, "beforeShowDay"),
            r = this._get(t, "showOtherMonths"),
            R = this._get(t, "selectOtherMonths"),
            l = this._getDefaultDate(t),
            h = "",
            u = 0; u < P[0]; u++) {
                for (d = "",
                this.maxRows = 4,
                p = 0; p < P[1]; p++) {
                    if (f = this._daylightSavingAdjust(new Date(N,O,t.selectedDay)),
                    g = " ui-corner-all",
                    m = "",
                    U) {
                        if (m += "<div class='ui-datepicker-group",
                        1 < P[1])
                            switch (p) {
                            case 0:
                                m += " ui-datepicker-group-first",
                                g = " ui-corner-" + (D ? "right" : "left");
                                break;
                            case P[1] - 1:
                                m += " ui-datepicker-group-last",
                                g = " ui-corner-" + (D ? "left" : "right");
                                break;
                            default:
                                m += " ui-datepicker-group-middle",
                                g = ""
                            }
                        m += "'>"
                    }
                    for (m += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + g + "'>" + (/all|left/.test(g) && 0 === u ? D ? s : i : "") + (/all|right/.test(g) && 0 === u ? D ? i : s : "") + this._generateMonthYearHeader(t, O, N, z, A, 0 < u || 0 < p, F, L) + "</div><table class='ui-datepicker-calendar'><thead><tr>",
                    _ = o ? "<th class='ui-datepicker-week-col'>" + this._get(t, "weekHeader") + "</th>" : "",
                    c = 0; c < 7; c++)
                        _ += "<th scope='col'" + (5 <= (c + n + 6) % 7 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + E[Y = (c + n) % 7] + "'>" + W[Y] + "</span></th>";
                    for (m += _ + "</tr></thead><tbody>",
                    b = this._getDaysInMonth(N, O),
                    N === t.selectedYear && O === t.selectedMonth && (t.selectedDay = Math.min(t.selectedDay, b)),
                    v = (this._getFirstDayOfMonth(N, O) - n + 7) % 7,
                    b = Math.ceil((v + b) / 7),
                    B = U && this.maxRows > b ? this.maxRows : b,
                    this.maxRows = B,
                    y = this._daylightSavingAdjust(new Date(N,O,1 - v)),
                    j = 0; j < B; j++) {
                        for (m += "<tr>",
                        q = o ? "<td class='ui-datepicker-week-col'>" + this._get(t, "calculateWeek")(y) + "</td>" : "",
                        c = 0; c < 7; c++)
                            w = a ? a.apply(t.input ? t.input[0] : null, [y]) : [!0, ""],
                            k = (x = y.getMonth() !== O) && !R || !w[0] || z && y < z || A && A < y,
                            q += "<td class='" + (5 <= (c + n + 6) % 7 ? " ui-datepicker-week-end" : "") + (x ? " ui-datepicker-other-month" : "") + (y.getTime() === f.getTime() && O === t.selectedMonth && t._keyEvent || l.getTime() === y.getTime() && l.getTime() === f.getTime() ? " " + this._dayOverClass : "") + (k ? " " + this._unselectableClass + " ui-state-disabled" : "") + (x && !r ? "" : " " + w[1] + (y.getTime() === H.getTime() ? " " + this._currentClass : "") + (y.getTime() === K.getTime() ? " ui-datepicker-today" : "")) + "'" + (x && !r || !w[2] ? "" : " title='" + w[2].replace(/'/g, "&#39;") + "'") + (k ? "" : " data-handler='selectDay' data-event='click' data-month='" + y.getMonth() + "' data-year='" + y.getFullYear() + "'") + ">" + (x && !r ? "&#xa0;" : k ? "<span class='ui-state-default'>" + y.getDate() + "</span>" : "<a class='ui-state-default" + (y.getTime() === K.getTime() ? " ui-state-highlight" : "") + (y.getTime() === H.getTime() ? " ui-state-active" : "") + (x ? " ui-priority-secondary" : "") + "' href='#' aria-current='" + (y.getTime() === H.getTime() ? "true" : "false") + "' data-date='" + y.getDate() + "'>" + y.getDate() + "</a>") + "</td>",
                            y.setDate(y.getDate() + 1),
                            y = this._daylightSavingAdjust(y);
                        m += q + "</tr>"
                    }
                    11 < ++O && (O = 0,
                    N++),
                    d += m += "</tbody></table>" + (U ? "</div>" + (0 < P[0] && p === P[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : "")
                }
                h += d
            }
            return h += T,
            t._keyEvent = !1,
            h
        },
        _generateMonthYearHeader: function(t, e, i, s, n, o, a, r) {
            var l, h, c, u, d, p, f = this._get(t, "changeMonth"), g = this._get(t, "changeYear"), m = this._get(t, "showMonthAfterYear"), _ = this._get(t, "selectMonthLabel"), v = this._get(t, "selectYearLabel"), b = "<div class='ui-datepicker-title'>", y = "";
            if (o || !f)
                y += "<span class='ui-datepicker-month'>" + a[e] + "</span>";
            else {
                for (l = s && s.getFullYear() === i,
                h = n && n.getFullYear() === i,
                y += "<select class='ui-datepicker-month' aria-label='" + _ + "' data-handler='selectMonth' data-event='change'>",
                c = 0; c < 12; c++)
                    (!l || c >= s.getMonth()) && (!h || c <= n.getMonth()) && (y += "<option value='" + c + "'" + (c === e ? " selected='selected'" : "") + ">" + r[c] + "</option>");
                y += "</select>"
            }
            if (m || (b += y + (!o && f && g ? "" : "&#xa0;")),
            !t.yearshtml)
                if (t.yearshtml = "",
                o || !g)
                    b += "<span class='ui-datepicker-year'>" + i + "</span>";
                else {
                    for (a = this._get(t, "yearRange").split(":"),
                    u = (new Date).getFullYear(),
                    d = (_ = function(t) {
                        t = t.match(/c[+\-].*/) ? i + parseInt(t.substring(1), 10) : t.match(/[+\-].*/) ? u + parseInt(t, 10) : parseInt(t, 10);
                        return isNaN(t) ? u : t
                    }
                    )(a[0]),
                    p = Math.max(d, _(a[1] || "")),
                    d = s ? Math.max(d, s.getFullYear()) : d,
                    p = n ? Math.min(p, n.getFullYear()) : p,
                    t.yearshtml += "<select class='ui-datepicker-year' aria-label='" + v + "' data-handler='selectYear' data-event='change'>"; d <= p; d++)
                        t.yearshtml += "<option value='" + d + "'" + (d === i ? " selected='selected'" : "") + ">" + d + "</option>";
                    t.yearshtml += "</select>",
                    b += t.yearshtml,
                    t.yearshtml = null
                }
            return b += this._get(t, "yearSuffix"),
            m && (b += (!o && f && g ? "" : "&#xa0;") + y),
            b += "</div>"
        },
        _adjustInstDate: function(t, e, i) {
            var s = t.selectedYear + ("Y" === i ? e : 0)
              , n = t.selectedMonth + ("M" === i ? e : 0)
              , e = Math.min(t.selectedDay, this._getDaysInMonth(s, n)) + ("D" === i ? e : 0)
              , s = this._restrictMinMax(t, this._daylightSavingAdjust(new Date(s,n,e)));
            t.selectedDay = s.getDate(),
            t.drawMonth = t.selectedMonth = s.getMonth(),
            t.drawYear = t.selectedYear = s.getFullYear(),
            "M" !== i && "Y" !== i || this._notifyChange(t)
        },
        _restrictMinMax: function(t, e) {
            var i = this._getMinMaxDate(t, "min")
              , t = this._getMinMaxDate(t, "max")
              , i = i && e < i ? i : e;
            return t && t < i ? t : i
        },
        _notifyChange: function(t) {
            var e = this._get(t, "onChangeMonthYear");
            e && e.apply(t.input ? t.input[0] : null, [t.selectedYear, t.selectedMonth + 1, t])
        },
        _getNumberOfMonths: function(t) {
            t = this._get(t, "numberOfMonths");
            return null == t ? [1, 1] : "number" == typeof t ? [1, t] : t
        },
        _getMinMaxDate: function(t, e) {
            return this._determineDate(t, this._get(t, e + "Date"), null)
        },
        _getDaysInMonth: function(t, e) {
            return 32 - this._daylightSavingAdjust(new Date(t,e,32)).getDate()
        },
        _getFirstDayOfMonth: function(t, e) {
            return new Date(t,e,1).getDay()
        },
        _canAdjustMonth: function(t, e, i, s) {
            var n = this._getNumberOfMonths(t)
              , i = this._daylightSavingAdjust(new Date(i,s + (e < 0 ? e : n[0] * n[1]),1));
            return e < 0 && i.setDate(this._getDaysInMonth(i.getFullYear(), i.getMonth())),
            this._isInRange(t, i)
        },
        _isInRange: function(t, e) {
            var i, s = this._getMinMaxDate(t, "min"), n = this._getMinMaxDate(t, "max"), o = null, a = null, t = this._get(t, "yearRange");
            return t && (t = t.split(":"),
            i = (new Date).getFullYear(),
            o = parseInt(t[0], 10),
            a = parseInt(t[1], 10),
            t[0].match(/[+\-].*/) && (o += i),
            t[1].match(/[+\-].*/)) && (a += i),
            (!s || e.getTime() >= s.getTime()) && (!n || e.getTime() <= n.getTime()) && (!o || e.getFullYear() >= o) && (!a || e.getFullYear() <= a)
        },
        _getFormatConfig: function(t) {
            var e = this._get(t, "shortYearCutoff");
            return {
                shortYearCutoff: "string" != typeof e ? e : (new Date).getFullYear() % 100 + parseInt(e, 10),
                dayNamesShort: this._get(t, "dayNamesShort"),
                dayNames: this._get(t, "dayNames"),
                monthNamesShort: this._get(t, "monthNamesShort"),
                monthNames: this._get(t, "monthNames")
            }
        },
        _formatDate: function(t, e, i, s) {
            e || (t.currentDay = t.selectedDay,
            t.currentMonth = t.selectedMonth,
            t.currentYear = t.selectedYear);
            s = e ? "object" == typeof e ? e : this._daylightSavingAdjust(new Date(s,i,e)) : this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));
            return this.formatDate(this._get(t, "dateFormat"), s, this._getFormatConfig(t))
        }
    }),
    V.fn.datepicker = function(t) {
        if (!this.length)
            return this;
        V.datepicker.initialized || (V(document).on("mousedown", V.datepicker._checkExternalClick),
        V.datepicker.initialized = !0),
        0 === V("#" + V.datepicker._mainDivId).length && V("body").append(V.datepicker.dpDiv);
        var e = Array.prototype.slice.call(arguments, 1);
        return "string" == typeof t && ("isDisabled" === t || "getDate" === t || "widget" === t) || "option" === t && 2 === arguments.length && "string" == typeof arguments[1] ? V.datepicker["_" + t + "Datepicker"].apply(V.datepicker, [this[0]].concat(e)) : this.each(function() {
            "string" == typeof t ? V.datepicker["_" + t + "Datepicker"].apply(V.datepicker, [this].concat(e)) : V.datepicker._attachDatepicker(this, t)
        })
    }
    ,
    V.datepicker = new rt,
    V.datepicker.initialized = !1,
    V.datepicker.uuid = (new Date).getTime(),
    V.datepicker.version = "1.13.3";
    V.datepicker,
    V.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());
    var z = !1;
    V(document).on("mouseup", function() {
        z = !1
    }),
    V.widget("ui.mouse", {
        version: "1.13.3",
        options: {
            cancel: "input, textarea, button, select, option",
            distance: 1,
            delay: 0
        },
        _mouseInit: function() {
            var e = this;
            this.element.on("mousedown." + this.widgetName, function(t) {
                return e._mouseDown(t)
            }).on("click." + this.widgetName, function(t) {
                if (!0 === V.data(t.target, e.widgetName + ".preventClickEvent"))
                    return V.removeData(t.target, e.widgetName + ".preventClickEvent"),
                    t.stopImmediatePropagation(),
                    !1
            }),
            this.started = !1
        },
        _mouseDestroy: function() {
            this.element.off("." + this.widgetName),
            this._mouseMoveDelegate && this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate)
        },
        _mouseDown: function(t) {
            var e, i, s;
            if (!z)
                return this._mouseMoved = !1,
                this._mouseStarted && this._mouseUp(t),
                i = 1 === (this._mouseDownEvent = t).which,
                s = !("string" != typeof (e = this).options.cancel || !t.target.nodeName) && V(t.target).closest(this.options.cancel).length,
                i && !s && this._mouseCapture(t) && (this.mouseDelayMet = !this.options.delay,
                this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
                    e.mouseDelayMet = !0
                }, this.options.delay)),
                this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = !1 !== this._mouseStart(t),
                !this._mouseStarted) ? t.preventDefault() : (!0 === V.data(t.target, this.widgetName + ".preventClickEvent") && V.removeData(t.target, this.widgetName + ".preventClickEvent"),
                this._mouseMoveDelegate = function(t) {
                    return e._mouseMove(t)
                }
                ,
                this._mouseUpDelegate = function(t) {
                    return e._mouseUp(t)
                }
                ,
                this.document.on("mousemove." + this.widgetName, this._mouseMoveDelegate).on("mouseup." + this.widgetName, this._mouseUpDelegate),
                t.preventDefault(),
                z = !0)),
                !0
        },
        _mouseMove: function(t) {
            if (this._mouseMoved) {
                if (V.ui.ie && (!document.documentMode || document.documentMode < 9) && !t.button)
                    return this._mouseUp(t);
                if (!t.which)
                    if (t.originalEvent.altKey || t.originalEvent.ctrlKey || t.originalEvent.metaKey || t.originalEvent.shiftKey)
                        this.ignoreMissingWhich = !0;
                    else if (!this.ignoreMissingWhich)
                        return this._mouseUp(t)
            }
            return (t.which || t.button) && (this._mouseMoved = !0),
            this._mouseStarted ? (this._mouseDrag(t),
            t.preventDefault()) : (this._mouseDistanceMet(t) && this._mouseDelayMet(t) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, t),
            this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)),
            !this._mouseStarted)
        },
        _mouseUp: function(t) {
            this.document.off("mousemove." + this.widgetName, this._mouseMoveDelegate).off("mouseup." + this.widgetName, this._mouseUpDelegate),
            this._mouseStarted && (this._mouseStarted = !1,
            t.target === this._mouseDownEvent.target && V.data(t.target, this.widgetName + ".preventClickEvent", !0),
            this._mouseStop(t)),
            this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer),
            delete this._mouseDelayTimer),
            this.ignoreMissingWhich = !1,
            z = !1,
            t.preventDefault()
        },
        _mouseDistanceMet: function(t) {
            return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance
        },
        _mouseDelayMet: function() {
            return this.mouseDelayMet
        },
        _mouseStart: function() {},
        _mouseDrag: function() {},
        _mouseStop: function() {},
        _mouseCapture: function() {
            return !0
        }
    }),
    V.ui.plugin = {
        add: function(t, e, i) {
            var s, n = V.ui[t].prototype;
            for (s in i)
                n.plugins[s] = n.plugins[s] || [],
                n.plugins[s].push([e, i[s]])
        },
        call: function(t, e, i, s) {
            var n, o = t.plugins[e];
            if (o && (s || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType))
                for (n = 0; n < o.length; n++)
                    t.options[o[n][0]] && o[n][1].apply(t.element, i)
        }
    },
    V.ui.safeBlur = function(t) {
        t && "body" !== t.nodeName.toLowerCase() && V(t).trigger("blur")
    }
    ,
    V.widget("ui.draggable", V.ui.mouse, {
        version: "1.13.3",
        widgetEventPrefix: "drag",
        options: {
            addClasses: !0,
            appendTo: "parent",
            axis: !1,
            connectToSortable: !1,
            containment: !1,
            cursor: "auto",
            cursorAt: !1,
            grid: !1,
            handle: !1,
            helper: "original",
            iframeFix: !1,
            opacity: !1,
            refreshPositions: !1,
            revert: !1,
            revertDuration: 500,
            scope: "default",
            scroll: !0,
            scrollSensitivity: 20,
            scrollSpeed: 20,
            snap: !1,
            snapMode: "both",
            snapTolerance: 20,
            stack: !1,
            zIndex: !1,
            drag: null,
            start: null,
            stop: null
        },
        _create: function() {
            "original" === this.options.helper && this._setPositionRelative(),
            this.options.addClasses && this._addClass("ui-draggable"),
            this._setHandleClassName(),
            this._mouseInit()
        },
        _setOption: function(t, e) {
            this._super(t, e),
            "handle" === t && (this._removeHandleClassName(),
            this._setHandleClassName())
        },
        _destroy: function() {
            (this.helper || this.element).is(".ui-draggable-dragging") ? this.destroyOnClear = !0 : (this._removeHandleClassName(),
            this._mouseDestroy())
        },
        _mouseCapture: function(t) {
            var e = this.options;
            return !(this.helper || e.disabled || 0 < V(t.target).closest(".ui-resizable-handle").length || (this.handle = this._getHandle(t),
            !this.handle) || (this._blurActiveElement(t),
            this._blockFrames(!0 === e.iframeFix ? "iframe" : e.iframeFix),
            0))
        },
        _blockFrames: function(t) {
            this.iframeBlocks = this.document.find(t).map(function() {
                var t = V(this);
                return V("<div>").css("position", "absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]
            })
        },
        _unblockFrames: function() {
            this.iframeBlocks && (this.iframeBlocks.remove(),
            delete this.iframeBlocks)
        },
        _blurActiveElement: function(t) {
            var e = V.ui.safeActiveElement(this.document[0]);
            V(t.target).closest(e).length || V.ui.safeBlur(e)
        },
        _mouseStart: function(t) {
            var e = this.options;
            return this.helper = this._createHelper(t),
            this._addClass(this.helper, "ui-draggable-dragging"),
            this._cacheHelperProportions(),
            V.ui.ddmanager && (V.ui.ddmanager.current = this),
            this._cacheMargins(),
            this.cssPosition = this.helper.css("position"),
            this.scrollParent = this.helper.scrollParent(!0),
            this.offsetParent = this.helper.offsetParent(),
            this.hasFixedAncestor = 0 < this.helper.parents().filter(function() {
                return "fixed" === V(this).css("position")
            }).length,
            this.positionAbs = this.element.offset(),
            this._refreshOffsets(t),
            this.originalPosition = this.position = this._generatePosition(t, !1),
            this.originalPageX = t.pageX,
            this.originalPageY = t.pageY,
            e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt),
            this._setContainment(),
            !1 === this._trigger("start", t) ? (this._clear(),
            !1) : (this._cacheHelperProportions(),
            V.ui.ddmanager && !e.dropBehaviour && V.ui.ddmanager.prepareOffsets(this, t),
            this._mouseDrag(t, !0),
            V.ui.ddmanager && V.ui.ddmanager.dragStart(this, t),
            !0)
        },
        _refreshOffsets: function(t) {
            this.offset = {
                top: this.positionAbs.top - this.margins.top,
                left: this.positionAbs.left - this.margins.left,
                scroll: !1,
                parent: this._getParentOffset(),
                relative: this._getRelativeOffset()
            },
            this.offset.click = {
                left: t.pageX - this.offset.left,
                top: t.pageY - this.offset.top
            }
        },
        _mouseDrag: function(t, e) {
            if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()),
            this.position = this._generatePosition(t, !0),
            this.positionAbs = this._convertPositionTo("absolute"),
            !e) {
                e = this._uiHash();
                if (!1 === this._trigger("drag", t, e))
                    return this._mouseUp(new V.Event("mouseup",t)),
                    !1;
                this.position = e.position
            }
            return this.helper[0].style.left = this.position.left + "px",
            this.helper[0].style.top = this.position.top + "px",
            V.ui.ddmanager && V.ui.ddmanager.drag(this, t),
            !1
        },
        _mouseStop: function(t) {
            var e = this
              , i = !1;
            return V.ui.ddmanager && !this.options.dropBehaviour && (i = V.ui.ddmanager.drop(this, t)),
            this.dropped && (i = this.dropped,
            this.dropped = !1),
            "invalid" === this.options.revert && !i || "valid" === this.options.revert && i || !0 === this.options.revert || "function" == typeof this.options.revert && this.options.revert.call(this.element, i) ? V(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
                !1 !== e._trigger("stop", t) && e._clear()
            }) : !1 !== this._trigger("stop", t) && this._clear(),
            !1
        },
        _mouseUp: function(t) {
            return this._unblockFrames(),
            V.ui.ddmanager && V.ui.ddmanager.dragStop(this, t),
            this.handleElement.is(t.target) && this.element.trigger("focus"),
            V.ui.mouse.prototype._mouseUp.call(this, t)
        },
        cancel: function() {
            return this.helper.is(".ui-draggable-dragging") ? this._mouseUp(new V.Event("mouseup",{
                target: this.element[0]
            })) : this._clear(),
            this
        },
        _getHandle: function(t) {
            return !this.options.handle || !!V(t.target).closest(this.element.find(this.options.handle)).length
        },
        _setHandleClassName: function() {
            this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element,
            this._addClass(this.handleElement, "ui-draggable-handle")
        },
        _removeHandleClassName: function() {
            this._removeClass(this.handleElement, "ui-draggable-handle")
        },
        _createHelper: function(t) {
            var e = this.options
              , i = "function" == typeof e.helper
              , t = i ? V(e.helper.apply(this.element[0], [t])) : "clone" === e.helper ? this.element.clone().removeAttr("id") : this.element;
            return t.parents("body").length || t.appendTo("parent" === e.appendTo ? this.element[0].parentNode : e.appendTo),
            i && t[0] === this.element[0] && this._setPositionRelative(),
            t[0] === this.element[0] || /(fixed|absolute)/.test(t.css("position")) || t.css("position", "absolute"),
            t
        },
        _setPositionRelative: function() {
            /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative")
        },
        _adjustOffsetFromHelper: function(t) {
            "string" == typeof t && (t = t.split(" ")),
            "left"in (t = Array.isArray(t) ? {
                left: +t[0],
                top: +t[1] || 0
            } : t) && (this.offset.click.left = t.left + this.margins.left),
            "right"in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left),
            "top"in t && (this.offset.click.top = t.top + this.margins.top),
            "bottom"in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top)
        },
        _isRootNode: function(t) {
            return /(html|body)/i.test(t.tagName) || t === this.document[0]
        },
        _getParentOffset: function() {
            var t = this.offsetParent.offset()
              , e = this.document[0];
            return "absolute" === this.cssPosition && this.scrollParent[0] !== e && V.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(),
            t.top += this.scrollParent.scrollTop()),
            {
                top: (t = this._isRootNode(this.offsetParent[0]) ? {
                    top: 0,
                    left: 0
                } : t).top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
                left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
            }
        },
        _getRelativeOffset: function() {
            var t, e;
            return "relative" !== this.cssPosition ? {
                top: 0,
                left: 0
            } : (t = this.element.position(),
            e = this._isRootNode(this.scrollParent[0]),
            {
                top: t.top - (parseInt(this.helper.css("top"), 10) || 0) + (e ? 0 : this.scrollParent.scrollTop()),
                left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + (e ? 0 : this.scrollParent.scrollLeft())
            })
        },
        _cacheMargins: function() {
            this.margins = {
                left: parseInt(this.element.css("marginLeft"), 10) || 0,
                top: parseInt(this.element.css("marginTop"), 10) || 0,
                right: parseInt(this.element.css("marginRight"), 10) || 0,
                bottom: parseInt(this.element.css("marginBottom"), 10) || 0
            }
        },
        _cacheHelperProportions: function() {
            this.helperProportions = {
                width: this.helper.outerWidth(),
                height: this.helper.outerHeight()
            }
        },
        _setContainment: function() {
            var t, e = this.options, i = this.document[0];
            this.relativeContainer = null,
            e.containment ? "window" === e.containment ? this.containment = [V(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, V(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, V(window).scrollLeft() + V(window).width() - this.helperProportions.width - this.margins.left, V(window).scrollTop() + (V(window).height() || i.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top] : "document" === e.containment ? this.containment = [0, 0, V(i).width() - this.helperProportions.width - this.margins.left, (V(i).height() || i.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top] : e.containment.constructor === Array ? this.containment = e.containment : ("parent" === e.containment && (e.containment = this.helper[0].parentNode),
            (e = (i = V(e.containment))[0]) && (t = /(scroll|auto)/.test(i.css("overflow")),
            this.containment = [(parseInt(i.css("borderLeftWidth"), 10) || 0) + (parseInt(i.css("paddingLeft"), 10) || 0), (parseInt(i.css("borderTopWidth"), 10) || 0) + (parseInt(i.css("paddingTop"), 10) || 0), (t ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(i.css("borderRightWidth"), 10) || 0) - (parseInt(i.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (t ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(i.css("borderBottomWidth"), 10) || 0) - (parseInt(i.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom],
            this.relativeContainer = i)) : this.containment = null
        },
        _convertPositionTo: function(t, e) {
            e = e || this.position;
            var t = "absolute" === t ? 1 : -1
              , i = this._isRootNode(this.scrollParent[0]);
            return {
                top: e.top + this.offset.relative.top * t + this.offset.parent.top * t - ("fixed" === this.cssPosition ? -this.offset.scroll.top : i ? 0 : this.offset.scroll.top) * t,
                left: e.left + this.offset.relative.left * t + this.offset.parent.left * t - ("fixed" === this.cssPosition ? -this.offset.scroll.left : i ? 0 : this.offset.scroll.left) * t
            }
        },
        _generatePosition: function(t, e) {
            var i, s = this.options, n = this._isRootNode(this.scrollParent[0]), o = t.pageX, a = t.pageY;
            return n && this.offset.scroll || (this.offset.scroll = {
                top: this.scrollParent.scrollTop(),
                left: this.scrollParent.scrollLeft()
            }),
            {
                top: (a = e && (this.containment && (i = this.relativeContainer ? (e = this.relativeContainer.offset(),
                [this.containment[0] + e.left, this.containment[1] + e.top, this.containment[2] + e.left, this.containment[3] + e.top]) : this.containment,
                t.pageX - this.offset.click.left < i[0] && (o = i[0] + this.offset.click.left),
                t.pageY - this.offset.click.top < i[1] && (a = i[1] + this.offset.click.top),
                t.pageX - this.offset.click.left > i[2] && (o = i[2] + this.offset.click.left),
                t.pageY - this.offset.click.top > i[3]) && (a = i[3] + this.offset.click.top),
                s.grid && (e = s.grid[1] ? this.originalPageY + Math.round((a - this.originalPageY) / s.grid[1]) * s.grid[1] : this.originalPageY,
                a = !i || e - this.offset.click.top >= i[1] || e - this.offset.click.top > i[3] ? e : e - this.offset.click.top >= i[1] ? e - s.grid[1] : e + s.grid[1],
                t = s.grid[0] ? this.originalPageX + Math.round((o - this.originalPageX) / s.grid[0]) * s.grid[0] : this.originalPageX,
                o = !i || t - this.offset.click.left >= i[0] || t - this.offset.click.left > i[2] ? t : t - this.offset.click.left >= i[0] ? t - s.grid[0] : t + s.grid[0]),
                "y" === s.axis && (o = this.originalPageX),
                "x" === s.axis) ? this.originalPageY : a) - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : n ? 0 : this.offset.scroll.top),
                left: o - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : n ? 0 : this.offset.scroll.left)
            }
        },
        _clear: function() {
            this._removeClass(this.helper, "ui-draggable-dragging"),
            this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove(),
            this.helper = null,
            this.cancelHelperRemoval = !1,
            this.destroyOnClear && this.destroy()
        },
        _trigger: function(t, e, i) {
            return i = i || this._uiHash(),
            V.ui.plugin.call(this, t, [e, i, this], !0),
            /^(drag|start|stop)/.test(t) && (this.positionAbs = this._convertPositionTo("absolute"),
            i.offset = this.positionAbs),
            V.Widget.prototype._trigger.call(this, t, e, i)
        },
        plugins: {},
        _uiHash: function() {
            return {
                helper: this.helper,
                position: this.position,
                originalPosition: this.originalPosition,
                offset: this.positionAbs
            }
        }
    }),
    V.ui.plugin.add("draggable", "connectToSortable", {
        start: function(e, t, i) {
            var s = V.extend({}, t, {
                item: i.element
            });
            i.sortables = [],
            V(i.options.connectToSortable).each(function() {
                var t = V(this).sortable("instance");
                t && !t.options.disabled && (i.sortables.push(t),
                t.refreshPositions(),
                t._trigger("activate", e, s))
            })
        },
        stop: function(e, t, i) {
            var s = V.extend({}, t, {
                item: i.element
            });
            i.cancelHelperRemoval = !1,
            V.each(i.sortables, function() {
                var t = this;
                t.isOver ? (t.isOver = 0,
                i.cancelHelperRemoval = !0,
                t.cancelHelperRemoval = !1,
                t._storedCSS = {
                    position: t.placeholder.css("position"),
                    top: t.placeholder.css("top"),
                    left: t.placeholder.css("left")
                },
                t._mouseStop(e),
                t.options.helper = t.options._helper) : (t.cancelHelperRemoval = !0,
                t._trigger("deactivate", e, s))
            })
        },
        drag: function(i, s, n) {
            V.each(n.sortables, function() {
                var t = !1
                  , e = this;
                e.positionAbs = n.positionAbs,
                e.helperProportions = n.helperProportions,
                e.offset.click = n.offset.click,
                e._intersectsWith(e.containerCache) && (t = !0,
                V.each(n.sortables, function() {
                    return this.positionAbs = n.positionAbs,
                    this.helperProportions = n.helperProportions,
                    this.offset.click = n.offset.click,
                    t = this !== e && this._intersectsWith(this.containerCache) && V.contains(e.element[0], this.element[0]) ? !1 : t
                })),
                t ? (e.isOver || (e.isOver = 1,
                n._parent = s.helper.parent(),
                e.currentItem = s.helper.appendTo(e.element).data("ui-sortable-item", !0),
                e.options._helper = e.options.helper,
                e.options.helper = function() {
                    return s.helper[0]
                }
                ,
                i.target = e.currentItem[0],
                e._mouseCapture(i, !0),
                e._mouseStart(i, !0, !0),
                e.offset.click.top = n.offset.click.top,
                e.offset.click.left = n.offset.click.left,
                e.offset.parent.left -= n.offset.parent.left - e.offset.parent.left,
                e.offset.parent.top -= n.offset.parent.top - e.offset.parent.top,
                n._trigger("toSortable", i),
                n.dropped = e.element,
                V.each(n.sortables, function() {
                    this.refreshPositions()
                }),
                n.currentItem = n.element,
                e.fromOutside = n),
                e.currentItem && (e._mouseDrag(i),
                s.position = e.position)) : e.isOver && (e.isOver = 0,
                e.cancelHelperRemoval = !0,
                e.options._revert = e.options.revert,
                e.options.revert = !1,
                e._trigger("out", i, e._uiHash(e)),
                e._mouseStop(i, !0),
                e.options.revert = e.options._revert,
                e.options.helper = e.options._helper,
                e.placeholder && e.placeholder.remove(),
                s.helper.appendTo(n._parent),
                n._refreshOffsets(i),
                s.position = n._generatePosition(i, !0),
                n._trigger("fromSortable", i),
                n.dropped = !1,
                V.each(n.sortables, function() {
                    this.refreshPositions()
                }))
            })
        }
    }),
    V.ui.plugin.add("draggable", "cursor", {
        start: function(t, e, i) {
            var s = V("body")
              , i = i.options;
            s.css("cursor") && (i._cursor = s.css("cursor")),
            s.css("cursor", i.cursor)
        },
        stop: function(t, e, i) {
            i = i.options;
            i._cursor && V("body").css("cursor", i._cursor)
        }
    }),
    V.ui.plugin.add("draggable", "opacity", {
        start: function(t, e, i) {
            e = V(e.helper),
            i = i.options;
            e.css("opacity") && (i._opacity = e.css("opacity")),
            e.css("opacity", i.opacity)
        },
        stop: function(t, e, i) {
            i = i.options;
            i._opacity && V(e.helper).css("opacity", i._opacity)
        }
    }),
    V.ui.plugin.add("draggable", "scroll", {
        start: function(t, e, i) {
            i.scrollParentNotHidden || (i.scrollParentNotHidden = i.helper.scrollParent(!1)),
            i.scrollParentNotHidden[0] !== i.document[0] && "HTML" !== i.scrollParentNotHidden[0].tagName && (i.overflowOffset = i.scrollParentNotHidden.offset())
        },
        drag: function(t, e, i) {
            var s = i.options
              , n = !1
              , o = i.scrollParentNotHidden[0]
              , a = i.document[0];
            o !== a && "HTML" !== o.tagName ? (s.axis && "x" === s.axis || (i.overflowOffset.top + o.offsetHeight - t.pageY < s.scrollSensitivity ? o.scrollTop = n = o.scrollTop + s.scrollSpeed : t.pageY - i.overflowOffset.top < s.scrollSensitivity && (o.scrollTop = n = o.scrollTop - s.scrollSpeed)),
            s.axis && "y" === s.axis || (i.overflowOffset.left + o.offsetWidth - t.pageX < s.scrollSensitivity ? o.scrollLeft = n = o.scrollLeft + s.scrollSpeed : t.pageX - i.overflowOffset.left < s.scrollSensitivity && (o.scrollLeft = n = o.scrollLeft - s.scrollSpeed))) : (s.axis && "x" === s.axis || (t.pageY - V(a).scrollTop() < s.scrollSensitivity ? n = V(a).scrollTop(V(a).scrollTop() - s.scrollSpeed) : V(window).height() - (t.pageY - V(a).scrollTop()) < s.scrollSensitivity && (n = V(a).scrollTop(V(a).scrollTop() + s.scrollSpeed))),
            s.axis && "y" === s.axis || (t.pageX - V(a).scrollLeft() < s.scrollSensitivity ? n = V(a).scrollLeft(V(a).scrollLeft() - s.scrollSpeed) : V(window).width() - (t.pageX - V(a).scrollLeft()) < s.scrollSensitivity && (n = V(a).scrollLeft(V(a).scrollLeft() + s.scrollSpeed)))),
            !1 !== n && V.ui.ddmanager && !s.dropBehaviour && V.ui.ddmanager.prepareOffsets(i, t)
        }
    }),
    V.ui.plugin.add("draggable", "snap", {
        start: function(t, e, i) {
            var s = i.options;
            i.snapElements = [],
            V(s.snap.constructor !== String ? s.snap.items || ":data(ui-draggable)" : s.snap).each(function() {
                var t = V(this)
                  , e = t.offset();
                this !== i.element[0] && i.snapElements.push({
                    item: this,
                    width: t.outerWidth(),
                    height: t.outerHeight(),
                    top: e.top,
                    left: e.left
                })
            })
        },
        drag: function(t, e, i) {
            for (var s, n, o, a, r, l, h, c, u, d = i.options, p = d.snapTolerance, f = e.offset.left, g = f + i.helperProportions.width, m = e.offset.top, _ = m + i.helperProportions.height, v = i.snapElements.length - 1; 0 <= v; v--)
                l = (r = i.snapElements[v].left - i.margins.left) + i.snapElements[v].width,
                c = (h = i.snapElements[v].top - i.margins.top) + i.snapElements[v].height,
                g < r - p || l + p < f || _ < h - p || c + p < m || !V.contains(i.snapElements[v].item.ownerDocument, i.snapElements[v].item) ? (i.snapElements[v].snapping && i.options.snap.release && i.options.snap.release.call(i.element, t, V.extend(i._uiHash(), {
                    snapItem: i.snapElements[v].item
                })),
                i.snapElements[v].snapping = !1) : ("inner" !== d.snapMode && (s = Math.abs(h - _) <= p,
                n = Math.abs(c - m) <= p,
                o = Math.abs(r - g) <= p,
                a = Math.abs(l - f) <= p,
                s && (e.position.top = i._convertPositionTo("relative", {
                    top: h - i.helperProportions.height,
                    left: 0
                }).top),
                n && (e.position.top = i._convertPositionTo("relative", {
                    top: c,
                    left: 0
                }).top),
                o && (e.position.left = i._convertPositionTo("relative", {
                    top: 0,
                    left: r - i.helperProportions.width
                }).left),
                a) && (e.position.left = i._convertPositionTo("relative", {
                    top: 0,
                    left: l
                }).left),
                u = s || n || o || a,
                "outer" !== d.snapMode && (s = Math.abs(h - m) <= p,
                n = Math.abs(c - _) <= p,
                o = Math.abs(r - f) <= p,
                a = Math.abs(l - g) <= p,
                s && (e.position.top = i._convertPositionTo("relative", {
                    top: h,
                    left: 0
                }).top),
                n && (e.position.top = i._convertPositionTo("relative", {
                    top: c - i.helperProportions.height,
                    left: 0
                }).top),
                o && (e.position.left = i._convertPositionTo("relative", {
                    top: 0,
                    left: r
                }).left),
                a) && (e.position.left = i._convertPositionTo("relative", {
                    top: 0,
                    left: l - i.helperProportions.width
                }).left),
                !i.snapElements[v].snapping && (s || n || o || a || u) && i.options.snap.snap && i.options.snap.snap.call(i.element, t, V.extend(i._uiHash(), {
                    snapItem: i.snapElements[v].item
                })),
                i.snapElements[v].snapping = s || n || o || a || u)
        }
    }),
    V.ui.plugin.add("draggable", "stack", {
        start: function(t, e, i) {
            var s, i = i.options, i = V.makeArray(V(i.stack)).sort(function(t, e) {
                return (parseInt(V(t).css("zIndex"), 10) || 0) - (parseInt(V(e).css("zIndex"), 10) || 0)
            });
            i.length && (s = parseInt(V(i[0]).css("zIndex"), 10) || 0,
            V(i).each(function(t) {
                V(this).css("zIndex", s + t)
            }),
            this.css("zIndex", s + i.length))
        }
    }),
    V.ui.plugin.add("draggable", "zIndex", {
        start: function(t, e, i) {
            e = V(e.helper),
            i = i.options;
            e.css("zIndex") && (i._zIndex = e.css("zIndex")),
            e.css("zIndex", i.zIndex)
        },
        stop: function(t, e, i) {
            i = i.options;
            i._zIndex && V(e.helper).css("zIndex", i._zIndex)
        }
    }),
    V.ui.draggable,
    V.widget("ui.resizable", V.ui.mouse, {
        version: "1.13.3",
        widgetEventPrefix: "resize",
        options: {
            alsoResize: !1,
            animate: !1,
            animateDuration: "slow",
            animateEasing: "swing",
            aspectRatio: !1,
            autoHide: !1,
            classes: {
                "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
            },
            containment: !1,
            ghost: !1,
            grid: !1,
            handles: "e,s,se",
            helper: !1,
            maxHeight: null,
            maxWidth: null,
            minHeight: 10,
            minWidth: 10,
            zIndex: 90,
            resize: null,
            start: null,
            stop: null
        },
        _num: function(t) {
            return parseFloat(t) || 0
        },
        _isNumber: function(t) {
            return !isNaN(parseFloat(t))
        },
        _hasScroll: function(t, e) {
            if ("hidden" === V(t).css("overflow"))
                return !1;
            var e = e && "left" === e ? "scrollLeft" : "scrollTop"
              , i = !1;
            if (0 < t[e])
                return !0;
            try {
                t[e] = 1,
                i = 0 < t[e],
                t[e] = 0
            } catch (t) {}
            return i
        },
        _create: function() {
            var t, e = this.options, i = this;
            this._addClass("ui-resizable"),
            V.extend(this, {
                _aspectRatio: !!e.aspectRatio,
                aspectRatio: e.aspectRatio,
                originalElement: this.element,
                _proportionallyResizeElements: [],
                _helper: e.helper || e.ghost || e.animate ? e.helper || "ui-resizable-helper" : null
            }),
            this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i) && (this.element.wrap(V("<div class='ui-wrapper'></div>").css({
                overflow: "hidden",
                position: this.element.css("position"),
                width: this.element.outerWidth(),
                height: this.element.outerHeight(),
                top: this.element.css("top"),
                left: this.element.css("left")
            })),
            this.element = this.element.parent().data("ui-resizable", this.element.resizable("instance")),
            this.elementIsWrapper = !0,
            t = {
                marginTop: this.originalElement.css("marginTop"),
                marginRight: this.originalElement.css("marginRight"),
                marginBottom: this.originalElement.css("marginBottom"),
                marginLeft: this.originalElement.css("marginLeft")
            },
            this.element.css(t),
            this.originalElement.css("margin", 0),
            this.originalResizeStyle = this.originalElement.css("resize"),
            this.originalElement.css("resize", "none"),
            this._proportionallyResizeElements.push(this.originalElement.css({
                position: "static",
                zoom: 1,
                display: "block"
            })),
            this.originalElement.css(t),
            this._proportionallyResize()),
            this._setupHandles(),
            e.autoHide && V(this.element).on("mouseenter", function() {
                e.disabled || (i._removeClass("ui-resizable-autohide"),
                i._handles.show())
            }).on("mouseleave", function() {
                e.disabled || i.resizing || (i._addClass("ui-resizable-autohide"),
                i._handles.hide())
            }),
            this._mouseInit()
        },
        _destroy: function() {
            this._mouseDestroy(),
            this._addedHandles.remove();
            function t(t) {
                V(t).removeData("resizable").removeData("ui-resizable").off(".resizable")
            }
            var e;
            return this.elementIsWrapper && (t(this.element),
            e = this.element,
            this.originalElement.css({
                position: e.css("position"),
                width: e.outerWidth(),
                height: e.outerHeight(),
                top: e.css("top"),
                left: e.css("left")
            }).insertAfter(e),
            e.remove()),
            this.originalElement.css("resize", this.originalResizeStyle),
            t(this.originalElement),
            this
        },
        _setOption: function(t, e) {
            switch (this._super(t, e),
            t) {
            case "handles":
                this._removeHandles(),
                this._setupHandles();
                break;
            case "aspectRatio":
                this._aspectRatio = !!e
            }
        },
        _setupHandles: function() {
            var t, e, i, s, n, o = this.options, a = this;
            if (this.handles = o.handles || (V(".ui-resizable-handle", this.element).length ? {
                n: ".ui-resizable-n",
                e: ".ui-resizable-e",
                s: ".ui-resizable-s",
                w: ".ui-resizable-w",
                se: ".ui-resizable-se",
                sw: ".ui-resizable-sw",
                ne: ".ui-resizable-ne",
                nw: ".ui-resizable-nw"
            } : "e,s,se"),
            this._handles = V(),
            this._addedHandles = V(),
            this.handles.constructor === String)
                for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"),
                i = this.handles.split(","),
                this.handles = {},
                e = 0; e < i.length; e++)
                    s = "ui-resizable-" + (t = String.prototype.trim.call(i[e])),
                    n = V("<div>"),
                    this._addClass(n, "ui-resizable-handle " + s),
                    n.css({
                        zIndex: o.zIndex
                    }),
                    this.handles[t] = ".ui-resizable-" + t,
                    this.element.children(this.handles[t]).length || (this.element.append(n),
                    this._addedHandles = this._addedHandles.add(n));
            this._renderAxis = function(t) {
                var e, i, s;
                for (e in t = t || this.element,
                this.handles)
                    this.handles[e].constructor === String ? this.handles[e] = this.element.children(this.handles[e]).first().show() : (this.handles[e].jquery || this.handles[e].nodeType) && (this.handles[e] = V(this.handles[e]),
                    this._on(this.handles[e], {
                        mousedown: a._mouseDown
                    })),
                    this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i) && (s = V(this.handles[e], this.element),
                    s = /sw|ne|nw|se|n|s/.test(e) ? s.outerHeight() : s.outerWidth(),
                    i = ["padding", /ne|nw|n/.test(e) ? "Top" : /se|sw|s/.test(e) ? "Bottom" : /^e$/.test(e) ? "Right" : "Left"].join(""),
                    t.css(i, s),
                    this._proportionallyResize()),
                    this._handles = this._handles.add(this.handles[e])
            }
            ,
            this._renderAxis(this.element),
            this._handles = this._handles.add(this.element.find(".ui-resizable-handle")),
            this._handles.disableSelection(),
            this._handles.on("mouseover", function() {
                a.resizing || (this.className && (n = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),
                a.axis = n && n[1] ? n[1] : "se")
            }),
            o.autoHide && (this._handles.hide(),
            this._addClass("ui-resizable-autohide"))
        },
        _removeHandles: function() {
            this._addedHandles.remove()
        },
        _mouseCapture: function(t) {
            var e, i, s = !1;
            for (e in this.handles)
                (i = V(this.handles[e])[0]) !== t.target && !V.contains(i, t.target) || (s = !0);
            return !this.options.disabled && s
        },
        _mouseStart: function(t) {
            var e, i, s = this.options, n = this.element;
            return this.resizing = !0,
            this._renderProxy(),
            e = this._num(this.helper.css("left")),
            i = this._num(this.helper.css("top")),
            s.containment && (e += V(s.containment).scrollLeft() || 0,
            i += V(s.containment).scrollTop() || 0),
            this.offset = this.helper.offset(),
            this.position = {
                left: e,
                top: i
            },
            this.size = this._helper ? {
                width: this.helper.width(),
                height: this.helper.height()
            } : {
                width: n.width(),
                height: n.height()
            },
            this.originalSize = this._helper ? {
                width: n.outerWidth(),
                height: n.outerHeight()
            } : {
                width: n.width(),
                height: n.height()
            },
            this.sizeDiff = {
                width: n.outerWidth() - n.width(),
                height: n.outerHeight() - n.height()
            },
            this.originalPosition = {
                left: e,
                top: i
            },
            this.originalMousePosition = {
                left: t.pageX,
                top: t.pageY
            },
            this.aspectRatio = "number" == typeof s.aspectRatio ? s.aspectRatio : this.originalSize.width / this.originalSize.height || 1,
            n = V(".ui-resizable-" + this.axis).css("cursor"),
            V("body").css("cursor", "auto" === n ? this.axis + "-resize" : n),
            this._addClass("ui-resizable-resizing"),
            this._propagate("start", t),
            !0
        },
        _mouseDrag: function(t) {
            var e = this.originalMousePosition
              , i = this.axis
              , s = t.pageX - e.left || 0
              , e = t.pageY - e.top || 0
              , i = this._change[i];
            return this._updatePrevProperties(),
            i && (i = i.apply(this, [t, s, e]),
            this._updateVirtualBoundaries(t.shiftKey),
            (this._aspectRatio || t.shiftKey) && (i = this._updateRatio(i, t)),
            i = this._respectSize(i, t),
            this._updateCache(i),
            this._propagate("resize", t),
            s = this._applyChanges(),
            !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(),
            V.isEmptyObject(s) || (this._updatePrevProperties(),
            this._trigger("resize", t, this.ui()),
            this._applyChanges())),
            !1
        },
        _mouseStop: function(t) {
            this.resizing = !1;
            var e, i, s, n = this.options, o = this;
            return this._helper && (i = (e = (i = this._proportionallyResizeElements).length && /textarea/i.test(i[0].nodeName)) && this._hasScroll(i[0], "left") ? 0 : o.sizeDiff.height,
            e = e ? 0 : o.sizeDiff.width,
            e = {
                width: o.helper.width() - e,
                height: o.helper.height() - i
            },
            i = parseFloat(o.element.css("left")) + (o.position.left - o.originalPosition.left) || null,
            s = parseFloat(o.element.css("top")) + (o.position.top - o.originalPosition.top) || null,
            n.animate || this.element.css(V.extend(e, {
                top: s,
                left: i
            })),
            o.helper.height(o.size.height),
            o.helper.width(o.size.width),
            this._helper) && !n.animate && this._proportionallyResize(),
            V("body").css("cursor", "auto"),
            this._removeClass("ui-resizable-resizing"),
            this._propagate("stop", t),
            this._helper && this.helper.remove(),
            !1
        },
        _updatePrevProperties: function() {
            this.prevPosition = {
                top: this.position.top,
                left: this.position.left
            },
            this.prevSize = {
                width: this.size.width,
                height: this.size.height
            }
        },
        _applyChanges: function() {
            var t = {};
            return this.position.top !== this.prevPosition.top && (t.top = this.position.top + "px"),
            this.position.left !== this.prevPosition.left && (t.left = this.position.left + "px"),
            this.helper.css(t),
            this.size.width !== this.prevSize.width && (t.width = this.size.width + "px",
            this.helper.width(t.width)),
            this.size.height !== this.prevSize.height && (t.height = this.size.height + "px",
            this.helper.height(t.height)),
            t
        },
        _updateVirtualBoundaries: function(t) {
            var e, i, s, n = this.options, n = {
                minWidth: this._isNumber(n.minWidth) ? n.minWidth : 0,
                maxWidth: this._isNumber(n.maxWidth) ? n.maxWidth : 1 / 0,
                minHeight: this._isNumber(n.minHeight) ? n.minHeight : 0,
                maxHeight: this._isNumber(n.maxHeight) ? n.maxHeight : 1 / 0
            };
            (this._aspectRatio || t) && (t = n.minHeight * this.aspectRatio,
            i = n.minWidth / this.aspectRatio,
            e = n.maxHeight * this.aspectRatio,
            s = n.maxWidth / this.aspectRatio,
            n.minWidth < t && (n.minWidth = t),
            n.minHeight < i && (n.minHeight = i),
            e < n.maxWidth && (n.maxWidth = e),
            s < n.maxHeight) && (n.maxHeight = s),
            this._vBoundaries = n
        },
        _updateCache: function(t) {
            this.offset = this.helper.offset(),
            this._isNumber(t.left) && (this.position.left = t.left),
            this._isNumber(t.top) && (this.position.top = t.top),
            this._isNumber(t.height) && (this.size.height = t.height),
            this._isNumber(t.width) && (this.size.width = t.width)
        },
        _updateRatio: function(t) {
            var e = this.position
              , i = this.size
              , s = this.axis;
            return this._isNumber(t.height) ? t.width = t.height * this.aspectRatio : this._isNumber(t.width) && (t.height = t.width / this.aspectRatio),
            "sw" === s && (t.left = e.left + (i.width - t.width),
            t.top = null),
            "nw" === s && (t.top = e.top + (i.height - t.height),
            t.left = e.left + (i.width - t.width)),
            t
        },
        _respectSize: function(t) {
            var e = this._vBoundaries
              , i = this.axis
              , s = this._isNumber(t.width) && e.maxWidth && e.maxWidth < t.width
              , n = this._isNumber(t.height) && e.maxHeight && e.maxHeight < t.height
              , o = this._isNumber(t.width) && e.minWidth && e.minWidth > t.width
              , a = this._isNumber(t.height) && e.minHeight && e.minHeight > t.height
              , r = this.originalPosition.left + this.originalSize.width
              , l = this.originalPosition.top + this.originalSize.height
              , h = /sw|nw|w/.test(i)
              , i = /nw|ne|n/.test(i);
            return o && (t.width = e.minWidth),
            a && (t.height = e.minHeight),
            s && (t.width = e.maxWidth),
            n && (t.height = e.maxHeight),
            o && h && (t.left = r - e.minWidth),
            s && h && (t.left = r - e.maxWidth),
            a && i && (t.top = l - e.minHeight),
            n && i && (t.top = l - e.maxHeight),
            t.width || t.height || t.left || !t.top ? t.width || t.height || t.top || !t.left || (t.left = null) : t.top = null,
            t
        },
        _getPaddingPlusBorderDimensions: function(t) {
            for (var e = 0, i = [], s = [t.css("borderTopWidth"), t.css("borderRightWidth"), t.css("borderBottomWidth"), t.css("borderLeftWidth")], n = [t.css("paddingTop"), t.css("paddingRight"), t.css("paddingBottom"), t.css("paddingLeft")]; e < 4; e++)
                i[e] = parseFloat(s[e]) || 0,
                i[e] += parseFloat(n[e]) || 0;
            return {
                height: i[0] + i[2],
                width: i[1] + i[3]
            }
        },
        _proportionallyResize: function() {
            if (this._proportionallyResizeElements.length)
                for (var t, e = 0, i = this.helper || this.element; e < this._proportionallyResizeElements.length; e++)
                    t = this._proportionallyResizeElements[e],
                    this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(t)),
                    t.css({
                        height: i.height() - this.outerDimensions.height || 0,
                        width: i.width() - this.outerDimensions.width || 0
                    })
        },
        _renderProxy: function() {
            var t = this.element
              , e = this.options;
            this.elementOffset = t.offset(),
            this._helper ? (this.helper = this.helper || V("<div></div>").css({
                overflow: "hidden"
            }),
            this._addClass(this.helper, this._helper),
            this.helper.css({
                width: this.element.outerWidth(),
                height: this.element.outerHeight(),
                position: "absolute",
                left: this.elementOffset.left + "px",
                top: this.elementOffset.top + "px",
                zIndex: ++e.zIndex
            }),
            this.helper.appendTo("body").disableSelection()) : this.helper = this.element
        },
        _change: {
            e: function(t, e) {
                return {
                    width: this.originalSize.width + e
                }
            },
            w: function(t, e) {
                var i = this.originalSize;
                return {
                    left: this.originalPosition.left + e,
                    width: i.width - e
                }
            },
            n: function(t, e, i) {
                var s = this.originalSize;
                return {
                    top: this.originalPosition.top + i,
                    height: s.height - i
                }
            },
            s: function(t, e, i) {
                return {
                    height: this.originalSize.height + i
                }
            },
            se: function(t, e, i) {
                return V.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [t, e, i]))
            },
            sw: function(t, e, i) {
                return V.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [t, e, i]))
            },
            ne: function(t, e, i) {
                return V.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [t, e, i]))
            },
            nw: function(t, e, i) {
                return V.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [t, e, i]))
            }
        },
        _propagate: function(t, e) {
            V.ui.plugin.call(this, t, [e, this.ui()]),
            "resize" !== t && this._trigger(t, e, this.ui())
        },
        plugins: {},
        ui: function() {
            return {
                originalElement: this.originalElement,
                element: this.element,
                helper: this.helper,
                position: this.position,
                size: this.size,
                originalSize: this.originalSize,
                originalPosition: this.originalPosition
            }
        }
    }),
    V.ui.plugin.add("resizable", "animate", {
        stop: function(e) {
            var i = V(this).resizable("instance")
              , t = i.options
              , s = i._proportionallyResizeElements
              , n = s.length && /textarea/i.test(s[0].nodeName)
              , o = n && i._hasScroll(s[0], "left") ? 0 : i.sizeDiff.height
              , n = n ? 0 : i.sizeDiff.width
              , n = {
                width: i.size.width - n,
                height: i.size.height - o
            }
              , o = parseFloat(i.element.css("left")) + (i.position.left - i.originalPosition.left) || null
              , a = parseFloat(i.element.css("top")) + (i.position.top - i.originalPosition.top) || null;
            i.element.animate(V.extend(n, a && o ? {
                top: a,
                left: o
            } : {}), {
                duration: t.animateDuration,
                easing: t.animateEasing,
                step: function() {
                    var t = {
                        width: parseFloat(i.element.css("width")),
                        height: parseFloat(i.element.css("height")),
                        top: parseFloat(i.element.css("top")),
                        left: parseFloat(i.element.css("left"))
                    };
                    s && s.length && V(s[0]).css({
                        width: t.width,
                        height: t.height
                    }),
                    i._updateCache(t),
                    i._propagate("resize", e)
                }
            })
        }
    }),
    V.ui.plugin.add("resizable", "containment", {
        start: function() {
            var i, s, t, e, n = V(this).resizable("instance"), o = n.options, a = n.element, o = o.containment, a = o instanceof V ? o.get(0) : /parent/.test(o) ? a.parent().get(0) : o;
            a && (n.containerElement = V(a),
            /document/.test(o) || o === document ? (n.containerOffset = {
                left: 0,
                top: 0
            },
            n.containerPosition = {
                left: 0,
                top: 0
            },
            n.parentData = {
                element: V(document),
                left: 0,
                top: 0,
                width: V(document).width(),
                height: V(document).height() || document.body.parentNode.scrollHeight
            }) : (i = V(a),
            s = [],
            V(["Top", "Right", "Left", "Bottom"]).each(function(t, e) {
                s[t] = n._num(i.css("padding" + e))
            }),
            n.containerOffset = i.offset(),
            n.containerPosition = i.position(),
            n.containerSize = {
                height: i.innerHeight() - s[3],
                width: i.innerWidth() - s[1]
            },
            o = n.containerOffset,
            e = n.containerSize.height,
            t = n.containerSize.width,
            t = n._hasScroll(a, "left") ? a.scrollWidth : t,
            e = n._hasScroll(a) ? a.scrollHeight : e,
            n.parentData = {
                element: a,
                left: o.left,
                top: o.top,
                width: t,
                height: e
            }))
        },
        resize: function(t) {
            var e = V(this).resizable("instance")
              , i = e.options
              , s = e.containerOffset
              , n = e.position
              , t = e._aspectRatio || t.shiftKey
              , o = {
                top: 0,
                left: 0
            }
              , a = e.containerElement
              , r = !0;
            a[0] !== document && /static/.test(a.css("position")) && (o = s),
            n.left < (e._helper ? s.left : 0) && (e.size.width = e.size.width + (e._helper ? e.position.left - s.left : e.position.left - o.left),
            t && (e.size.height = e.size.width / e.aspectRatio,
            r = !1),
            e.position.left = i.helper ? s.left : 0),
            n.top < (e._helper ? s.top : 0) && (e.size.height = e.size.height + (e._helper ? e.position.top - s.top : e.position.top),
            t && (e.size.width = e.size.height * e.aspectRatio,
            r = !1),
            e.position.top = e._helper ? s.top : 0),
            a = e.containerElement.get(0) === e.element.parent().get(0),
            i = /relative|absolute/.test(e.containerElement.css("position")),
            a && i ? (e.offset.left = e.parentData.left + e.position.left,
            e.offset.top = e.parentData.top + e.position.top) : (e.offset.left = e.element.offset().left,
            e.offset.top = e.element.offset().top),
            n = Math.abs(e.sizeDiff.width + (e._helper ? e.offset.left - o.left : e.offset.left - s.left)),
            a = Math.abs(e.sizeDiff.height + (e._helper ? e.offset.top - o.top : e.offset.top - s.top)),
            n + e.size.width >= e.parentData.width && (e.size.width = e.parentData.width - n,
            t) && (e.size.height = e.size.width / e.aspectRatio,
            r = !1),
            a + e.size.height >= e.parentData.height && (e.size.height = e.parentData.height - a,
            t) && (e.size.width = e.size.height * e.aspectRatio,
            r = !1),
            r || (e.position.left = e.prevPosition.left,
            e.position.top = e.prevPosition.top,
            e.size.width = e.prevSize.width,
            e.size.height = e.prevSize.height)
        },
        stop: function() {
            var t = V(this).resizable("instance")
              , e = t.options
              , i = t.containerOffset
              , s = t.containerPosition
              , n = t.containerElement
              , o = V(t.helper)
              , a = o.offset()
              , r = o.outerWidth() - t.sizeDiff.width
              , o = o.outerHeight() - t.sizeDiff.height;
            t._helper && !e.animate && /relative/.test(n.css("position")) && V(this).css({
                left: a.left - s.left - i.left,
                width: r,
                height: o
            }),
            t._helper && !e.animate && /static/.test(n.css("position")) && V(this).css({
                left: a.left - s.left - i.left,
                width: r,
                height: o
            })
        }
    }),
    V.ui.plugin.add("resizable", "alsoResize", {
        start: function() {
            var t = V(this).resizable("instance").options;
            V(t.alsoResize).each(function() {
                var t = V(this);
                t.data("ui-resizable-alsoresize", {
                    width: parseFloat(t.css("width")),
                    height: parseFloat(t.css("height")),
                    left: parseFloat(t.css("left")),
                    top: parseFloat(t.css("top"))
                })
            })
        },
        resize: function(t, i) {
            var e = V(this).resizable("instance")
              , s = e.options
              , n = e.originalSize
              , o = e.originalPosition
              , a = {
                height: e.size.height - n.height || 0,
                width: e.size.width - n.width || 0,
                top: e.position.top - o.top || 0,
                left: e.position.left - o.left || 0
            };
            V(s.alsoResize).each(function() {
                var t = V(this)
                  , s = V(this).data("ui-resizable-alsoresize")
                  , n = {}
                  , e = t.parents(i.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
                V.each(e, function(t, e) {
                    var i = (s[e] || 0) + (a[e] || 0);
                    i && 0 <= i && (n[e] = i || null)
                }),
                t.css(n)
            })
        },
        stop: function() {
            V(this).removeData("ui-resizable-alsoresize")
        }
    }),
    V.ui.plugin.add("resizable", "ghost", {
        start: function() {
            var t = V(this).resizable("instance")
              , e = t.size;
            t.ghost = t.originalElement.clone(),
            t.ghost.css({
                opacity: .25,
                display: "block",
                position: "relative",
                height: e.height,
                width: e.width,
                margin: 0,
                left: 0,
                top: 0
            }),
            t._addClass(t.ghost, "ui-resizable-ghost"),
            !1 !== V.uiBackCompat && "string" == typeof t.options.ghost && t.ghost.addClass(this.options.ghost),
            t.ghost.appendTo(t.helper)
        },
        resize: function() {
            var t = V(this).resizable("instance");
            t.ghost && t.ghost.css({
                position: "relative",
                height: t.size.height,
                width: t.size.width
            })
        },
        stop: function() {
            var t = V(this).resizable("instance");
            t.ghost && t.helper && t.helper.get(0).removeChild(t.ghost.get(0))
        }
    }),
    V.ui.plugin.add("resizable", "grid", {
        resize: function() {
            var t, e = V(this).resizable("instance"), i = e.options, s = e.size, n = e.originalSize, o = e.originalPosition, a = e.axis, r = "number" == typeof i.grid ? [i.grid, i.grid] : i.grid, l = r[0] || 1, h = r[1] || 1, c = Math.round((s.width - n.width) / l) * l, s = Math.round((s.height - n.height) / h) * h, u = n.width + c, d = n.height + s, p = i.maxWidth && i.maxWidth < u, f = i.maxHeight && i.maxHeight < d, g = i.minWidth && i.minWidth > u, m = i.minHeight && i.minHeight > d;
            i.grid = r,
            g && (u += l),
            m && (d += h),
            p && (u -= l),
            f && (d -= h),
            /^(se|s|e)$/.test(a) ? (e.size.width = u,
            e.size.height = d) : /^(ne)$/.test(a) ? (e.size.width = u,
            e.size.height = d,
            e.position.top = o.top - s) : /^(sw)$/.test(a) ? (e.size.width = u,
            e.size.height = d,
            e.position.left = o.left - c) : ((d - h <= 0 || u - l <= 0) && (t = e._getPaddingPlusBorderDimensions(this)),
            0 < d - h ? (e.size.height = d,
            e.position.top = o.top - s) : (d = h - t.height,
            e.size.height = d,
            e.position.top = o.top + n.height - d),
            0 < u - l ? (e.size.width = u,
            e.position.left = o.left - c) : (u = l - t.width,
            e.size.width = u,
            e.position.left = o.left + n.width - u))
        }
    }),
    V.ui.resizable,
    V.widget("ui.dialog", {
        version: "1.13.3",
        options: {
            appendTo: "body",
            autoOpen: !0,
            buttons: [],
            classes: {
                "ui-dialog": "ui-corner-all",
                "ui-dialog-titlebar": "ui-corner-all"
            },
            closeOnEscape: !0,
            closeText: "Close",
            draggable: !0,
            hide: null,
            height: "auto",
            maxHeight: null,
            maxWidth: null,
            minHeight: 150,
            minWidth: 150,
            modal: !1,
            position: {
                my: "center",
                at: "center",
                of: window,
                collision: "fit",
                using: function(t) {
                    var e = V(this).css(t).offset().top;
                    e < 0 && V(this).css("top", t.top - e)
                }
            },
            resizable: !0,
            show: null,
            title: null,
            width: 300,
            beforeClose: null,
            close: null,
            drag: null,
            dragStart: null,
            dragStop: null,
            focus: null,
            open: null,
            resize: null,
            resizeStart: null,
            resizeStop: null
        },
        sizeRelatedOptions: {
            buttons: !0,
            height: !0,
            maxHeight: !0,
            maxWidth: !0,
            minHeight: !0,
            minWidth: !0,
            width: !0
        },
        resizableRelatedOptions: {
            maxHeight: !0,
            maxWidth: !0,
            minHeight: !0,
            minWidth: !0
        },
        _create: function() {
            this.originalCss = {
                display: this.element[0].style.display,
                width: this.element[0].style.width,
                minHeight: this.element[0].style.minHeight,
                maxHeight: this.element[0].style.maxHeight,
                height: this.element[0].style.height
            },
            this.originalPosition = {
                parent: this.element.parent(),
                index: this.element.parent().children().index(this.element)
            },
            this.originalTitle = this.element.attr("title"),
            null == this.options.title && null != this.originalTitle && (this.options.title = this.originalTitle),
            this.options.disabled && (this.options.disabled = !1),
            this._createWrapper(),
            this.element.show().removeAttr("title").appendTo(this.uiDialog),
            this._addClass("ui-dialog-content", "ui-widget-content"),
            this._createTitlebar(),
            this._createButtonPane(),
            this.options.draggable && V.fn.draggable && this._makeDraggable(),
            this.options.resizable && V.fn.resizable && this._makeResizable(),
            this._isOpen = !1,
            this._trackFocus()
        },
        _init: function() {
            this.options.autoOpen && this.open()
        },
        _appendTo: function() {
            var t = this.options.appendTo;
            return t && (t.jquery || t.nodeType) ? V(t) : this.document.find(t || "body").eq(0)
        },
        _destroy: function() {
            var t, e = this.originalPosition;
            this._untrackInstance(),
            this._destroyOverlay(),
            this.element.removeUniqueId().css(this.originalCss).detach(),
            this.uiDialog.remove(),
            this.originalTitle && this.element.attr("title", this.originalTitle),
            (t = e.parent.children().eq(e.index)).length && t[0] !== this.element[0] ? t.before(this.element) : e.parent.append(this.element)
        },
        widget: function() {
            return this.uiDialog
        },
        disable: V.noop,
        enable: V.noop,
        close: function(t) {
            var e = this;
            this._isOpen && !1 !== this._trigger("beforeClose", t) && (this._isOpen = !1,
            this._focusedElement = null,
            this._destroyOverlay(),
            this._untrackInstance(),
            this.opener.filter(":focusable").trigger("focus").length || V.ui.safeBlur(V.ui.safeActiveElement(this.document[0])),
            this._hide(this.uiDialog, this.options.hide, function() {
                e._trigger("close", t)
            }))
        },
        isOpen: function() {
            return this._isOpen
        },
        moveToTop: function() {
            this._moveToTop()
        },
        _moveToTop: function(t, e) {
            var i = !1
              , s = this.uiDialog.siblings(".ui-front:visible").map(function() {
                return +V(this).css("z-index")
            }).get()
              , s = Math.max.apply(null, s);
            return s >= +this.uiDialog.css("z-index") && (this.uiDialog.css("z-index", s + 1),
            i = !0),
            i && !e && this._trigger("focus", t),
            i
        },
        open: function() {
            var t = this;
            this._isOpen ? this._moveToTop() && this._focusTabbable() : (this._isOpen = !0,
            this.opener = V(V.ui.safeActiveElement(this.document[0])),
            this._size(),
            this._position(),
            this._createOverlay(),
            this._moveToTop(null, !0),
            this.overlay && this.overlay.css("z-index", this.uiDialog.css("z-index") - 1),
            this._show(this.uiDialog, this.options.show, function() {
                t._focusTabbable(),
                t._trigger("focus")
            }),
            this._makeFocusTarget(),
            this._trigger("open"))
        },
        _focusTabbable: function() {
            var t = this._focusedElement;
            (t = (t = (t = (t = (t = t || this.element.find("[autofocus]")).length ? t : this.element.find(":tabbable")).length ? t : this.uiDialogButtonPane.find(":tabbable")).length ? t : this.uiDialogTitlebarClose.filter(":tabbable")).length ? t : this.uiDialog).eq(0).trigger("focus")
        },
        _restoreTabbableFocus: function() {
            var t = V.ui.safeActiveElement(this.document[0]);
            this.uiDialog[0] === t || V.contains(this.uiDialog[0], t) || this._focusTabbable()
        },
        _keepFocus: function(t) {
            t.preventDefault(),
            this._restoreTabbableFocus(),
            this._delay(this._restoreTabbableFocus)
        },
        _createWrapper: function() {
            this.uiDialog = V("<div>").hide().attr({
                tabIndex: -1,
                role: "dialog"
            }).appendTo(this._appendTo()),
            this._addClass(this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front"),
            this._on(this.uiDialog, {
                keydown: function(t) {
                    var e, i, s;
                    this.options.closeOnEscape && !t.isDefaultPrevented() && t.keyCode && t.keyCode === V.ui.keyCode.ESCAPE ? (t.preventDefault(),
                    this.close(t)) : t.keyCode !== V.ui.keyCode.TAB || t.isDefaultPrevented() || (e = this.uiDialog.find(":tabbable"),
                    i = e.first(),
                    s = e.last(),
                    t.target !== s[0] && t.target !== this.uiDialog[0] || t.shiftKey ? t.target !== i[0] && t.target !== this.uiDialog[0] || !t.shiftKey || (this._delay(function() {
                        s.trigger("focus")
                    }),
                    t.preventDefault()) : (this._delay(function() {
                        i.trigger("focus")
                    }),
                    t.preventDefault()))
                },
                mousedown: function(t) {
                    this._moveToTop(t) && this._focusTabbable()
                }
            }),
            this.element.find("[aria-describedby]").length || this.uiDialog.attr({
                "aria-describedby": this.element.uniqueId().attr("id")
            })
        },
        _createTitlebar: function() {
            var t;
            this.uiDialogTitlebar = V("<div>"),
            this._addClass(this.uiDialogTitlebar, "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix"),
            this._on(this.uiDialogTitlebar, {
                mousedown: function(t) {
                    V(t.target).closest(".ui-dialog-titlebar-close") || this.uiDialog.trigger("focus")
                }
            }),
            this.uiDialogTitlebarClose = V("<button type='button'></button>").button({
                label: V("<a>").text(this.options.closeText).html(),
                icon: "ui-icon-closethick",
                showLabel: !1
            }).appendTo(this.uiDialogTitlebar),
            this._addClass(this.uiDialogTitlebarClose, "ui-dialog-titlebar-close"),
            this._on(this.uiDialogTitlebarClose, {
                click: function(t) {
                    t.preventDefault(),
                    this.close(t)
                }
            }),
            t = V("<span>").uniqueId().prependTo(this.uiDialogTitlebar),
            this._addClass(t, "ui-dialog-title"),
            this._title(t),
            this.uiDialogTitlebar.prependTo(this.uiDialog),
            this.uiDialog.attr({
                "aria-labelledby": t.attr("id")
            })
        },
        _title: function(t) {
            this.options.title ? t.text(this.options.title) : t.html("&#160;")
        },
        _createButtonPane: function() {
            this.uiDialogButtonPane = V("<div>"),
            this._addClass(this.uiDialogButtonPane, "ui-dialog-buttonpane", "ui-widget-content ui-helper-clearfix"),
            this.uiButtonSet = V("<div>").appendTo(this.uiDialogButtonPane),
            this._addClass(this.uiButtonSet, "ui-dialog-buttonset"),
            this._createButtons()
        },
        _createButtons: function() {
            var s = this
              , t = this.options.buttons;
            this.uiDialogButtonPane.remove(),
            this.uiButtonSet.empty(),
            V.isEmptyObject(t) || Array.isArray(t) && !t.length ? this._removeClass(this.uiDialog, "ui-dialog-buttons") : (V.each(t, function(t, e) {
                var i;
                e = V.extend({
                    type: "button"
                }, e = "function" == typeof e ? {
                    click: e,
                    text: t
                } : e),
                i = e.click,
                t = {
                    icon: e.icon,
                    iconPosition: e.iconPosition,
                    showLabel: e.showLabel,
                    icons: e.icons,
                    text: e.text
                },
                delete e.click,
                delete e.icon,
                delete e.iconPosition,
                delete e.showLabel,
                delete e.icons,
                "boolean" == typeof e.text && delete e.text,
                V("<button></button>", e).button(t).appendTo(s.uiButtonSet).on("click", function() {
                    i.apply(s.element[0], arguments)
                })
            }),
            this._addClass(this.uiDialog, "ui-dialog-buttons"),
            this.uiDialogButtonPane.appendTo(this.uiDialog))
        },
        _makeDraggable: function() {
            var n = this
              , o = this.options;
            function a(t) {
                return {
                    position: t.position,
                    offset: t.offset
                }
            }
            this.uiDialog.draggable({
                cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
                handle: ".ui-dialog-titlebar",
                containment: "document",
                start: function(t, e) {
                    n._addClass(V(this), "ui-dialog-dragging"),
                    n._blockFrames(),
                    n._trigger("dragStart", t, a(e))
                },
                drag: function(t, e) {
                    n._trigger("drag", t, a(e))
                },
                stop: function(t, e) {
                    var i = e.offset.left - n.document.scrollLeft()
                      , s = e.offset.top - n.document.scrollTop();
                    o.position = {
                        my: "left top",
                        at: "left" + (0 <= i ? "+" : "") + i + " top" + (0 <= s ? "+" : "") + s,
                        of: n.window
                    },
                    n._removeClass(V(this), "ui-dialog-dragging"),
                    n._unblockFrames(),
                    n._trigger("dragStop", t, a(e))
                }
            })
        },
        _makeResizable: function() {
            var n = this
              , o = this.options
              , t = o.resizable
              , e = this.uiDialog.css("position")
              , t = "string" == typeof t ? t : "n,e,s,w,se,sw,ne,nw";
            function a(t) {
                return {
                    originalPosition: t.originalPosition,
                    originalSize: t.originalSize,
                    position: t.position,
                    size: t.size
                }
            }
            this.uiDialog.resizable({
                cancel: ".ui-dialog-content",
                containment: "document",
                alsoResize: this.element,
                maxWidth: o.maxWidth,
                maxHeight: o.maxHeight,
                minWidth: o.minWidth,
                minHeight: this._minHeight(),
                handles: t,
                start: function(t, e) {
                    n._addClass(V(this), "ui-dialog-resizing"),
                    n._blockFrames(),
                    n._trigger("resizeStart", t, a(e))
                },
                resize: function(t, e) {
                    n._trigger("resize", t, a(e))
                },
                stop: function(t, e) {
                    var i = n.uiDialog.offset()
                      , s = i.left - n.document.scrollLeft()
                      , i = i.top - n.document.scrollTop();
                    o.height = n.uiDialog.height(),
                    o.width = n.uiDialog.width(),
                    o.position = {
                        my: "left top",
                        at: "left" + (0 <= s ? "+" : "") + s + " top" + (0 <= i ? "+" : "") + i,
                        of: n.window
                    },
                    n._removeClass(V(this), "ui-dialog-resizing"),
                    n._unblockFrames(),
                    n._trigger("resizeStop", t, a(e))
                }
            }).css("position", e)
        },
        _trackFocus: function() {
            this._on(this.widget(), {
                focusin: function(t) {
                    this._makeFocusTarget(),
                    this._focusedElement = V(t.target)
                }
            })
        },
        _makeFocusTarget: function() {
            this._untrackInstance(),
            this._trackingInstances().unshift(this)
        },
        _untrackInstance: function() {
            var t = this._trackingInstances()
              , e = V.inArray(this, t);
            -1 !== e && t.splice(e, 1)
        },
        _trackingInstances: function() {
            var t = this.document.data("ui-dialog-instances");
            return t || this.document.data("ui-dialog-instances", t = []),
            t
        },
        _minHeight: function() {
            var t = this.options;
            return "auto" === t.height ? t.minHeight : Math.min(t.minHeight, t.height)
        },
        _position: function() {
            var t = this.uiDialog.is(":visible");
            t || this.uiDialog.show(),
            this.uiDialog.position(this.options.position),
            t || this.uiDialog.hide()
        },
        _setOptions: function(t) {
            var i = this
              , s = !1
              , n = {};
            V.each(t, function(t, e) {
                i._setOption(t, e),
                t in i.sizeRelatedOptions && (s = !0),
                t in i.resizableRelatedOptions && (n[t] = e)
            }),
            s && (this._size(),
            this._position()),
            this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", n)
        },
        _setOption: function(t, e) {
            var i, s = this.uiDialog;
            "disabled" !== t && (this._super(t, e),
            "appendTo" === t && this.uiDialog.appendTo(this._appendTo()),
            "buttons" === t && this._createButtons(),
            "closeText" === t && this.uiDialogTitlebarClose.button({
                label: V("<a>").text("" + this.options.closeText).html()
            }),
            "draggable" === t && ((i = s.is(":data(ui-draggable)")) && !e && s.draggable("destroy"),
            !i) && e && this._makeDraggable(),
            "position" === t && this._position(),
            "resizable" === t && ((i = s.is(":data(ui-resizable)")) && !e && s.resizable("destroy"),
            i && "string" == typeof e && s.resizable("option", "handles", e),
            i || !1 === e || this._makeResizable()),
            "title" === t) && this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))
        },
        _size: function() {
            var t, e, i, s = this.options;
            this.element.show().css({
                width: "auto",
                minHeight: 0,
                maxHeight: "none",
                height: 0
            }),
            s.minWidth > s.width && (s.width = s.minWidth),
            t = this.uiDialog.css({
                height: "auto",
                width: s.width
            }).outerHeight(),
            e = Math.max(0, s.minHeight - t),
            i = "number" == typeof s.maxHeight ? Math.max(0, s.maxHeight - t) : "none",
            "auto" === s.height ? this.element.css({
                minHeight: e,
                maxHeight: i,
                height: "auto"
            }) : this.element.height(Math.max(0, s.height - t)),
            this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
        },
        _blockFrames: function() {
            this.iframeBlocks = this.document.find("iframe").map(function() {
                var t = V(this);
                return V("<div>").css({
                    position: "absolute",
                    width: t.outerWidth(),
                    height: t.outerHeight()
                }).appendTo(t.parent()).offset(t.offset())[0]
            })
        },
        _unblockFrames: function() {
            this.iframeBlocks && (this.iframeBlocks.remove(),
            delete this.iframeBlocks)
        },
        _allowInteraction: function(t) {
            return !!V(t.target).closest(".ui-dialog").length || !!V(t.target).closest(".ui-datepicker").length
        },
        _createOverlay: function() {
            var i, s;
            this.options.modal && (i = V.fn.jquery.substring(0, 4),
            s = !0,
            this._delay(function() {
                s = !1
            }),
            this.document.data("ui-dialog-overlays") || this.document.on("focusin.ui-dialog", function(t) {
                var e;
                s || (e = this._trackingInstances()[0])._allowInteraction(t) || (t.preventDefault(),
                e._focusTabbable(),
                "3.4." !== i && "3.5." !== i && "3.6." !== i) || e._delay(e._restoreTabbableFocus)
            }
            .bind(this)),
            this.overlay = V("<div>").appendTo(this._appendTo()),
            this._addClass(this.overlay, null, "ui-widget-overlay ui-front"),
            this._on(this.overlay, {
                mousedown: "_keepFocus"
            }),
            this.document.data("ui-dialog-overlays", (this.document.data("ui-dialog-overlays") || 0) + 1))
        },
        _destroyOverlay: function() {
            var t;
            this.options.modal && this.overlay && ((t = this.document.data("ui-dialog-overlays") - 1) ? this.document.data("ui-dialog-overlays", t) : (this.document.off("focusin.ui-dialog"),
            this.document.removeData("ui-dialog-overlays")),
            this.overlay.remove(),
            this.overlay = null)
        }
    }),
    !1 !== V.uiBackCompat && V.widget("ui.dialog", V.ui.dialog, {
        options: {
            dialogClass: ""
        },
        _createWrapper: function() {
            this._super(),
            this.uiDialog.addClass(this.options.dialogClass)
        },
        _setOption: function(t, e) {
            "dialogClass" === t && this.uiDialog.removeClass(this.options.dialogClass).addClass(e),
            this._superApply(arguments)
        }
    }),
    V.ui.dialog;
    function ct(t, e, i) {
        return e <= t && t < e + i
    }
    V.widget("ui.droppable", {
        version: "1.13.3",
        widgetEventPrefix: "drop",
        options: {
            accept: "*",
            addClasses: !0,
            greedy: !1,
            scope: "default",
            tolerance: "intersect",
            activate: null,
            deactivate: null,
            drop: null,
            out: null,
            over: null
        },
        _create: function() {
            var t, e = this.options, i = e.accept;
            this.isover = !1,
            this.isout = !0,
            this.accept = "function" == typeof i ? i : function(t) {
                return t.is(i)
            }
            ,
            this.proportions = function() {
                if (!arguments.length)
                    return t = t || {
                        width: this.element[0].offsetWidth,
                        height: this.element[0].offsetHeight
                    };
                t = arguments[0]
            }
            ,
            this._addToManager(e.scope),
            e.addClasses && this._addClass("ui-droppable")
        },
        _addToManager: function(t) {
            V.ui.ddmanager.droppables[t] = V.ui.ddmanager.droppables[t] || [],
            V.ui.ddmanager.droppables[t].push(this)
        },
        _splice: function(t) {
            for (var e = 0; e < t.length; e++)
                t[e] === this && t.splice(e, 1)
        },
        _destroy: function() {
            var t = V.ui.ddmanager.droppables[this.options.scope];
            this._splice(t)
        },
        _setOption: function(t, e) {
            var i;
            "accept" === t ? this.accept = "function" == typeof e ? e : function(t) {
                return t.is(e)
            }
            : "scope" === t && (i = V.ui.ddmanager.droppables[this.options.scope],
            this._splice(i),
            this._addToManager(e)),
            this._super(t, e)
        },
        _activate: function(t) {
            var e = V.ui.ddmanager.current;
            this._addActiveClass(),
            e && this._trigger("activate", t, this.ui(e))
        },
        _deactivate: function(t) {
            var e = V.ui.ddmanager.current;
            this._removeActiveClass(),
            e && this._trigger("deactivate", t, this.ui(e))
        },
        _over: function(t) {
            var e = V.ui.ddmanager.current;
            e && (e.currentItem || e.element)[0] !== this.element[0] && this.accept.call(this.element[0], e.currentItem || e.element) && (this._addHoverClass(),
            this._trigger("over", t, this.ui(e)))
        },
        _out: function(t) {
            var e = V.ui.ddmanager.current;
            e && (e.currentItem || e.element)[0] !== this.element[0] && this.accept.call(this.element[0], e.currentItem || e.element) && (this._removeHoverClass(),
            this._trigger("out", t, this.ui(e)))
        },
        _drop: function(e, t) {
            var i = t || V.ui.ddmanager.current
              , s = !1;
            return !(!i || (i.currentItem || i.element)[0] === this.element[0] || (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
                var t = V(this).droppable("instance");
                if (t.options.greedy && !t.options.disabled && t.options.scope === i.options.scope && t.accept.call(t.element[0], i.currentItem || i.element) && V.ui.intersect(i, V.extend(t, {
                    offset: t.element.offset()
                }), t.options.tolerance, e))
                    return !(s = !0)
            }),
            s) || !this.accept.call(this.element[0], i.currentItem || i.element)) && (this._removeActiveClass(),
            this._removeHoverClass(),
            this._trigger("drop", e, this.ui(i)),
            this.element)
        },
        ui: function(t) {
            return {
                draggable: t.currentItem || t.element,
                helper: t.helper,
                position: t.position,
                offset: t.positionAbs
            }
        },
        _addHoverClass: function() {
            this._addClass("ui-droppable-hover")
        },
        _removeHoverClass: function() {
            this._removeClass("ui-droppable-hover")
        },
        _addActiveClass: function() {
            this._addClass("ui-droppable-active")
        },
        _removeActiveClass: function() {
            this._removeClass("ui-droppable-active")
        }
    }),
    V.ui.intersect = function(t, e, i, s) {
        if (!e.offset)
            return !1;
        var n = (t.positionAbs || t.position.absolute).left + t.margins.left
          , o = (t.positionAbs || t.position.absolute).top + t.margins.top
          , a = n + t.helperProportions.width
          , r = o + t.helperProportions.height
          , l = e.offset.left
          , h = e.offset.top
          , c = l + e.proportions().width
          , u = h + e.proportions().height;
        switch (i) {
        case "fit":
            return l <= n && a <= c && h <= o && r <= u;
        case "intersect":
            return l < n + t.helperProportions.width / 2 && a - t.helperProportions.width / 2 < c && h < o + t.helperProportions.height / 2 && r - t.helperProportions.height / 2 < u;
        case "pointer":
            return ct(s.pageY, h, e.proportions().height) && ct(s.pageX, l, e.proportions().width);
        case "touch":
            return (h <= o && o <= u || h <= r && r <= u || o < h && u < r) && (l <= n && n <= c || l <= a && a <= c || n < l && c < a);
        default:
            return !1
        }
    }
    ,
    !(V.ui.ddmanager = {
        current: null,
        droppables: {
            default: []
        },
        prepareOffsets: function(t, e) {
            var i, s, n = V.ui.ddmanager.droppables[t.options.scope] || [], o = e ? e.type : null, a = (t.currentItem || t.element).find(":data(ui-droppable)").addBack();
            t: for (i = 0; i < n.length; i++)
                if (!(n[i].options.disabled || t && !n[i].accept.call(n[i].element[0], t.currentItem || t.element))) {
                    for (s = 0; s < a.length; s++)
                        if (a[s] === n[i].element[0]) {
                            n[i].proportions().height = 0;
                            continue t
                        }
                    n[i].visible = "none" !== n[i].element.css("display"),
                    n[i].visible && ("mousedown" === o && n[i]._activate.call(n[i], e),
                    n[i].offset = n[i].element.offset(),
                    n[i].proportions({
                        width: n[i].element[0].offsetWidth,
                        height: n[i].element[0].offsetHeight
                    }))
                }
        },
        drop: function(t, e) {
            var i = !1;
            return V.each((V.ui.ddmanager.droppables[t.options.scope] || []).slice(), function() {
                this.options && (!this.options.disabled && this.visible && V.ui.intersect(t, this, this.options.tolerance, e) && (i = this._drop.call(this, e) || i),
                !this.options.disabled) && this.visible && this.accept.call(this.element[0], t.currentItem || t.element) && (this.isout = !0,
                this.isover = !1,
                this._deactivate.call(this, e))
            }),
            i
        },
        dragStart: function(t, e) {
            t.element.parentsUntil("body").on("scroll.droppable", function() {
                t.options.refreshPositions || V.ui.ddmanager.prepareOffsets(t, e)
            })
        },
        drag: function(n, o) {
            n.options.refreshPositions && V.ui.ddmanager.prepareOffsets(n, o),
            V.each(V.ui.ddmanager.droppables[n.options.scope] || [], function() {
                var t, e, i, s;
                this.options.disabled || this.greedyChild || !this.visible || (s = !(s = V.ui.intersect(n, this, this.options.tolerance, o)) && this.isover ? "isout" : s && !this.isover ? "isover" : null) && (this.options.greedy && (e = this.options.scope,
                (i = this.element.parents(":data(ui-droppable)").filter(function() {
                    return V(this).droppable("instance").options.scope === e
                })).length) && ((t = V(i[0]).droppable("instance")).greedyChild = "isover" === s),
                t && "isover" === s && (t.isover = !1,
                t.isout = !0,
                t._out.call(t, o)),
                this[s] = !0,
                this["isout" === s ? "isover" : "isout"] = !1,
                this["isover" === s ? "_over" : "_out"].call(this, o),
                t) && "isout" === s && (t.isout = !1,
                t.isover = !0,
                t._over.call(t, o))
            })
        },
        dragStop: function(t, e) {
            t.element.parentsUntil("body").off("scroll.droppable"),
            t.options.refreshPositions || V.ui.ddmanager.prepareOffsets(t, e)
        }
    }) !== V.uiBackCompat && V.widget("ui.droppable", V.ui.droppable, {
        options: {
            hoverClass: !1,
            activeClass: !1
        },
        _addActiveClass: function() {
            this._super(),
            this.options.activeClass && this.element.addClass(this.options.activeClass)
        },
        _removeActiveClass: function() {
            this._super(),
            this.options.activeClass && this.element.removeClass(this.options.activeClass)
        },
        _addHoverClass: function() {
            this._super(),
            this.options.hoverClass && this.element.addClass(this.options.hoverClass)
        },
        _removeHoverClass: function() {
            this._super(),
            this.options.hoverClass && this.element.removeClass(this.options.hoverClass)
        }
    });
    V.ui.droppable,
    V.widget("ui.progressbar", {
        version: "1.13.3",
        options: {
            classes: {
                "ui-progressbar": "ui-corner-all",
                "ui-progressbar-value": "ui-corner-left",
                "ui-progressbar-complete": "ui-corner-right"
            },
            max: 100,
            value: 0,
            change: null,
            complete: null
        },
        min: 0,
        _create: function() {
            this.oldValue = this.options.value = this._constrainedValue(),
            this.element.attr({
                role: "progressbar",
                "aria-valuemin": this.min
            }),
            this._addClass("ui-progressbar", "ui-widget ui-widget-content"),
            this.valueDiv = V("<div>").appendTo(this.element),
            this._addClass(this.valueDiv, "ui-progressbar-value", "ui-widget-header"),
            this._refreshValue()
        },
        _destroy: function() {
            this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),
            this.valueDiv.remove()
        },
        value: function(t) {
            if (void 0 === t)
                return this.options.value;
            this.options.value = this._constrainedValue(t),
            this._refreshValue()
        },
        _constrainedValue: function(t) {
            return void 0 === t && (t = this.options.value),
            this.indeterminate = !1 === t,
            "number" != typeof t && (t = 0),
            !this.indeterminate && Math.min(this.options.max, Math.max(this.min, t))
        },
        _setOptions: function(t) {
            var e = t.value;
            delete t.value,
            this._super(t),
            this.options.value = this._constrainedValue(e),
            this._refreshValue()
        },
        _setOption: function(t, e) {
            "max" === t && (e = Math.max(this.min, e)),
            this._super(t, e)
        },
        _setOptionDisabled: function(t) {
            this._super(t),
            this.element.attr("aria-disabled", t),
            this._toggleClass(null, "ui-state-disabled", !!t)
        },
        _percentage: function() {
            return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min)
        },
        _refreshValue: function() {
            var t = this.options.value
              , e = this._percentage();
            this.valueDiv.toggle(this.indeterminate || t > this.min).width(e.toFixed(0) + "%"),
            this._toggleClass(this.valueDiv, "ui-progressbar-complete", null, t === this.options.max)._toggleClass("ui-progressbar-indeterminate", null, this.indeterminate),
            this.indeterminate ? (this.element.removeAttr("aria-valuenow"),
            this.overlayDiv || (this.overlayDiv = V("<div>").appendTo(this.valueDiv),
            this._addClass(this.overlayDiv, "ui-progressbar-overlay"))) : (this.element.attr({
                "aria-valuemax": this.options.max,
                "aria-valuenow": t
            }),
            this.overlayDiv && (this.overlayDiv.remove(),
            this.overlayDiv = null)),
            this.oldValue !== t && (this.oldValue = t,
            this._trigger("change")),
            t === this.options.max && this._trigger("complete")
        }
    }),
    V.widget("ui.selectable", V.ui.mouse, {
        version: "1.13.3",
        options: {
            appendTo: "body",
            autoRefresh: !0,
            distance: 0,
            filter: "*",
            tolerance: "touch",
            selected: null,
            selecting: null,
            start: null,
            stop: null,
            unselected: null,
            unselecting: null
        },
        _create: function() {
            var i = this;
            this._addClass("ui-selectable"),
            this.dragged = !1,
            this.refresh = function() {
                i.elementPos = V(i.element[0]).offset(),
                i.selectees = V(i.options.filter, i.element[0]),
                i._addClass(i.selectees, "ui-selectee"),
                i.selectees.each(function() {
                    var t = V(this)
                      , e = t.offset()
                      , e = {
                        left: e.left - i.elementPos.left,
                        top: e.top - i.elementPos.top
                    };
                    V.data(this, "selectable-item", {
                        element: this,
                        $element: t,
                        left: e.left,
                        top: e.top,
                        right: e.left + t.outerWidth(),
                        bottom: e.top + t.outerHeight(),
                        startselected: !1,
                        selected: t.hasClass("ui-selected"),
                        selecting: t.hasClass("ui-selecting"),
                        unselecting: t.hasClass("ui-unselecting")
                    })
                })
            }
            ,
            this.refresh(),
            this._mouseInit(),
            this.helper = V("<div>"),
            this._addClass(this.helper, "ui-selectable-helper")
        },
        _destroy: function() {
            this.selectees.removeData("selectable-item"),
            this._mouseDestroy()
        },
        _mouseStart: function(i) {
            var s = this
              , t = this.options;
            this.opos = [i.pageX, i.pageY],
            this.elementPos = V(this.element[0]).offset(),
            this.options.disabled || (this.selectees = V(t.filter, this.element[0]),
            this._trigger("start", i),
            V(t.appendTo).append(this.helper),
            this.helper.css({
                left: i.pageX,
                top: i.pageY,
                width: 0,
                height: 0
            }),
            t.autoRefresh && this.refresh(),
            this.selectees.filter(".ui-selected").each(function() {
                var t = V.data(this, "selectable-item");
                t.startselected = !0,
                i.metaKey || i.ctrlKey || (s._removeClass(t.$element, "ui-selected"),
                t.selected = !1,
                s._addClass(t.$element, "ui-unselecting"),
                t.unselecting = !0,
                s._trigger("unselecting", i, {
                    unselecting: t.element
                }))
            }),
            V(i.target).parents().addBack().each(function() {
                var t, e = V.data(this, "selectable-item");
                if (e)
                    return t = !i.metaKey && !i.ctrlKey || !e.$element.hasClass("ui-selected"),
                    s._removeClass(e.$element, t ? "ui-unselecting" : "ui-selected")._addClass(e.$element, t ? "ui-selecting" : "ui-unselecting"),
                    e.unselecting = !t,
                    e.selecting = t,
                    (e.selected = t) ? s._trigger("selecting", i, {
                        selecting: e.element
                    }) : s._trigger("unselecting", i, {
                        unselecting: e.element
                    }),
                    !1
            }))
        },
        _mouseDrag: function(s) {
            var t, n, o, a, r, l, h;
            if (this.dragged = !0,
            !this.options.disabled)
                return o = (n = this).options,
                a = this.opos[0],
                r = this.opos[1],
                l = s.pageX,
                h = s.pageY,
                l < a && (t = l,
                l = a,
                a = t),
                h < r && (t = h,
                h = r,
                r = t),
                this.helper.css({
                    left: a,
                    top: r,
                    width: l - a,
                    height: h - r
                }),
                this.selectees.each(function() {
                    var t = V.data(this, "selectable-item")
                      , e = !1
                      , i = {};
                    t && t.element !== n.element[0] && (i.left = t.left + n.elementPos.left,
                    i.right = t.right + n.elementPos.left,
                    i.top = t.top + n.elementPos.top,
                    i.bottom = t.bottom + n.elementPos.top,
                    "touch" === o.tolerance ? e = !(l < i.left || i.right < a || h < i.top || i.bottom < r) : "fit" === o.tolerance && (e = a < i.left && i.right < l && r < i.top && i.bottom < h),
                    e ? (t.selected && (n._removeClass(t.$element, "ui-selected"),
                    t.selected = !1),
                    t.unselecting && (n._removeClass(t.$element, "ui-unselecting"),
                    t.unselecting = !1),
                    t.selecting || (n._addClass(t.$element, "ui-selecting"),
                    t.selecting = !0,
                    n._trigger("selecting", s, {
                        selecting: t.element
                    }))) : (t.selecting && ((s.metaKey || s.ctrlKey) && t.startselected ? (n._removeClass(t.$element, "ui-selecting"),
                    t.selecting = !1,
                    n._addClass(t.$element, "ui-selected"),
                    t.selected = !0) : (n._removeClass(t.$element, "ui-selecting"),
                    t.selecting = !1,
                    t.startselected && (n._addClass(t.$element, "ui-unselecting"),
                    t.unselecting = !0),
                    n._trigger("unselecting", s, {
                        unselecting: t.element
                    }))),
                    !t.selected || s.metaKey || s.ctrlKey || t.startselected || (n._removeClass(t.$element, "ui-selected"),
                    t.selected = !1,
                    n._addClass(t.$element, "ui-unselecting"),
                    t.unselecting = !0,
                    n._trigger("unselecting", s, {
                        unselecting: t.element
                    }))))
                }),
                !1
        },
        _mouseStop: function(e) {
            var i = this;
            return this.dragged = !1,
            V(".ui-unselecting", this.element[0]).each(function() {
                var t = V.data(this, "selectable-item");
                i._removeClass(t.$element, "ui-unselecting"),
                t.unselecting = !1,
                t.startselected = !1,
                i._trigger("unselected", e, {
                    unselected: t.element
                })
            }),
            V(".ui-selecting", this.element[0]).each(function() {
                var t = V.data(this, "selectable-item");
                i._removeClass(t.$element, "ui-selecting")._addClass(t.$element, "ui-selected"),
                t.selecting = !1,
                t.selected = !0,
                t.startselected = !0,
                i._trigger("selected", e, {
                    selected: t.element
                })
            }),
            this._trigger("stop", e),
            this.helper.remove(),
            !1
        }
    }),
    V.widget("ui.selectmenu", [V.ui.formResetMixin, {
        version: "1.13.3",
        defaultElement: "<select>",
        options: {
            appendTo: null,
            classes: {
                "ui-selectmenu-button-open": "ui-corner-top",
                "ui-selectmenu-button-closed": "ui-corner-all"
            },
            disabled: null,
            icons: {
                button: "ui-icon-triangle-1-s"
            },
            position: {
                my: "left top",
                at: "left bottom",
                collision: "none"
            },
            width: !1,
            change: null,
            close: null,
            focus: null,
            open: null,
            select: null
        },
        _create: function() {
            var t = this.element.uniqueId().attr("id");
            this.ids = {
                element: t,
                button: t + "-button",
                menu: t + "-menu"
            },
            this._drawButton(),
            this._drawMenu(),
            this._bindFormResetHandler(),
            this._rendered = !1,
            this.menuItems = V()
        },
        _drawButton: function() {
            var t, e = this, i = this._parseOption(this.element.find("option:selected"), this.element[0].selectedIndex);
            this.labels = this.element.labels().attr("for", this.ids.button),
            this._on(this.labels, {
                click: function(t) {
                    this.button.trigger("focus"),
                    t.preventDefault()
                }
            }),
            this.element.hide(),
            this.button = V("<span>", {
                tabindex: this.options.disabled ? -1 : 0,
                id: this.ids.button,
                role: "combobox",
                "aria-expanded": "false",
                "aria-autocomplete": "list",
                "aria-owns": this.ids.menu,
                "aria-haspopup": "true",
                title: this.element.attr("title")
            }).insertAfter(this.element),
            this._addClass(this.button, "ui-selectmenu-button ui-selectmenu-button-closed", "ui-button ui-widget"),
            t = V("<span>").appendTo(this.button),
            this._addClass(t, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button),
            this.buttonItem = this._renderButtonItem(i).appendTo(this.button),
            !1 !== this.options.width && this._resizeButton(),
            this._on(this.button, this._buttonEvents),
            this.button.one("focusin", function() {
                e._rendered || e._refreshMenu()
            })
        },
        _drawMenu: function() {
            var i = this;
            this.menu = V("<ul>", {
                "aria-hidden": "true",
                "aria-labelledby": this.ids.button,
                id: this.ids.menu
            }),
            this.menuWrap = V("<div>").append(this.menu),
            this._addClass(this.menuWrap, "ui-selectmenu-menu", "ui-front"),
            this.menuWrap.appendTo(this._appendTo()),
            this.menuInstance = this.menu.menu({
                classes: {
                    "ui-menu": "ui-corner-bottom"
                },
                role: "listbox",
                select: function(t, e) {
                    t.preventDefault(),
                    i._setSelection(),
                    i._select(e.item.data("ui-selectmenu-item"), t)
                },
                focus: function(t, e) {
                    e = e.item.data("ui-selectmenu-item");
                    null != i.focusIndex && e.index !== i.focusIndex && (i._trigger("focus", t, {
                        item: e
                    }),
                    i.isOpen || i._select(e, t)),
                    i.focusIndex = e.index,
                    i.button.attr("aria-activedescendant", i.menuItems.eq(e.index).attr("id"))
                }
            }).menu("instance"),
            this.menuInstance._off(this.menu, "mouseleave"),
            this.menuInstance._closeOnDocumentClick = function() {
                return !1
            }
            ,
            this.menuInstance._isDivider = function() {
                return !1
            }
        },
        refresh: function() {
            this._refreshMenu(),
            this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item") || {})),
            null === this.options.width && this._resizeButton()
        },
        _refreshMenu: function() {
            var t = this.element.find("option");
            this.menu.empty(),
            this._parseOptions(t),
            this._renderMenu(this.menu, this.items),
            this.menuInstance.refresh(),
            this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),
            this._rendered = !0,
            t.length && (t = this._getSelectedItem(),
            this.menuInstance.focus(null, t),
            this._setAria(t.data("ui-selectmenu-item")),
            this._setOption("disabled", this.element.prop("disabled")))
        },
        open: function(t) {
            this.options.disabled || (this._rendered ? (this._removeClass(this.menu.find(".ui-state-active"), null, "ui-state-active"),
            this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(),
            this.menuItems.length && (this.isOpen = !0,
            this._toggleAttr(),
            this._resizeMenu(),
            this._position(),
            this._on(this.document, this._documentClick),
            this._trigger("open", t)))
        },
        _position: function() {
            this.menuWrap.position(V.extend({
                of: this.button
            }, this.options.position))
        },
        close: function(t) {
            this.isOpen && (this.isOpen = !1,
            this._toggleAttr(),
            this.range = null,
            this._off(this.document),
            this._trigger("close", t))
        },
        widget: function() {
            return this.button
        },
        menuWidget: function() {
            return this.menu
        },
        _renderButtonItem: function(t) {
            var e = V("<span>");
            return this._setText(e, t.label),
            this._addClass(e, "ui-selectmenu-text"),
            e
        },
        _renderMenu: function(s, t) {
            var n = this
              , o = "";
            V.each(t, function(t, e) {
                var i;
                e.optgroup !== o && (i = V("<li>", {
                    text: e.optgroup
                }),
                n._addClass(i, "ui-selectmenu-optgroup", "ui-menu-divider" + (e.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : "")),
                i.appendTo(s),
                o = e.optgroup),
                n._renderItemData(s, e)
            })
        },
        _renderItemData: function(t, e) {
            return this._renderItem(t, e).data("ui-selectmenu-item", e)
        },
        _renderItem: function(t, e) {
            var i = V("<li>")
              , s = V("<div>", {
                title: e.element.attr("title")
            });
            return e.disabled && this._addClass(i, null, "ui-state-disabled"),
            e.hidden ? i.prop("hidden", !0) : this._setText(s, e.label),
            i.append(s).appendTo(t)
        },
        _setText: function(t, e) {
            e ? t.text(e) : t.html("&#160;")
        },
        _move: function(t, e) {
            var i, s = ".ui-menu-item";
            this.isOpen ? i = this.menuItems.eq(this.focusIndex).parent("li") : (i = this.menuItems.eq(this.element[0].selectedIndex).parent("li"),
            s += ":not(.ui-state-disabled)"),
            (i = "first" === t || "last" === t ? i["first" === t ? "prevAll" : "nextAll"](s).eq(-1) : i[t + "All"](s).eq(0)).length && this.menuInstance.focus(e, i)
        },
        _getSelectedItem: function() {
            return this.menuItems.eq(this.element[0].selectedIndex).parent("li")
        },
        _toggle: function(t) {
            this[this.isOpen ? "close" : "open"](t)
        },
        _setSelection: function() {
            var t;
            this.range && (window.getSelection ? ((t = window.getSelection()).removeAllRanges(),
            t.addRange(this.range)) : this.range.select(),
            this.button.trigger("focus"))
        },
        _documentClick: {
            mousedown: function(t) {
                !this.isOpen || V(t.target).closest(".ui-selectmenu-menu, #" + V.escapeSelector(this.ids.button)).length || this.close(t)
            }
        },
        _buttonEvents: {
            mousedown: function() {
                var t;
                window.getSelection ? (t = window.getSelection()).rangeCount && (this.range = t.getRangeAt(0)) : this.range = document.selection.createRange()
            },
            click: function(t) {
                this._setSelection(),
                this._toggle(t)
            },
            keydown: function(t) {
                var e = !0;
                switch (t.keyCode) {
                case V.ui.keyCode.TAB:
                case V.ui.keyCode.ESCAPE:
                    this.close(t),
                    e = !1;
                    break;
                case V.ui.keyCode.ENTER:
                    this.isOpen && this._selectFocusedItem(t);
                    break;
                case V.ui.keyCode.UP:
                    t.altKey ? this._toggle(t) : this._move("prev", t);
                    break;
                case V.ui.keyCode.DOWN:
                    t.altKey ? this._toggle(t) : this._move("next", t);
                    break;
                case V.ui.keyCode.SPACE:
                    this.isOpen ? this._selectFocusedItem(t) : this._toggle(t);
                    break;
                case V.ui.keyCode.LEFT:
                    this._move("prev", t);
                    break;
                case V.ui.keyCode.RIGHT:
                    this._move("next", t);
                    break;
                case V.ui.keyCode.HOME:
                case V.ui.keyCode.PAGE_UP:
                    this._move("first", t);
                    break;
                case V.ui.keyCode.END:
                case V.ui.keyCode.PAGE_DOWN:
                    this._move("last", t);
                    break;
                default:
                    this.menu.trigger(t),
                    e = !1
                }
                e && t.preventDefault()
            }
        },
        _selectFocusedItem: function(t) {
            var e = this.menuItems.eq(this.focusIndex).parent("li");
            e.hasClass("ui-state-disabled") || this._select(e.data("ui-selectmenu-item"), t)
        },
        _select: function(t, e) {
            var i = this.element[0].selectedIndex;
            this.element[0].selectedIndex = t.index,
            this.buttonItem.replaceWith(this.buttonItem = this._renderButtonItem(t)),
            this._setAria(t),
            this._trigger("select", e, {
                item: t
            }),
            t.index !== i && this._trigger("change", e, {
                item: t
            }),
            this.close(e)
        },
        _setAria: function(t) {
            t = this.menuItems.eq(t.index).attr("id");
            this.button.attr({
                "aria-labelledby": t,
                "aria-activedescendant": t
            }),
            this.menu.attr("aria-activedescendant", t)
        },
        _setOption: function(t, e) {
            var i;
            "icons" === t && (i = this.button.find("span.ui-icon"),
            this._removeClass(i, null, this.options.icons.button)._addClass(i, null, e.button)),
            this._super(t, e),
            "appendTo" === t && this.menuWrap.appendTo(this._appendTo()),
            "width" === t && this._resizeButton()
        },
        _setOptionDisabled: function(t) {
            this._super(t),
            this.menuInstance.option("disabled", t),
            this.button.attr("aria-disabled", t),
            this._toggleClass(this.button, null, "ui-state-disabled", t),
            this.element.prop("disabled", t),
            t ? (this.button.attr("tabindex", -1),
            this.close()) : this.button.attr("tabindex", 0)
        },
        _appendTo: function() {
            var t = this.options.appendTo;
            return t = (t = (t = t && (t.jquery || t.nodeType ? V(t) : this.document.find(t).eq(0))) && t[0] ? t : this.element.closest(".ui-front, dialog")).length ? t : this.document[0].body
        },
        _toggleAttr: function() {
            this.button.attr("aria-expanded", this.isOpen),
            this._removeClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "closed" : "open"))._addClass(this.button, "ui-selectmenu-button-" + (this.isOpen ? "open" : "closed"))._toggleClass(this.menuWrap, "ui-selectmenu-open", null, this.isOpen),
            this.menu.attr("aria-hidden", !this.isOpen)
        },
        _resizeButton: function() {
            var t = this.options.width;
            !1 === t ? this.button.css("width", "") : (null === t && (t = this.element.show().outerWidth(),
            this.element.hide()),
            this.button.outerWidth(t))
        },
        _resizeMenu: function() {
            this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1))
        },
        _getCreateOptions: function() {
            var t = this._super();
            return t.disabled = this.element.prop("disabled"),
            t
        },
        _parseOptions: function(t) {
            var i = this
              , s = [];
            t.each(function(t, e) {
                s.push(i._parseOption(V(e), t))
            }),
            this.items = s
        },
        _parseOption: function(t, e) {
            var i = t.parent("optgroup");
            return {
                element: t,
                index: e,
                value: t.val(),
                label: t.text(),
                hidden: i.prop("hidden") || t.prop("hidden"),
                optgroup: i.attr("label") || "",
                disabled: i.prop("disabled") || t.prop("disabled")
            }
        },
        _destroy: function() {
            this._unbindFormResetHandler(),
            this.menuWrap.remove(),
            this.button.remove(),
            this.element.show(),
            this.element.removeUniqueId(),
            this.labels.attr("for", this.ids.element)
        }
    }]),
    V.widget("ui.slider", V.ui.mouse, {
        version: "1.13.3",
        widgetEventPrefix: "slide",
        options: {
            animate: !1,
            classes: {
                "ui-slider": "ui-corner-all",
                "ui-slider-handle": "ui-corner-all",
                "ui-slider-range": "ui-corner-all ui-widget-header"
            },
            distance: 0,
            max: 100,
            min: 0,
            orientation: "horizontal",
            range: !1,
            step: 1,
            value: 0,
            values: null,
            change: null,
            slide: null,
            start: null,
            stop: null
        },
        numPages: 5,
        _create: function() {
            this._keySliding = !1,
            this._mouseSliding = !1,
            this._animateOff = !0,
            this._handleIndex = null,
            this._detectOrientation(),
            this._mouseInit(),
            this._calculateNewMax(),
            this._addClass("ui-slider ui-slider-" + this.orientation, "ui-widget ui-widget-content"),
            this._refresh(),
            this._animateOff = !1
        },
        _refresh: function() {
            this._createRange(),
            this._createHandles(),
            this._setupEvents(),
            this._refreshValue()
        },
        _createHandles: function() {
            var t, e = this.options, i = this.element.find(".ui-slider-handle"), s = [], n = e.values && e.values.length || 1;
            for (i.length > n && (i.slice(n).remove(),
            i = i.slice(0, n)),
            t = i.length; t < n; t++)
                s.push("<span tabindex='0'></span>");
            this.handles = i.add(V(s.join("")).appendTo(this.element)),
            this._addClass(this.handles, "ui-slider-handle", "ui-state-default"),
            this.handle = this.handles.eq(0),
            this.handles.each(function(t) {
                V(this).data("ui-slider-handle-index", t).attr("tabIndex", 0)
            })
        },
        _createRange: function() {
            var t = this.options;
            t.range ? (!0 === t.range && (t.values ? t.values.length && 2 !== t.values.length ? t.values = [t.values[0], t.values[0]] : Array.isArray(t.values) && (t.values = t.values.slice(0)) : t.values = [this._valueMin(), this._valueMin()]),
            this.range && this.range.length ? (this._removeClass(this.range, "ui-slider-range-min ui-slider-range-max"),
            this.range.css({
                left: "",
                bottom: ""
            })) : (this.range = V("<div>").appendTo(this.element),
            this._addClass(this.range, "ui-slider-range")),
            "min" !== t.range && "max" !== t.range || this._addClass(this.range, "ui-slider-range-" + t.range)) : (this.range && this.range.remove(),
            this.range = null)
        },
        _setupEvents: function() {
            this._off(this.handles),
            this._on(this.handles, this._handleEvents),
            this._hoverable(this.handles),
            this._focusable(this.handles)
        },
        _destroy: function() {
            this.handles.remove(),
            this.range && this.range.remove(),
            this._mouseDestroy()
        },
        _mouseCapture: function(t) {
            var i, s, n, o, e, a, r = this, l = this.options;
            return !l.disabled && (this.elementSize = {
                width: this.element.outerWidth(),
                height: this.element.outerHeight()
            },
            this.elementOffset = this.element.offset(),
            e = {
                x: t.pageX,
                y: t.pageY
            },
            i = this._normValueFromMouse(e),
            s = this._valueMax() - this._valueMin() + 1,
            this.handles.each(function(t) {
                var e = Math.abs(i - r.values(t));
                (e < s || s === e && (t === r._lastChangedValue || r.values(t) === l.min)) && (s = e,
                n = V(this),
                o = t)
            }),
            !1 !== this._start(t, o)) && (this._mouseSliding = !0,
            this._handleIndex = o,
            this._addClass(n, null, "ui-state-active"),
            n.trigger("focus"),
            e = n.offset(),
            a = !V(t.target).parents().addBack().is(".ui-slider-handle"),
            this._clickOffset = a ? {
                left: 0,
                top: 0
            } : {
                left: t.pageX - e.left - n.width() / 2,
                top: t.pageY - e.top - n.height() / 2 - (parseInt(n.css("borderTopWidth"), 10) || 0) - (parseInt(n.css("borderBottomWidth"), 10) || 0) + (parseInt(n.css("marginTop"), 10) || 0)
            },
            this.handles.hasClass("ui-state-hover") || this._slide(t, o, i),
            this._animateOff = !0)
        },
        _mouseStart: function() {
            return !0
        },
        _mouseDrag: function(t) {
            var e = {
                x: t.pageX,
                y: t.pageY
            }
              , e = this._normValueFromMouse(e);
            return this._slide(t, this._handleIndex, e),
            !1
        },
        _mouseStop: function(t) {
            return this._removeClass(this.handles, null, "ui-state-active"),
            this._mouseSliding = !1,
            this._stop(t, this._handleIndex),
            this._change(t, this._handleIndex),
            this._handleIndex = null,
            this._clickOffset = null,
            this._animateOff = !1
        },
        _detectOrientation: function() {
            this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
        },
        _normValueFromMouse: function(t) {
            var e, t = "horizontal" === this.orientation ? (e = this.elementSize.width,
            t.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (e = this.elementSize.height,
            t.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), t = t / e;
            return (t = 1 < t ? 1 : t) < 0 && (t = 0),
            "vertical" === this.orientation && (t = 1 - t),
            e = this._valueMax() - this._valueMin(),
            t = this._valueMin() + t * e,
            this._trimAlignValue(t)
        },
        _uiHash: function(t, e, i) {
            var s = {
                handle: this.handles[t],
                handleIndex: t,
                value: void 0 !== e ? e : this.value()
            };
            return this._hasMultipleValues() && (s.value = void 0 !== e ? e : this.values(t),
            s.values = i || this.values()),
            s
        },
        _hasMultipleValues: function() {
            return this.options.values && this.options.values.length
        },
        _start: function(t, e) {
            return this._trigger("start", t, this._uiHash(e))
        },
        _slide: function(t, e, i) {
            var s, n = this.value(), o = this.values();
            this._hasMultipleValues() && (s = this.values(e ? 0 : 1),
            n = this.values(e),
            2 === this.options.values.length && !0 === this.options.range && (i = 0 === e ? Math.min(s, i) : Math.max(s, i)),
            o[e] = i),
            i !== n && !1 !== this._trigger("slide", t, this._uiHash(e, i, o)) && (this._hasMultipleValues() ? this.values(e, i) : this.value(i))
        },
        _stop: function(t, e) {
            this._trigger("stop", t, this._uiHash(e))
        },
        _change: function(t, e) {
            this._keySliding || this._mouseSliding || (this._lastChangedValue = e,
            this._trigger("change", t, this._uiHash(e)))
        },
        value: function(t) {
            if (!arguments.length)
                return this._value();
            this.options.value = this._trimAlignValue(t),
            this._refreshValue(),
            this._change(null, 0)
        },
        values: function(t, e) {
            var i, s, n;
            if (1 < arguments.length)
                this.options.values[t] = this._trimAlignValue(e),
                this._refreshValue(),
                this._change(null, t);
            else {
                if (!arguments.length)
                    return this._values();
                if (!Array.isArray(t))
                    return this._hasMultipleValues() ? this._values(t) : this.value();
                for (i = this.options.values,
                s = t,
                n = 0; n < i.length; n += 1)
                    i[n] = this._trimAlignValue(s[n]),
                    this._change(null, n);
                this._refreshValue()
            }
        },
        _setOption: function(t, e) {
            var i, s = 0;
            switch ("range" === t && !0 === this.options.range && ("min" === e ? (this.options.value = this._values(0),
            this.options.values = null) : "max" === e && (this.options.value = this._values(this.options.values.length - 1),
            this.options.values = null)),
            Array.isArray(this.options.values) && (s = this.options.values.length),
            this._super(t, e),
            t) {
            case "orientation":
                this._detectOrientation(),
                this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-" + this.orientation),
                this._refreshValue(),
                this.options.range && this._refreshRange(e),
                this.handles.css("horizontal" === e ? "bottom" : "left", "");
                break;
            case "value":
                this._animateOff = !0,
                this._refreshValue(),
                this._change(null, 0),
                this._animateOff = !1;
                break;
            case "values":
                for (this._animateOff = !0,
                this._refreshValue(),
                i = s - 1; 0 <= i; i--)
                    this._change(null, i);
                this._animateOff = !1;
                break;
            case "step":
            case "min":
            case "max":
                this._animateOff = !0,
                this._calculateNewMax(),
                this._refreshValue(),
                this._animateOff = !1;
                break;
            case "range":
                this._animateOff = !0,
                this._refresh(),
                this._animateOff = !1
            }
        },
        _setOptionDisabled: function(t) {
            this._super(t),
            this._toggleClass(null, "ui-state-disabled", !!t)
        },
        _value: function() {
            var t = this.options.value;
            return this._trimAlignValue(t)
        },
        _values: function(t) {
            var e, i;
            if (arguments.length)
                return t = this.options.values[t],
                this._trimAlignValue(t);
            if (this._hasMultipleValues()) {
                for (e = this.options.values.slice(),
                i = 0; i < e.length; i += 1)
                    e[i] = this._trimAlignValue(e[i]);
                return e
            }
            return []
        },
        _trimAlignValue: function(t) {
            var e, i;
            return t <= this._valueMin() ? this._valueMin() : t >= this._valueMax() ? this._valueMax() : (e = 0 < this.options.step ? this.options.step : 1,
            i = t - (t = (t - this._valueMin()) % e),
            2 * Math.abs(t) >= e && (i += 0 < t ? e : -e),
            parseFloat(i.toFixed(5)))
        },
        _calculateNewMax: function() {
            var t = this.options.max
              , e = this._valueMin()
              , i = this.options.step;
            (t = Math.round((t - e) / i) * i + e) > this.options.max && (t -= i),
            this.max = parseFloat(t.toFixed(this._precision()))
        },
        _precision: function() {
            var t = this._precisionOf(this.options.step);
            return t = null !== this.options.min ? Math.max(t, this._precisionOf(this.options.min)) : t
        },
        _precisionOf: function(t) {
            var t = t.toString()
              , e = t.indexOf(".");
            return -1 === e ? 0 : t.length - e - 1
        },
        _valueMin: function() {
            return this.options.min
        },
        _valueMax: function() {
            return this.max
        },
        _refreshRange: function(t) {
            "vertical" === t && this.range.css({
                width: "",
                left: ""
            }),
            "horizontal" === t && this.range.css({
                height: "",
                bottom: ""
            })
        },
        _refreshValue: function() {
            var e, i, t, s, n, o = this.options.range, a = this.options, r = this, l = !this._animateOff && a.animate, h = {};
            this._hasMultipleValues() ? this.handles.each(function(t) {
                i = (r.values(t) - r._valueMin()) / (r._valueMax() - r._valueMin()) * 100,
                h["horizontal" === r.orientation ? "left" : "bottom"] = i + "%",
                V(this).stop(1, 1)[l ? "animate" : "css"](h, a.animate),
                !0 === r.options.range && ("horizontal" === r.orientation ? (0 === t && r.range.stop(1, 1)[l ? "animate" : "css"]({
                    left: i + "%"
                }, a.animate),
                1 === t && r.range[l ? "animate" : "css"]({
                    width: i - e + "%"
                }, {
                    queue: !1,
                    duration: a.animate
                })) : (0 === t && r.range.stop(1, 1)[l ? "animate" : "css"]({
                    bottom: i + "%"
                }, a.animate),
                1 === t && r.range[l ? "animate" : "css"]({
                    height: i - e + "%"
                }, {
                    queue: !1,
                    duration: a.animate
                }))),
                e = i
            }) : (t = this.value(),
            s = this._valueMin(),
            n = this._valueMax(),
            i = n !== s ? (t - s) / (n - s) * 100 : 0,
            h["horizontal" === this.orientation ? "left" : "bottom"] = i + "%",
            this.handle.stop(1, 1)[l ? "animate" : "css"](h, a.animate),
            "min" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({
                width: i + "%"
            }, a.animate),
            "max" === o && "horizontal" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({
                width: 100 - i + "%"
            }, a.animate),
            "min" === o && "vertical" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({
                height: i + "%"
            }, a.animate),
            "max" === o && "vertical" === this.orientation && this.range.stop(1, 1)[l ? "animate" : "css"]({
                height: 100 - i + "%"
            }, a.animate))
        },
        _handleEvents: {
            keydown: function(t) {
                var e, i, s, n = V(t.target).data("ui-slider-handle-index");
                switch (t.keyCode) {
                case V.ui.keyCode.HOME:
                case V.ui.keyCode.END:
                case V.ui.keyCode.PAGE_UP:
                case V.ui.keyCode.PAGE_DOWN:
                case V.ui.keyCode.UP:
                case V.ui.keyCode.RIGHT:
                case V.ui.keyCode.DOWN:
                case V.ui.keyCode.LEFT:
                    if (t.preventDefault(),
                    this._keySliding || (this._keySliding = !0,
                    this._addClass(V(t.target), null, "ui-state-active"),
                    !1 !== this._start(t, n)))
                        break;
                    return
                }
                switch (s = this.options.step,
                e = i = this._hasMultipleValues() ? this.values(n) : this.value(),
                t.keyCode) {
                case V.ui.keyCode.HOME:
                    i = this._valueMin();
                    break;
                case V.ui.keyCode.END:
                    i = this._valueMax();
                    break;
                case V.ui.keyCode.PAGE_UP:
                    i = this._trimAlignValue(e + (this._valueMax() - this._valueMin()) / this.numPages);
                    break;
                case V.ui.keyCode.PAGE_DOWN:
                    i = this._trimAlignValue(e - (this._valueMax() - this._valueMin()) / this.numPages);
                    break;
                case V.ui.keyCode.UP:
                case V.ui.keyCode.RIGHT:
                    if (e === this._valueMax())
                        return;
                    i = this._trimAlignValue(e + s);
                    break;
                case V.ui.keyCode.DOWN:
                case V.ui.keyCode.LEFT:
                    if (e === this._valueMin())
                        return;
                    i = this._trimAlignValue(e - s)
                }
                this._slide(t, n, i)
            },
            keyup: function(t) {
                var e = V(t.target).data("ui-slider-handle-index");
                this._keySliding && (this._keySliding = !1,
                this._stop(t, e),
                this._change(t, e),
                this._removeClass(V(t.target), null, "ui-state-active"))
            }
        }
    }),
    V.widget("ui.sortable", V.ui.mouse, {
        version: "1.13.3",
        widgetEventPrefix: "sort",
        ready: !1,
        options: {
            appendTo: "parent",
            axis: !1,
            connectWith: !1,
            containment: !1,
            cursor: "auto",
            cursorAt: !1,
            dropOnEmpty: !0,
            forcePlaceholderSize: !1,
            forceHelperSize: !1,
            grid: !1,
            handle: !1,
            helper: "original",
            items: "> *",
            opacity: !1,
            placeholder: !1,
            revert: !1,
            scroll: !0,
            scrollSensitivity: 20,
            scrollSpeed: 20,
            scope: "default",
            tolerance: "intersect",
            zIndex: 1e3,
            activate: null,
            beforeStop: null,
            change: null,
            deactivate: null,
            out: null,
            over: null,
            receive: null,
            remove: null,
            sort: null,
            start: null,
            stop: null,
            update: null
        },
        _isOverAxis: function(t, e, i) {
            return e <= t && t < e + i
        },
        _isFloating: function(t) {
            return /left|right/.test(t.css("float")) || /inline|table-cell/.test(t.css("display"))
        },
        _create: function() {
            this.containerCache = {},
            this._addClass("ui-sortable"),
            this.refresh(),
            this.offset = this.element.offset(),
            this._mouseInit(),
            this._setHandleClassName(),
            this.ready = !0
        },
        _setOption: function(t, e) {
            this._super(t, e),
            "handle" === t && this._setHandleClassName()
        },
        _setHandleClassName: function() {
            var t = this;
            this._removeClass(this.element.find(".ui-sortable-handle"), "ui-sortable-handle"),
            V.each(this.items, function() {
                t._addClass(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item, "ui-sortable-handle")
            })
        },
        _destroy: function() {
            this._mouseDestroy();
            for (var t = this.items.length - 1; 0 <= t; t--)
                this.items[t].item.removeData(this.widgetName + "-item");
            return this
        },
        _mouseCapture: function(t, e) {
            var i = null
              , s = !1
              , n = this;
            return !(this.reverting || this.options.disabled || "static" === this.options.type || (this._refreshItems(t),
            V(t.target).parents().each(function() {
                if (V.data(this, n.widgetName + "-item") === n)
                    return i = V(this),
                    !1
            }),
            !(i = V.data(t.target, n.widgetName + "-item") === n ? V(t.target) : i)) || (this.options.handle && !e && (V(this.options.handle, i).find("*").addBack().each(function() {
                this === t.target && (s = !0)
            }),
            !s) || (this.currentItem = i,
            this._removeCurrentsFromItems(),
            0)))
        },
        _mouseStart: function(t, e, i) {
            var s, n, o = this.options;
            if ((this.currentContainer = this).refreshPositions(),
            this.appendTo = V("parent" !== o.appendTo ? o.appendTo : this.currentItem.parent()),
            this.helper = this._createHelper(t),
            this._cacheHelperProportions(),
            this._cacheMargins(),
            this.offset = this.currentItem.offset(),
            this.offset = {
                top: this.offset.top - this.margins.top,
                left: this.offset.left - this.margins.left
            },
            V.extend(this.offset, {
                click: {
                    left: t.pageX - this.offset.left,
                    top: t.pageY - this.offset.top
                },
                relative: this._getRelativeOffset()
            }),
            this.helper.css("position", "absolute"),
            this.cssPosition = this.helper.css("position"),
            o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt),
            this.domPosition = {
                prev: this.currentItem.prev()[0],
                parent: this.currentItem.parent()[0]
            },
            this.helper[0] !== this.currentItem[0] && this.currentItem.hide(),
            this._createPlaceholder(),
            this.scrollParent = this.placeholder.scrollParent(),
            V.extend(this.offset, {
                parent: this._getParentOffset()
            }),
            o.containment && this._setContainment(),
            o.cursor && "auto" !== o.cursor && (n = this.document.find("body"),
            this.storedCursor = n.css("cursor"),
            n.css("cursor", o.cursor),
            this.storedStylesheet = V("<style>*{ cursor: " + o.cursor + " !important; }</style>").appendTo(n)),
            o.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")),
            this.helper.css("zIndex", o.zIndex)),
            o.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")),
            this.helper.css("opacity", o.opacity)),
            this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()),
            this._trigger("start", t, this._uiHash()),
            this._preserveHelperProportions || this._cacheHelperProportions(),
            !i)
                for (s = this.containers.length - 1; 0 <= s; s--)
                    this.containers[s]._trigger("activate", t, this._uiHash(this));
            return V.ui.ddmanager && (V.ui.ddmanager.current = this),
            V.ui.ddmanager && !o.dropBehaviour && V.ui.ddmanager.prepareOffsets(this, t),
            this.dragging = !0,
            this._addClass(this.helper, "ui-sortable-helper"),
            this.helper.parent().is(this.appendTo) || (this.helper.detach().appendTo(this.appendTo),
            this.offset.parent = this._getParentOffset()),
            this.position = this.originalPosition = this._generatePosition(t),
            this.originalPageX = t.pageX,
            this.originalPageY = t.pageY,
            this.lastPositionAbs = this.positionAbs = this._convertPositionTo("absolute"),
            this._mouseDrag(t),
            !0
        },
        _scroll: function(t) {
            var e = this.options
              , i = !1;
            return this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - t.pageY < e.scrollSensitivity ? this.scrollParent[0].scrollTop = i = this.scrollParent[0].scrollTop + e.scrollSpeed : t.pageY - this.overflowOffset.top < e.scrollSensitivity && (this.scrollParent[0].scrollTop = i = this.scrollParent[0].scrollTop - e.scrollSpeed),
            this.overflowOffset.left + this.scrollParent[0].offsetWidth - t.pageX < e.scrollSensitivity ? this.scrollParent[0].scrollLeft = i = this.scrollParent[0].scrollLeft + e.scrollSpeed : t.pageX - this.overflowOffset.left < e.scrollSensitivity && (this.scrollParent[0].scrollLeft = i = this.scrollParent[0].scrollLeft - e.scrollSpeed)) : (t.pageY - this.document.scrollTop() < e.scrollSensitivity ? i = this.document.scrollTop(this.document.scrollTop() - e.scrollSpeed) : this.window.height() - (t.pageY - this.document.scrollTop()) < e.scrollSensitivity && (i = this.document.scrollTop(this.document.scrollTop() + e.scrollSpeed)),
            t.pageX - this.document.scrollLeft() < e.scrollSensitivity ? i = this.document.scrollLeft(this.document.scrollLeft() - e.scrollSpeed) : this.window.width() - (t.pageX - this.document.scrollLeft()) < e.scrollSensitivity && (i = this.document.scrollLeft(this.document.scrollLeft() + e.scrollSpeed))),
            i
        },
        _mouseDrag: function(t) {
            var e, i, s, n, o = this.options;
            for (this.position = this._generatePosition(t),
            this.positionAbs = this._convertPositionTo("absolute"),
            this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px"),
            this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px"),
            o.scroll && !1 !== this._scroll(t) && (this._refreshItemPositions(!0),
            V.ui.ddmanager) && !o.dropBehaviour && V.ui.ddmanager.prepareOffsets(this, t),
            this.dragDirection = {
                vertical: this._getDragVerticalDirection(),
                horizontal: this._getDragHorizontalDirection()
            },
            e = this.items.length - 1; 0 <= e; e--)
                if (s = (i = this.items[e]).item[0],
                (n = this._intersectsWithPointer(i)) && i.instance === this.currentContainer && !(s === this.currentItem[0] || this.placeholder[1 === n ? "next" : "prev"]()[0] === s || V.contains(this.placeholder[0], s) || "semi-dynamic" === this.options.type && V.contains(this.element[0], s))) {
                    if (this.direction = 1 === n ? "down" : "up",
                    "pointer" !== this.options.tolerance && !this._intersectsWithSides(i))
                        break;
                    this._rearrange(t, i),
                    this._trigger("change", t, this._uiHash());
                    break
                }
            return this._contactContainers(t),
            V.ui.ddmanager && V.ui.ddmanager.drag(this, t),
            this._trigger("sort", t, this._uiHash()),
            this.lastPositionAbs = this.positionAbs,
            !1
        },
        _mouseStop: function(t, e) {
            var i, s, n, o;
            if (t)
                return V.ui.ddmanager && !this.options.dropBehaviour && V.ui.ddmanager.drop(this, t),
                this.options.revert ? (s = (i = this).placeholder.offset(),
                o = {},
                (n = this.options.axis) && "x" !== n || (o.left = s.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)),
                n && "y" !== n || (o.top = s.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)),
                this.reverting = !0,
                V(this.helper).animate(o, parseInt(this.options.revert, 10) || 500, function() {
                    i._clear(t)
                })) : this._clear(t, e),
                !1
        },
        cancel: function() {
            if (this.dragging) {
                this._mouseUp(new V.Event("mouseup",{
                    target: null
                })),
                "original" === this.options.helper ? (this.currentItem.css(this._storedCSS),
                this._removeClass(this.currentItem, "ui-sortable-helper")) : this.currentItem.show();
                for (var t = this.containers.length - 1; 0 <= t; t--)
                    this.containers[t]._trigger("deactivate", null, this._uiHash(this)),
                    this.containers[t].containerCache.over && (this.containers[t]._trigger("out", null, this._uiHash(this)),
                    this.containers[t].containerCache.over = 0)
            }
            return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
            "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(),
            V.extend(this, {
                helper: null,
                dragging: !1,
                reverting: !1,
                _noFinalSort: null
            }),
            this.domPosition.prev ? V(this.domPosition.prev).after(this.currentItem) : V(this.domPosition.parent).prepend(this.currentItem)),
            this
        },
        serialize: function(e) {
            var t = this._getItemsAsjQuery(e && e.connected)
              , i = [];
            return e = e || {},
            V(t).each(function() {
                var t = (V(e.item || this).attr(e.attribute || "id") || "").match(e.expression || /(.+)[\-=_](.+)/);
                t && i.push((e.key || t[1] + "[]") + "=" + (e.key && e.expression ? t[1] : t[2]))
            }),
            !i.length && e.key && i.push(e.key + "="),
            i.join("&")
        },
        toArray: function(t) {
            var e = this._getItemsAsjQuery(t && t.connected)
              , i = [];
            return t = t || {},
            e.each(function() {
                i.push(V(t.item || this).attr(t.attribute || "id") || "")
            }),
            i
        },
        _intersectsWith: function(t) {
            var e = this.positionAbs.left
              , i = e + this.helperProportions.width
              , s = this.positionAbs.top
              , n = s + this.helperProportions.height
              , o = t.left
              , a = o + t.width
              , r = t.top
              , l = r + t.height
              , h = this.offset.click.top
              , c = this.offset.click.left
              , h = "x" === this.options.axis || r < s + h && s + h < l
              , c = "y" === this.options.axis || o < e + c && e + c < a;
            return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > t[this.floating ? "width" : "height"] ? h && c : o < e + this.helperProportions.width / 2 && i - this.helperProportions.width / 2 < a && r < s + this.helperProportions.height / 2 && n - this.helperProportions.height / 2 < l
        },
        _intersectsWithPointer: function(t) {
            var e = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height)
              , t = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width);
            return !(!e || !t) && (e = this.dragDirection.vertical,
            t = this.dragDirection.horizontal,
            this.floating ? "right" === t || "down" === e ? 2 : 1 : e && ("down" === e ? 2 : 1))
        },
        _intersectsWithSides: function(t) {
            var e = this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height)
              , t = this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width)
              , i = this.dragDirection.vertical
              , s = this.dragDirection.horizontal;
            return this.floating && s ? "right" === s && t || "left" === s && !t : i && ("down" === i && e || "up" === i && !e)
        },
        _getDragVerticalDirection: function() {
            var t = this.positionAbs.top - this.lastPositionAbs.top;
            return 0 != t && (0 < t ? "down" : "up")
        },
        _getDragHorizontalDirection: function() {
            var t = this.positionAbs.left - this.lastPositionAbs.left;
            return 0 != t && (0 < t ? "right" : "left")
        },
        refresh: function(t) {
            return this._refreshItems(t),
            this._setHandleClassName(),
            this.refreshPositions(),
            this
        },
        _connectWith: function() {
            var t = this.options;
            return t.connectWith.constructor === String ? [t.connectWith] : t.connectWith
        },
        _getItemsAsjQuery: function(t) {
            var e, i, s, n, o = [], a = [], r = this._connectWith();
            if (r && t)
                for (e = r.length - 1; 0 <= e; e--)
                    for (i = (s = V(r[e], this.document[0])).length - 1; 0 <= i; i--)
                        (n = V.data(s[i], this.widgetFullName)) && n !== this && !n.options.disabled && a.push(["function" == typeof n.options.items ? n.options.items.call(n.element) : V(n.options.items, n.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), n]);
            function l() {
                o.push(this)
            }
            for (a.push(["function" == typeof this.options.items ? this.options.items.call(this.element, null, {
                options: this.options,
                item: this.currentItem
            }) : V(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]),
            e = a.length - 1; 0 <= e; e--)
                a[e][0].each(l);
            return V(o)
        },
        _removeCurrentsFromItems: function() {
            var i = this.currentItem.find(":data(" + this.widgetName + "-item)");
            this.items = V.grep(this.items, function(t) {
                for (var e = 0; e < i.length; e++)
                    if (i[e] === t.item[0])
                        return !1;
                return !0
            })
        },
        _refreshItems: function(t) {
            this.items = [],
            this.containers = [this];
            var e, i, s, n, o, a, r, l, h = this.items, c = [["function" == typeof this.options.items ? this.options.items.call(this.element[0], t, {
                item: this.currentItem
            }) : V(this.options.items, this.element), this]], u = this._connectWith();
            if (u && this.ready)
                for (e = u.length - 1; 0 <= e; e--)
                    for (i = (s = V(u[e], this.document[0])).length - 1; 0 <= i; i--)
                        (n = V.data(s[i], this.widgetFullName)) && n !== this && !n.options.disabled && (c.push(["function" == typeof n.options.items ? n.options.items.call(n.element[0], t, {
                            item: this.currentItem
                        }) : V(n.options.items, n.element), n]),
                        this.containers.push(n));
            for (e = c.length - 1; 0 <= e; e--)
                for (o = c[e][1],
                l = (a = c[e][i = 0]).length; i < l; i++)
                    (r = V(a[i])).data(this.widgetName + "-item", o),
                    h.push({
                        item: r,
                        instance: o,
                        width: 0,
                        height: 0,
                        left: 0,
                        top: 0
                    })
        },
        _refreshItemPositions: function(t) {
            for (var e, i, s = this.items.length - 1; 0 <= s; s--)
                e = this.items[s],
                this.currentContainer && e.instance !== this.currentContainer && e.item[0] !== this.currentItem[0] || (i = this.options.toleranceElement ? V(this.options.toleranceElement, e.item) : e.item,
                t || (e.width = i.outerWidth(),
                e.height = i.outerHeight()),
                i = i.offset(),
                e.left = i.left,
                e.top = i.top)
        },
        refreshPositions: function(t) {
            var e, i;
            if (this.floating = !!this.items.length && ("x" === this.options.axis || this._isFloating(this.items[0].item)),
            this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset()),
            this._refreshItemPositions(t),
            this.options.custom && this.options.custom.refreshContainers)
                this.options.custom.refreshContainers.call(this);
            else
                for (e = this.containers.length - 1; 0 <= e; e--)
                    i = this.containers[e].element.offset(),
                    this.containers[e].containerCache.left = i.left,
                    this.containers[e].containerCache.top = i.top,
                    this.containers[e].containerCache.width = this.containers[e].element.outerWidth(),
                    this.containers[e].containerCache.height = this.containers[e].element.outerHeight();
            return this
        },
        _createPlaceholder: function(i) {
            var s, n, o = (i = i || this).options;
            o.placeholder && o.placeholder.constructor !== String || (s = o.placeholder,
            n = i.currentItem[0].nodeName.toLowerCase(),
            o.placeholder = {
                element: function() {
                    var t = V("<" + n + ">", i.document[0]);
                    return i._addClass(t, "ui-sortable-placeholder", s || i.currentItem[0].className)._removeClass(t, "ui-sortable-helper"),
                    "tbody" === n ? i._createTrPlaceholder(i.currentItem.find("tr").eq(0), V("<tr>", i.document[0]).appendTo(t)) : "tr" === n ? i._createTrPlaceholder(i.currentItem, t) : "img" === n && t.attr("src", i.currentItem.attr("src")),
                    s || t.css("visibility", "hidden"),
                    t
                },
                update: function(t, e) {
                    s && !o.forcePlaceholderSize || (e.height() && (!o.forcePlaceholderSize || "tbody" !== n && "tr" !== n) || e.height(i.currentItem.innerHeight() - parseInt(i.currentItem.css("paddingTop") || 0, 10) - parseInt(i.currentItem.css("paddingBottom") || 0, 10)),
                    e.width()) || e.width(i.currentItem.innerWidth() - parseInt(i.currentItem.css("paddingLeft") || 0, 10) - parseInt(i.currentItem.css("paddingRight") || 0, 10))
                }
            }),
            i.placeholder = V(o.placeholder.element.call(i.element, i.currentItem)),
            i.currentItem.after(i.placeholder),
            o.placeholder.update(i, i.placeholder)
        },
        _createTrPlaceholder: function(t, e) {
            var i = this;
            t.children().each(function() {
                V("<td>&#160;</td>", i.document[0]).attr("colspan", V(this).attr("colspan") || 1).appendTo(e)
            })
        },
        _contactContainers: function(t) {
            for (var e, i, s, n, o, a, r, l, h, c = null, u = null, d = this.containers.length - 1; 0 <= d; d--)
                V.contains(this.currentItem[0], this.containers[d].element[0]) || (this._intersectsWith(this.containers[d].containerCache) ? c && V.contains(this.containers[d].element[0], c.element[0]) || (c = this.containers[d],
                u = d) : this.containers[d].containerCache.over && (this.containers[d]._trigger("out", t, this._uiHash(this)),
                this.containers[d].containerCache.over = 0));
            if (c)
                if (1 === this.containers.length)
                    this.containers[u].containerCache.over || (this.containers[u]._trigger("over", t, this._uiHash(this)),
                    this.containers[u].containerCache.over = 1);
                else {
                    for (i = 1e4,
                    s = null,
                    n = (l = c.floating || this._isFloating(this.currentItem)) ? "left" : "top",
                    o = l ? "width" : "height",
                    h = l ? "pageX" : "pageY",
                    e = this.items.length - 1; 0 <= e; e--)
                        V.contains(this.containers[u].element[0], this.items[e].item[0]) && this.items[e].item[0] !== this.currentItem[0] && (a = this.items[e].item.offset()[n],
                        r = !1,
                        t[h] - a > this.items[e][o] / 2 && (r = !0),
                        Math.abs(t[h] - a) < i) && (i = Math.abs(t[h] - a),
                        s = this.items[e],
                        this.direction = r ? "up" : "down");
                    (s || this.options.dropOnEmpty) && (this.currentContainer === this.containers[u] ? this.currentContainer.containerCache.over || (this.containers[u]._trigger("over", t, this._uiHash()),
                    this.currentContainer.containerCache.over = 1) : (s ? this._rearrange(t, s, null, !0) : this._rearrange(t, null, this.containers[u].element, !0),
                    this._trigger("change", t, this._uiHash()),
                    this.containers[u]._trigger("change", t, this._uiHash(this)),
                    this.currentContainer = this.containers[u],
                    this.options.placeholder.update(this.currentContainer, this.placeholder),
                    this.scrollParent = this.placeholder.scrollParent(),
                    this.scrollParent[0] !== this.document[0] && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()),
                    this.containers[u]._trigger("over", t, this._uiHash(this)),
                    this.containers[u].containerCache.over = 1))
                }
        },
        _createHelper: function(t) {
            var e = this.options
              , t = "function" == typeof e.helper ? V(e.helper.apply(this.element[0], [t, this.currentItem])) : "clone" === e.helper ? this.currentItem.clone() : this.currentItem;
            return t.parents("body").length || this.appendTo[0].appendChild(t[0]),
            t[0] === this.currentItem[0] && (this._storedCSS = {
                width: this.currentItem[0].style.width,
                height: this.currentItem[0].style.height,
                position: this.currentItem.css("position"),
                top: this.currentItem.css("top"),
                left: this.currentItem.css("left")
            }),
            t[0].style.width && !e.forceHelperSize || t.width(this.currentItem.width()),
            t[0].style.height && !e.forceHelperSize || t.height(this.currentItem.height()),
            t
        },
        _adjustOffsetFromHelper: function(t) {
            "string" == typeof t && (t = t.split(" ")),
            "left"in (t = Array.isArray(t) ? {
                left: +t[0],
                top: +t[1] || 0
            } : t) && (this.offset.click.left = t.left + this.margins.left),
            "right"in t && (this.offset.click.left = this.helperProportions.width - t.right + this.margins.left),
            "top"in t && (this.offset.click.top = t.top + this.margins.top),
            "bottom"in t && (this.offset.click.top = this.helperProportions.height - t.bottom + this.margins.top)
        },
        _getParentOffset: function() {
            this.offsetParent = this.helper.offsetParent();
            var t = this.offsetParent.offset();
            return "absolute" === this.cssPosition && this.scrollParent[0] !== this.document[0] && V.contains(this.scrollParent[0], this.offsetParent[0]) && (t.left += this.scrollParent.scrollLeft(),
            t.top += this.scrollParent.scrollTop()),
            {
                top: (t = this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && V.ui.ie ? {
                    top: 0,
                    left: 0
                } : t).top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
                left: t.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
            }
        },
        _getRelativeOffset: function() {
            var t;
            return "relative" === this.cssPosition ? {
                top: (t = this.currentItem.position()).top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
                left: t.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
            } : {
                top: 0,
                left: 0
            }
        },
        _cacheMargins: function() {
            this.margins = {
                left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
                top: parseInt(this.currentItem.css("marginTop"), 10) || 0
            }
        },
        _cacheHelperProportions: function() {
            this.helperProportions = {
                width: this.helper.outerWidth(),
                height: this.helper.outerHeight()
            }
        },
        _setContainment: function() {
            var t, e, i = this.options;
            "parent" === i.containment && (i.containment = this.helper[0].parentNode),
            "document" !== i.containment && "window" !== i.containment || (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, "document" === i.containment ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, ("document" === i.containment ? this.document.height() || document.body.parentNode.scrollHeight : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]),
            /^(document|window|parent)$/.test(i.containment) || (t = V(i.containment)[0],
            i = V(i.containment).offset(),
            e = "hidden" !== V(t).css("overflow"),
            this.containment = [i.left + (parseInt(V(t).css("borderLeftWidth"), 10) || 0) + (parseInt(V(t).css("paddingLeft"), 10) || 0) - this.margins.left, i.top + (parseInt(V(t).css("borderTopWidth"), 10) || 0) + (parseInt(V(t).css("paddingTop"), 10) || 0) - this.margins.top, i.left + (e ? Math.max(t.scrollWidth, t.offsetWidth) : t.offsetWidth) - (parseInt(V(t).css("borderLeftWidth"), 10) || 0) - (parseInt(V(t).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, i.top + (e ? Math.max(t.scrollHeight, t.offsetHeight) : t.offsetHeight) - (parseInt(V(t).css("borderTopWidth"), 10) || 0) - (parseInt(V(t).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top])
        },
        _convertPositionTo: function(t, e) {
            e = e || this.position;
            var t = "absolute" === t ? 1 : -1
              , i = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && V.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent
              , s = /(html|body)/i.test(i[0].tagName);
            return {
                top: e.top + this.offset.relative.top * t + this.offset.parent.top * t - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : s ? 0 : i.scrollTop()) * t,
                left: e.left + this.offset.relative.left * t + this.offset.parent.left * t - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : s ? 0 : i.scrollLeft()) * t
            }
        },
        _generatePosition: function(t) {
            var e = this.options
              , i = t.pageX
              , s = t.pageY
              , n = "absolute" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && V.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent
              , o = /(html|body)/i.test(n[0].tagName);
            return "relative" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()),
            this.originalPosition && (this.containment && (t.pageX - this.offset.click.left < this.containment[0] && (i = this.containment[0] + this.offset.click.left),
            t.pageY - this.offset.click.top < this.containment[1] && (s = this.containment[1] + this.offset.click.top),
            t.pageX - this.offset.click.left > this.containment[2] && (i = this.containment[2] + this.offset.click.left),
            t.pageY - this.offset.click.top > this.containment[3]) && (s = this.containment[3] + this.offset.click.top),
            e.grid) && (t = this.originalPageY + Math.round((s - this.originalPageY) / e.grid[1]) * e.grid[1],
            s = !this.containment || t - this.offset.click.top >= this.containment[1] && t - this.offset.click.top <= this.containment[3] ? t : t - this.offset.click.top >= this.containment[1] ? t - e.grid[1] : t + e.grid[1],
            t = this.originalPageX + Math.round((i - this.originalPageX) / e.grid[0]) * e.grid[0],
            i = !this.containment || t - this.offset.click.left >= this.containment[0] && t - this.offset.click.left <= this.containment[2] ? t : t - this.offset.click.left >= this.containment[0] ? t - e.grid[0] : t + e.grid[0]),
            {
                top: s - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : n.scrollTop()),
                left: i - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : n.scrollLeft())
            }
        },
        _rearrange: function(t, e, i, s) {
            i ? i[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? e.item[0] : e.item[0].nextSibling),
            this.counter = this.counter ? ++this.counter : 1;
            var n = this.counter;
            this._delay(function() {
                n === this.counter && this.refreshPositions(!s)
            })
        },
        _clear: function(t, e) {
            this.reverting = !1;
            var i, s = [];
            if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem),
            this._noFinalSort = null,
            this.helper[0] === this.currentItem[0]) {
                for (i in this._storedCSS)
                    "auto" !== this._storedCSS[i] && "static" !== this._storedCSS[i] || (this._storedCSS[i] = "");
                this.currentItem.css(this._storedCSS),
                this._removeClass(this.currentItem, "ui-sortable-helper")
            } else
                this.currentItem.show();
            function n(e, i, s) {
                return function(t) {
                    s._trigger(e, t, i._uiHash(i))
                }
            }
            for (this.fromOutside && !e && s.push(function(t) {
                this._trigger("receive", t, this._uiHash(this.fromOutside))
            }),
            !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || s.push(function(t) {
                this._trigger("update", t, this._uiHash())
            }),
            this === this.currentContainer || e || (s.push(function(t) {
                this._trigger("remove", t, this._uiHash())
            }),
            s.push(function(e) {
                return function(t) {
                    e._trigger("receive", t, this._uiHash(this))
                }
            }
            .call(this, this.currentContainer)),
            s.push(function(e) {
                return function(t) {
                    e._trigger("update", t, this._uiHash(this))
                }
            }
            .call(this, this.currentContainer))),
            i = this.containers.length - 1; 0 <= i; i--)
                e || s.push(n("deactivate", this, this.containers[i])),
                this.containers[i].containerCache.over && (s.push(n("out", this, this.containers[i])),
                this.containers[i].containerCache.over = 0);
            if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor),
            this.storedStylesheet.remove()),
            this._storedOpacity && this.helper.css("opacity", this._storedOpacity),
            this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex),
            this.dragging = !1,
            e || this._trigger("beforeStop", t, this._uiHash()),
            this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
            this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(),
            this.helper = null),
            !e) {
                for (i = 0; i < s.length; i++)
                    s[i].call(this, t);
                this._trigger("stop", t, this._uiHash())
            }
            return this.fromOutside = !1,
            !this.cancelHelperRemoval
        },
        _trigger: function() {
            !1 === V.Widget.prototype._trigger.apply(this, arguments) && this.cancel()
        },
        _uiHash: function(t) {
            var e = t || this;
            return {
                helper: e.helper,
                placeholder: e.placeholder || V([]),
                position: e.position,
                originalPosition: e.originalPosition,
                offset: e.positionAbs,
                item: e.currentItem,
                sender: t ? t.element : null
            }
        }
    });
    function A(e) {
        return function() {
            var t = this.element.val();
            e.apply(this, arguments),
            this._refresh(),
            t !== this.element.val() && this._trigger("change")
        }
    }
    V.widget("ui.spinner", {
        version: "1.13.3",
        defaultElement: "<input>",
        widgetEventPrefix: "spin",
        options: {
            classes: {
                "ui-spinner": "ui-corner-all",
                "ui-spinner-down": "ui-corner-br",
                "ui-spinner-up": "ui-corner-tr"
            },
            culture: null,
            icons: {
                down: "ui-icon-triangle-1-s",
                up: "ui-icon-triangle-1-n"
            },
            incremental: !0,
            max: null,
            min: null,
            numberFormat: null,
            page: 10,
            step: 1,
            change: null,
            spin: null,
            start: null,
            stop: null
        },
        _create: function() {
            this._setOption("max", this.options.max),
            this._setOption("min", this.options.min),
            this._setOption("step", this.options.step),
            "" !== this.value() && this._value(this.element.val(), !0),
            this._draw(),
            this._on(this._events),
            this._refresh(),
            this._on(this.window, {
                beforeunload: function() {
                    this.element.removeAttr("autocomplete")
                }
            })
        },
        _getCreateOptions: function() {
            var s = this._super()
              , n = this.element;
            return V.each(["min", "max", "step"], function(t, e) {
                var i = n.attr(e);
                null != i && i.length && (s[e] = i)
            }),
            s
        },
        _events: {
            keydown: function(t) {
                this._start(t) && this._keydown(t) && t.preventDefault()
            },
            keyup: "_stop",
            focus: function() {
                this.previous = this.element.val()
            },
            blur: function(t) {
                this.cancelBlur ? delete this.cancelBlur : (this._stop(),
                this._refresh(),
                this.previous !== this.element.val() && this._trigger("change", t))
            },
            mousewheel: function(t, e) {
                var i = V.ui.safeActiveElement(this.document[0]);
                if (this.element[0] === i && e) {
                    if (!this.spinning && !this._start(t))
                        return !1;
                    this._spin((0 < e ? 1 : -1) * this.options.step, t),
                    clearTimeout(this.mousewheelTimer),
                    this.mousewheelTimer = this._delay(function() {
                        this.spinning && this._stop(t)
                    }, 100),
                    t.preventDefault()
                }
            },
            "mousedown .ui-spinner-button": function(t) {
                var e;
                function i() {
                    this.element[0] !== V.ui.safeActiveElement(this.document[0]) && (this.element.trigger("focus"),
                    this.previous = e,
                    this._delay(function() {
                        this.previous = e
                    }))
                }
                e = this.element[0] === V.ui.safeActiveElement(this.document[0]) ? this.previous : this.element.val(),
                t.preventDefault(),
                i.call(this),
                this.cancelBlur = !0,
                this._delay(function() {
                    delete this.cancelBlur,
                    i.call(this)
                }),
                !1 !== this._start(t) && this._repeat(null, V(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t)
            },
            "mouseup .ui-spinner-button": "_stop",
            "mouseenter .ui-spinner-button": function(t) {
                if (V(t.currentTarget).hasClass("ui-state-active"))
                    return !1 !== this._start(t) && void this._repeat(null, V(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, t)
            },
            "mouseleave .ui-spinner-button": "_stop"
        },
        _enhance: function() {
            this.uiSpinner = this.element.attr("autocomplete", "off").wrap("<span>").parent().append("<a></a><a></a>")
        },
        _draw: function() {
            this._enhance(),
            this._addClass(this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content"),
            this._addClass("ui-spinner-input"),
            this.element.attr("role", "spinbutton"),
            this.buttons = this.uiSpinner.children("a").attr("tabIndex", -1).attr("aria-hidden", !0).button({
                classes: {
                    "ui-button": ""
                }
            }),
            this._removeClass(this.buttons, "ui-corner-all"),
            this._addClass(this.buttons.first(), "ui-spinner-button ui-spinner-up"),
            this._addClass(this.buttons.last(), "ui-spinner-button ui-spinner-down"),
            this.buttons.first().button({
                icon: this.options.icons.up,
                showLabel: !1
            }),
            this.buttons.last().button({
                icon: this.options.icons.down,
                showLabel: !1
            }),
            this.buttons.height() > Math.ceil(.5 * this.uiSpinner.height()) && 0 < this.uiSpinner.height() && this.uiSpinner.height(this.uiSpinner.height())
        },
        _keydown: function(t) {
            var e = this.options
              , i = V.ui.keyCode;
            switch (t.keyCode) {
            case i.UP:
                return this._repeat(null, 1, t),
                !0;
            case i.DOWN:
                return this._repeat(null, -1, t),
                !0;
            case i.PAGE_UP:
                return this._repeat(null, e.page, t),
                !0;
            case i.PAGE_DOWN:
                return this._repeat(null, -e.page, t),
                !0
            }
            return !1
        },
        _start: function(t) {
            return !(!this.spinning && !1 === this._trigger("start", t)) && (this.counter || (this.counter = 1),
            this.spinning = !0)
        },
        _repeat: function(t, e, i) {
            t = t || 500,
            clearTimeout(this.timer),
            this.timer = this._delay(function() {
                this._repeat(40, e, i)
            }, t),
            this._spin(e * this.options.step, i)
        },
        _spin: function(t, e) {
            var i = this.value() || 0;
            this.counter || (this.counter = 1),
            i = this._adjustValue(i + t * this._increment(this.counter)),
            this.spinning && !1 === this._trigger("spin", e, {
                value: i
            }) || (this._value(i),
            this.counter++)
        },
        _increment: function(t) {
            var e = this.options.incremental;
            return e ? "function" == typeof e ? e(t) : Math.floor(t * t * t / 5e4 - t * t / 500 + 17 * t / 200 + 1) : 1
        },
        _precision: function() {
            var t = this._precisionOf(this.options.step);
            return t = null !== this.options.min ? Math.max(t, this._precisionOf(this.options.min)) : t
        },
        _precisionOf: function(t) {
            var t = t.toString()
              , e = t.indexOf(".");
            return -1 === e ? 0 : t.length - e - 1
        },
        _adjustValue: function(t) {
            var e = this.options
              , i = null !== e.min ? e.min : 0
              , s = t - i;
            return t = i + Math.round(s / e.step) * e.step,
            t = parseFloat(t.toFixed(this._precision())),
            null !== e.max && t > e.max ? e.max : null !== e.min && t < e.min ? e.min : t
        },
        _stop: function(t) {
            this.spinning && (clearTimeout(this.timer),
            clearTimeout(this.mousewheelTimer),
            this.counter = 0,
            this.spinning = !1,
            this._trigger("stop", t))
        },
        _setOption: function(t, e) {
            var i;
            "culture" === t || "numberFormat" === t ? (i = this._parse(this.element.val()),
            this.options[t] = e,
            this.element.val(this._format(i))) : ("max" !== t && "min" !== t && "step" !== t || "string" == typeof e && (e = this._parse(e)),
            "icons" === t && (i = this.buttons.first().find(".ui-icon"),
            this._removeClass(i, null, this.options.icons.up),
            this._addClass(i, null, e.up),
            i = this.buttons.last().find(".ui-icon"),
            this._removeClass(i, null, this.options.icons.down),
            this._addClass(i, null, e.down)),
            this._super(t, e))
        },
        _setOptionDisabled: function(t) {
            this._super(t),
            this._toggleClass(this.uiSpinner, null, "ui-state-disabled", !!t),
            this.element.prop("disabled", !!t),
            this.buttons.button(t ? "disable" : "enable")
        },
        _setOptions: A(function(t) {
            this._super(t)
        }),
        _parse: function(t) {
            return "" === (t = "string" == typeof t && "" !== t ? window.Globalize && this.options.numberFormat ? Globalize.parseFloat(t, 10, this.options.culture) : +t : t) || isNaN(t) ? null : t
        },
        _format: function(t) {
            return "" === t ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(t, this.options.numberFormat, this.options.culture) : t
        },
        _refresh: function() {
            this.element.attr({
                "aria-valuemin": this.options.min,
                "aria-valuemax": this.options.max,
                "aria-valuenow": this._parse(this.element.val())
            })
        },
        isValid: function() {
            var t = this.value();
            return null !== t && t === this._adjustValue(t)
        },
        _value: function(t, e) {
            var i;
            "" !== t && null !== (i = this._parse(t)) && (e || (i = this._adjustValue(i)),
            t = this._format(i)),
            this.element.val(t),
            this._refresh()
        },
        _destroy: function() {
            this.element.prop("disabled", !1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),
            this.uiSpinner.replaceWith(this.element)
        },
        stepUp: A(function(t) {
            this._stepUp(t)
        }),
        _stepUp: function(t) {
            this._start() && (this._spin((t || 1) * this.options.step),
            this._stop())
        },
        stepDown: A(function(t) {
            this._stepDown(t)
        }),
        _stepDown: function(t) {
            this._start() && (this._spin((t || 1) * -this.options.step),
            this._stop())
        },
        pageUp: A(function(t) {
            this._stepUp((t || 1) * this.options.page)
        }),
        pageDown: A(function(t) {
            this._stepDown((t || 1) * this.options.page)
        }),
        value: function(t) {
            if (!arguments.length)
                return this._parse(this.element.val());
            A(this._value).call(this, t)
        },
        widget: function() {
            return this.uiSpinner
        }
    }),
    !1 !== V.uiBackCompat && V.widget("ui.spinner", V.ui.spinner, {
        _enhance: function() {
            this.uiSpinner = this.element.attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())
        },
        _uiSpinnerHtml: function() {
            return "<span>"
        },
        _buttonHtml: function() {
            return "<a></a><a></a>"
        }
    });
    var O;
    V.ui.spinner,
    V.widget("ui.tabs", {
        version: "1.13.3",
        delay: 300,
        options: {
            active: null,
            classes: {
                "ui-tabs": "ui-corner-all",
                "ui-tabs-nav": "ui-corner-all",
                "ui-tabs-panel": "ui-corner-bottom",
                "ui-tabs-tab": "ui-corner-top"
            },
            collapsible: !1,
            event: "click",
            heightStyle: "content",
            hide: null,
            show: null,
            activate: null,
            beforeActivate: null,
            beforeLoad: null,
            load: null
        },
        _isLocal: (O = /#.*$/,
        function(t) {
            var e = t.href.replace(O, "")
              , i = location.href.replace(O, "");
            try {
                e = decodeURIComponent(e)
            } catch (t) {}
            try {
                i = decodeURIComponent(i)
            } catch (t) {}
            return 1 < t.hash.length && e === i
        }
        ),
        _create: function() {
            var e = this
              , t = this.options;
            this.running = !1,
            this._addClass("ui-tabs", "ui-widget ui-widget-content"),
            this._toggleClass("ui-tabs-collapsible", null, t.collapsible),
            this._processTabs(),
            t.active = this._initialActive(),
            Array.isArray(t.disabled) && (t.disabled = V.uniqueSort(t.disabled.concat(V.map(this.tabs.filter(".ui-state-disabled"), function(t) {
                return e.tabs.index(t)
            }))).sort()),
            !1 !== this.options.active && this.anchors.length ? this.active = this._findActive(t.active) : this.active = V(),
            this._refresh(),
            this.active.length && this.load(t.active)
        },
        _initialActive: function() {
            var i = this.options.active
              , t = this.options.collapsible
              , s = location.hash.substring(1);
            return null === i && (s && this.tabs.each(function(t, e) {
                if (V(e).attr("aria-controls") === s)
                    return i = t,
                    !1
            }),
            null !== (i = null === i ? this.tabs.index(this.tabs.filter(".ui-tabs-active")) : i) && -1 !== i || (i = !!this.tabs.length && 0)),
            !1 !== i && -1 === (i = this.tabs.index(this.tabs.eq(i))) && (i = !t && 0),
            i = !t && !1 === i && this.anchors.length ? 0 : i
        },
        _getCreateEventData: function() {
            return {
                tab: this.active,
                panel: this.active.length ? this._getPanelForTab(this.active) : V()
            }
        },
        _tabKeydown: function(t) {
            var e = V(V.ui.safeActiveElement(this.document[0])).closest("li")
              , i = this.tabs.index(e)
              , s = !0;
            if (!this._handlePageNav(t)) {
                switch (t.keyCode) {
                case V.ui.keyCode.RIGHT:
                case V.ui.keyCode.DOWN:
                    i++;
                    break;
                case V.ui.keyCode.UP:
                case V.ui.keyCode.LEFT:
                    s = !1,
                    i--;
                    break;
                case V.ui.keyCode.END:
                    i = this.anchors.length - 1;
                    break;
                case V.ui.keyCode.HOME:
                    i = 0;
                    break;
                case V.ui.keyCode.SPACE:
                    return t.preventDefault(),
                    clearTimeout(this.activating),
                    void this._activate(i);
                case V.ui.keyCode.ENTER:
                    return t.preventDefault(),
                    clearTimeout(this.activating),
                    void this._activate(i !== this.options.active && i);
                default:
                    return
                }
                t.preventDefault(),
                clearTimeout(this.activating),
                i = this._focusNextTab(i, s),
                t.ctrlKey || t.metaKey || (e.attr("aria-selected", "false"),
                this.tabs.eq(i).attr("aria-selected", "true"),
                this.activating = this._delay(function() {
                    this.option("active", i)
                }, this.delay))
            }
        },
        _panelKeydown: function(t) {
            this._handlePageNav(t) || t.ctrlKey && t.keyCode === V.ui.keyCode.UP && (t.preventDefault(),
            this.active.trigger("focus"))
        },
        _handlePageNav: function(t) {
            return t.altKey && t.keyCode === V.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)),
            !0) : t.altKey && t.keyCode === V.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)),
            !0) : void 0
        },
        _findNextTab: function(t, e) {
            var i = this.tabs.length - 1;
            for (; -1 !== V.inArray(t = (t = i < t ? 0 : t) < 0 ? i : t, this.options.disabled); )
                t = e ? t + 1 : t - 1;
            return t
        },
        _focusNextTab: function(t, e) {
            return t = this._findNextTab(t, e),
            this.tabs.eq(t).trigger("focus"),
            t
        },
        _setOption: function(t, e) {
            "active" === t ? this._activate(e) : (this._super(t, e),
            "collapsible" === t && (this._toggleClass("ui-tabs-collapsible", null, e),
            e || !1 !== this.options.active || this._activate(0)),
            "event" === t && this._setupEvents(e),
            "heightStyle" === t && this._setupHeightStyle(e))
        },
        _sanitizeSelector: function(t) {
            return t ? t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : ""
        },
        refresh: function() {
            var t = this.options
              , e = this.tablist.children(":has(a[href])");
            t.disabled = V.map(e.filter(".ui-state-disabled"), function(t) {
                return e.index(t)
            }),
            this._processTabs(),
            !1 !== t.active && this.anchors.length ? this.active.length && !V.contains(this.tablist[0], this.active[0]) ? this.tabs.length === t.disabled.length ? (t.active = !1,
            this.active = V()) : this._activate(this._findNextTab(Math.max(0, t.active - 1), !1)) : t.active = this.tabs.index(this.active) : (t.active = !1,
            this.active = V()),
            this._refresh()
        },
        _refresh: function() {
            this._setOptionDisabled(this.options.disabled),
            this._setupEvents(this.options.event),
            this._setupHeightStyle(this.options.heightStyle),
            this.tabs.not(this.active).attr({
                "aria-selected": "false",
                "aria-expanded": "false",
                tabIndex: -1
            }),
            this.panels.not(this._getPanelForTab(this.active)).hide().attr({
                "aria-hidden": "true"
            }),
            this.active.length ? (this.active.attr({
                "aria-selected": "true",
                "aria-expanded": "true",
                tabIndex: 0
            }),
            this._addClass(this.active, "ui-tabs-active", "ui-state-active"),
            this._getPanelForTab(this.active).show().attr({
                "aria-hidden": "false"
            })) : this.tabs.eq(0).attr("tabIndex", 0)
        },
        _processTabs: function() {
            var l = this
              , t = this.tabs
              , e = this.anchors
              , i = this.panels;
            this.tablist = this._getList().attr("role", "tablist"),
            this._addClass(this.tablist, "ui-tabs-nav", "ui-helper-reset ui-helper-clearfix ui-widget-header"),
            this.tablist.on("mousedown" + this.eventNamespace, "> li", function(t) {
                V(this).is(".ui-state-disabled") && t.preventDefault()
            }).on("focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
                V(this).closest("li").is(".ui-state-disabled") && this.blur()
            }),
            this.tabs = this.tablist.find("> li:has(a[href])").attr({
                role: "tab",
                tabIndex: -1
            }),
            this._addClass(this.tabs, "ui-tabs-tab", "ui-state-default"),
            this.anchors = this.tabs.map(function() {
                return V("a", this)[0]
            }).attr({
                tabIndex: -1
            }),
            this._addClass(this.anchors, "ui-tabs-anchor"),
            this.panels = V(),
            this.anchors.each(function(t, e) {
                var i, s, n, o = V(e).uniqueId().attr("id"), a = V(e).closest("li"), r = a.attr("aria-controls");
                l._isLocal(e) ? (n = (i = e.hash).substring(1),
                s = l.element.find(l._sanitizeSelector(i))) : (n = a.attr("aria-controls") || V({}).uniqueId()[0].id,
                (s = l.element.find(i = "#" + n)).length || (s = l._createPanel(n)).insertAfter(l.panels[t - 1] || l.tablist),
                s.attr("aria-live", "polite")),
                s.length && (l.panels = l.panels.add(s)),
                r && a.data("ui-tabs-aria-controls", r),
                a.attr({
                    "aria-controls": n,
                    "aria-labelledby": o
                }),
                s.attr("aria-labelledby", o)
            }),
            this.panels.attr("role", "tabpanel"),
            this._addClass(this.panels, "ui-tabs-panel", "ui-widget-content"),
            t && (this._off(t.not(this.tabs)),
            this._off(e.not(this.anchors)),
            this._off(i.not(this.panels)))
        },
        _getList: function() {
            return this.tablist || this.element.find("ol, ul").eq(0)
        },
        _createPanel: function(t) {
            return V("<div>").attr("id", t).data("ui-tabs-destroy", !0)
        },
        _setOptionDisabled: function(t) {
            var e, i;
            for (Array.isArray(t) && (t.length ? t.length === this.anchors.length && (t = !0) : t = !1),
            i = 0; e = this.tabs[i]; i++)
                e = V(e),
                !0 === t || -1 !== V.inArray(i, t) ? (e.attr("aria-disabled", "true"),
                this._addClass(e, null, "ui-state-disabled")) : (e.removeAttr("aria-disabled"),
                this._removeClass(e, null, "ui-state-disabled"));
            this.options.disabled = t,
            this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !0 === t)
        },
        _setupEvents: function(t) {
            var i = {};
            t && V.each(t.split(" "), function(t, e) {
                i[e] = "_eventHandler"
            }),
            this._off(this.anchors.add(this.tabs).add(this.panels)),
            this._on(!0, this.anchors, {
                click: function(t) {
                    t.preventDefault()
                }
            }),
            this._on(this.anchors, i),
            this._on(this.tabs, {
                keydown: "_tabKeydown"
            }),
            this._on(this.panels, {
                keydown: "_panelKeydown"
            }),
            this._focusable(this.tabs),
            this._hoverable(this.tabs)
        },
        _setupHeightStyle: function(t) {
            var i, e = this.element.parent();
            "fill" === t ? (i = e.height(),
            i -= this.element.outerHeight() - this.element.height(),
            this.element.siblings(":visible").each(function() {
                var t = V(this)
                  , e = t.css("position");
                "absolute" !== e && "fixed" !== e && (i -= t.outerHeight(!0))
            }),
            this.element.children().not(this.panels).each(function() {
                i -= V(this).outerHeight(!0)
            }),
            this.panels.each(function() {
                V(this).height(Math.max(0, i - V(this).innerHeight() + V(this).height()))
            }).css("overflow", "auto")) : "auto" === t && (i = 0,
            this.panels.each(function() {
                i = Math.max(i, V(this).height("").height())
            }).height(i))
        },
        _eventHandler: function(t) {
            var e = this.options
              , i = this.active
              , s = V(t.currentTarget).closest("li")
              , n = s[0] === i[0]
              , o = n && e.collapsible
              , a = o ? V() : this._getPanelForTab(s)
              , r = i.length ? this._getPanelForTab(i) : V()
              , i = {
                oldTab: i,
                oldPanel: r,
                newTab: o ? V() : s,
                newPanel: a
            };
            t.preventDefault(),
            s.hasClass("ui-state-disabled") || s.hasClass("ui-tabs-loading") || this.running || n && !e.collapsible || !1 === this._trigger("beforeActivate", t, i) || (e.active = !o && this.tabs.index(s),
            this.active = n ? V() : s,
            this.xhr && this.xhr.abort(),
            r.length || a.length || V.error("jQuery UI Tabs: Mismatching fragment identifier."),
            a.length && this.load(this.tabs.index(s), t),
            this._toggle(t, i))
        },
        _toggle: function(t, e) {
            var i = this
              , s = e.newPanel
              , n = e.oldPanel;
            function o() {
                i.running = !1,
                i._trigger("activate", t, e)
            }
            function a() {
                i._addClass(e.newTab.closest("li"), "ui-tabs-active", "ui-state-active"),
                s.length && i.options.show ? i._show(s, i.options.show, o) : (s.show(),
                o())
            }
            this.running = !0,
            n.length && this.options.hide ? this._hide(n, this.options.hide, function() {
                i._removeClass(e.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"),
                a()
            }) : (this._removeClass(e.oldTab.closest("li"), "ui-tabs-active", "ui-state-active"),
            n.hide(),
            a()),
            n.attr("aria-hidden", "true"),
            e.oldTab.attr({
                "aria-selected": "false",
                "aria-expanded": "false"
            }),
            s.length && n.length ? e.oldTab.attr("tabIndex", -1) : s.length && this.tabs.filter(function() {
                return 0 === V(this).attr("tabIndex")
            }).attr("tabIndex", -1),
            s.attr("aria-hidden", "false"),
            e.newTab.attr({
                "aria-selected": "true",
                "aria-expanded": "true",
                tabIndex: 0
            })
        },
        _activate: function(t) {
            var t = this._findActive(t);
            t[0] !== this.active[0] && (t = (t = t.length ? t : this.active).find(".ui-tabs-anchor")[0],
            this._eventHandler({
                target: t,
                currentTarget: t,
                preventDefault: V.noop
            }))
        },
        _findActive: function(t) {
            return !1 === t ? V() : this.tabs.eq(t)
        },
        _getIndex: function(t) {
            return t = "string" == typeof t ? this.anchors.index(this.anchors.filter("[href$='" + V.escapeSelector(t) + "']")) : t
        },
        _destroy: function() {
            this.xhr && this.xhr.abort(),
            this.tablist.removeAttr("role").off(this.eventNamespace),
            this.anchors.removeAttr("role tabIndex").removeUniqueId(),
            this.tabs.add(this.panels).each(function() {
                V.data(this, "ui-tabs-destroy") ? V(this).remove() : V(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")
            }),
            this.tabs.each(function() {
                var t = V(this)
                  , e = t.data("ui-tabs-aria-controls");
                e ? t.attr("aria-controls", e).removeData("ui-tabs-aria-controls") : t.removeAttr("aria-controls")
            }),
            this.panels.show(),
            "content" !== this.options.heightStyle && this.panels.css("height", "")
        },
        enable: function(i) {
            var t = this.options.disabled;
            !1 !== t && (t = void 0 !== i && (i = this._getIndex(i),
            Array.isArray(t) ? V.map(t, function(t) {
                return t !== i ? t : null
            }) : V.map(this.tabs, function(t, e) {
                return e !== i ? e : null
            })),
            this._setOptionDisabled(t))
        },
        disable: function(t) {
            var e = this.options.disabled;
            if (!0 !== e) {
                if (void 0 === t)
                    e = !0;
                else {
                    if (t = this._getIndex(t),
                    -1 !== V.inArray(t, e))
                        return;
                    e = Array.isArray(e) ? V.merge([t], e).sort() : [t]
                }
                this._setOptionDisabled(e)
            }
        },
        load: function(t, s) {
            t = this._getIndex(t);
            function n(t, e) {
                "abort" === e && o.panels.stop(!1, !0),
                o._removeClass(i, "ui-tabs-loading"),
                a.removeAttr("aria-busy"),
                t === o.xhr && delete o.xhr
            }
            var o = this
              , i = this.tabs.eq(t)
              , t = i.find(".ui-tabs-anchor")
              , a = this._getPanelForTab(i)
              , r = {
                tab: i,
                panel: a
            };
            this._isLocal(t[0]) || (this.xhr = V.ajax(this._ajaxSettings(t, s, r)),
            this.xhr && "canceled" !== this.xhr.statusText && (this._addClass(i, "ui-tabs-loading"),
            a.attr("aria-busy", "true"),
            this.xhr.done(function(t, e, i) {
                setTimeout(function() {
                    a.html(t),
                    o._trigger("load", s, r),
                    n(i, e)
                }, 1)
            }).fail(function(t, e) {
                setTimeout(function() {
                    n(t, e)
                }, 1)
            })))
        },
        _ajaxSettings: function(t, i, s) {
            var n = this;
            return {
                url: t.attr("href").replace(/#.*$/, ""),
                beforeSend: function(t, e) {
                    return n._trigger("beforeLoad", i, V.extend({
                        jqXHR: t,
                        ajaxSettings: e
                    }, s))
                }
            }
        },
        _getPanelForTab: function(t) {
            t = V(t).attr("aria-controls");
            return this.element.find(this._sanitizeSelector("#" + t))
        }
    }),
    !1 !== V.uiBackCompat && V.widget("ui.tabs", V.ui.tabs, {
        _processTabs: function() {
            this._superApply(arguments),
            this._addClass(this.tabs, "ui-tab")
        }
    }),
    V.ui.tabs,
    V.widget("ui.tooltip", {
        version: "1.13.3",
        options: {
            classes: {
                "ui-tooltip": "ui-corner-all ui-widget-shadow"
            },
            content: function() {
                var t = V(this).attr("title");
                return V("<a>").text(t).html()
            },
            hide: !0,
            items: "[title]:not([disabled])",
            position: {
                my: "left top+15",
                at: "left bottom",
                collision: "flipfit flip"
            },
            show: !0,
            track: !1,
            close: null,
            open: null
        },
        _addDescribedBy: function(t, e) {
            var i = (t.attr("aria-describedby") || "").split(/\s+/);
            i.push(e),
            t.data("ui-tooltip-id", e).attr("aria-describedby", String.prototype.trim.call(i.join(" ")))
        },
        _removeDescribedBy: function(t) {
            var e = t.data("ui-tooltip-id")
              , i = (t.attr("aria-describedby") || "").split(/\s+/)
              , e = V.inArray(e, i);
            -1 !== e && i.splice(e, 1),
            t.removeData("ui-tooltip-id"),
            (i = String.prototype.trim.call(i.join(" "))) ? t.attr("aria-describedby", i) : t.removeAttr("aria-describedby")
        },
        _create: function() {
            this._on({
                mouseover: "open",
                focusin: "open"
            }),
            this.tooltips = {},
            this.parents = {},
            this.liveRegion = V("<div>").attr({
                role: "log",
                "aria-live": "assertive",
                "aria-relevant": "additions"
            }).appendTo(this.document[0].body),
            this._addClass(this.liveRegion, null, "ui-helper-hidden-accessible"),
            this.disabledTitles = V([])
        },
        _setOption: function(t, e) {
            var i = this;
            this._super(t, e),
            "content" === t && V.each(this.tooltips, function(t, e) {
                i._updateContent(e.element)
            })
        },
        _setOptionDisabled: function(t) {
            this[t ? "_disable" : "_enable"]()
        },
        _disable: function() {
            var s = this;
            V.each(this.tooltips, function(t, e) {
                var i = V.Event("blur");
                i.target = i.currentTarget = e.element[0],
                s.close(i, !0)
            }),
            this.disabledTitles = this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function() {
                var t = V(this);
                if (t.is("[title]"))
                    return t.data("ui-tooltip-title", t.attr("title")).removeAttr("title")
            }))
        },
        _enable: function() {
            this.disabledTitles.each(function() {
                var t = V(this);
                t.data("ui-tooltip-title") && t.attr("title", t.data("ui-tooltip-title"))
            }),
            this.disabledTitles = V([])
        },
        open: function(t) {
            var i = this
              , e = V(t ? t.target : this.element).closest(this.options.items);
            e.length && !e.data("ui-tooltip-id") && (e.attr("title") && e.data("ui-tooltip-title", e.attr("title")),
            e.data("ui-tooltip-open", !0),
            t && "mouseover" === t.type && e.parents().each(function() {
                var t, e = V(this);
                e.data("ui-tooltip-open") && ((t = V.Event("blur")).target = t.currentTarget = this,
                i.close(t, !0)),
                e.attr("title") && (e.uniqueId(),
                i.parents[this.id] = {
                    element: this,
                    title: e.attr("title")
                },
                e.attr("title", ""))
            }),
            this._registerCloseHandlers(t, e),
            this._updateContent(e, t))
        },
        _updateContent: function(e, i) {
            var t = this.options.content
              , s = this
              , n = i ? i.type : null;
            if ("string" == typeof t || t.nodeType || t.jquery)
                return this._open(i, e, t);
            (t = t.call(e[0], function(t) {
                s._delay(function() {
                    e.data("ui-tooltip-open") && (i && (i.type = n),
                    this._open(i, e, t))
                })
            })) && this._open(i, e, t)
        },
        _open: function(t, e, i) {
            var s, n, o, a = V.extend({}, this.options.position);
            function r(t) {
                a.of = t,
                s.is(":hidden") || s.position(a)
            }
            i && ((o = this._find(e)) ? o.tooltip.find(".ui-tooltip-content").html(i) : (e.is("[title]") && (t && "mouseover" === t.type ? e.attr("title", "") : e.removeAttr("title")),
            o = this._tooltip(e),
            s = o.tooltip,
            this._addDescribedBy(e, s.attr("id")),
            s.find(".ui-tooltip-content").html(i),
            this.liveRegion.children().hide(),
            (o = V("<div>").html(s.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),
            o.removeAttr("id").find("[id]").removeAttr("id"),
            o.appendTo(this.liveRegion),
            this.options.track && t && /^mouse/.test(t.type) ? (this._on(this.document, {
                mousemove: r
            }),
            r(t)) : s.position(V.extend({
                of: e
            }, this.options.position)),
            s.hide(),
            this._show(s, this.options.show),
            this.options.track && this.options.show && this.options.show.delay && (n = this.delayedShow = setInterval(function() {
                s.is(":visible") && (r(a.of),
                clearInterval(n))
            }, 13)),
            this._trigger("open", t, {
                tooltip: s
            })))
        },
        _registerCloseHandlers: function(t, e) {
            var i = {
                keyup: function(t) {
                    t.keyCode === V.ui.keyCode.ESCAPE && ((t = V.Event(t)).currentTarget = e[0],
                    this.close(t, !0))
                }
            };
            e[0] !== this.element[0] && (i.remove = function() {
                var t = this._find(e);
                t && this._removeTooltip(t.tooltip)
            }
            ),
            t && "mouseover" !== t.type || (i.mouseleave = "close"),
            t && "focusin" !== t.type || (i.focusout = "close"),
            this._on(!0, e, i)
        },
        close: function(t) {
            var e, i = this, s = V(t ? t.currentTarget : this.element), n = this._find(s);
            n ? (e = n.tooltip,
            n.closing || (clearInterval(this.delayedShow),
            s.data("ui-tooltip-title") && !s.attr("title") && s.attr("title", s.data("ui-tooltip-title")),
            this._removeDescribedBy(s),
            n.hiding = !0,
            e.stop(!0),
            this._hide(e, this.options.hide, function() {
                i._removeTooltip(V(this))
            }),
            s.removeData("ui-tooltip-open"),
            this._off(s, "mouseleave focusout keyup"),
            s[0] !== this.element[0] && this._off(s, "remove"),
            this._off(this.document, "mousemove"),
            t && "mouseleave" === t.type && V.each(this.parents, function(t, e) {
                V(e.element).attr("title", e.title),
                delete i.parents[t]
            }),
            n.closing = !0,
            this._trigger("close", t, {
                tooltip: e
            }),
            n.hiding) || (n.closing = !1)) : s.removeData("ui-tooltip-open")
        },
        _tooltip: function(t) {
            var e = V("<div>").attr("role", "tooltip")
              , i = V("<div>").appendTo(e)
              , s = e.uniqueId().attr("id");
            return this._addClass(i, "ui-tooltip-content"),
            this._addClass(e, "ui-tooltip", "ui-widget ui-widget-content"),
            e.appendTo(this._appendTo(t)),
            this.tooltips[s] = {
                element: t,
                tooltip: e
            }
        },
        _find: function(t) {
            t = t.data("ui-tooltip-id");
            return t ? this.tooltips[t] : null
        },
        _removeTooltip: function(t) {
            clearInterval(this.delayedShow),
            t.remove(),
            delete this.tooltips[t.attr("id")]
        },
        _appendTo: function(t) {
            t = t.closest(".ui-front, dialog");
            return t = t.length ? t : this.document[0].body
        },
        _destroy: function() {
            var s = this;
            V.each(this.tooltips, function(t, e) {
                var i = V.Event("blur")
                  , e = e.element;
                i.target = i.currentTarget = e[0],
                s.close(i, !0),
                V("#" + t).remove(),
                e.data("ui-tooltip-title") && (e.attr("title") || e.attr("title", e.data("ui-tooltip-title")),
                e.removeData("ui-tooltip-title"))
            }),
            this.liveRegion.remove()
        }
    }),
    !1 !== V.uiBackCompat && V.widget("ui.tooltip", V.ui.tooltip, {
        options: {
            tooltipClass: null
        },
        _tooltip: function() {
            var t = this._superApply(arguments);
            return this.options.tooltipClass && t.tooltip.addClass(this.options.tooltipClass),
            t
        }
    }),
    V.ui.tooltip
});

.citations-count {
    display: grid;
    /*grid-template-columns: 1fr 1fr 1fr 1fr;*/
    text-align: center;
    font-weight: bold;
}

.citations-count > div {
    display: none;
}

.citations-container .badge_total {
    display: inline-block;
    padding: .25em .4em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: .25rem;
    background-color: #646464;
    color: #fff;
}

.citations-count img {
    width: 90%;
    max-width: 200px;
}

.citations-list {
    margin-top: 30px;
}

.citations-list > div {
    margin: 15px 5px;
}

.citations-list a {
    overflow: hidden;
    white-space: nowrap;
}

.citations-list img {
    max-width: 80px;
}

.citations-table tr {
    margin: 0;
}

#citations-loader {
    margin: auto;
    z-index: 1;
    width: 50px;
    height: 50px;
    border: 3px solid #f3f3f3;
    border-radius: 50%;
    border-top: 3px solid #3498db;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
}

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.doiInSummary {
    margin: 5px 0;
}

#connect-orcid-button {
	margin-top: 2em;
	margin-bottom: 2em;
}

#orcid-id-logo {
	display: inline-block;
	width: 1.4em;
	height: 1.4em;
	margin-right: 0.5em;
	vertical-align: middle;
}

.orcid_icon {
	display: inline-block;
	margin-right: 0.25em;
	width: 24px;
	height: 24px;
	vertical-align: middle;
}

.orcid-failure {
	width:100%;
	background:#F6D8CE;
	border:1px solid #FF0000;
	border-radius:5px;
	padding:15px;
	margin-bottom:15px;
}

.orcid-success {
	width:100%;
	background:#E6F8E0;
	border:1px solid #3ADF00;
	border-radius:5px;
	padding:15px;
	margin-bottom:15px;
}

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

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"); } }

/**
 * --------------------------------------------------------------------------
 * Bootstrap (v4.0.0-beta): dropdown.js
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

var Dropdown = function ($) {

  /**
   * Check for Popper dependency
   * Popper - https://popper.js.org
   */
  if (typeof Popper === 'undefined') {
    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
  }

  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME = 'dropdown';
  var VERSION = '4.0.0-beta';
  var DATA_KEY = 'bs.dropdown';
  var EVENT_KEY = '.' + DATA_KEY;
  var DATA_API_KEY = '.data-api';
  var JQUERY_NO_CONFLICT = $.fn[NAME];
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE);

  var Event = {
    HIDE: 'hide' + EVENT_KEY,
    HIDDEN: 'hidden' + EVENT_KEY,
    SHOW: 'show' + EVENT_KEY,
    SHOWN: 'shown' + EVENT_KEY,
    CLICK: 'click' + EVENT_KEY,
    CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
    KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY,
    KEYUP_DATA_API: 'keyup' + EVENT_KEY + DATA_API_KEY
  };

  var ClassName = {
    DISABLED: 'disabled',
    SHOW: 'show',
    DROPUP: 'dropup',
    MENURIGHT: 'dropdown-menu-right',
    MENULEFT: 'dropdown-menu-left'
  };

  var Selector = {
    DATA_TOGGLE: '[data-toggle="dropdown"]',
    FORM_CHILD: '.dropdown form',
    MENU: '.dropdown-menu',
    NAVBAR_NAV: '.navbar-nav',
    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
  };

  var AttachmentMap = {
    TOP: 'top-start',
    TOPEND: 'top-end',
    BOTTOM: 'bottom-start',
    BOTTOMEND: 'bottom-end'
  };

  var Default = {
    placement: AttachmentMap.BOTTOM,
    offset: 0,
    flip: true
  };

  var DefaultType = {
    placement: 'string',
    offset: '(number|string)',
    flip: 'boolean'

    /**
     * ------------------------------------------------------------------------
     * Class Definition
     * ------------------------------------------------------------------------
     */

  };
  var Dropdown = function () {
    function Dropdown(element, config) {
      _classCallCheck(this, Dropdown);

      this._element = element;
      this._popper = null;
      this._config = this._getConfig(config);
      this._menu = this._getMenuElement();
      this._inNavbar = this._detectNavbar();

      this._addEventListeners();
    }

    // getters

    // public

    Dropdown.prototype.toggle = function toggle() {
      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
        return;
      }

      var parent = Dropdown._getParentFromElement(this._element);
      var isActive = $(this._menu).hasClass(ClassName.SHOW);

      Dropdown._clearMenus();

      if (isActive) {
        return;
      }

      var relatedTarget = {
        relatedTarget: this._element
      };
      var showEvent = $.Event(Event.SHOW, relatedTarget);

      $(parent).trigger(showEvent);

      if (showEvent.isDefaultPrevented()) {
        return;
      }

      var element = this._element;
      // for dropup with alignment we use the parent as popper container
      if ($(parent).hasClass(ClassName.DROPUP)) {
        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
          element = parent;
        }
      }
      this._popper = new Popper(element, this._menu, this._getPopperConfig());

      // if this is a touch-enabled device we add extra
      // empty mouseover listeners to the body's immediate children;
      // only needed because of broken event delegation on iOS
      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
        $('body').children().on('mouseover', null, $.noop);
      }

      this._element.focus();
      this._element.setAttribute('aria-expanded', true);

      $(this._menu).toggleClass(ClassName.SHOW);
      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
    };

    Dropdown.prototype.dispose = function dispose() {
      $.removeData(this._element, DATA_KEY);
      $(this._element).off(EVENT_KEY);
      this._element = null;
      this._menu = null;
      if (this._popper !== null) {
        this._popper.destroy();
      }
      this._popper = null;
    };

    Dropdown.prototype.update = function update() {
      this._inNavbar = this._detectNavbar();
      if (this._popper !== null) {
        this._popper.scheduleUpdate();
      }
    };

    // private

    Dropdown.prototype._addEventListeners = function _addEventListeners() {
      var _this = this;

      $(this._element).on(Event.CLICK, function (event) {
        event.preventDefault();
        event.stopPropagation();
        _this.toggle();
      });
    };

    Dropdown.prototype._getConfig = function _getConfig(config) {
      var elementData = $(this._element).data();
      if (elementData.placement !== undefined) {
        elementData.placement = AttachmentMap[elementData.placement.toUpperCase()];
      }

      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);

      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);

      return config;
    };

    Dropdown.prototype._getMenuElement = function _getMenuElement() {
      if (!this._menu) {
        var parent = Dropdown._getParentFromElement(this._element);
        this._menu = $(parent).find(Selector.MENU)[0];
      }
      return this._menu;
    };

    Dropdown.prototype._getPlacement = function _getPlacement() {
      var $parentDropdown = $(this._element).parent();
      var placement = this._config.placement;

      // Handle dropup
      if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {
        placement = AttachmentMap.TOP;
        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
          placement = AttachmentMap.TOPEND;
        }
      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
        placement = AttachmentMap.BOTTOMEND;
      }
      return placement;
    };

    Dropdown.prototype._detectNavbar = function _detectNavbar() {
      return $(this._element).closest('.navbar').length > 0;
    };

    Dropdown.prototype._getPopperConfig = function _getPopperConfig() {
      var popperConfig = {
        placement: this._getPlacement(),
        modifiers: {
          offset: {
            offset: this._config.offset
          },
          flip: {
            enabled: this._config.flip
          }
        }

        // Disable Popper.js for Dropdown in Navbar
      };if (this._inNavbar) {
        popperConfig.modifiers.applyStyle = {
          enabled: !this._inNavbar
        };
      }
      return popperConfig;
    };

    // static

    Dropdown._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
        var data = $(this).data(DATA_KEY);
        var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;

        if (!data) {
          data = new Dropdown(this, _config);
          $(this).data(DATA_KEY, data);
        }

        if (typeof config === 'string') {
          if (data[config] === undefined) {
            throw new Error('No method named "' + config + '"');
          }
          data[config]();
        }
      });
    };

    Dropdown._clearMenus = function _clearMenus(event) {
      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
        return;
      }

      var toggles = $.makeArray($(Selector.DATA_TOGGLE));
      for (var i = 0; i < toggles.length; i++) {
        var parent = Dropdown._getParentFromElement(toggles[i]);
        var context = $(toggles[i]).data(DATA_KEY);
        var relatedTarget = {
          relatedTarget: toggles[i]
        };

        if (!context) {
          continue;
        }

        var dropdownMenu = context._menu;
        if (!$(parent).hasClass(ClassName.SHOW)) {
          continue;
        }

        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
          continue;
        }

        var hideEvent = $.Event(Event.HIDE, relatedTarget);
        $(parent).trigger(hideEvent);
        if (hideEvent.isDefaultPrevented()) {
          continue;
        }

        // if this is a touch-enabled device we remove the extra
        // empty mouseover listeners we added for iOS support
        if ('ontouchstart' in document.documentElement) {
          $('body').children().off('mouseover', null, $.noop);
        }

        toggles[i].setAttribute('aria-expanded', 'false');

        $(dropdownMenu).removeClass(ClassName.SHOW);
        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
      }
    };

    Dropdown._getParentFromElement = function _getParentFromElement(element) {
      var parent = void 0;
      var selector = Util.getSelectorFromElement(element);

      if (selector) {
        parent = $(selector)[0];
      }

      return parent || element.parentNode;
    };

    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
        return;
      }

      event.preventDefault();
      event.stopPropagation();

      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
        return;
      }

      var parent = Dropdown._getParentFromElement(this);
      var isActive = $(parent).hasClass(ClassName.SHOW);

      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {

        if (event.which === ESCAPE_KEYCODE) {
          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
          $(toggle).trigger('focus');
        }

        $(this).trigger('click');
        return;
      }

      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();

      if (!items.length) {
        return;
      }

      var index = items.indexOf(event.target);

      if (event.which === ARROW_UP_KEYCODE && index > 0) {
        // up
        index--;
      }

      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
        // down
        index++;
      }

      if (index < 0) {
        index = 0;
      }

      items[index].focus();
    };

    _createClass(Dropdown, null, [{
      key: 'VERSION',
      get: function get() {
        return VERSION;
      }
    }, {
      key: 'Default',
      get: function get() {
        return Default;
      }
    }, {
      key: 'DefaultType',
      get: function get() {
        return DefaultType;
      }
    }]);

    return Dropdown;
  }();

  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */

  $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
    event.preventDefault();
    event.stopPropagation();
    Dropdown._jQueryInterface.call($(this), 'toggle');
  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
    e.stopPropagation();
  });

  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

  $.fn[NAME] = Dropdown._jQueryInterface;
  $.fn[NAME].Constructor = Dropdown;
  $.fn[NAME].noConflict = function () {
    $.fn[NAME] = JQUERY_NO_CONFLICT;
    return Dropdown._jQueryInterface;
  };

  return Dropdown;
}(jQuery); /* global Popper */
//# sourceMappingURL=dropdown.js.map

/**
 * --------------------------------------------------------------------------
 * Bootstrap (v4.0.0-beta): util.js
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

var Util = function ($) {

  /**
   * ------------------------------------------------------------------------
   * Private TransitionEnd Helpers
   * ------------------------------------------------------------------------
   */

  var transition = false;

  var MAX_UID = 1000000;

  var TransitionEndEvent = {
    WebkitTransition: 'webkitTransitionEnd',
    MozTransition: 'transitionend',
    OTransition: 'oTransitionEnd otransitionend',
    transition: 'transitionend'

    // shoutout AngusCroll (https://goo.gl/pxwQGp)
  };function toType(obj) {
    return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
  }

  function isElement(obj) {
    return (obj[0] || obj).nodeType;
  }

  function getSpecialTransitionEndEvent() {
    return {
      bindType: transition.end,
      delegateType: transition.end,
      handle: function handle(event) {
        if ($(event.target).is(this)) {
          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
        }
        return undefined;
      }
    };
  }

  function transitionEndTest() {
    if (window.QUnit) {
      return false;
    }

    var el = document.createElement('bootstrap');

    for (var name in TransitionEndEvent) {
      if (el.style[name] !== undefined) {
        return {
          end: TransitionEndEvent[name]
        };
      }
    }

    return false;
  }

  function transitionEndEmulator(duration) {
    var _this = this;

    var called = false;

    $(this).one(Util.TRANSITION_END, function () {
      called = true;
    });

    setTimeout(function () {
      if (!called) {
        Util.triggerTransitionEnd(_this);
      }
    }, duration);

    return this;
  }

  function setTransitionEndSupport() {
    transition = transitionEndTest();

    $.fn.emulateTransitionEnd = transitionEndEmulator;

    if (Util.supportsTransitionEnd()) {
      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
    }
  }

  /**
   * --------------------------------------------------------------------------
   * Public Util Api
   * --------------------------------------------------------------------------
   */

  var Util = {

    TRANSITION_END: 'bsTransitionEnd',

    getUID: function getUID(prefix) {
      do {
        // eslint-disable-next-line no-bitwise
        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
      } while (document.getElementById(prefix));
      return prefix;
    },
    getSelectorFromElement: function getSelectorFromElement(element) {
      var selector = element.getAttribute('data-target');
      if (!selector || selector === '#') {
        selector = element.getAttribute('href') || '';
      }

      try {
        var $selector = $(selector);
        return $selector.length > 0 ? selector : null;
      } catch (error) {
        return null;
      }
    },
    reflow: function reflow(element) {
      return element.offsetHeight;
    },
    triggerTransitionEnd: function triggerTransitionEnd(element) {
      $(element).trigger(transition.end);
    },
    supportsTransitionEnd: function supportsTransitionEnd() {
      return Boolean(transition);
    },
    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
      for (var property in configTypes) {
        if (configTypes.hasOwnProperty(property)) {
          var expectedTypes = configTypes[property];
          var value = config[property];
          var valueType = value && isElement(value) ? 'element' : toType(value);

          if (!new RegExp(expectedTypes).test(valueType)) {
            throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
          }
        }
      }
    }
  };

  setTransitionEndSupport();

  return Util;
}(jQuery);
//# sourceMappingURL=util.js.map

/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.12.5
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * 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.
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
	typeof define === 'function' && define.amd ? define(factory) :
	(global.Popper = factory());
}(this, (function () { 'use strict';

var nativeHints = ['native code', '[object MutationObserverConstructor]'];

/**
 * Determine if a function is implemented natively (as opposed to a polyfill).
 * @method
 * @memberof Popper.Utils
 * @argument {Function | undefined} fn the function to check
 * @returns {Boolean}
 */
var isNative = (function (fn) {
  return nativeHints.some(function (hint) {
    return (fn || '').toString().indexOf(hint) > -1;
  });
});

var isBrowser = typeof window !== 'undefined';
var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
var timeoutDuration = 0;
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  var scheduled = false;
  var i = 0;
  var elem = document.createElement('span');

  // MutationObserver provides a mechanism for scheduling microtasks, which
  // are scheduled *before* the next task. This gives us a way to debounce
  // a function but ensure it's called *before* the next paint.
  var observer = new MutationObserver(function () {
    fn();
    scheduled = false;
  });

  observer.observe(elem, { attributes: true });

  return function () {
    if (!scheduled) {
      scheduled = true;
      elem.setAttribute('x-index', i);
      i = i + 1; // don't use compund (+=) because it doesn't get optimized in V8
    }
  };
}

function taskDebounce(fn) {
  var scheduled = false;
  return function () {
    if (!scheduled) {
      scheduled = true;
      setTimeout(function () {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

// It's common for MutationObserver polyfills to be seen in the wild, however
// these rely on Mutation Events which only occur when an element is connected
// to the DOM. The algorithm used in this module does not use a connected element,
// and so we must ensure that a *native* MutationObserver is available.
var supportsNativeMutationObserver = isBrowser && isNative(window.MutationObserver);

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsNativeMutationObserver ? microtaskDebounce : taskDebounce;

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  var css = window.getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element || ['HTML', 'BODY', '#document'].indexOf(element.nodeName) !== -1) {
    return window.document.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well

  var _getStyleComputedProp = getStyleComputedProperty(element),
      overflow = _getStyleComputedProp.overflow,
      overflowX = _getStyleComputedProp.overflowX,
      overflowY = _getStyleComputedProp.overflowY;

  if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  // NOTE: 1 DOM access here
  var offsetParent = element && element.offsetParent;
  var nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return window.document.documentElement;
  }

  // .offsetParent will return the closest TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  var nodeName = element.nodeName;

  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return window.document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  var start = order ? element1 : element2;
  var end = order ? element2 : element1;

  // Get common ancestor container
  var range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  var commonAncestorContainer = range.commonAncestorContainer;

  // Both nodes are inside #document

  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  var element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element) {
  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';

  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  var nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    var html = window.document.documentElement;
    var scrollingElement = window.document.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element) {
  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var scrollTop = getScroll(element, 'top');
  var scrollLeft = getScroll(element, 'left');
  var modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  var sideA = axis === 'x' ? 'Left' : 'Top';
  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];
}

/**
 * Tells if you are running Internet Explorer 10
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean} isIE10
 */
var isIE10 = undefined;

var isIE10$1 = function () {
  if (isIE10 === undefined) {
    isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;
  }
  return isIE10;
};

function getSize(axis, body, html, computedStyle) {
  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
}

function getWindowSizes() {
  var body = window.document.body;
  var html = window.document.documentElement;
  var computedStyle = isIE10$1() && window.getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var classCallCheck = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};

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;
  };
}();





var defineProperty = function (obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
};

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  var rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  if (isIE10$1()) {
    try {
      rect = element.getBoundingClientRect();
      var scrollTop = getScroll(element, 'top');
      var scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } catch (err) {}
  } else {
    rect = element.getBoundingClientRect();
  }

  var result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
  var width = sizes.width || element.clientWidth || result.right - result.left;
  var height = sizes.height || element.clientHeight || result.bottom - result.top;

  var horizScrollbar = element.offsetWidth - width;
  var vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    var styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent) {
  var isIE10 = isIE10$1();
  var isHTML = parent.nodeName === 'HTML';
  var childrenRect = getBoundingClientRect(children);
  var parentRect = getBoundingClientRect(parent);
  var scrollParent = getScrollParent(children);

  var styles = getStyleComputedProperty(parent);
  var borderTopWidth = +styles.borderTopWidth.split('px')[0];
  var borderLeftWidth = +styles.borderLeftWidth.split('px')[0];

  var offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    var marginTop = +styles.marginTop.split('px')[0];
    var marginLeft = +styles.marginLeft.split('px')[0];

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  var html = window.document.documentElement;
  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  var width = Math.max(html.clientWidth, window.innerWidth || 0);
  var height = Math.max(html.clientHeight, window.innerHeight || 0);

  var scrollTop = getScroll(html);
  var scrollLeft = getScroll(html, 'left');

  var offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width: width,
    height: height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  var nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement) {
  // NOTE: 1 DOM access here
  var boundaries = { top: 0, left: 0 };
  var offsetParent = findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);
  } else {
    // Handle other cases based on DOM element used as boundaries
    var boundariesNode = void 0;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(popper));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = window.document.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = window.document.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      var _getWindowSizes = getWindowSizes(),
          height = _getWindowSizes.height,
          width = _getWindowSizes.width;

      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  boundaries.left += padding;
  boundaries.top += padding;
  boundaries.right -= padding;
  boundaries.bottom -= padding;

  return boundaries;
}

function getArea(_ref) {
  var width = _ref.width,
      height = _ref.height;

  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;

  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  var rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  var sortedAreas = Object.keys(rects).map(function (key) {
    return _extends({
      key: key
    }, rects[key], {
      area: getArea(rects[key])
    });
  }).sort(function (a, b) {
    return b.area - a.area;
  });

  var filteredAreas = sortedAreas.filter(function (_ref2) {
    var width = _ref2.width,
        height = _ref2.height;
    return width >= popper.clientWidth && height >= popper.clientHeight;
  });

  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  var variation = placement.split('-')[1];

  return computedPlacement + (variation ? '-' + variation : '');
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference) {
  var commonOffsetParent = findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  var styles = window.getComputedStyle(element);
  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  var result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, function (matched) {
    return hash[matched];
  });
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  var popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  var popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  var mainSide = isHoriz ? 'top' : 'left';
  var secondarySide = isHoriz ? 'left' : 'top';
  var measurement = isHoriz ? 'height' : 'width';
  var secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(function (cur) {
      return cur[prop] === value;
    });
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  var match = find(arr, function (obj) {
    return obj[prop] === value;
  });
  return arr.indexOf(match);
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(function (modifier) {
    if (modifier.function) {
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    var fn = modifier.function || modifier.fn;
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Updates the position of the popper, computing the new offsets and applying
 * the new style.<br />
 * Prefer `scheduleUpdate` over `update` because of performance reasons.
 * @method
 * @memberof Popper
 */
function update() {
  // if popper is destroyed, don't perform any further update
  if (this.state.isDestroyed) {
    return;
  }

  var data = {
    instance: this,
    styles: {},
    arrowStyles: {},
    attributes: {},
    flipped: false,
    offsets: {}
  };

  // compute reference element offsets
  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);

  // store the computed placement inside `originalPlacement`
  data.originalPlacement = data.placement;

  // compute the popper offsets
  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
  data.offsets.popper.position = 'absolute';

  // run the modifiers
  data = runModifiers(this.modifiers, data);

  // the first `update` will call `onCreate` callback
  // the other ones will call `onUpdate` callback
  if (!this.state.isCreated) {
    this.state.isCreated = true;
    this.options.onCreate(data);
  } else {
    this.options.onUpdate(data);
  }
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(function (_ref) {
    var name = _ref.name,
        enabled = _ref.enabled;
    return enabled && name === modifierName;
  });
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (var i = 0; i < prefixes.length - 1; i++) {
    var prefix = prefixes[i];
    var toCheck = prefix ? '' + prefix + upperProp : property;
    if (typeof window.document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Destroy the popper
 * @method
 * @memberof Popper
 */
function destroy() {
  this.state.isDestroyed = true;

  // touch DOM only if `applyStyle` modifier is enabled
  if (isModifierEnabled(this.modifiers, 'applyStyle')) {
    this.popper.removeAttribute('x-placement');
    this.popper.style.left = '';
    this.popper.style.position = '';
    this.popper.style.top = '';
    this.popper.style[getSupportedPropertyName('transform')] = '';
  }

  this.disableEventListeners();

  // remove the popper if user explicity asked for the deletion on destroy
  // do not use `remove` because IE11 doesn't support it
  if (this.options.removeOnDestroy) {
    this.popper.parentNode.removeChild(this.popper);
  }
  return this;
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  var isBody = scrollParent.nodeName === 'BODY';
  var target = isBody ? window : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  window.addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  var scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

/**
 * It will add resize/scroll events and start recalculating
 * position of the popper element when they are triggered.
 * @method
 * @memberof Popper
 */
function enableEventListeners() {
  if (!this.state.eventsEnabled) {
    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
  }
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  window.removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(function (target) {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * It will remove resize/scroll events and won't recalculate popper position
 * when they are triggered. It also won't trigger onUpdate callback anymore,
 * unless you call `update` method manually.
 * @method
 * @memberof Popper
 */
function disableEventListeners() {
  if (this.state.eventsEnabled) {
    window.cancelAnimationFrame(this.scheduleUpdate);
    this.state = removeEventListeners(this.reference, this.state);
  }
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(function (prop) {
    var unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    var value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} data.styles - List of style properties - values to apply to popper element
 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The same data object
 */
function applyStyle(data) {
  // any property present in `data.styles` will be applied to the popper,
  // in this way we can make the 3rd party modifiers add custom styles to it
  // Be aware, modifiers could override the properties defined in the previous
  // lines of this modifier!
  setStyles(data.instance.popper, data.styles);

  // any property present in `data.attributes` will be applied to the popper,
  // they will be set as HTML attributes of the element
  setAttributes(data.instance.popper, data.attributes);

  // if arrowElement is defined and arrowStyles has some properties
  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
    setStyles(data.arrowElement, data.arrowStyles);
  }

  return data;
}

/**
 * Set the x-placement attribute before everything else because it could be used
 * to add margins to the popper margins needs to be calculated to get the
 * correct popper offsets.
 * @method
 * @memberof Popper.modifiers
 * @param {HTMLElement} reference - The reference element used to position the popper
 * @param {HTMLElement} popper - The HTML element used as popper.
 * @param {Object} options - Popper.js options
 */
function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
  // compute reference element offsets
  var referenceOffsets = getReferenceOffsets(state, popper, reference);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);

  popper.setAttribute('x-placement', placement);

  // Apply `position` to popper before anything else because
  // without the position applied we can't guarantee correct computations
  setStyles(popper, { position: 'absolute' });

  return options;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeStyle(data, options) {
  var x = options.x,
      y = options.y;
  var popper = data.offsets.popper;

  // Remove this legacy support in Popper.js v2

  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'applyStyle';
  }).gpuAcceleration;
  if (legacyGpuAccelerationOption !== undefined) {
    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
  }
  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;

  var offsetParent = getOffsetParent(data.instance.popper);
  var offsetParentRect = getBoundingClientRect(offsetParent);

  // Styles
  var styles = {
    position: popper.position
  };

  // floor sides to avoid blurry text
  var offsets = {
    left: Math.floor(popper.left),
    top: Math.floor(popper.top),
    bottom: Math.floor(popper.bottom),
    right: Math.floor(popper.right)
  };

  var sideA = x === 'bottom' ? 'top' : 'bottom';
  var sideB = y === 'right' ? 'left' : 'right';

  // if gpuAcceleration is set to `true` and transform is supported,
  //  we use `translate3d` to apply the position to the popper we
  // automatically use the supported prefixed version if needed
  var prefixedProperty = getSupportedPropertyName('transform');

  // now, let's make a step back and look at this code closely (wtf?)
  // If the content of the popper grows once it's been positioned, it
  // may happen that the popper gets misplaced because of the new content
  // overflowing its reference element
  // To avoid this problem, we provide two options (x and y), which allow
  // the consumer to define the offset origin.
  // If we position a popper on top of a reference element, we can set
  // `x` to `top` to make the popper grow towards its top instead of
  // its bottom.
  var left = void 0,
      top = void 0;
  if (sideA === 'bottom') {
    top = -offsetParentRect.height + offsets.bottom;
  } else {
    top = offsets.top;
  }
  if (sideB === 'right') {
    left = -offsetParentRect.width + offsets.right;
  } else {
    left = offsets.left;
  }
  if (gpuAcceleration && prefixedProperty) {
    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
    styles[sideA] = 0;
    styles[sideB] = 0;
    styles.willChange = 'transform';
  } else {
    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
    var invertTop = sideA === 'bottom' ? -1 : 1;
    var invertLeft = sideB === 'right' ? -1 : 1;
    styles[sideA] = top * invertTop;
    styles[sideB] = left * invertLeft;
    styles.willChange = sideA + ', ' + sideB;
  }

  // Attributes
  var attributes = {
    'x-placement': data.placement
  };

  // Update `data` attributes, styles and arrowStyles
  data.attributes = _extends({}, attributes, data.attributes);
  data.styles = _extends({}, styles, data.styles);
  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);

  return data;
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  var requesting = find(modifiers, function (_ref) {
    var name = _ref.name;
    return name === requestingName;
  });

  var isRequired = !!requesting && modifiers.some(function (modifier) {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    var _requesting = '`' + requestingName + '`';
    var requested = '`' + requestedName + '`';
    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
  }
  return isRequired;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function arrow(data, options) {
  // arrow depends on keepTogether in order to work
  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
    return data;
  }

  var arrowElement = options.element;

  // if arrowElement is a string, suppose it's a CSS selector
  if (typeof arrowElement === 'string') {
    arrowElement = data.instance.popper.querySelector(arrowElement);

    // if arrowElement is not found, don't run the modifier
    if (!arrowElement) {
      return data;
    }
  } else {
    // if the arrowElement isn't a query selector we must check that the
    // provided DOM node is child of its popper node
    if (!data.instance.popper.contains(arrowElement)) {
      console.warn('WARNING: `arrow.element` must be child of its popper element!');
      return data;
    }
  }

  var placement = data.placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isVertical = ['left', 'right'].indexOf(placement) !== -1;

  var len = isVertical ? 'height' : 'width';
  var sideCapitalized = isVertical ? 'Top' : 'Left';
  var side = sideCapitalized.toLowerCase();
  var altSide = isVertical ? 'left' : 'top';
  var opSide = isVertical ? 'bottom' : 'right';
  var arrowElementSize = getOuterSizes(arrowElement)[len];

  //
  // extends keepTogether behavior making sure the popper and its
  // reference have enough pixels in conjuction
  //

  // top/left side
  if (reference[opSide] - arrowElementSize < popper[side]) {
    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
  }
  // bottom/right side
  if (reference[side] + arrowElementSize > popper[opSide]) {
    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
  }

  // compute center of the popper
  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;

  // Compute the sideValue using the updated popper offsets
  // take popper margin in account because we don't have this info available
  var popperMarginSide = getStyleComputedProperty(data.instance.popper, 'margin' + sideCapitalized).replace('px', '');
  var sideValue = center - getClientRect(data.offsets.popper)[side] - popperMarginSide;

  // prevent arrowElement from being placed not contiguously to its popper
  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);

  data.arrowElement = arrowElement;
  data.offsets.arrow = {};
  data.offsets.arrow[side] = Math.round(sideValue);
  data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node

  return data;
}

/**
 * Get the opposite placement variation of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement variation
 * @returns {String} flipped placement variation
 */
function getOppositeVariation(variation) {
  if (variation === 'end') {
    return 'start';
  } else if (variation === 'start') {
    return 'end';
  }
  return variation;
}

/**
 * List of accepted placements to use as values of the `placement` option.<br />
 * Valid placements are:
 * - `auto`
 * - `top`
 * - `right`
 * - `bottom`
 * - `left`
 *
 * Each placement can have a variation from this list:
 * - `-start`
 * - `-end`
 *
 * Variations are interpreted easily if you think of them as the left to right
 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
 * is right.<br />
 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
 *
 * Some valid examples are:
 * - `top-end` (on top of reference, right aligned)
 * - `right-start` (on right of reference, top aligned)
 * - `bottom` (on bottom, centered)
 * - `auto-right` (on the side with more space available, alignment depends by placement)
 *
 * @static
 * @type {Array}
 * @enum {String}
 * @readonly
 * @method placements
 * @memberof Popper
 */
var placements = ['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'];

// Get rid of `auto` `auto-start` and `auto-end`
var validPlacements = placements.slice(3);

/**
 * Given an initial placement, returns all the subsequent placements
 * clockwise (or counter-clockwise).
 *
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement - A valid placement (it accepts variations)
 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
 * @returns {Array} placements including their variations
 */
function clockwise(placement) {
  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var index = validPlacements.indexOf(placement);
  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
  return counter ? arr.reverse() : arr;
}

var BEHAVIORS = {
  FLIP: 'flip',
  CLOCKWISE: 'clockwise',
  COUNTERCLOCKWISE: 'counterclockwise'
};

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function flip(data, options) {
  // if `inner` modifier is enabled, we can't use the `flip` modifier
  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
    return data;
  }

  if (data.flipped && data.placement === data.originalPlacement) {
    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
    return data;
  }

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);

  var placement = data.placement.split('-')[0];
  var placementOpposite = getOppositePlacement(placement);
  var variation = data.placement.split('-')[1] || '';

  var flipOrder = [];

  switch (options.behavior) {
    case BEHAVIORS.FLIP:
      flipOrder = [placement, placementOpposite];
      break;
    case BEHAVIORS.CLOCKWISE:
      flipOrder = clockwise(placement);
      break;
    case BEHAVIORS.COUNTERCLOCKWISE:
      flipOrder = clockwise(placement, true);
      break;
    default:
      flipOrder = options.behavior;
  }

  flipOrder.forEach(function (step, index) {
    if (placement !== step || flipOrder.length === index + 1) {
      return data;
    }

    placement = data.placement.split('-')[0];
    placementOpposite = getOppositePlacement(placement);

    var popperOffsets = data.offsets.popper;
    var refOffsets = data.offsets.reference;

    // using floor because the reference offsets may contain decimals we are not going to consider here
    var floor = Math.floor;
    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);

    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);

    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;

    // flip the variation if required
    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);

    if (overlapsRef || overflowsBoundaries || flippedVariation) {
      // this boolean to detect any flip loop
      data.flipped = true;

      if (overlapsRef || overflowsBoundaries) {
        placement = flipOrder[index + 1];
      }

      if (flippedVariation) {
        variation = getOppositeVariation(variation);
      }

      data.placement = placement + (variation ? '-' + variation : '');

      // this object contains `position`, we want to preserve it along with
      // any additional property we may add in the future
      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));

      data = runModifiers(data.instance.modifiers, data, 'flip');
    }
  });
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function keepTogether(data) {
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var placement = data.placement.split('-')[0];
  var floor = Math.floor;
  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
  var side = isVertical ? 'right' : 'bottom';
  var opSide = isVertical ? 'left' : 'top';
  var measurement = isVertical ? 'width' : 'height';

  if (popper[side] < floor(reference[opSide])) {
    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
  }
  if (popper[opSide] > floor(reference[side])) {
    data.offsets.popper[opSide] = floor(reference[side]);
  }

  return data;
}

/**
 * Converts a string containing value + unit into a px value number
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} str - Value + unit string
 * @argument {String} measurement - `height` or `width`
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @returns {Number|String}
 * Value in pixels, or original string if no values were extracted
 */
function toValue(str, measurement, popperOffsets, referenceOffsets) {
  // separate value from unit
  var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
  var value = +split[1];
  var unit = split[2];

  // If it's not a number it's an operator, I guess
  if (!value) {
    return str;
  }

  if (unit.indexOf('%') === 0) {
    var element = void 0;
    switch (unit) {
      case '%p':
        element = popperOffsets;
        break;
      case '%':
      case '%r':
      default:
        element = referenceOffsets;
    }

    var rect = getClientRect(element);
    return rect[measurement] / 100 * value;
  } else if (unit === 'vh' || unit === 'vw') {
    // if is a vh or vw, we calculate the size based on the viewport
    var size = void 0;
    if (unit === 'vh') {
      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
    } else {
      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
    }
    return size / 100 * value;
  } else {
    // if is an explicit pixel unit, we get rid of the unit and keep the value
    // if is an implicit unit, it's px, and we return just the value
    return value;
  }
}

/**
 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} offset
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @argument {String} basePlacement
 * @returns {Array} a two cells array with x and y offsets in numbers
 */
function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
  var offsets = [0, 0];

  // Use height if placement is left or right and index is 0 otherwise use width
  // in this way the first offset will use an axis and the second one
  // will use the other one
  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;

  // Split the offset string to obtain a list of values and operands
  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
  var fragments = offset.split(/(\+|\-)/).map(function (frag) {
    return frag.trim();
  });

  // Detect if the offset string contains a pair of values or a single one
  // they could be separated by comma or space
  var divider = fragments.indexOf(find(fragments, function (frag) {
    return frag.search(/,|\s/) !== -1;
  }));

  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
  }

  // If divider is found, we divide the list of values and operands to divide
  // them by ofset X and Y.
  var splitRegex = /\s*,\s*|\s+/;
  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];

  // Convert the values with units to absolute pixels to allow our computations
  ops = ops.map(function (op, index) {
    // Most of the units rely on the orientation of the popper
    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
    var mergeWithPrevious = false;
    return op
    // This aggregates any `+` or `-` sign that aren't considered operators
    // e.g.: 10 + +5 => [10, +, +5]
    .reduce(function (a, b) {
      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
        a[a.length - 1] = b;
        mergeWithPrevious = true;
        return a;
      } else if (mergeWithPrevious) {
        a[a.length - 1] += b;
        mergeWithPrevious = false;
        return a;
      } else {
        return a.concat(b);
      }
    }, [])
    // Here we convert the string values into number values (in px)
    .map(function (str) {
      return toValue(str, measurement, popperOffsets, referenceOffsets);
    });
  });

  // Loop trough the offsets arrays and execute the operations
  ops.forEach(function (op, index) {
    op.forEach(function (frag, index2) {
      if (isNumeric(frag)) {
        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
      }
    });
  });
  return offsets;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @argument {Number|String} options.offset=0
 * The offset value as described in the modifier description
 * @returns {Object} The data object, properly modified
 */
function offset(data, _ref) {
  var offset = _ref.offset;
  var placement = data.placement,
      _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var basePlacement = placement.split('-')[0];

  var offsets = void 0;
  if (isNumeric(+offset)) {
    offsets = [+offset, 0];
  } else {
    offsets = parseOffset(offset, popper, reference, basePlacement);
  }

  if (basePlacement === 'left') {
    popper.top += offsets[0];
    popper.left -= offsets[1];
  } else if (basePlacement === 'right') {
    popper.top += offsets[0];
    popper.left += offsets[1];
  } else if (basePlacement === 'top') {
    popper.left += offsets[0];
    popper.top -= offsets[1];
  } else if (basePlacement === 'bottom') {
    popper.left += offsets[0];
    popper.top += offsets[1];
  }

  data.popper = popper;
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function preventOverflow(data, options) {
  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);

  // If offsetParent is the reference element, we really want to
  // go one step up and use the next offsetParent as reference to
  // avoid to make this modifier completely useless and look like broken
  if (data.instance.reference === boundariesElement) {
    boundariesElement = getOffsetParent(boundariesElement);
  }

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);
  options.boundaries = boundaries;

  var order = options.priority;
  var popper = data.offsets.popper;

  var check = {
    primary: function primary(placement) {
      var value = popper[placement];
      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
        value = Math.max(popper[placement], boundaries[placement]);
      }
      return defineProperty({}, placement, value);
    },
    secondary: function secondary(placement) {
      var mainSide = placement === 'right' ? 'left' : 'top';
      var value = popper[mainSide];
      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
      }
      return defineProperty({}, mainSide, value);
    }
  };

  order.forEach(function (placement) {
    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
    popper = _extends({}, popper, check[side](placement));
  });

  data.offsets.popper = popper;

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function shift(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var shiftvariation = placement.split('-')[1];

  // if shift shiftvariation is specified, run the modifier
  if (shiftvariation) {
    var _data$offsets = data.offsets,
        reference = _data$offsets.reference,
        popper = _data$offsets.popper;

    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
    var side = isVertical ? 'left' : 'top';
    var measurement = isVertical ? 'width' : 'height';

    var shiftOffsets = {
      start: defineProperty({}, side, reference[side]),
      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
    };

    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function hide(data) {
  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
    return data;
  }

  var refRect = data.offsets.reference;
  var bound = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'preventOverflow';
  }).boundaries;

  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === true) {
      return data;
    }

    data.hide = true;
    data.attributes['x-out-of-boundaries'] = '';
  } else {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === false) {
      return data;
    }

    data.hide = false;
    data.attributes['x-out-of-boundaries'] = false;
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function inner(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;

  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;

  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);

  data.placement = getOppositePlacement(placement);
  data.offsets.popper = getClientRect(popper);

  return data;
}

/**
 * Modifier function, each modifier can have a function of this type assigned
 * to its `fn` property.<br />
 * These functions will be called on each update, this means that you must
 * make sure they are performant enough to avoid performance bottlenecks.
 *
 * @function ModifierFn
 * @argument {dataObject} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {dataObject} The data object, properly modified
 */

/**
 * Modifiers are plugins used to alter the behavior of your poppers.<br />
 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
 * needed by the library.
 *
 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
 * All the other properties are configurations that could be tweaked.
 * @namespace modifiers
 */
var modifiers = {
  /**
   * Modifier used to shift the popper on the start or end of its reference
   * element.<br />
   * It will read the variation of the `placement` property.<br />
   * It can be one either `-end` or `-start`.
   * @memberof modifiers
   * @inner
   */
  shift: {
    /** @prop {number} order=100 - Index used to define the order of execution */
    order: 100,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: shift
  },

  /**
   * The `offset` modifier can shift your popper on both its axis.
   *
   * It accepts the following units:
   * - `px` or unitless, interpreted as pixels
   * - `%` or `%r`, percentage relative to the length of the reference element
   * - `%p`, percentage relative to the length of the popper element
   * - `vw`, CSS viewport width unit
   * - `vh`, CSS viewport height unit
   *
   * For length is intended the main axis relative to the placement of the popper.<br />
   * This means that if the placement is `top` or `bottom`, the length will be the
   * `width`. In case of `left` or `right`, it will be the height.
   *
   * You can provide a single value (as `Number` or `String`), or a pair of values
   * as `String` divided by a comma or one (or more) white spaces.<br />
   * The latter is a deprecated method because it leads to confusion and will be
   * removed in v2.<br />
   * Additionally, it accepts additions and subtractions between different units.
   * Note that multiplications and divisions aren't supported.
   *
   * Valid examples are:
   * ```
   * 10
   * '10%'
   * '10, 10'
   * '10%, 10'
   * '10 + 10%'
   * '10 - 5vh + 3%'
   * '-10px + 5vh, 5px - 6%'
   * ```
   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
   *
   * @memberof modifiers
   * @inner
   */
  offset: {
    /** @prop {number} order=200 - Index used to define the order of execution */
    order: 200,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: offset,
    /** @prop {Number|String} offset=0
     * The offset value as described in the modifier description
     */
    offset: 0
  },

  /**
   * Modifier used to prevent the popper from being positioned outside the boundary.
   *
   * An scenario exists where the reference itself is not within the boundaries.<br />
   * We can say it has "escaped the boundaries" â€” or just "escaped".<br />
   * In this case we need to decide whether the popper should either:
   *
   * - detach from the reference and remain "trapped" in the boundaries, or
   * - if it should ignore the boundary and "escape with its reference"
   *
   * When `escapeWithReference` is set to`true` and reference is completely
   * outside its boundaries, the popper will overflow (or completely leave)
   * the boundaries in order to remain attached to the edge of the reference.
   *
   * @memberof modifiers
   * @inner
   */
  preventOverflow: {
    /** @prop {number} order=300 - Index used to define the order of execution */
    order: 300,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: preventOverflow,
    /**
     * @prop {Array} [priority=['left','right','top','bottom']]
     * Popper will try to prevent overflow following these priorities by default,
     * then, it could overflow on the left and on top of the `boundariesElement`
     */
    priority: ['left', 'right', 'top', 'bottom'],
    /**
     * @prop {number} padding=5
     * Amount of pixel used to define a minimum distance between the boundaries
     * and the popper this makes sure the popper has always a little padding
     * between the edges of its container
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='scrollParent'
     * Boundaries used by the modifier, can be `scrollParent`, `window`,
     * `viewport` or any DOM element.
     */
    boundariesElement: 'scrollParent'
  },

  /**
   * Modifier used to make sure the reference and its popper stay near eachothers
   * without leaving any gap between the two. Expecially useful when the arrow is
   * enabled and you want to assure it to point to its reference element.
   * It cares only about the first axis, you can still have poppers with margin
   * between the popper and its reference element.
   * @memberof modifiers
   * @inner
   */
  keepTogether: {
    /** @prop {number} order=400 - Index used to define the order of execution */
    order: 400,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: keepTogether
  },

  /**
   * This modifier is used to move the `arrowElement` of the popper to make
   * sure it is positioned between the reference element and its popper element.
   * It will read the outer size of the `arrowElement` node to detect how many
   * pixels of conjuction are needed.
   *
   * It has no effect if no `arrowElement` is provided.
   * @memberof modifiers
   * @inner
   */
  arrow: {
    /** @prop {number} order=500 - Index used to define the order of execution */
    order: 500,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: arrow,
    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
    element: '[x-arrow]'
  },

  /**
   * Modifier used to flip the popper's placement when it starts to overlap its
   * reference element.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   *
   * **NOTE:** this modifier will interrupt the current update cycle and will
   * restart it if it detects the need to flip the placement.
   * @memberof modifiers
   * @inner
   */
  flip: {
    /** @prop {number} order=600 - Index used to define the order of execution */
    order: 600,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: flip,
    /**
     * @prop {String|Array} behavior='flip'
     * The behavior used to change the popper's placement. It can be one of
     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
     * placements (with optional variations).
     */
    behavior: 'flip',
    /**
     * @prop {number} padding=5
     * The popper will flip if it hits the edges of the `boundariesElement`
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='viewport'
     * The element which will define the boundaries of the popper position,
     * the popper will never be placed outside of the defined boundaries
     * (except if keepTogether is enabled)
     */
    boundariesElement: 'viewport'
  },

  /**
   * Modifier used to make the popper flow toward the inner of the reference element.
   * By default, when this modifier is disabled, the popper will be placed outside
   * the reference element.
   * @memberof modifiers
   * @inner
   */
  inner: {
    /** @prop {number} order=700 - Index used to define the order of execution */
    order: 700,
    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
    enabled: false,
    /** @prop {ModifierFn} */
    fn: inner
  },

  /**
   * Modifier used to hide the popper when its reference element is outside of the
   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
   * be used to hide with a CSS selector the popper when its reference is
   * out of boundaries.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   * @memberof modifiers
   * @inner
   */
  hide: {
    /** @prop {number} order=800 - Index used to define the order of execution */
    order: 800,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: hide
  },

  /**
   * Computes the style that will be applied to the popper element to gets
   * properly positioned.
   *
   * Note that this modifier will not touch the DOM, it just prepares the styles
   * so that `applyStyle` modifier can apply it. This separation is useful
   * in case you need to replace `applyStyle` with a custom implementation.
   *
   * This modifier has `850` as `order` value to maintain backward compatibility
   * with previous versions of Popper.js. Expect the modifiers ordering method
   * to change in future major versions of the library.
   *
   * @memberof modifiers
   * @inner
   */
  computeStyle: {
    /** @prop {number} order=850 - Index used to define the order of execution */
    order: 850,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: computeStyle,
    /**
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3d transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties.
     */
    gpuAcceleration: true,
    /**
     * @prop {string} [x='bottom']
     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
     * Change this if your popper should grow in a direction different from `bottom`
     */
    x: 'bottom',
    /**
     * @prop {string} [x='left']
     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
     * Change this if your popper should grow in a direction different from `right`
     */
    y: 'right'
  },

  /**
   * Applies the computed styles to the popper element.
   *
   * All the DOM manipulations are limited to this modifier. This is useful in case
   * you want to integrate Popper.js inside a framework or view library and you
   * want to delegate all the DOM manipulations to it.
   *
   * Note that if you disable this modifier, you must make sure the popper element
   * has its position set to `absolute` before Popper.js can do its work!
   *
   * Just disable this modifier and define you own to achieve the desired effect.
   *
   * @memberof modifiers
   * @inner
   */
  applyStyle: {
    /** @prop {number} order=900 - Index used to define the order of execution */
    order: 900,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: applyStyle,
    /** @prop {Function} */
    onLoad: applyStyleOnLoad,
    /**
     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3d transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties.
     */
    gpuAcceleration: undefined
  }
};

/**
 * The `dataObject` is an object containing all the informations used by Popper.js
 * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
 * @name dataObject
 * @property {Object} data.instance The Popper.js instance
 * @property {String} data.placement Placement applied to popper
 * @property {String} data.originalPlacement Placement originally defined on init
 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
 * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.boundaries Offsets of the popper boundaries
 * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
 */

/**
 * Default options provided to Popper.js constructor.<br />
 * These can be overriden using the `options` argument of Popper.js.<br />
 * To override an option, simply pass as 3rd argument an object with the same
 * structure of this object, example:
 * ```
 * new Popper(ref, pop, {
 *   modifiers: {
 *     preventOverflow: { enabled: false }
 *   }
 * })
 * ```
 * @type {Object}
 * @static
 * @memberof Popper
 */
var Defaults = {
  /**
   * Popper's placement
   * @prop {Popper.placements} placement='bottom'
   */
  placement: 'bottom',

  /**
   * Whether events (resize, scroll) are initially enabled
   * @prop {Boolean} eventsEnabled=true
   */
  eventsEnabled: true,

  /**
   * Set to true if you want to automatically remove the popper when
   * you call the `destroy` method.
   * @prop {Boolean} removeOnDestroy=false
   */
  removeOnDestroy: false,

  /**
   * Callback called when the popper is created.<br />
   * By default, is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onCreate}
   */
  onCreate: function onCreate() {},

  /**
   * Callback called when the popper is updated, this callback is not called
   * on the initialization/creation of the popper, but only on subsequent
   * updates.<br />
   * By default, is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onUpdate}
   */
  onUpdate: function onUpdate() {},

  /**
   * List of modifiers used to modify the offsets before they are applied to the popper.
   * They provide most of the functionalities of Popper.js
   * @prop {modifiers}
   */
  modifiers: modifiers
};

/**
 * @callback onCreate
 * @param {dataObject} data
 */

/**
 * @callback onUpdate
 * @param {dataObject} data
 */

// Utils
// Methods
var Popper = function () {
  /**
   * Create a new Popper.js instance
   * @class Popper
   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
   * @param {HTMLElement} popper - The HTML element used as popper.
   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
   * @return {Object} instance - The generated Popper.js instance
   */
  function Popper(reference, popper) {
    var _this = this;

    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
    classCallCheck(this, Popper);

    this.scheduleUpdate = function () {
      return requestAnimationFrame(_this.update);
    };

    // make update() debounced, so that it only runs at most once-per-tick
    this.update = debounce(this.update.bind(this));

    // with {} we create a new object with the options inside it
    this.options = _extends({}, Popper.Defaults, options);

    // init state
    this.state = {
      isDestroyed: false,
      isCreated: false,
      scrollParents: []
    };

    // get reference and popper elements (allow jQuery wrappers)
    this.reference = reference.jquery ? reference[0] : reference;
    this.popper = popper.jquery ? popper[0] : popper;

    // Deep merge modifiers options
    this.options.modifiers = {};
    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
    });

    // Refactoring modifiers' list (Object => Array)
    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
      return _extends({
        name: name
      }, _this.options.modifiers[name]);
    })
    // sort the modifiers by order
    .sort(function (a, b) {
      return a.order - b.order;
    });

    // modifiers have the ability to execute arbitrary code when Popper.js get inited
    // such code is executed in the same order of its modifier
    // they could add new properties to their options configuration
    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
    this.modifiers.forEach(function (modifierOptions) {
      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
      }
    });

    // fire the first update to position the popper in the right place
    this.update();

    var eventsEnabled = this.options.eventsEnabled;
    if (eventsEnabled) {
      // setup event listeners, they will take care of update the position in specific situations
      this.enableEventListeners();
    }

    this.state.eventsEnabled = eventsEnabled;
  }

  // We can't use class properties because they don't get listed in the
  // class prototype and break stuff like Sinon stubs


  createClass(Popper, [{
    key: 'update',
    value: function update$$1() {
      return update.call(this);
    }
  }, {
    key: 'destroy',
    value: function destroy$$1() {
      return destroy.call(this);
    }
  }, {
    key: 'enableEventListeners',
    value: function enableEventListeners$$1() {
      return enableEventListeners.call(this);
    }
  }, {
    key: 'disableEventListeners',
    value: function disableEventListeners$$1() {
      return disableEventListeners.call(this);
    }

    /**
     * Schedule an update, it will run on the next UI update available
     * @method scheduleUpdate
     * @memberof Popper
     */


    /**
     * Collection of utilities useful when writing custom modifiers.
     * Starting from version 1.7, this method is available only if you
     * include `popper-utils.js` before `popper.js`.
     *
     * **DEPRECATION**: This way to access PopperUtils is deprecated
     * and will be removed in v2! Use the PopperUtils module directly instead.
     * Due to the high instability of the methods contained in Utils, we can't
     * guarantee them to follow semver. Use them at your own risk!
     * @static
     * @private
     * @type {Object}
     * @deprecated since version 1.8
     * @member Utils
     * @memberof Popper
     */

  }]);
  return Popper;
}();

/**
 * The `referenceObject` is an object that provides an interface compatible with Popper.js
 * and lets you use it as replacement of a real DOM node.<br />
 * You can use this method to position a popper relatively to a set of coordinates
 * in case you don't have a DOM node to use as reference.
 *
 * ```
 * new Popper(referenceObject, popperNode);
 * ```
 *
 * NB: This feature isn't supported in Internet Explorer 10
 * @name referenceObject
 * @property {Function} data.getBoundingClientRect
 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
 * @property {number} data.clientWidth
 * An ES6 getter that will return the width of the virtual reference element.
 * @property {number} data.clientHeight
 * An ES6 getter that will return the height of the virtual reference element.
 */


Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
Popper.placements = placements;
Popper.Defaults = Defaults;

return Popper;

})));
//# sourceMappingURL=popper.js.map

( () => {
    function e(e) {
        t(e)
    }
    function t(e) {
        gn.includes(e) || gn.push(e),
        r()
    }
    function n(e) {
        let t = gn.indexOf(e);
        -1 !== t && gn.splice(t, 1)
    }
    function r() {
        !xn && !mn && (mn = !0,
        queueMicrotask(i))
    }
    function i() {
        mn = !1,
        xn = !0;
        for (let e = 0; e < gn.length; e++)
            gn[e]();
        gn.length = 0,
        xn = !1
    }
    function o(e) {
        yn = !1,
        e(),
        yn = !0
    }
    function a(t) {
        dn = t.reactive,
        _n = t.release,
        pn = (n => t.effect(n, {
            scheduler: t => {
                yn ? e(t) : t()
            }
        })),
        hn = t.raw
    }
    function l(e) {
        pn = e
    }
    function s(e) {
        let t = () => {}
        ;
        return [n => {
            let r = pn(n);
            return e._x_effects || (e._x_effects = new Set,
            e._x_runEffects = ( () => {
                e._x_effects.forEach(e => e())
            }
            )),
            e._x_effects.add(r),
            t = ( () => {
                void 0 !== r && (e._x_effects.delete(r),
                _n(r))
            }
            ),
            r
        }
        , () => {
            t()
        }
        ]
    }
    function u(e) {
        wn.push(e)
    }
    function c(e, t) {
        "function" == typeof t ? (e._x_cleanups || (e._x_cleanups = []),
        e._x_cleanups.push(t)) : (t = e,
        bn.push(t))
    }
    function f(e) {
        vn.push(e)
    }
    function d(e, t, n) {
        e._x_attributeCleanups || (e._x_attributeCleanups = {}),
        e._x_attributeCleanups[t] || (e._x_attributeCleanups[t] = []),
        e._x_attributeCleanups[t].push(n)
    }
    function p(e, t) {
        !e._x_attributeCleanups || Object.entries(e._x_attributeCleanups).forEach( ([n,r]) => {
            (void 0 === t || t.includes(n)) && (r.forEach(e => e()),
            delete e._x_attributeCleanups[n])
        }
        )
    }
    function _() {
        En.observe(document, {
            subtree: !0,
            childList: !0,
            attributes: !0,
            attributeOldValue: !0
        }),
        kn = !0
    }
    function h() {
        m(),
        En.disconnect(),
        kn = !1
    }
    function m() {
        An = An.concat(En.takeRecords()),
        An.length && !On && (On = !0,
        queueMicrotask( () => {
            x(),
            On = !1
        }
        ))
    }
    function x() {
        b(An),
        An.length = 0
    }
    function g(e) {
        if (!kn)
            return e();
        h();
        let t = e();
        return _(),
        t
    }
    function y() {
        Sn = !0
    }
    function v() {
        Sn = !1,
        b(Cn),
        Cn = []
    }
    function b(e) {
        if (Sn)
            return void (Cn = Cn.concat(e));
        let t = []
          , n = []
          , r = new Map
          , i = new Map;
        for (let o = 0; o < e.length; o++)
            if (!e[o].target._x_ignoreMutationObserver && ("childList" === e[o].type && (e[o].addedNodes.forEach(e => 1 === e.nodeType && t.push(e)),
            e[o].removedNodes.forEach(e => 1 === e.nodeType && n.push(e))),
            "attributes" === e[o].type)) {
                let t = e[o].target
                  , n = e[o].attributeName
                  , a = e[o].oldValue
                  , l = () => {
                    r.has(t) || r.set(t, []),
                    r.get(t).push({
                        name: n,
                        value: t.getAttribute(n)
                    })
                }
                  , s = () => {
                    i.has(t) || i.set(t, []),
                    i.get(t).push(n)
                }
                ;
                t.hasAttribute(n) && null === a ? l() : t.hasAttribute(n) ? (s(),
                l()) : s()
            }
        i.forEach( (e, t) => {
            p(t, e)
        }
        ),
        r.forEach( (e, t) => {
            vn.forEach(n => n(t, e))
        }
        );
        for (let e of n)
            if (!t.includes(e) && (bn.forEach(t => t(e)),
            e._x_cleanups))
                for (; e._x_cleanups.length; )
                    e._x_cleanups.pop()();
        t.forEach(e => {
            e._x_ignoreSelf = !0,
            e._x_ignore = !0
        }
        );
        for (let e of t)
            n.includes(e) || !e.isConnected || (delete e._x_ignoreSelf,
            delete e._x_ignore,
            wn.forEach(t => t(e)),
            e._x_ignore = !0,
            e._x_ignoreSelf = !0);
        t.forEach(e => {
            delete e._x_ignoreSelf,
            delete e._x_ignore
        }
        ),
        t = null,
        n = null,
        r = null,
        i = null
    }
    function w(e) {
        return O(A(e))
    }
    function E(e, t, n) {
        return e._x_dataStack = [t, ...A(n || e)],
        () => {
            e._x_dataStack = e._x_dataStack.filter(e => e !== t)
        }
    }
    function k(e, t) {
        let n = e._x_dataStack[0];
        Object.entries(t).forEach( ([e,t]) => {
            n[e] = t
        }
        )
    }
    function A(e) {
        return e._x_dataStack ? e._x_dataStack : "function" == typeof ShadowRoot && e instanceof ShadowRoot ? A(e.host) : e.parentNode ? A(e.parentNode) : []
    }
    function O(e) {
        let t = new Proxy({},{
            ownKeys: () => Array.from(new Set(e.flatMap(e => Object.keys(e)))),
            has: (t, n) => e.some(e => e.hasOwnProperty(n)),
            get: (n, r) => (e.find(e => {
                if (e.hasOwnProperty(r)) {
                    let n = Object.getOwnPropertyDescriptor(e, r);
                    if (n.get && n.get._x_alreadyBound || n.set && n.set._x_alreadyBound)
                        return !0;
                    if ((n.get || n.set) && n.enumerable) {
                        let i = n.get
                          , o = n.set
                          , a = n;
                        i = i && i.bind(t),
                        o = o && o.bind(t),
                        i && (i._x_alreadyBound = !0),
                        o && (o._x_alreadyBound = !0),
                        Object.defineProperty(e, r, {
                            ...a,
                            get: i,
                            set: o
                        })
                    }
                    return !0
                }
                return !1
            }
            ) || {})[r],
            set: (t, n, r) => {
                let i = e.find(e => e.hasOwnProperty(n));
                return i ? i[n] = r : e[e.length - 1][n] = r,
                !0
            }
        });
        return t
    }
    function S(e) {
        let t = e => "object" == typeof e && !Array.isArray(e) && null !== e
          , n = (r, i="") => {
            Object.entries(Object.getOwnPropertyDescriptors(r)).forEach( ([o,{value: a, enumerable: l}]) => {
                if (!1 === l || void 0 === a)
                    return;
                let s = "" === i ? o : `${i}.${o}`;
                "object" == typeof a && null !== a && a._x_interceptor ? r[o] = a.initialize(e, s, o) : t(a) && a !== r && !(a instanceof Element) && n(a, s)
            }
            )
        }
        ;
        return n(e)
    }
    function C(e, t=( () => {}
    )) {
        let n = {
            initialValue: void 0,
            _x_interceptor: !0,
            initialize(t, n, r) {
                return e(this.initialValue, () => $(t, n), e => j(t, n, e), n, r)
            }
        };
        return t(n),
        e => {
            if ("object" == typeof e && null !== e && e._x_interceptor) {
                let t = n.initialize.bind(n);
                n.initialize = ( (r, i, o) => {
                    let a = e.initialize(r, i, o);
                    return n.initialValue = a,
                    t(r, i, o)
                }
                )
            } else
                n.initialValue = e;
            return n
        }
    }
    function $(e, t) {
        return t.split(".").reduce( (e, t) => e[t], e)
    }
    function j(e, t, n) {
        if ("string" == typeof t && (t = t.split(".")),
        1 !== t.length) {
            if (0 === t.length)
                throw error;
            return e[t[0]] || (e[t[0]] = {}),
            j(e[t[0]], t.slice(1), n)
        }
        e[t[0]] = n
    }
    function M(e, t) {
        $n[e] = t
    }
    function L(e, t) {
        return Object.entries($n).forEach( ([n,r]) => {
            Object.defineProperty(e, `$${n}`, {
                get() {
                    let[e,n] = J(t);
                    return e = {
                        interceptor: C,
                        ...e
                    },
                    c(t, n),
                    r(t, e)
                },
                enumerable: !1
            })
        }
        ),
        e
    }
    function N(e, t, n, ...r) {
        try {
            return n(...r)
        } catch (n) {
            P(n, e, t)
        }
    }
    function P(e, t, n) {
        Object.assign(e, {
            el: t,
            expression: n
        }),
        console.warn(`Alpine Expression Error: ${e.message}\n\n${n ? 'Expression: "' + n + '"\n\n' : ""}`, t),
        setTimeout( () => {
            throw e
        }
        , 0)
    }
    function R(e) {
        let t = jn;
        jn = !1,
        e(),
        jn = t
    }
    function T(e, t, n={}) {
        let r;
        return z(e, t)(e => r = e, n),
        r
    }
    function z(...e) {
        return Mn(...e)
    }
    function I(e) {
        Mn = e
    }
    function D(e, t) {
        let n = {};
        L(n, e);
        let r = [n, ...A(e)];
        if ("function" == typeof t)
            return q(r, t);
        let i = B(r, t, e);
        return N.bind(null, e, t, i)
    }
    function q(e, t) {
        return (n=( () => {}
        ), {scope: r={}, params: i=[]}={}) => {
            let o = t.apply(O([r, ...e]), i);
            F(n, o)
        }
    }
    function W(e, t) {
        if (Ln[e])
            return Ln[e];
        let n = Object.getPrototypeOf(async function() {}).constructor
          , r = /^[\n\s]*if.*\(.*\)/.test(e) || /^(let|const)\s/.test(e) ? `(() => { ${e} })()` : e
          , i = ( () => {
            try {
                return new n(["__self", "scope"],`with (scope) { __self.result = ${r} }; __self.finished = true; return __self.result;`)
            } catch (n) {
                return P(n, t, e),
                Promise.resolve()
            }
        }
        )();
        return Ln[e] = i,
        i
    }
    function B(e, t, n) {
        let r = W(t, n);
        return (i=( () => {}
        ), {scope: o={}, params: a=[]}={}) => {
            r.result = void 0,
            r.finished = !1;
            let l = O([o, ...e]);
            if ("function" == typeof r) {
                let e = r(r, l).catch(e => P(e, n, t));
                r.finished ? (F(i, r.result, l, a, n),
                r.result = void 0) : e.then(e => {
                    F(i, e, l, a, n)
                }
                ).catch(e => P(e, n, t)).finally( () => r.result = void 0)
            }
        }
    }
    function F(e, t, n, r, i) {
        if (jn && "function" == typeof t) {
            let o = t.apply(n, r);
            o instanceof Promise ? o.then(t => F(e, t, n, r)).catch(e => P(e, i, t)) : e(o)
        } else
            e(t)
    }
    function V(e="") {
        return Nn + e
    }
    function K(e) {
        Nn = e
    }
    function U(e, t) {
        Pn[e] = t
    }
    function H(e, t, n) {
        if (t = Array.from(t),
        e._x_virtualDirectives) {
            let n = Object.entries(e._x_virtualDirectives).map( ([e,t]) => ({
                name: e,
                value: t
            }))
              , r = Z(n);
            n = n.map(e => r.find(t => t.name === e.name) ? {
                name: `x-bind:${e.name}`,
                value: `"${e.value}"`
            } : e),
            t = t.concat(n)
        }
        let r = {};
        return t.map(Q( (e, t) => r[e] = t)).filter(ee).map(te(r, n)).sort(ne).map(t => G(e, t))
    }
    function Z(e) {
        return Array.from(e).map(Q()).filter(e => !ee(e))
    }
    function Y(e) {
        Rn = !0;
        let t = Symbol();
        zn = t,
        Tn.set(t, []);
        let n = () => {
            for (; Tn.get(t).length; )
                Tn.get(t).shift()();
            Tn.delete(t)
        }
          , r = () => {
            Rn = !1,
            n()
        }
        ;
        e(n),
        r()
    }
    function J(e) {
        let t = []
          , n = e => t.push(e)
          , [r,i] = s(e);
        return t.push(i),
        [{
            Alpine: tr,
            effect: r,
            cleanup: n,
            evaluateLater: z.bind(z, e),
            evaluate: T.bind(T, e)
        }, () => t.forEach(e => e())]
    }
    function G(e, t) {
        let n = () => {}
          , r = Pn[t.type] || n
          , [i,o] = J(e);
        d(e, t.original, o);
        let a = () => {
            e._x_ignore || e._x_ignoreSelf || (r.inline && r.inline(e, t, i),
            r = r.bind(r, e, t, i),
            Rn ? Tn.get(zn).push(r) : r())
        }
        ;
        return a.runCleanups = o,
        a
    }
    function Q(e=( () => {}
    )) {
        return ({name: t, value: n}) => {
            let {name: r, value: i} = qn.reduce( (e, t) => t(e), {
                name: t,
                value: n
            });
            return r !== t && e(r, t),
            {
                name: r,
                value: i
            }
        }
    }
    function X(e) {
        qn.push(e)
    }
    function ee({name: e}) {
        return Wn().test(e)
    }
    function te(e, t) {
        return ({name: n, value: r}) => {
            let i = n.match(Wn())
              , o = n.match(/:([a-zA-Z0-9\-:]+)/)
              , a = n.match(/\.[^.\]]+(?=[^\]]*$)/g) || []
              , l = t || e[n] || n;
            return {
                type: i ? i[1] : null,
                value: o ? o[1] : null,
                modifiers: a.map(e => e.replace(".", "")),
                expression: r,
                original: l
            }
        }
    }
    function ne(e, t) {
        let n = -1 === Fn.indexOf(e.type) ? Bn : e.type
          , r = -1 === Fn.indexOf(t.type) ? Bn : t.type;
        return Fn.indexOf(n) - Fn.indexOf(r)
    }
    function re(e, t, n={}) {
        e.dispatchEvent(new CustomEvent(t,{
            detail: n,
            bubbles: !0,
            composed: !0,
            cancelable: !0
        }))
    }
    function ie(e=( () => {}
    )) {
        return queueMicrotask( () => {
            Kn || setTimeout( () => {
                oe()
            }
            )
        }
        ),
        new Promise(t => {
            Vn.push( () => {
                e(),
                t()
            }
            )
        }
        )
    }
    function oe() {
        for (Kn = !1; Vn.length; )
            Vn.shift()()
    }
    function ae() {
        Kn = !0
    }
    function le(e, t) {
        if ("function" == typeof ShadowRoot && e instanceof ShadowRoot)
            return void Array.from(e.children).forEach(e => le(e, t));
        let n = !1;
        if (t(e, () => n = !0),
        n)
            return;
        let r = e.firstElementChild;
        for (; r; )
            le(r, t, !1),
            r = r.nextElementSibling
    }
    function se(e, ...t) {
        console.warn(`Alpine Warning: ${e}`, ...t)
    }
    function ue() {
        document.body || se("Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?"),
        re(document, "alpine:init"),
        re(document, "alpine:initializing"),
        _(),
        u(e => xe(e, le)),
        c(e => ge(e)),
        f( (e, t) => {
            H(e, t).forEach(e => e())
        }
        );
        let e = e => !_e(e.parentElement, !0);
        Array.from(document.querySelectorAll(fe())).filter(e).forEach(e => {
            xe(e)
        }
        ),
        re(document, "alpine:initialized")
    }
    function ce() {
        return Un.map(e => e())
    }
    function fe() {
        return Un.concat(Hn).map(e => e())
    }
    function de(e) {
        Un.push(e)
    }
    function pe(e) {
        Hn.push(e)
    }
    function _e(e, t=!1) {
        return he(e, e => {
            if ((t ? fe() : ce()).some(t => e.matches(t)))
                return !0
        }
        )
    }
    function he(e, t) {
        if (e) {
            if (t(e))
                return e;
            if (e._x_teleportBack && (e = e._x_teleportBack),
            e.parentElement)
                return he(e.parentElement, t)
        }
    }
    function me(e) {
        return ce().some(t => e.matches(t))
    }
    function xe(e, t=le) {
        Y( () => {
            t(e, (e, t) => {
                H(e, e.attributes).forEach(e => e()),
                e._x_ignore && t()
            }
            )
        }
        )
    }
    function ge(e) {
        le(e, e => p(e))
    }
    function ye(e, t) {
        return Array.isArray(t) ? ve(e, t.join(" ")) : "object" == typeof t && null !== t ? be(e, t) : "function" == typeof t ? ye(e, t()) : ve(e, t)
    }
    function ve(e, t) {
        let n = t => t.split(" ").filter(t => !e.classList.contains(t)).filter(Boolean)
          , r = t => (e.classList.add(...t),
        () => {
            e.classList.remove(...t)
        }
        );
        return t = !0 === t ? t = "" : t || "",
        r(n(t))
    }
    function be(e, t) {
        let n = e => e.split(" ").filter(Boolean)
          , r = Object.entries(t).flatMap( ([e,t]) => !!t && n(e)).filter(Boolean)
          , i = Object.entries(t).flatMap( ([e,t]) => !t && n(e)).filter(Boolean)
          , o = []
          , a = [];
        return i.forEach(t => {
            e.classList.contains(t) && (e.classList.remove(t),
            a.push(t))
        }
        ),
        r.forEach(t => {
            e.classList.contains(t) || (e.classList.add(t),
            o.push(t))
        }
        ),
        () => {
            a.forEach(t => e.classList.add(t)),
            o.forEach(t => e.classList.remove(t))
        }
    }
    function we(e, t) {
        return "object" == typeof t && null !== t ? Ee(e, t) : ke(e, t)
    }
    function Ee(e, t) {
        let n = {};
        return Object.entries(t).forEach( ([t,r]) => {
            n[t] = e.style[t],
            t.startsWith("--") || (t = Ae(t)),
            e.style.setProperty(t, r)
        }
        ),
        setTimeout( () => {
            0 === e.style.length && e.removeAttribute("style")
        }
        ),
        () => {
            we(e, n)
        }
    }
    function ke(e, t) {
        let n = e.getAttribute("style", t);
        return e.setAttribute("style", t),
        () => {
            e.setAttribute("style", n || "")
        }
    }
    function Ae(e) {
        return e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()
    }
    function Oe(e, t=( () => {}
    )) {
        let n = !1;
        return function() {
            n ? t.apply(this, arguments) : (n = !0,
            e.apply(this, arguments))
        }
    }
    function Se(e, t, n) {
        $e(e, ye, ""),
        {
            enter: t => {
                e._x_transition.enter.during = t
            }
            ,
            "enter-start": t => {
                e._x_transition.enter.start = t
            }
            ,
            "enter-end": t => {
                e._x_transition.enter.end = t
            }
            ,
            leave: t => {
                e._x_transition.leave.during = t
            }
            ,
            "leave-start": t => {
                e._x_transition.leave.start = t
            }
            ,
            "leave-end": t => {
                e._x_transition.leave.end = t
            }
        }[n](t)
    }
    function Ce(e, t, n) {
        $e(e, we);
        let r = !t.includes("in") && !t.includes("out") && !n
          , i = r || t.includes("in") || ["enter"].includes(n)
          , o = r || t.includes("out") || ["leave"].includes(n);
        t.includes("in") && !r && (t = t.filter( (e, n) => n < t.indexOf("out"))),
        t.includes("out") && !r && (t = t.filter( (e, n) => n > t.indexOf("out")));
        let a = !t.includes("opacity") && !t.includes("scale")
          , l = a || t.includes("opacity")
          , s = a || t.includes("scale")
          , u = l ? 0 : 1
          , c = s ? Ne(t, "scale", 95) / 100 : 1
          , f = Ne(t, "delay", 0)
          , d = Ne(t, "origin", "center")
          , p = "opacity, transform"
          , _ = Ne(t, "duration", 150) / 1e3
          , h = Ne(t, "duration", 75) / 1e3
          , m = "cubic-bezier(0.4, 0.0, 0.2, 1)";
        i && (e._x_transition.enter.during = {
            transformOrigin: d,
            transitionDelay: f,
            transitionProperty: p,
            transitionDuration: `${_}s`,
            transitionTimingFunction: m
        },
        e._x_transition.enter.start = {
            opacity: u,
            transform: `scale(${c})`
        },
        e._x_transition.enter.end = {
            opacity: 1,
            transform: "scale(1)"
        }),
        o && (e._x_transition.leave.during = {
            transformOrigin: d,
            transitionDelay: f,
            transitionProperty: p,
            transitionDuration: `${h}s`,
            transitionTimingFunction: m
        },
        e._x_transition.leave.start = {
            opacity: 1,
            transform: "scale(1)"
        },
        e._x_transition.leave.end = {
            opacity: u,
            transform: `scale(${c})`
        })
    }
    function $e(e, t, n={}) {
        e._x_transition || (e._x_transition = {
            enter: {
                during: n,
                start: n,
                end: n
            },
            leave: {
                during: n,
                start: n,
                end: n
            },
            in(n=( () => {}
            ), r=( () => {}
            )) {
                Me(e, t, {
                    during: this.enter.during,
                    start: this.enter.start,
                    end: this.enter.end
                }, n, r)
            },
            out(n=( () => {}
            ), r=( () => {}
            )) {
                Me(e, t, {
                    during: this.leave.during,
                    start: this.leave.start,
                    end: this.leave.end
                }, n, r)
            }
        })
    }
    function je(e) {
        let t = e.parentNode;
        if (t)
            return t._x_hidePromise ? t : je(t)
    }
    function Me(e, t, {during: n, start: r, end: i}={}, o=( () => {}
    ), a=( () => {}
    )) {
        if (e._x_transitioning && e._x_transitioning.cancel(),
        0 === Object.keys(n).length && 0 === Object.keys(r).length && 0 === Object.keys(i).length)
            return o(),
            void a();
        let l, s, u;
        Le(e, {
            start() {
                l = t(e, r)
            },
            during() {
                s = t(e, n)
            },
            before: o,
            end() {
                l(),
                u = t(e, i)
            },
            after: a,
            cleanup() {
                s(),
                u()
            }
        })
    }
    function Le(e, t) {
        let n, r, i, o = Oe( () => {
            g( () => {
                n = !0,
                r || t.before(),
                i || (t.end(),
                oe()),
                t.after(),
                e.isConnected && t.cleanup(),
                delete e._x_transitioning
            }
            )
        }
        );
        e._x_transitioning = {
            beforeCancels: [],
            beforeCancel(e) {
                this.beforeCancels.push(e)
            },
            cancel: Oe(function() {
                for (; this.beforeCancels.length; )
                    this.beforeCancels.shift()();
                o()
            }),
            finish: o
        },
        g( () => {
            t.start(),
            t.during()
        }
        ),
        ae(),
        requestAnimationFrame( () => {
            if (n)
                return;
            let o = 1e3 * Number(getComputedStyle(e).transitionDuration.replace(/,.*/, "").replace("s", ""))
              , a = 1e3 * Number(getComputedStyle(e).transitionDelay.replace(/,.*/, "").replace("s", ""));
            0 === o && (o = 1e3 * Number(getComputedStyle(e).animationDuration.replace("s", ""))),
            g( () => {
                t.before()
            }
            ),
            r = !0,
            requestAnimationFrame( () => {
                n || (g( () => {
                    t.end()
                }
                ),
                oe(),
                setTimeout(e._x_transitioning.finish, o + a),
                i = !0)
            }
            )
        }
        )
    }
    function Ne(e, t, n) {
        if (-1 === e.indexOf(t))
            return n;
        let r = e[e.indexOf(t) + 1];
        if (!r || "scale" === t && isNaN(r))
            return n;
        if ("duration" === t) {
            let e = r.match(/([0-9]+)ms/);
            if (e)
                return e[1]
        }
        return "origin" === t && ["top", "right", "left", "center", "bottom"].includes(e[e.indexOf(t) + 2]) ? [r, e[e.indexOf(t) + 2]].join(" ") : r
    }
    function Pe(e, t=( () => {}
    )) {
        return (...n) => Yn ? t(...n) : e(...n)
    }
    function Re(e, t) {
        t._x_dataStack || (t._x_dataStack = e._x_dataStack),
        Yn = !0,
        ze( () => {
            Te(t)
        }
        ),
        Yn = !1
    }
    function Te(e) {
        let t = !1;
        xe(e, (e, n) => {
            le(e, (e, r) => {
                if (t && me(e))
                    return r();
                t = !0,
                n(e, r)
            }
            )
        }
        )
    }
    function ze(e) {
        let t = pn;
        l( (e, n) => {
            let r = t(e);
            return _n(r),
            () => {}
        }
        ),
        e(),
        l(t)
    }
    function Ie(e, t, n, r=[]) {
        switch (e._x_bindings || (e._x_bindings = dn({})),
        e._x_bindings[t] = n,
        t = r.includes("camel") ? Ke(t) : t,
        t) {
        case "value":
            De(e, n);
            break;
        case "style":
            We(e, n);
            break;
        case "class":
            qe(e, n);
            break;
        default:
            Be(e, t, n)
        }
    }
    function De(e, t) {
        if ("radio" === e.type)
            void 0 === e.attributes.value && (e.value = t),
            window.fromModel && (e.checked = Ue(e.value, t));
        else if ("checkbox" === e.type)
            Number.isInteger(t) ? e.value = t : Number.isInteger(t) || Array.isArray(t) || "boolean" == typeof t || [null, void 0].includes(t) ? Array.isArray(t) ? e.checked = t.some(t => Ue(t, e.value)) : e.checked = !!t : e.value = String(t);
        else if ("SELECT" === e.tagName)
            Ve(e, t);
        else {
            if (e.value === t)
                return;
            e.value = t
        }
    }
    function qe(e, t) {
        e._x_undoAddedClasses && e._x_undoAddedClasses(),
        e._x_undoAddedClasses = ye(e, t)
    }
    function We(e, t) {
        e._x_undoAddedStyles && e._x_undoAddedStyles(),
        e._x_undoAddedStyles = we(e, t)
    }
    function Be(e, t, n) {
        [null, void 0, !1].includes(n) && Ze(t) ? e.removeAttribute(t) : (He(t) && (n = t),
        Fe(e, t, n))
    }
    function Fe(e, t, n) {
        e.getAttribute(t) != n && e.setAttribute(t, n)
    }
    function Ve(e, t) {
        let n = [].concat(t).map(e => e + "");
        Array.from(e.options).forEach(e => {
            e.selected = n.includes(e.value)
        }
        )
    }
    function Ke(e) {
        return e.toLowerCase().replace(/-(\w)/g, (e, t) => t.toUpperCase())
    }
    function Ue(e, t) {
        return e == t
    }
    function He(e) {
        return ["disabled", "checked", "required", "readonly", "hidden", "open", "selected", "autofocus", "itemscope", "multiple", "novalidate", "allowfullscreen", "allowpaymentrequest", "formnovalidate", "autoplay", "controls", "loop", "muted", "playsinline", "default", "ismap", "reversed", "async", "defer", "nomodule"].includes(e)
    }
    function Ze(e) {
        return !["aria-pressed", "aria-checked", "aria-expanded", "aria-selected"].includes(e)
    }
    function Ye(e, t, n) {
        if (e._x_bindings && void 0 !== e._x_bindings[t])
            return e._x_bindings[t];
        let r = e.getAttribute(t);
        return null === r ? "function" == typeof n ? n() : n : He(t) ? !![t, "true"].includes(r) : "" === r || r
    }
    function Je(e, t) {
        var n;
        return function() {
            var r = this
              , i = arguments
              , o = function() {
                n = null,
                e.apply(r, i)
            };
            clearTimeout(n),
            n = setTimeout(o, t)
        }
    }
    function Ge(e, t) {
        let n;
        return function() {
            let r = this
              , i = arguments;
            n || (e.apply(r, i),
            n = !0,
            setTimeout( () => n = !1, t))
        }
    }
    function Qe(e) {
        e(tr)
    }
    function Xe(e, t) {
        if (Gn || (Jn = dn(Jn),
        Gn = !0),
        void 0 === t)
            return Jn[e];
        Jn[e] = t,
        "object" == typeof t && null !== t && t.hasOwnProperty("init") && "function" == typeof t.init && Jn[e].init(),
        S(Jn[e])
    }
    function et() {
        return Jn
    }
    function tt(e, t) {
        let n = "function" != typeof t ? () => t : t;
        e instanceof Element ? rt(e, n()) : Qn[e] = n
    }
    function nt(e) {
        return Object.entries(Qn).forEach( ([t,n]) => {
            Object.defineProperty(e, t, {
                get: () => (...e) => n(...e)
            })
        }
        ),
        e
    }
    function rt(e, t, n) {
        let r = [];
        for (; r.length; )
            r.pop()();
        let i = Object.entries(t).map( ([e,t]) => ({
            name: e,
            value: t
        }))
          , o = Z(i);
        i = i.map(e => o.find(t => t.name === e.name) ? {
            name: `x-bind:${e.name}`,
            value: `"${e.value}"`
        } : e),
        H(e, i, n).map(e => {
            r.push(e.runCleanups),
            e()
        }
        )
    }
    function it(e, t) {
        Xn[e] = t
    }
    function ot(e, t) {
        return Object.entries(Xn).forEach( ([n,r]) => {
            Object.defineProperty(e, n, {
                get: () => (...e) => r.bind(t)(...e),
                enumerable: !1
            })
        }
        ),
        e
    }
    function at(e, t) {
        let n = Object.create(null)
          , r = e.split(",");
        for (let e = 0; e < r.length; e++)
            n[r[e]] = !0;
        return t ? e => !!n[e.toLowerCase()] : e => !!n[e]
    }
    function lt(e) {
        return e && !0 === e._isEffect
    }
    function st(e, t=rr) {
        lt(e) && (e = e.raw);
        let n = ct(e, t);
        return t.lazy || n(),
        n
    }
    function ut(e) {
        e.active && (ft(e),
        e.options.onStop && e.options.onStop(),
        e.active = !1)
    }
    function ct(e, t) {
        let n = function() {
            if (!n.active)
                return e();
            if (!wr.includes(n)) {
                ft(n);
                try {
                    return pt(),
                    wr.push(n),
                    Zn = n,
                    e()
                } finally {
                    wr.pop(),
                    _t(),
                    Zn = wr[wr.length - 1]
                }
            }
        };
        return n.id = Ar++,
        n.allowRecurse = !!t.allowRecurse,
        n._isEffect = !0,
        n.active = !0,
        n.raw = e,
        n.deps = [],
        n.options = t,
        n
    }
    function ft(e) {
        let {deps: t} = e;
        if (t.length) {
            for (let n = 0; n < t.length; n++)
                t[n].delete(e);
            t.length = 0
        }
    }
    function dt() {
        Sr.push(Or),
        Or = !1
    }
    function pt() {
        Sr.push(Or),
        Or = !0
    }
    function _t() {
        let e = Sr.pop();
        Or = void 0 === e || e
    }
    function ht(e, t, n) {
        if (!Or || void 0 === Zn)
            return;
        let r = br.get(e);
        r || br.set(e, r = new Map);
        let i = r.get(n);
        i || r.set(n, i = new Set),
        i.has(Zn) || (i.add(Zn),
        Zn.deps.push(i),
        Zn.options.onTrack && Zn.options.onTrack({
            effect: Zn,
            target: e,
            type: t,
            key: n
        }))
    }
    function mt(e, t, n, r, i, o) {
        let a = br.get(e);
        if (!a)
            return;
        let l = new Set
          , s = e => {
            e && e.forEach(e => {
                (e !== Zn || e.allowRecurse) && l.add(e)
            }
            )
        }
        ;
        if ("clear" === t)
            a.forEach(s);
        else if ("length" === n && lr(e))
            a.forEach( (e, t) => {
                ("length" === t || t >= r) && s(e)
            }
            );
        else
            switch (void 0 !== n && s(a.get(n)),
            t) {
            case "add":
                lr(e) ? hr(n) && s(a.get("length")) : (s(a.get(Er)),
                sr(e) && s(a.get(kr)));
                break;
            case "delete":
                lr(e) || (s(a.get(Er)),
                sr(e) && s(a.get(kr)));
                break;
            case "set":
                sr(e) && s(a.get(Er))
            }
        let u = a => {
            a.options.onTrigger && a.options.onTrigger({
                effect: a,
                target: e,
                key: n,
                type: t,
                newValue: r,
                oldValue: i,
                oldTarget: o
            }),
            a.options.scheduler ? a.options.scheduler(a) : a()
        }
        ;
        l.forEach(u)
    }
    function xt(e=!1, t=!1) {
        return function(n, r, i) {
            if ("__v_isReactive" === r)
                return !e;
            if ("__v_isReadonly" === r)
                return e;
            if ("__v_raw" === r && i === (e ? t ? Xr : Qr : t ? Gr : Jr).get(n))
                return n;
            let o = lr(n);
            if (!e && o && ar(Pr, r))
                return Reflect.get(Pr, r, i);
            let a = Reflect.get(n, r, i);
            return (cr(r) ? $r.has(r) : Cr(r)) || (e || ht(n, "get", r),
            t) ? a : qt(a) ? o && hr(r) ? a : a.value : fr(a) ? e ? zt(a) : Tt(a) : a
        }
    }
    function gt(e=!1) {
        return function(t, n, r, i) {
            let o = t[n];
            if (!e && (r = Dt(r),
            o = Dt(o),
            !lr(t) && qt(o) && !qt(r)))
                return o.value = r,
                !0;
            let a = lr(t) && hr(n) ? Number(n) < t.length : ar(t, n)
              , l = Reflect.set(t, n, r, i);
            return t === Dt(i) && (a ? vr(r, o) && mt(t, "set", n, r, o) : mt(t, "add", n, r)),
            l
        }
    }
    function yt(e, t) {
        let n = ar(e, t)
          , r = e[t]
          , i = Reflect.deleteProperty(e, t);
        return i && n && mt(e, "delete", t, void 0, r),
        i
    }
    function vt(e, t) {
        let n = Reflect.has(e, t);
        return (!cr(t) || !$r.has(t)) && ht(e, "has", t),
        n
    }
    function bt(e) {
        return ht(e, "iterate", lr(e) ? "length" : Er),
        Reflect.ownKeys(e)
    }
    function wt(e, t, n=!1, r=!1) {
        e = e.__v_raw;
        let i = Dt(e)
          , o = Dt(t);
        t !== o && !n && ht(i, "get", t),
        !n && ht(i, "get", o);
        let {has: a} = Br(i)
          , l = r ? Wr : n ? qr : Dr;
        return a.call(i, t) ? l(e.get(t)) : a.call(i, o) ? l(e.get(o)) : void (e !== i && e.get(t))
    }
    function Et(e, t=!1) {
        let n = this.__v_raw
          , r = Dt(n)
          , i = Dt(e);
        return e !== i && !t && ht(r, "has", e),
        !t && ht(r, "has", i),
        e === i ? n.has(e) : n.has(e) || n.has(i)
    }
    function kt(e, t=!1) {
        return e = e.__v_raw,
        !t && ht(Dt(e), "iterate", Er),
        Reflect.get(e, "size", e)
    }
    function At(e) {
        e = Dt(e);
        let t = Dt(this);
        return Br(t).has.call(t, e) || (t.add(e),
        mt(t, "add", e, e)),
        this
    }
    function Ot(e, t) {
        t = Dt(t);
        let n = Dt(this)
          , {has: r, get: i} = Br(n)
          , o = r.call(n, e);
        o ? Nt(n, r, e) : (e = Dt(e),
        o = r.call(n, e));
        let a = i.call(n, e);
        return n.set(e, t),
        o ? vr(t, a) && mt(n, "set", e, t, a) : mt(n, "add", e, t),
        this
    }
    function St(e) {
        let t = Dt(this)
          , {has: n, get: r} = Br(t)
          , i = n.call(t, e);
        i ? Nt(t, n, e) : (e = Dt(e),
        i = n.call(t, e));
        let o = r ? r.call(t, e) : void 0
          , a = t.delete(e);
        return i && mt(t, "delete", e, void 0, o),
        a
    }
    function Ct() {
        let e = Dt(this)
          , t = 0 !== e.size
          , n = sr(e) ? new Map(e) : new Set(e)
          , r = e.clear();
        return t && mt(e, "clear", void 0, void 0, n),
        r
    }
    function $t(e, t) {
        return function(n, r) {
            let i = this
              , o = i.__v_raw
              , a = Dt(o)
              , l = t ? Wr : e ? qr : Dr;
            return !e && ht(a, "iterate", Er),
            o.forEach( (e, t) => n.call(r, l(e), l(t), i))
        }
    }
    function jt(e, t, n) {
        return function(...r) {
            let i = this.__v_raw
              , o = Dt(i)
              , a = sr(o)
              , l = "entries" === e || e === Symbol.iterator && a
              , s = "keys" === e && a
              , u = i[e](...r)
              , c = n ? Wr : t ? qr : Dr;
            return !t && ht(o, "iterate", s ? kr : Er),
            {
                next() {
                    let {value: e, done: t} = u.next();
                    return t ? {
                        value: e,
                        done: t
                    } : {
                        value: l ? [c(e[0]), c(e[1])] : c(e),
                        done: t
                    }
                },
                [Symbol.iterator]() {
                    return this
                }
            }
        }
    }
    function Mt(e) {
        return function(...t) {
            {
                let n = t[0] ? `on key "${t[0]}" ` : "";
                console.warn(`${yr(e)} operation ${n}failed: target is readonly.`, Dt(this))
            }
            return "delete" !== e && this
        }
    }
    function Lt(e, t) {
        let n = t ? e ? Ur : Vr : e ? Kr : Fr;
        return (t, r, i) => "__v_isReactive" === r ? !e : "__v_isReadonly" === r ? e : "__v_raw" === r ? t : Reflect.get(ar(n, r) && r in t ? n : t, r, i)
    }
    function Nt(e, t, n) {
        let r = Dt(n);
        if (r !== n && t.call(e, r)) {
            let t = _r(e);
            console.warn(`Reactive ${t} contains both the raw and reactive versions of the same object${"Map" === t ? " as keys" : ""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)
        }
    }
    function Pt(e) {
        switch (e) {
        case "Object":
        case "Array":
            return 1;
        case "Map":
        case "Set":
        case "WeakMap":
        case "WeakSet":
            return 2;
        default:
            return 0
        }
    }
    function Rt(e) {
        return e.__v_skip || !Object.isExtensible(e) ? 0 : Pt(_r(e))
    }
    function Tt(e) {
        return e && e.__v_isReadonly ? e : It(e, !1, zr, Zr, Jr)
    }
    function zt(e) {
        return It(e, !0, Ir, Yr, Qr)
    }
    function It(e, t, n, r, i) {
        if (!fr(e))
            return console.warn(`value cannot be made reactive: ${String(e)}`),
            e;
        if (e.__v_raw && (!t || !e.__v_isReactive))
            return e;
        let o = i.get(e);
        if (o)
            return o;
        let a = Rt(e);
        if (0 === a)
            return e;
        let l = new Proxy(e,2 === a ? r : n);
        return i.set(e, l),
        l
    }
    function Dt(e) {
        return e && Dt(e.__v_raw) || e
    }
    function qt(e) {
        return Boolean(e && !0 === e.__v_isRef)
    }
    function Wt(e) {
        let t = []
          , n = e;
        for (; n; )
            n._x_refs && t.push(n._x_refs),
            n = n.parentNode;
        return t
    }
    function Bt(e) {
        return ei[e] || (ei[e] = 0),
        ++ei[e]
    }
    function Ft(e, t) {
        return he(e, e => {
            if (e._x_ids && e._x_ids[t])
                return !0
        }
        )
    }
    function Vt(e, t) {
        e._x_ids || (e._x_ids = {}),
        e._x_ids[t] || (e._x_ids[t] = Bt(t))
    }
    function Kt(e, t, n) {
        M(t, t => se(`You can't use [$${directiveName}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${n}`, t))
    }
    function Ut(e, t, n, r) {
        let i = e
          , o = e => r(e)
          , a = {}
          , l = (e, t) => n => t(e, n);
        if (n.includes("dot") && (t = Ht(t)),
        n.includes("camel") && (t = Zt(t)),
        n.includes("passive") && (a.passive = !0),
        n.includes("capture") && (a.capture = !0),
        n.includes("window") && (i = window),
        n.includes("document") && (i = document),
        n.includes("prevent") && (o = l(o, (e, t) => {
            t.preventDefault(),
            e(t)
        }
        )),
        n.includes("stop") && (o = l(o, (e, t) => {
            t.stopPropagation(),
            e(t)
        }
        )),
        n.includes("self") && (o = l(o, (t, n) => {
            n.target === e && t(n)
        }
        )),
        (n.includes("away") || n.includes("outside")) && (i = document,
        o = l(o, (t, n) => {
            e.contains(n.target) || !1 !== n.target.isConnected && (e.offsetWidth < 1 && e.offsetHeight < 1 || !1 !== e._x_isShown && t(n))
        }
        )),
        n.includes("once") && (o = l(o, (e, n) => {
            e(n),
            i.removeEventListener(t, o, a)
        }
        )),
        o = l(o, (e, r) => {
            Gt(t) && Qt(r, n) || e(r)
        }
        ),
        n.includes("debounce")) {
            let e = n[n.indexOf("debounce") + 1] || "invalid-wait"
              , t = Yt(e.split("ms")[0]) ? Number(e.split("ms")[0]) : 250;
            o = Je(o, t)
        }
        if (n.includes("throttle")) {
            let e = n[n.indexOf("throttle") + 1] || "invalid-wait"
              , t = Yt(e.split("ms")[0]) ? Number(e.split("ms")[0]) : 250;
            o = Ge(o, t)
        }
        return i.addEventListener(t, o, a),
        () => {
            i.removeEventListener(t, o, a)
        }
    }
    function Ht(e) {
        return e.replace(/-/g, ".")
    }
    function Zt(e) {
        return e.toLowerCase().replace(/-(\w)/g, (e, t) => t.toUpperCase())
    }
    function Yt(e) {
        return !Array.isArray(e) && !isNaN(e)
    }
    function Jt(e) {
        return e.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[_\s]/, "-").toLowerCase()
    }
    function Gt(e) {
        return ["keydown", "keyup"].includes(e)
    }
    function Qt(e, t) {
        let n = t.filter(e => !["window", "document", "prevent", "stop", "once"].includes(e));
        if (n.includes("debounce")) {
            let e = n.indexOf("debounce");
            n.splice(e, Yt((n[e + 1] || "invalid-wait").split("ms")[0]) ? 2 : 1)
        }
        if (0 === n.length || 1 === n.length && Xt(e.key).includes(n[0]))
            return !1;
        let r = ["ctrl", "shift", "alt", "meta", "cmd", "super"].filter(e => n.includes(e));
        return n = n.filter(e => !r.includes(e)),
        !(r.length > 0 && r.filter(t => (("cmd" === t || "super" === t) && (t = "meta"),
        e[`${t}Key`])).length === r.length && Xt(e.key).includes(n[0]))
    }
    function Xt(e) {
        if (!e)
            return [];
        e = Jt(e);
        let t = {
            ctrl: "control",
            slash: "/",
            space: "-",
            spacebar: "-",
            cmd: "meta",
            esc: "escape",
            up: "arrow-up",
            down: "arrow-down",
            left: "arrow-left",
            right: "arrow-right",
            period: ".",
            equal: "="
        };
        return t[e] = e,
        Object.keys(t).map(n => {
            if (t[n] === e)
                return n
        }
        ).filter(e => e)
    }
    function en(e, t, n) {
        return "radio" === e.type && g( () => {
            e.hasAttribute("name") || e.setAttribute("name", n)
        }
        ),
        (n, r) => g( () => {
            if (n instanceof CustomEvent && void 0 !== n.detail)
                return n.detail || n.target.value;
            if ("checkbox" === e.type) {
                if (Array.isArray(r)) {
                    let e = t.includes("number") ? tn(n.target.value) : n.target.value;
                    return n.target.checked ? r.concat([e]) : r.filter(t => !nn(t, e))
                }
                return n.target.checked
            }
            if ("select" === e.tagName.toLowerCase() && e.multiple)
                return t.includes("number") ? Array.from(n.target.selectedOptions).map(e => {
                    let t = e.value || e.text;
                    return tn(t)
                }
                ) : Array.from(n.target.selectedOptions).map(e => e.value || e.text);
            {
                let e = n.target.value;
                return t.includes("number") ? tn(e) : t.includes("trim") ? e.trim() : e
            }
        }
        )
    }
    function tn(e) {
        let t = e ? parseFloat(e) : null;
        return rn(t) ? t : e
    }
    function nn(e, t) {
        return e == t
    }
    function rn(e) {
        return !Array.isArray(e) && !isNaN(e)
    }
    function on(e, t) {
        e._x_keyExpression = t
    }
    function an(e, t, r, i) {
        let o = e => "object" == typeof e && !Array.isArray(e)
          , a = e;
        r(r => {
            un(r) && r >= 0 && (r = Array.from(Array(r).keys(), e => e + 1)),
            void 0 === r && (r = []);
            let l = e._x_lookup
              , s = e._x_prevKeys
              , u = []
              , c = [];
            if (o(r))
                r = Object.entries(r).map( ([e,n]) => {
                    let o = sn(t, n, e, r);
                    i(e => c.push(e), {
                        scope: {
                            index: e,
                            ...o
                        }
                    }),
                    u.push(o)
                }
                );
            else
                for (let e = 0; e < r.length; e++) {
                    let n = sn(t, r[e], e, r);
                    i(e => c.push(e), {
                        scope: {
                            index: e,
                            ...n
                        }
                    }),
                    u.push(n)
                }
            let f = []
              , d = []
              , p = []
              , _ = [];
            for (let e = 0; e < s.length; e++) {
                let t = s[e];
                -1 === c.indexOf(t) && p.push(t)
            }
            s = s.filter(e => !p.includes(e));
            let h = "template";
            for (let e = 0; e < c.length; e++) {
                let t = c[e]
                  , n = s.indexOf(t);
                if (-1 === n)
                    s.splice(e, 0, t),
                    f.push([h, e]);
                else if (n !== e) {
                    let t = s.splice(e, 1)[0]
                      , r = s.splice(n - 1, 1)[0];
                    s.splice(e, 0, r),
                    s.splice(n, 0, t),
                    d.push([t, r])
                } else
                    _.push(t);
                h = t
            }
            for (let e = 0; e < p.length; e++) {
                let t = p[e];
                l[t]._x_effects && l[t]._x_effects.forEach(n),
                l[t].remove(),
                l[t] = null,
                delete l[t]
            }
            for (let e = 0; e < d.length; e++) {
                let[t,n] = d[e]
                  , r = l[t]
                  , i = l[n]
                  , o = document.createElement("div");
                g( () => {
                    i.after(o),
                    r.after(i),
                    i._x_currentIfEl && i.after(i._x_currentIfEl),
                    o.before(r),
                    r._x_currentIfEl && r.after(r._x_currentIfEl),
                    o.remove()
                }
                ),
                k(i, u[c.indexOf(n)])
            }
            for (let e = 0; e < f.length; e++) {
                let[t,n] = f[e]
                  , r = "template" === t ? a : l[t];
                r._x_currentIfEl && (r = r._x_currentIfEl);
                let i = u[n]
                  , o = c[n]
                  , s = document.importNode(a.content, !0).firstElementChild;
                E(s, dn(i), a),
                g( () => {
                    r.after(s),
                    xe(s)
                }
                ),
                "object" == typeof o && se("x-for key cannot be an object, it must be a string or an integer", a),
                l[o] = s
            }
            for (let e = 0; e < _.length; e++)
                k(l[_[e]], u[c.indexOf(_[e])]);
            a._x_prevKeys = c
        }
        )
    }
    function ln(e) {
        let t = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/
          , n = /^\s*\(|\)\s*$/g
          , r = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/
          , i = e.match(r);
        if (!i)
            return;
        let o = {};
        o.items = i[2].trim();
        let a = i[1].replace(n, "").trim()
          , l = a.match(t);
        return l ? (o.item = a.replace(t, "").trim(),
        o.index = l[1].trim(),
        l[2] && (o.collection = l[2].trim())) : o.item = a,
        o
    }
    function sn(e, t, n, r) {
        let i = {};
        return /^\[.*\]$/.test(e.item) && Array.isArray(t) ? e.item.replace("[", "").replace("]", "").split(",").map(e => e.trim()).forEach( (e, n) => {
            i[e] = t[n]
        }
        ) : /^\{.*\}$/.test(e.item) && !Array.isArray(t) && "object" == typeof t ? e.item.replace("{", "").replace("}", "").split(",").map(e => e.trim()).forEach(e => {
            i[e] = t[e]
        }
        ) : i[e.item] = t,
        e.index && (i[e.index] = n),
        e.collection && (i[e.collection] = r),
        i
    }
    function un(e) {
        return !Array.isArray(e) && !isNaN(e)
    }
    function cn() {}
    function fn(e, t, n) {
        U(t, r => se(`You can't use [x-${t}] without first installing the "${e}" plugin here: https://alpinejs.dev/plugins/${n}`, r))
    }
    var dn, pn, _n, hn, mn = !1, xn = !1, gn = [], yn = !0, vn = [], bn = [], wn = [], En = new MutationObserver(b), kn = !1, An = [], On = !1, Sn = !1, Cn = [], $n = {}, jn = !0, Mn = D, Ln = {}, Nn = "x-", Pn = {}, Rn = !1, Tn = new Map, zn = Symbol(), In = (e, t) => ({name: n, value: r}) => (n.startsWith(e) && (n = n.replace(e, t)),
    {
        name: n,
        value: r
    }), Dn = e => e, qn = [], Wn = () => new RegExp(`^${Nn}([^:^.]+)\\b`), Bn = "DEFAULT", Fn = ["ignore", "ref", "data", "id", "bind", "init", "for", "mask", "model", "modelable", "transition", "show", "if", Bn, "teleport"], Vn = [], Kn = !1, Un = [], Hn = [];
    U("transition", (e, {value: t, modifiers: n, expression: r}, {evaluate: i}) => {
        "function" == typeof r && (r = i(r)),
        r ? Se(e, r, t) : Ce(e, n, t)
    }
    ),
    window.Element.prototype._x_toggleAndCascadeWithTransitions = function(e, t, n, r) {
        let i = "visible" === document.visibilityState ? requestAnimationFrame : setTimeout
          , o = () => i(n);
        t ? e._x_transition && (e._x_transition.enter || e._x_transition.leave) ? e._x_transition.enter && (Object.entries(e._x_transition.enter.during).length || Object.entries(e._x_transition.enter.start).length || Object.entries(e._x_transition.enter.end).length) ? e._x_transition.in(n) : o() : e._x_transition ? e._x_transition.in(n) : o() : (e._x_hidePromise = e._x_transition ? new Promise( (t, n) => {
            e._x_transition.out( () => {}
            , () => t(r)),
            e._x_transitioning.beforeCancel( () => n({
                isFromCancelledTransition: !0
            }))
        }
        ) : Promise.resolve(r),
        queueMicrotask( () => {
            let t = je(e);
            t ? (t._x_hideChildren || (t._x_hideChildren = []),
            t._x_hideChildren.push(e)) : i( () => {
                let t = e => {
                    let n = Promise.all([e._x_hidePromise, ...(e._x_hideChildren || []).map(t)]).then( ([e]) => e());
                    return delete e._x_hidePromise,
                    delete e._x_hideChildren,
                    n
                }
                ;
                t(e).catch(e => {
                    if (!e.isFromCancelledTransition)
                        throw e
                }
                )
            }
            )
        }
        ))
    }
    ;
    var Zn, Yn = !1, Jn = {}, Gn = !1, Qn = {}, Xn = {}, er = {
        get reactive() {
            return dn
        },
        get release() {
            return _n
        },
        get effect() {
            return pn
        },
        get raw() {
            return hn
        },
        version: "3.10.3",
        flushAndStopDeferringMutations: v,
        dontAutoEvaluateFunctions: R,
        disableEffectScheduling: o,
        setReactivityEngine: a,
        closestDataStack: A,
        skipDuringClone: Pe,
        addRootSelector: de,
        addInitSelector: pe,
        addScopeToNode: E,
        deferMutations: y,
        mapAttributes: X,
        evaluateLater: z,
        setEvaluator: I,
        mergeProxies: O,
        findClosest: he,
        closestRoot: _e,
        interceptor: C,
        transition: Me,
        setStyles: we,
        mutateDom: g,
        directive: U,
        throttle: Ge,
        debounce: Je,
        evaluate: T,
        initTree: xe,
        nextTick: ie,
        prefixed: V,
        prefix: K,
        plugin: Qe,
        magic: M,
        store: Xe,
        start: ue,
        clone: Re,
        bound: Ye,
        $data: w,
        data: it,
        bind: tt
    }, tr = er, nr = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", rr = (at(nr + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected"),
    Object.freeze({})), ir = (Object.freeze([]),
    Object.assign), or = Object.prototype.hasOwnProperty, ar = (e, t) => or.call(e, t), lr = Array.isArray, sr = e => "[object Map]" === pr(e), ur = e => "string" == typeof e, cr = e => "symbol" == typeof e, fr = e => null !== e && "object" == typeof e, dr = Object.prototype.toString, pr = e => dr.call(e), _r = e => pr(e).slice(8, -1), hr = e => ur(e) && "NaN" !== e && "-" !== e[0] && "" + parseInt(e, 10) === e, mr = e => {
        let t = Object.create(null);
        return n => t[n] || (t[n] = e(n))
    }
    , xr = /-(\w)/g, gr = (mr(e => e.replace(xr, (e, t) => t ? t.toUpperCase() : "")),
    /\B([A-Z])/g), yr = (mr(e => e.replace(gr, "-$1").toLowerCase()),
    mr(e => e.charAt(0).toUpperCase() + e.slice(1))), vr = (mr(e => e ? `on${yr(e)}` : ""),
    (e, t) => e !== t && (e == e || t == t)), br = new WeakMap, wr = [], Er = Symbol("iterate"), kr = Symbol("Map key iterate"), Ar = 0, Or = !0, Sr = [], Cr = at("__proto__,__v_isRef,__isVue"), $r = new Set(Object.getOwnPropertyNames(Symbol).map(e => Symbol[e]).filter(cr)), jr = xt(), Mr = xt(!1, !0), Lr = xt(!0), Nr = xt(!0, !0), Pr = {};
    ["includes", "indexOf", "lastIndexOf"].forEach(e => {
        let t = Array.prototype[e];
        Pr[e] = function(...e) {
            let n = Dt(this);
            for (let e = 0, t = this.length; e < t; e++)
                ht(n, "get", e + "");
            let r = t.apply(n, e);
            return -1 === r || !1 === r ? t.apply(n, e.map(Dt)) : r
        }
    }
    ),
    ["push", "pop", "shift", "unshift", "splice"].forEach(e => {
        let t = Array.prototype[e];
        Pr[e] = function(...e) {
            dt();
            let n = t.apply(this, e);
            return _t(),
            n
        }
    }
    );
    var Rr = gt()
      , Tr = gt(!0)
      , zr = {
        get: jr,
        set: Rr,
        deleteProperty: yt,
        has: vt,
        ownKeys: bt
    }
      , Ir = {
        get: Lr,
        set: (e, t) => (console.warn(`Set operation on key "${String(t)}" failed: target is readonly.`, e),
        !0),
        deleteProperty: (e, t) => (console.warn(`Delete operation on key "${String(t)}" failed: target is readonly.`, e),
        !0)
    }
      , Dr = (ir({}, zr, {
        get: Mr,
        set: Tr
    }),
    ir({}, Ir, {
        get: Nr
    }),
    e => fr(e) ? Tt(e) : e)
      , qr = e => fr(e) ? zt(e) : e
      , Wr = e => e
      , Br = e => Reflect.getPrototypeOf(e)
      , Fr = {
        get(e) {
            return wt(this, e)
        },
        get size() {
            return kt(this)
        },
        has: Et,
        add: At,
        set: Ot,
        delete: St,
        clear: Ct,
        forEach: $t(!1, !1)
    }
      , Vr = {
        get(e) {
            return wt(this, e, !1, !0)
        },
        get size() {
            return kt(this)
        },
        has: Et,
        add: At,
        set: Ot,
        delete: St,
        clear: Ct,
        forEach: $t(!1, !0)
    }
      , Kr = {
        get(e) {
            return wt(this, e, !0)
        },
        get size() {
            return kt(this, !0)
        },
        has(e) {
            return Et.call(this, e, !0)
        },
        add: Mt("add"),
        set: Mt("set"),
        delete: Mt("delete"),
        clear: Mt("clear"),
        forEach: $t(!0, !1)
    }
      , Ur = {
        get(e) {
            return wt(this, e, !0, !0)
        },
        get size() {
            return kt(this, !0)
        },
        has(e) {
            return Et.call(this, e, !0)
        },
        add: Mt("add"),
        set: Mt("set"),
        delete: Mt("delete"),
        clear: Mt("clear"),
        forEach: $t(!0, !0)
    }
      , Hr = ["keys", "values", "entries", Symbol.iterator];
    Hr.forEach(e => {
        Fr[e] = jt(e, !1, !1),
        Kr[e] = jt(e, !0, !1),
        Vr[e] = jt(e, !1, !0),
        Ur[e] = jt(e, !0, !0)
    }
    );
    var Zr = {
        get: Lt(!1, !1)
    }
      , Yr = (Lt(!1, !0),
    {
        get: Lt(!0, !1)
    })
      , Jr = (Lt(!0, !0),
    new WeakMap)
      , Gr = new WeakMap
      , Qr = new WeakMap
      , Xr = new WeakMap;
    M("nextTick", () => ie),
    M("dispatch", e => re.bind(re, e)),
    M("watch", (e, {evaluateLater: t, effect: n}) => (r, i) => {
        let o, a = t(r), l = !0, s = n( () => a(e => {
            JSON.stringify(e),
            l ? o = e : queueMicrotask( () => {
                i(e, o),
                o = e
            }
            ),
            l = !1
        }
        ));
        e._x_effects.delete(s)
    }
    ),
    M("store", et),
    M("data", e => w(e)),
    M("root", e => _e(e)),
    M("refs", e => (e._x_refs_proxy || (e._x_refs_proxy = O(Wt(e))),
    e._x_refs_proxy));
    var ei = {};
    M("id", e => (t, n=null) => {
        let r = Ft(e, t)
          , i = r ? r._x_ids[t] : Bt(t);
        return n ? `${t}-${i}-${n}` : `${t}-${i}`
    }
    ),
    M("el", e => e),
    Kt("Focus", "focus", "focus"),
    Kt("Persist", "persist", "persist"),
    U("modelable", (e, {expression: t}, {effect: n, evaluateLater: r}) => {
        let i = r(t)
          , o = () => {
            let e;
            return i(t => e = t),
            e
        }
          , a = r(`${t} = __placeholder`)
          , l = e => a( () => {}
        , {
            scope: {
                __placeholder: e
            }
        })
          , s = o();
        l(s),
        queueMicrotask( () => {
            if (!e._x_model)
                return;
            e._x_removeModelListeners.default();
            let t = e._x_model.get
              , r = e._x_model.set;
            n( () => l(t())),
            n( () => r(o()))
        }
        )
    }
    ),
    U("teleport", (e, {expression: t}, {cleanup: n}) => {
        "template" !== e.tagName.toLowerCase() && se("x-teleport can only be used on a <template> tag", e);
        let r = document.querySelector(t);
        r || se(`Cannot find x-teleport element for selector: "${t}"`);
        let i = e.content.cloneNode(!0).firstElementChild;
        e._x_teleport = i,
        i._x_teleportBack = e,
        e._x_forwardEvents && e._x_forwardEvents.forEach(t => {
            i.addEventListener(t, t => {
                t.stopPropagation(),
                e.dispatchEvent(new t.constructor(t.type,t))
            }
            )
        }
        ),
        E(i, {}, e),
        g( () => {
            r.appendChild(i),
            xe(i),
            i._x_ignore = !0
        }
        ),
        n( () => i.remove())
    }
    );
    var ti = () => {}
    ;
    ti.inline = ( (e, {modifiers: t}, {cleanup: n}) => {
        t.includes("self") ? e._x_ignoreSelf = !0 : e._x_ignore = !0,
        n( () => {
            t.includes("self") ? delete e._x_ignoreSelf : delete e._x_ignore
        }
        )
    }
    ),
    U("ignore", ti),
    U("effect", (e, {expression: t}, {effect: n}) => n(z(e, t))),
    U("model", (e, {modifiers: t, expression: n}, {effect: r, cleanup: i}) => {
        let o = z(e, n)
          , a = `${n} = rightSideOfExpression($event, ${n})`
          , l = z(e, a);
        var s = "select" === e.tagName.toLowerCase() || ["checkbox", "radio"].includes(e.type) || t.includes("lazy") ? "change" : "input";
        let u = en(e, t, n)
          , c = Ut(e, s, t, e => {
            l( () => {}
            , {
                scope: {
                    $event: e,
                    rightSideOfExpression: u
                }
            })
        }
        );
        e._x_removeModelListeners || (e._x_removeModelListeners = {}),
        e._x_removeModelListeners.default = c,
        i( () => e._x_removeModelListeners.default());
        let f = z(e, `${n} = __placeholder`);
        e._x_model = {
            get() {
                let e;
                return o(t => e = t),
                e
            },
            set(e) {
                f( () => {}
                , {
                    scope: {
                        __placeholder: e
                    }
                })
            }
        },
        e._x_forceModelUpdate = ( () => {
            o(t => {
                void 0 === t && n.match(/\./) && (t = ""),
                window.fromModel = !0,
                g( () => Ie(e, "value", t)),
                delete window.fromModel
            }
            )
        }
        ),
        r( () => {
            t.includes("unintrusive") && document.activeElement.isSameNode(e) || e._x_forceModelUpdate()
        }
        )
    }
    ),
    U("cloak", e => queueMicrotask( () => g( () => e.removeAttribute(V("cloak"))))),
    pe( () => `[${V("init")}]`),
    U("init", Pe( (e, {expression: t}, {evaluate: n}) => "string" == typeof t ? !!t.trim() && n(t, {}, !1) : n(t, {}, !1))),
    U("text", (e, {expression: t}, {effect: n, evaluateLater: r}) => {
        let i = r(t);
        n( () => {
            i(t => {
                g( () => {
                    e.textContent = t
                }
                )
            }
            )
        }
        )
    }
    ),
    U("html", (e, {expression: t}, {effect: n, evaluateLater: r}) => {
        let i = r(t);
        n( () => {
            i(t => {
                g( () => {
                    e.innerHTML = t,
                    e._x_ignoreSelf = !0,
                    xe(e),
                    delete e._x_ignoreSelf
                }
                )
            }
            )
        }
        )
    }
    ),
    X(In(":", Dn(V("bind:")))),
    U("bind", (e, {value: t, modifiers: n, expression: r, original: i}, {effect: o}) => {
        if (!t) {
            let t = {};
            return nt(t),
            void z(e, r)(t => {
                rt(e, t, i)
            }
            , {
                scope: t
            })
        }
        if ("key" === t)
            return on(e, r);
        let a = z(e, r);
        o( () => a(i => {
            void 0 === i && r.match(/\./) && (i = ""),
            g( () => Ie(e, t, i, n))
        }
        ))
    }
    ),
    de( () => `[${V("data")}]`),
    U("data", Pe( (e, {expression: t}, {cleanup: n}) => {
        t = "" === t ? "{}" : t;
        let r = {};
        L(r, e);
        let i = {};
        ot(i, r);
        let o = T(e, t, {
            scope: i
        });
        void 0 === o && (o = {}),
        L(o, e);
        let a = dn(o);
        S(a);
        let l = E(e, a);
        a.init && T(e, a.init),
        n( () => {
            a.destroy && T(e, a.destroy),
            l()
        }
        )
    }
    )),
    U("show", (e, {modifiers: t, expression: n}, {effect: r}) => {
        let i = z(e, n);
        e._x_doHide || (e._x_doHide = ( () => {
            g( () => {
                e.style.setProperty("display", "none", t.includes("important") ? "important" : void 0)
            }
            )
        }
        )),
        e._x_doShow || (e._x_doShow = ( () => {
            g( () => {
                1 === e.style.length && "none" === e.style.display ? e.removeAttribute("style") : e.style.removeProperty("display")
            }
            )
        }
        ));
        let o, a = () => {
            e._x_doHide(),
            e._x_isShown = !1
        }
        , l = () => {
            e._x_doShow(),
            e._x_isShown = !0
        }
        , s = () => setTimeout(l), u = Oe(e => e ? l() : a(), t => {
            "function" == typeof e._x_toggleAndCascadeWithTransitions ? e._x_toggleAndCascadeWithTransitions(e, t, l, a) : t ? s() : a()
        }
        ), c = !0;
        r( () => i(e => {
            !c && e === o || (t.includes("immediate") && (e ? s() : a()),
            u(e),
            o = e,
            c = !1)
        }
        ))
    }
    ),
    U("for", (e, {expression: t}, {effect: n, cleanup: r}) => {
        let i = ln(t)
          , o = z(e, i.items)
          , a = z(e, e._x_keyExpression || "index");
        e._x_prevKeys = [],
        e._x_lookup = {},
        n( () => an(e, i, o, a)),
        r( () => {
            Object.values(e._x_lookup).forEach(e => e.remove()),
            delete e._x_prevKeys,
            delete e._x_lookup
        }
        )
    }
    ),
    cn.inline = ( (e, {expression: t}, {cleanup: n}) => {
        let r = _e(e);
        r._x_refs || (r._x_refs = {}),
        r._x_refs[t] = e,
        n( () => delete r._x_refs[t])
    }
    ),
    U("ref", cn),
    U("if", (e, {expression: t}, {effect: r, cleanup: i}) => {
        let o = z(e, t)
          , a = () => {
            if (e._x_currentIfEl)
                return e._x_currentIfEl;
            let t = e.content.cloneNode(!0).firstElementChild;
            return E(t, {}, e),
            g( () => {
                e.after(t),
                xe(t)
            }
            ),
            e._x_currentIfEl = t,
            e._x_undoIf = ( () => {
                le(t, e => {
                    e._x_effects && e._x_effects.forEach(n)
                }
                ),
                t.remove(),
                delete e._x_currentIfEl
            }
            ),
            t
        }
          , l = () => {
            !e._x_undoIf || (e._x_undoIf(),
            delete e._x_undoIf)
        }
        ;
        r( () => o(e => {
            e ? a() : l()
        }
        )),
        i( () => e._x_undoIf && e._x_undoIf())
    }
    ),
    U("id", (e, {expression: t}, {evaluate: n}) => {
        n(t).forEach(t => Vt(e, t))
    }
    ),
    X(In("@", Dn(V("on:")))),
    U("on", Pe( (e, {value: t, modifiers: n, expression: r}, {cleanup: i}) => {
        let o = r ? z(e, r) : () => {}
        ;
        "template" === e.tagName.toLowerCase() && (e._x_forwardEvents || (e._x_forwardEvents = []),
        e._x_forwardEvents.includes(t) || e._x_forwardEvents.push(t));
        let a = Ut(e, t, n, e => {
            o( () => {}
            , {
                scope: {
                    $event: e
                },
                params: [e]
            })
        }
        );
        i( () => a())
    }
    )),
    fn("Collapse", "collapse", "collapse"),
    fn("Intersect", "intersect", "intersect"),
    fn("Focus", "trap", "focus"),
    fn("Mask", "mask", "mask"),
    tr.setEvaluator(D),
    tr.setReactivityEngine({
        reactive: Tt,
        effect: st,
        release: ut,
        raw: Dt
    });
    var ni = tr;
    window.Alpine = ni,
    queueMicrotask( () => {
        ni.start()
    }
    )
}
)();


!function(e, t) {
    "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.AOS = t() : e.AOS = t()
}(this, function() {
    return function(e) {
        function t(o) {
            if (n[o])
                return n[o].exports;
            var i = n[o] = {
                exports: {},
                id: o,
                loaded: !1
            };
            return e[o].call(i.exports, i, i.exports, t),
            i.loaded = !0,
            i.exports
        }
        var n = {};
        return t.m = e,
        t.c = n,
        t.p = "dist/",
        t(0)
    }([function(e, t, n) {
        "use strict";
        function o(e) {
            return e && e.__esModule ? e : {
                default: e
            }
        }
        var i = Object.assign || function(e) {
            for (var t = 1; t < arguments.length; t++) {
                var n = arguments[t];
                for (var o in n)
                    Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o])
            }
            return e
        }
          , r = n(1)
          , a = (o(r),
        n(6))
          , u = o(a)
          , c = n(7)
          , f = o(c)
          , s = n(8)
          , d = o(s)
          , l = n(9)
          , p = o(l)
          , m = n(10)
          , b = o(m)
          , v = n(11)
          , y = o(v)
          , g = n(14)
          , h = o(g)
          , w = []
          , k = !1
          , x = document.all && !window.atob
          , j = {
            offset: 120,
            delay: 0,
            easing: "ease",
            duration: 400,
            disable: !1,
            once: !1,
            startEvent: "DOMContentLoaded",
            throttleDelay: 99,
            debounceDelay: 50,
            disableMutationObserver: !1
        }
          , O = function() {
            var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
            if (e && (k = !0),
            k)
                return w = (0,
                y.default)(w, j),
                (0,
                b.default)(w, j.once),
                w
        }
          , _ = function() {
            w = (0,
            h.default)(),
            O()
        }
          , S = function() {
            w.forEach(function(e, t) {
                e.node.removeAttribute("data-aos"),
                e.node.removeAttribute("data-aos-easing"),
                e.node.removeAttribute("data-aos-duration"),
                e.node.removeAttribute("data-aos-delay")
            })
        }
          , z = function(e) {
            return e === !0 || "mobile" === e && p.default.mobile() || "phone" === e && p.default.phone() || "tablet" === e && p.default.tablet() || "function" == typeof e && e() === !0
        }
          , A = function(e) {
            return j = i(j, e),
            w = (0,
            h.default)(),
            z(j.disable) || x ? S() : (document.querySelector("body").setAttribute("data-aos-easing", j.easing),
            document.querySelector("body").setAttribute("data-aos-duration", j.duration),
            document.querySelector("body").setAttribute("data-aos-delay", j.delay),
            "DOMContentLoaded" === j.startEvent && ["complete", "interactive"].indexOf(document.readyState) > -1 ? O(!0) : "load" === j.startEvent ? window.addEventListener(j.startEvent, function() {
                O(!0)
            }) : document.addEventListener(j.startEvent, function() {
                O(!0)
            }),
            window.addEventListener("resize", (0,
            f.default)(O, j.debounceDelay, !0)),
            window.addEventListener("orientationchange", (0,
            f.default)(O, j.debounceDelay, !0)),
            window.addEventListener("scroll", (0,
            u.default)(function() {
                (0,
                b.default)(w, j.once)
            }, j.throttleDelay)),
            j.disableMutationObserver || (0,
            d.default)("[data-aos]", _),
            w)
        };
        e.exports = {
            init: A,
            refresh: O,
            refreshHard: _
        }
    }
    , function(e, t) {}
    , , , , , function(e, t) {
        (function(t) {
            "use strict";
            function n(e, t, n) {
                function o(t) {
                    var n = b
                      , o = v;
                    return b = v = void 0,
                    k = t,
                    g = e.apply(o, n)
                }
                function r(e) {
                    return k = e,
                    h = setTimeout(s, t),
                    _ ? o(e) : g
                }
                function a(e) {
                    var n = e - w
                      , o = e - k
                      , i = t - n;
                    return S ? j(i, y - o) : i
                }
                function c(e) {
                    var n = e - w
                      , o = e - k;
                    return void 0 === w || n >= t || n < 0 || S && o >= y
                }
                function s() {
                    var e = O();
                    return c(e) ? d(e) : void (h = setTimeout(s, a(e)))
                }
                function d(e) {
                    return h = void 0,
                    z && b ? o(e) : (b = v = void 0,
                    g)
                }
                function l() {
                    void 0 !== h && clearTimeout(h),
                    k = 0,
                    b = w = v = h = void 0
                }
                function p() {
                    return void 0 === h ? g : d(O())
                }
                function m() {
                    var e = O()
                      , n = c(e);
                    if (b = arguments,
                    v = this,
                    w = e,
                    n) {
                        if (void 0 === h)
                            return r(w);
                        if (S)
                            return h = setTimeout(s, t),
                            o(w)
                    }
                    return void 0 === h && (h = setTimeout(s, t)),
                    g
                }
                var b, v, y, g, h, w, k = 0, _ = !1, S = !1, z = !0;
                if ("function" != typeof e)
                    throw new TypeError(f);
                return t = u(t) || 0,
                i(n) && (_ = !!n.leading,
                S = "maxWait"in n,
                y = S ? x(u(n.maxWait) || 0, t) : y,
                z = "trailing"in n ? !!n.trailing : z),
                m.cancel = l,
                m.flush = p,
                m
            }
            function o(e, t, o) {
                var r = !0
                  , a = !0;
                if ("function" != typeof e)
                    throw new TypeError(f);
                return i(o) && (r = "leading"in o ? !!o.leading : r,
                a = "trailing"in o ? !!o.trailing : a),
                n(e, t, {
                    leading: r,
                    maxWait: t,
                    trailing: a
                })
            }
            function i(e) {
                var t = "undefined" == typeof e ? "undefined" : c(e);
                return !!e && ("object" == t || "function" == t)
            }
            function r(e) {
                return !!e && "object" == ("undefined" == typeof e ? "undefined" : c(e))
            }
            function a(e) {
                return "symbol" == ("undefined" == typeof e ? "undefined" : c(e)) || r(e) && k.call(e) == d
            }
            function u(e) {
                if ("number" == typeof e)
                    return e;
                if (a(e))
                    return s;
                if (i(e)) {
                    var t = "function" == typeof e.valueOf ? e.valueOf() : e;
                    e = i(t) ? t + "" : t
                }
                if ("string" != typeof e)
                    return 0 === e ? e : +e;
                e = e.replace(l, "");
                var n = m.test(e);
                return n || b.test(e) ? v(e.slice(2), n ? 2 : 8) : p.test(e) ? s : +e
            }
            var c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                return typeof e
            }
            : function(e) {
                return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
            }
              , f = "Expected a function"
              , s = NaN
              , d = "[object Symbol]"
              , l = /^\s+|\s+$/g
              , p = /^[-+]0x[0-9a-f]+$/i
              , m = /^0b[01]+$/i
              , b = /^0o[0-7]+$/i
              , v = parseInt
              , y = "object" == ("undefined" == typeof t ? "undefined" : c(t)) && t && t.Object === Object && t
              , g = "object" == ("undefined" == typeof self ? "undefined" : c(self)) && self && self.Object === Object && self
              , h = y || g || Function("return this")()
              , w = Object.prototype
              , k = w.toString
              , x = Math.max
              , j = Math.min
              , O = function() {
                return h.Date.now()
            };
            e.exports = o
        }
        ).call(t, function() {
            return this
        }())
    }
    , function(e, t) {
        (function(t) {
            "use strict";
            function n(e, t, n) {
                function i(t) {
                    var n = b
                      , o = v;
                    return b = v = void 0,
                    O = t,
                    g = e.apply(o, n)
                }
                function r(e) {
                    return O = e,
                    h = setTimeout(s, t),
                    _ ? i(e) : g
                }
                function u(e) {
                    var n = e - w
                      , o = e - O
                      , i = t - n;
                    return S ? x(i, y - o) : i
                }
                function f(e) {
                    var n = e - w
                      , o = e - O;
                    return void 0 === w || n >= t || n < 0 || S && o >= y
                }
                function s() {
                    var e = j();
                    return f(e) ? d(e) : void (h = setTimeout(s, u(e)))
                }
                function d(e) {
                    return h = void 0,
                    z && b ? i(e) : (b = v = void 0,
                    g)
                }
                function l() {
                    void 0 !== h && clearTimeout(h),
                    O = 0,
                    b = w = v = h = void 0
                }
                function p() {
                    return void 0 === h ? g : d(j())
                }
                function m() {
                    var e = j()
                      , n = f(e);
                    if (b = arguments,
                    v = this,
                    w = e,
                    n) {
                        if (void 0 === h)
                            return r(w);
                        if (S)
                            return h = setTimeout(s, t),
                            i(w)
                    }
                    return void 0 === h && (h = setTimeout(s, t)),
                    g
                }
                var b, v, y, g, h, w, O = 0, _ = !1, S = !1, z = !0;
                if ("function" != typeof e)
                    throw new TypeError(c);
                return t = a(t) || 0,
                o(n) && (_ = !!n.leading,
                S = "maxWait"in n,
                y = S ? k(a(n.maxWait) || 0, t) : y,
                z = "trailing"in n ? !!n.trailing : z),
                m.cancel = l,
                m.flush = p,
                m
            }
            function o(e) {
                var t = "undefined" == typeof e ? "undefined" : u(e);
                return !!e && ("object" == t || "function" == t)
            }
            function i(e) {
                return !!e && "object" == ("undefined" == typeof e ? "undefined" : u(e))
            }
            function r(e) {
                return "symbol" == ("undefined" == typeof e ? "undefined" : u(e)) || i(e) && w.call(e) == s
            }
            function a(e) {
                if ("number" == typeof e)
                    return e;
                if (r(e))
                    return f;
                if (o(e)) {
                    var t = "function" == typeof e.valueOf ? e.valueOf() : e;
                    e = o(t) ? t + "" : t
                }
                if ("string" != typeof e)
                    return 0 === e ? e : +e;
                e = e.replace(d, "");
                var n = p.test(e);
                return n || m.test(e) ? b(e.slice(2), n ? 2 : 8) : l.test(e) ? f : +e
            }
            var u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                return typeof e
            }
            : function(e) {
                return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
            }
              , c = "Expected a function"
              , f = NaN
              , s = "[object Symbol]"
              , d = /^\s+|\s+$/g
              , l = /^[-+]0x[0-9a-f]+$/i
              , p = /^0b[01]+$/i
              , m = /^0o[0-7]+$/i
              , b = parseInt
              , v = "object" == ("undefined" == typeof t ? "undefined" : u(t)) && t && t.Object === Object && t
              , y = "object" == ("undefined" == typeof self ? "undefined" : u(self)) && self && self.Object === Object && self
              , g = v || y || Function("return this")()
              , h = Object.prototype
              , w = h.toString
              , k = Math.max
              , x = Math.min
              , j = function() {
                return g.Date.now()
            };
            e.exports = n
        }
        ).call(t, function() {
            return this
        }())
    }
    , function(e, t) {
        "use strict";
        function n(e, t) {
            var n = new r(o);
            a = t,
            n.observe(i.documentElement, {
                childList: !0,
                subtree: !0,
                removedNodes: !0
            })
        }
        function o(e) {
            e && e.forEach(function(e) {
                var t = Array.prototype.slice.call(e.addedNodes)
                  , n = Array.prototype.slice.call(e.removedNodes)
                  , o = t.concat(n).filter(function(e) {
                    return e.hasAttribute && e.hasAttribute("data-aos")
                }).length;
                o && a()
            })
        }
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var i = window.document
          , r = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver
          , a = function() {};
        t.default = n
    }
    , function(e, t) {
        "use strict";
        function n(e, t) {
            if (!(e instanceof t))
                throw new TypeError("Cannot call a class as a function")
        }
        function o() {
            return navigator.userAgent || navigator.vendor || window.opera || ""
        }
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var i = function() {
            function e(e, t) {
                for (var n = 0; n < t.length; n++) {
                    var 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, n, o) {
                return n && e(t.prototype, n),
                o && e(t, o),
                t
            }
        }()
          , r = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i
          , a = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i
          , u = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i
          , c = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i
          , f = function() {
            function e() {
                n(this, e)
            }
            return i(e, [{
                key: "phone",
                value: function() {
                    var e = o();
                    return !(!r.test(e) && !a.test(e.substr(0, 4)))
                }
            }, {
                key: "mobile",
                value: function() {
                    var e = o();
                    return !(!u.test(e) && !c.test(e.substr(0, 4)))
                }
            }, {
                key: "tablet",
                value: function() {
                    return this.mobile() && !this.phone()
                }
            }]),
            e
        }();
        t.default = new f
    }
    , function(e, t) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var n = function(e, t, n) {
            var o = e.node.getAttribute("data-aos-once");
            t > e.position ? e.node.classList.add("aos-animate") : "undefined" != typeof o && ("false" === o || !n && "true" !== o) && e.node.classList.remove("aos-animate")
        }
          , o = function(e, t) {
            var o = window.pageYOffset
              , i = window.innerHeight;
            e.forEach(function(e, r) {
                n(e, i + o, t)
            })
        };
        t.default = o
    }
    , function(e, t, n) {
        "use strict";
        function o(e) {
            return e && e.__esModule ? e : {
                default: e
            }
        }
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var i = n(12)
          , r = o(i)
          , a = function(e, t) {
            return e.forEach(function(e, n) {
                e.node.classList.add("aos-init"),
                e.position = (0,
                r.default)(e.node, t.offset)
            }),
            e
        };
        t.default = a
    }
    , function(e, t, n) {
        "use strict";
        function o(e) {
            return e && e.__esModule ? e : {
                default: e
            }
        }
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var i = n(13)
          , r = o(i)
          , a = function(e, t) {
            var n = 0
              , o = 0
              , i = window.innerHeight
              , a = {
                offset: e.getAttribute("data-aos-offset"),
                anchor: e.getAttribute("data-aos-anchor"),
                anchorPlacement: e.getAttribute("data-aos-anchor-placement")
            };
            switch (a.offset && !isNaN(a.offset) && (o = parseInt(a.offset)),
            a.anchor && document.querySelectorAll(a.anchor) && (e = document.querySelectorAll(a.anchor)[0]),
            n = (0,
            r.default)(e).top,
            a.anchorPlacement) {
            case "top-bottom":
                break;
            case "center-bottom":
                n += e.offsetHeight / 2;
                break;
            case "bottom-bottom":
                n += e.offsetHeight;
                break;
            case "top-center":
                n += i / 2;
                break;
            case "bottom-center":
                n += i / 2 + e.offsetHeight;
                break;
            case "center-center":
                n += i / 2 + e.offsetHeight / 2;
                break;
            case "top-top":
                n += i;
                break;
            case "bottom-top":
                n += e.offsetHeight + i;
                break;
            case "center-top":
                n += e.offsetHeight / 2 + i
            }
            return a.anchorPlacement || a.offset || isNaN(t) || (o = t),
            n + o
        };
        t.default = a
    }
    , function(e, t) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var n = function(e) {
            for (var t = 0, n = 0; e && !isNaN(e.offsetLeft) && !isNaN(e.offsetTop); )
                t += e.offsetLeft - ("BODY" != e.tagName ? e.scrollLeft : 0),
                n += e.offsetTop - ("BODY" != e.tagName ? e.scrollTop : 0),
                e = e.offsetParent;
            return {
                top: n,
                left: t
            }
        };
        t.default = n
    }
    , function(e, t) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var n = function(e) {
            return e = e || document.querySelectorAll("[data-aos]"),
            Array.prototype.map.call(e, function(e) {
                return {
                    node: e
                }
            })
        };
        t.default = n
    }
    ])
});


var pkpSidebar = $(".pkp_structure_sidebar");

$(document).ready(function () {
  // initCurrentIssue();
  runOnStart();
});

function runOnStart() {
  initAboutJournal();
  fixingFavIcon();
  initSwiperAnnouncement();
  initMobileNavbar();
  navActivePage();
  hideBreadCrumpsOnMobile();
  runOnArticlePage();
  runOnIndexPage();
  movePlumX();
  initEditorialPick();
  autoScrollMiniCard();

  addAndRemoveClass();
  initTouchMenuLA();

  // check if current theme is dark or light
  if (
    localStorage.theme === "dark" ||
    (!("theme" in localStorage) &&
      window.matchMedia("(prefers-color-scheme: dark)").matches)
  ) {
    animate.restart();
    toggle = !toggle;
  }

  $(".overlay").fadeOut().remove();
}

function movePlumX() {
  // setTimeout(function () {
  // let plumx = $('.PlumX-Summary');
  // if (!plumx.length) return;
  // plumx.addClass('bg-white dark:bg-gray-800 mt-4 lg:mb-4 lg:ms-4 lg:shadow-lg border-primary-bottom border-b-8');
  // plumx.appendTo('.pkp_structure_sidebar');
  // }, 1000);
}

function initSwiperAnnouncement() {
  if ($(".swiper-container").length > 0) {
    var AnnouncementSwiper = new Swiper(".swiper-container", {
      autoplay: {
        delay: 3000,
      },

      // If we need pagination
      pagination: {
        el: ".swiper-pagination",
        clickable: true,
      },
      autoHeight: true,
    });
  }
}

function runOnIndexPage() {
  if ($("#tab-about-journal").length < 1) {
    setTimeout(function () {
      $(".announcement-noble").trigger("click");
    }, 100);
  }
}

function runOnArticlePage() {
  if ($(".page_article").length < 1) return;

  pkpSidebar.children().remove();

  // moveElementToBlock($('.crossmark'), 'Crossmark')
  moveElementToBlock($(".dimension_badge"));
  moveElementToBlock($(".galleys"));
  // moveElementToBlock($('.cover_image'));
  moveElementToBlock($(".cover_jurnalku"));
  moveElementToBlock($(".item.issue .issue"));
  moveElementToBlock($(".item.issue .section"));
  // moveElementToBlock($(".item.published"));
  moveElementToBlock($(".item.date-log"));
  moveElementToBlock($(".keywords"));
  moveElementToBlock($(".PlumX-Summary"));

  // moveElementToBlock($('.item.doi .value'), 'DOI')

  // Remove unused element after its child got moved
  $(".item.issue").remove();
  removeCitationByCitationStyleLanguagePlugin();
  // $('.item.doi').remove();
}

function moveElementToBlock(elm, title, first) {
  if (elm.length < 1) return;
  title = title ?? elm.attr("title");

  let div = $("<div>");
  div.addClass("pkp_block");

  if (title) {
    div.append(`<h2 class="mb-4 font-bold title">${title}</h2>`);
  }

  div.append(elm);

  if (first) {
    pkpSidebar.prepend(div);
  } else {
    pkpSidebar.append(div);
  }
}

function addAndRemoveClass() {
  $(".pkp_block").addClass(
    // 'bg-white dark:bg-gray-800 mt-4 lg:mb-4 lg:ms-4 lg:shadow-lg border-primary-bottom border-b-8'
    "bg-white dark:bg-gray-800 lg:shadow-lg border-primary-bottom border-b-8"
  );
  $(".pkp_block").first().removeClass("mt-4");
  $(".pkp_block").last().removeClass("lg:mb-4");
  $("#navigationPrimary").children().first().addClass("lg:pl-3");
  $("#navigationPrimary").children().last().addClass("lg:pr-3");
  $("#navigationPrimary")
    .children()
    .addClass("transition duration-300 ease-in-out");
  // $('div.content span.item').addClass('hvr-forward hvr-icon-wobble-horizontal');
  $("#tab-announcement").addClass("hidden");
}

function initCurrentIssue() {
  if ($(".second-header").length < 1) return;

  let cover = $(".heading .cover");
  let headingIssue = $(".heading");
  let titleIssue = $(".current_issue_title");

  headingIssue.addClass("text-white");
  titleIssue.addClass("text-white font-bold text-xl mb-4");
  headingIssue.children().addClass("lg:mb-4");

  $(".current_issue").children("h2").remove();

  $(".cover-issue").append(cover);
  $(".text-issue").append(titleIssue).append(headingIssue);
}

function hideBreadCrumpsOnMobile() {
  if ($(".cmp_breadcrumbs").length < 1) return;

  $(".cmp_breadcrumbs").addClass("lg:block hidden");
}

function navActivePage() {
  let li = $(".pkp_navigation_primary").children();
  li.each(function () {
    let current_li = $(this);
    if (current_li.children("a").attr("href") == window.location.href)
      current_li.addClass("active");
    if (current_li.children("a").attr("href") == "#") {
      current_li
        .children("a")
        .next()
        .children()
        .each(function () {
          if ($(this).children("a").attr("href") == window.location.href)
            current_li.addClass("active");
        });
    }
  });
}

function changeActiveTab(event, tabID) {
  let element = event.target;
  while (element.nodeName !== "A") {
    element = element.parentNode;
  }
  ulElement = element.parentNode.parentNode;
  aElements = ulElement.querySelectorAll("li > a");
  tabContents = document
    .getElementById("tabs-id")
    .querySelectorAll(".tab-content > div");
  for (let i = 0; i < aElements.length; i++) {
    aElements[i].classList.remove("text-white");
    aElements[i].classList.remove("bg-base");
    aElements[i].classList.remove("hover:text-white");
    // aElements[i].classList.add("bg-white");
    tabContents[i].classList.add("hidden");
    tabContents[i].classList.remove("block");
  }
  // element.classList.remove("bg-white");
  element.classList.add("text-white");
  element.classList.add("hover:text-white");
  element.classList.add("bg-base");
  document.getElementById(tabID).classList.remove("hidden");
  document.getElementById(tabID).classList.add("block");
}

function cl(elm) {
  console.log(elm);
}

// toggle theme mode
function toggleTheme() {
  html = $("html");

  if (html.hasClass("dark")) {
    localStorage.setItem("theme", "light");
    html.removeClass("dark");
  } else {
    localStorage.setItem("theme", "dark");
    html.addClass("dark");
  }
}

const animate = gsap.timeline({ paused: true });
let toggle = true;
let html = $("html");
animate
  .to(".toggle-button", 0.2, { scale: 0.7 }, 0)
  .set(".toggle", { backgroundColor: "#FFF" })
  .set(".circle", { display: "none" })
  .to(".moon-mask", 0.2, { translateY: 20, translateX: -10 }, 0.2)
  .to(".toggle-button", 0.2, { translateY: 49 }, 0.2)
  .to(".toggle-button", 0.2, { scale: 0.9 });

if ($(".pkp_noble_toggle").length > 0) {
  document.getElementsByClassName("switch")[0].addEventListener("click", () => {
    if (toggle) {
      animate.restart();
    } else {
      animate.reverse();
    }
    toggle = !toggle;
    toggleTheme();
  });
}

function initMobileNavbar() {
  let nav = $(".mobile-primary-menu");
  let subMenu = nav.find("li").find("ul");
  if (subMenu.length) {
    // subMenu.parent().addClass('flex items-center')
    subMenu.css("display", "none");
    $(
      `<i class="fa fa-sort-down dropdown-menu-icon ms-auto" aria-hidden="true"></i>`
    ).insertBefore(subMenu);
    let dropDownMenuIcon = $(".dropdown-menu-icon");
    dropDownMenuIcon.click(function () {
      $(this).next("ul").fadeToggle();
      $(this).toggleClass("fa fa-sort-up fa fa-sort-down");
    });
  }
}

function fixingFavIcon() {
  /** favicon */
  let link =
    document.querySelector("link[rel*='icon']") ||
    document.createElement("link");
  let fav_ico = link.href.length ? link.href : "";
  link.type = "image/x-icon";
  link.rel = "shortcut icon";
  link.href = fav_ico + "?theme=Noble";

  document.getElementsByTagName("head")[0].appendChild(link);
}

function initAboutJournal() {
  let dom = $("#tab-about-journal");
  if (dom.length) {
    dom.find(".grid").removeAttr("style");
  }
}

function initEditorialPick() {
  // moving editorialpick
  let ep = $(".editorial_pick_as_card");

  if (ep.length < 1) return;

  let ep_card = $("#noble-ep");
  ep_card.append(ep.children());
  ep.remove();
}

function autoScrollMiniCard() {
  if ($(".mini-card").length < 1) return;

  var timeHoverCard;

  $(".mini-card").hover(
    function () {
      var card = this;
      if (timeHoverCard) {
        clearTimeout(timeHoverCard);
      }
      timeHoverCard = setTimeout(function () {
        card.scrollIntoView({
          behavior: "smooth",
          block: "nearest",
          inline: "nearest",
        });
      }, 300);
    },
    function () {
      if (timeHoverCard) {
        clearTimeout(timeHoverCard);
      }
    }
  );
}

function initTouchMenuLA() {
  if ($("body").attr("dir") == "rtl") {
    var TouchMenuRTL = TouchMenuLARTL({
      target: document.getElementById("menu-mobile"),
      width: 300,
      onOpen: function () {
        $(document.body).addClass("overflow-hidden");
      },
      onClose: function () {
        $(document.body).removeClass("overflow-hidden");
      },
    });

    document.getElementById("menu-open").addEventListener("click", function () {
      TouchMenuRTL.toggle();
    });
    return;
  }

  var TouchMenu = TouchMenuLA({
    target: document.getElementById("menu-mobile"),
    width: 300,
    onOpen: function () {
      $(document.body).addClass("overflow-hidden");
    },
    onClose: function () {
      $(document.body).removeClass("overflow-hidden");
    },
  });

  document.getElementById("menu-open").addEventListener("click", function () {
    TouchMenu.toggle();
  });
}

function removeCitationByCitationStyleLanguagePlugin() {
  if ($(".item.citation").length) {
    $(".item.citation").remove();
  }
}

/**
 * @file plugins/themes/default/js/main.js
 *
 * Copyright (c) 2014-2020 Simon Fraser University
 * Copyright (c) 2000-2020 John Willinsky
 * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
 *
 * @brief Handle JavaScript functionality unique to this theme.
 */
(function($) {

	// Initialize dropdown navigation menus on large screens
	// See bootstrap dropdowns: https://getbootstrap.com/docs/4.0/components/dropdowns/
	if (typeof $.fn.dropdown !== 'undefined') {
		var $nav = $('#navigationPrimary, #navigationUser'),
		$submenus = $('ul', $nav);
		function toggleDropdowns() {
			if (window.innerWidth > 992) {
				$submenus.each(function(i) {
					var id = 'pkpDropdown' + i;
					$(this)
						.addClass('dropdown-menu')
						.attr('aria-labelledby', id);
					$(this).siblings('a')
						.attr('data-toggle', 'dropdown')
						.attr('aria-haspopup', true)
						.attr('aria-expanded', false)
						.attr('id', id)
						.attr('href', '#');
				});
				$('[data-toggle="dropdown"]').dropdown();

			} else {
				$('[data-toggle="dropdown"]').dropdown('dispose');
				$submenus.each(function(i) {
					$(this)
						.removeClass('dropdown-menu')
						.removeAttr('aria-labelledby');
					$(this).siblings('a')
						.removeAttr('data-toggle')
						.removeAttr('aria-haspopup')
						.removeAttr('aria-expanded',)
						.removeAttr('id')
						.attr('href', '#');
				});
			}
		}
		window.onresize = toggleDropdowns;
		$().ready(function() {
			toggleDropdowns();
		});
	}

	// Toggle nav menu on small screens
	$('.pkp_site_nav_toggle').click(function(e) {
  		$('.pkp_site_nav_menu').toggleClass('pkp_site_nav_menu--isOpen');
  		$('.pkp_site_nav_toggle').toggleClass('pkp_site_nav_toggle--transform');
	});


	// Register click handlers for the search panel
	var headerSearchPanelIsClosing = false,
	    headerSearchForm = $('#headerNavigationContainer .pkp_search'),
	    headerSearchPrompt = $('.headerSearchPrompt', headerSearchForm),
		headerSearchCancel = $('.headerSearchCancel', headerSearchForm),
		headerSearchInput = $('input[name="query"]', headerSearchForm);

	// Register events
	headerSearchPrompt.on('click', triggerSearchPanel);
	headerSearchCancel.on('click', closeSearchPanel);
	headerSearchInput.on('blur', function() {
		if(!headerSearchInput.val() && headerSearchForm.hasClass('is_open')) {
			closeSearchPanel();
		}
	});
	headerSearchForm.on('submit', function() {
		if(headerSearchForm.hasClass('is_searching')) {
			return;
		}
		headerSearchForm.addClass('is_searching');
	});
	headerSearchForm.on('keyup', function(e) {
		if(headerSearchForm.hasClass('is_open') && e.keyCode == 27) {
			closeSearchPanel();
		}
	});

	/**
	 * Open or submit search form
	 *
	 * @param Event e Optional event handler
	 */
	function triggerSearchPanel(e) {

		if (headerSearchPanelIsClosing) {
			return;
		}

		if (typeof e !== 'undefined') {
			e.preventDefault();
			e.stopPropagation();
		}

		if (headerSearchForm.hasClass('is_open')) {
			headerSearchForm.submit();
			return;
		}

		headerSearchForm.addClass('is_open');
		setTimeout(function() {
			headerSearchForm.find('input[type="text"]').focus();
		},200);
	}

	/**
	 * Close the search panel
	 *
	 * @param Event e Optional event handler
	 */
	function closeSearchPanel(e) {

		if (headerSearchPanelIsClosing) {
			return;
		}

		if (typeof e !== 'undefined') {
			e.preventDefault();
			e.stopPropagation();
		}

		headerSearchPanelIsClosing = true;
		headerSearchForm.removeClass('is_open');

		setTimeout(function() {
			headerSearchPanelIsClosing = false;
			headerSearchInput.val('');
		},300)
	}

	// Modify the Chart.js display options used by UsageStats plugin
	document.addEventListener('usageStatsChartOptions.pkp', function(e) {
		e.chartOptions.elements.line.backgroundColor = 'rgba(0, 122, 178, 0.6)';
		e.chartOptions.elements.rectangle.backgroundColor = 'rgba(0, 122, 178, 0.6)';
	});

	// Toggle display of consent checkboxes in site-wide registration
	var $contextOptinGroup = $('#contextOptinGroup');
	if ($contextOptinGroup.length) {
		var $roles = $contextOptinGroup.find('.roles :checkbox');
		$roles.change(function() {
			var $thisRoles = $(this).closest('.roles');
			if ($thisRoles.find(':checked').length) {
				$thisRoles.siblings('.context_privacy').addClass('context_privacy_visible');
			} else {
				$thisRoles.siblings('.context_privacy').removeClass('context_privacy_visible');
			}
		});
	}

	// Initialize tag-it components
	//
	// The tag-it component is used during registration for the user to enter
	// their review interests. See: /templates/frontend/pages/userRegister.tpl
	if (typeof $.fn.tagit !== 'undefined') {
		$('.tag-it').each(function() {
			var autocomplete_url = $(this).data('autocomplete-url');
			$(this).tagit({
				fieldName: $(this).data('field-name'),
				allowSpaces: true,
				autocomplete: {
					source: function(request, response) {
						$.ajax({
							url: autocomplete_url,
							data: {term: request.term},
							dataType: 'json',
							success: function(jsonData) {
								if (jsonData.status == true) {
									response(jsonData.content);
								}
							}
						});
					},
				},
			});
		});

		/**
		 * Determine if the user has opted to register as a reviewer
		 *
		 * @see: /templates/frontend/pages/userRegister.tpl
		 */
		function isReviewerSelected() {
			var group = $('#reviewerOptinGroup').find('input');
			var is_checked = false;
			group.each(function() {
				if ($(this).is(':checked')) {
					is_checked = true;
					return false;
				}
			});

			return is_checked;
		}

		/**
		 * Reveal the reviewer interests field on the registration form when a
		 * user has opted to register as a reviewer
		 *
		 * @see: /templates/frontend/pages/userRegister.tpl
		 */
		function reviewerInterestsToggle() {
			var is_checked = isReviewerSelected();
			if (is_checked) {
				$('#reviewerInterests').addClass('is_visible');
			} else {
				$('#reviewerInterests').removeClass('is_visible');
			}
		}

		// Update interests on page load and when the toggled is toggled
		reviewerInterestsToggle();
		$('#reviewerOptinGroup input').click(reviewerInterestsToggle);
	}

})(jQuery);

/*! Hammer.JS - v2.0.8 - 2016-04-23
 * http://hammerjs.github.io/
 *
 * Copyright (c) 2016 Jorik Tangelder;
 * Licensed under the MIT license */
!function(a, b, c, d) {
    "use strict";
    function e(a, b, c) {
        return setTimeout(j(a, c), b)
    }
    function f(a, b, c) {
        return Array.isArray(a) ? (g(a, c[b], c),
        !0) : !1
    }
    function g(a, b, c) {
        var e;
        if (a)
            if (a.forEach)
                a.forEach(b, c);
            else if (a.length !== d)
                for (e = 0; e < a.length; )
                    b.call(c, a[e], e, a),
                    e++;
            else
                for (e in a)
                    a.hasOwnProperty(e) && b.call(c, a[e], e, a)
    }
    function h(b, c, d) {
        var e = "DEPRECATED METHOD: " + c + "\n" + d + " AT \n";
        return function() {
            var c = new Error("get-stack-trace")
              , d = c && c.stack ? c.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.<anonymous>\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace"
              , f = a.console && (a.console.warn || a.console.log);
            return f && f.call(a.console, e, d),
            b.apply(this, arguments)
        }
    }
    function i(a, b, c) {
        var d, e = b.prototype;
        d = a.prototype = Object.create(e),
        d.constructor = a,
        d._super = e,
        c && la(d, c)
    }
    function j(a, b) {
        return function() {
            return a.apply(b, arguments)
        }
    }
    function k(a, b) {
        return typeof a == oa ? a.apply(b ? b[0] || d : d, b) : a
    }
    function l(a, b) {
        return a === d ? b : a
    }
    function m(a, b, c) {
        g(q(b), function(b) {
            a.addEventListener(b, c, !1)
        })
    }
    function n(a, b, c) {
        g(q(b), function(b) {
            a.removeEventListener(b, c, !1)
        })
    }
    function o(a, b) {
        for (; a; ) {
            if (a == b)
                return !0;
            a = a.parentNode
        }
        return !1
    }
    function p(a, b) {
        return a.indexOf(b) > -1
    }
    function q(a) {
        return a.trim().split(/\s+/g)
    }
    function r(a, b, c) {
        if (a.indexOf && !c)
            return a.indexOf(b);
        for (var d = 0; d < a.length; ) {
            if (c && a[d][c] == b || !c && a[d] === b)
                return d;
            d++
        }
        return -1
    }
    function s(a) {
        return Array.prototype.slice.call(a, 0)
    }
    function t(a, b, c) {
        for (var d = [], e = [], f = 0; f < a.length; ) {
            var g = b ? a[f][b] : a[f];
            r(e, g) < 0 && d.push(a[f]),
            e[f] = g,
            f++
        }
        return c && (d = b ? d.sort(function(a, c) {
            return a[b] > c[b]
        }) : d.sort()),
        d
    }
    function u(a, b) {
        for (var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; g < ma.length; ) {
            if (c = ma[g],
            e = c ? c + f : b,
            e in a)
                return e;
            g++
        }
        return d
    }
    function v() {
        return ua++
    }
    function w(b) {
        var c = b.ownerDocument || b;
        return c.defaultView || c.parentWindow || a
    }
    function x(a, b) {
        var c = this;
        this.manager = a,
        this.callback = b,
        this.element = a.element,
        this.target = a.options.inputTarget,
        this.domHandler = function(b) {
            k(a.options.enable, [a]) && c.handler(b)
        }
        ,
        this.init()
    }
    function y(a) {
        var b, c = a.options.inputClass;
        return new (b = c ? c : xa ? M : ya ? P : wa ? R : L)(a,z)
    }
    function z(a, b, c) {
        var d = c.pointers.length
          , e = c.changedPointers.length
          , f = b & Ea && d - e === 0
          , g = b & (Ga | Ha) && d - e === 0;
        c.isFirst = !!f,
        c.isFinal = !!g,
        f && (a.session = {}),
        c.eventType = b,
        A(a, c),
        a.emit("hammer.input", c),
        a.recognize(c),
        a.session.prevInput = c
    }
    function A(a, b) {
        var c = a.session
          , d = b.pointers
          , e = d.length;
        c.firstInput || (c.firstInput = D(b)),
        e > 1 && !c.firstMultiple ? c.firstMultiple = D(b) : 1 === e && (c.firstMultiple = !1);
        var f = c.firstInput
          , g = c.firstMultiple
          , h = g ? g.center : f.center
          , i = b.center = E(d);
        b.timeStamp = ra(),
        b.deltaTime = b.timeStamp - f.timeStamp,
        b.angle = I(h, i),
        b.distance = H(h, i),
        B(c, b),
        b.offsetDirection = G(b.deltaX, b.deltaY);
        var j = F(b.deltaTime, b.deltaX, b.deltaY);
        b.overallVelocityX = j.x,
        b.overallVelocityY = j.y,
        b.overallVelocity = qa(j.x) > qa(j.y) ? j.x : j.y,
        b.scale = g ? K(g.pointers, d) : 1,
        b.rotation = g ? J(g.pointers, d) : 0,
        b.maxPointers = c.prevInput ? b.pointers.length > c.prevInput.maxPointers ? b.pointers.length : c.prevInput.maxPointers : b.pointers.length,
        C(c, b);
        var k = a.element;
        o(b.srcEvent.target, k) && (k = b.srcEvent.target),
        b.target = k
    }
    function B(a, b) {
        var c = b.center
          , d = a.offsetDelta || {}
          , e = a.prevDelta || {}
          , f = a.prevInput || {};
        b.eventType !== Ea && f.eventType !== Ga || (e = a.prevDelta = {
            x: f.deltaX || 0,
            y: f.deltaY || 0
        },
        d = a.offsetDelta = {
            x: c.x,
            y: c.y
        }),
        b.deltaX = e.x + (c.x - d.x),
        b.deltaY = e.y + (c.y - d.y)
    }
    function C(a, b) {
        var c, e, f, g, h = a.lastInterval || b, i = b.timeStamp - h.timeStamp;
        if (b.eventType != Ha && (i > Da || h.velocity === d)) {
            var j = b.deltaX - h.deltaX
              , k = b.deltaY - h.deltaY
              , l = F(i, j, k);
            e = l.x,
            f = l.y,
            c = qa(l.x) > qa(l.y) ? l.x : l.y,
            g = G(j, k),
            a.lastInterval = b
        } else
            c = h.velocity,
            e = h.velocityX,
            f = h.velocityY,
            g = h.direction;
        b.velocity = c,
        b.velocityX = e,
        b.velocityY = f,
        b.direction = g
    }
    function D(a) {
        for (var b = [], c = 0; c < a.pointers.length; )
            b[c] = {
                clientX: pa(a.pointers[c].clientX),
                clientY: pa(a.pointers[c].clientY)
            },
            c++;
        return {
            timeStamp: ra(),
            pointers: b,
            center: E(b),
            deltaX: a.deltaX,
            deltaY: a.deltaY
        }
    }
    function E(a) {
        var b = a.length;
        if (1 === b)
            return {
                x: pa(a[0].clientX),
                y: pa(a[0].clientY)
            };
        for (var c = 0, d = 0, e = 0; b > e; )
            c += a[e].clientX,
            d += a[e].clientY,
            e++;
        return {
            x: pa(c / b),
            y: pa(d / b)
        }
    }
    function F(a, b, c) {
        return {
            x: b / a || 0,
            y: c / a || 0
        }
    }
    function G(a, b) {
        return a === b ? Ia : qa(a) >= qa(b) ? 0 > a ? Ja : Ka : 0 > b ? La : Ma
    }
    function H(a, b, c) {
        c || (c = Qa);
        var d = b[c[0]] - a[c[0]]
          , e = b[c[1]] - a[c[1]];
        return Math.sqrt(d * d + e * e)
    }
    function I(a, b, c) {
        c || (c = Qa);
        var d = b[c[0]] - a[c[0]]
          , e = b[c[1]] - a[c[1]];
        return 180 * Math.atan2(e, d) / Math.PI
    }
    function J(a, b) {
        return I(b[1], b[0], Ra) + I(a[1], a[0], Ra)
    }
    function K(a, b) {
        return H(b[0], b[1], Ra) / H(a[0], a[1], Ra)
    }
    function L() {
        this.evEl = Ta,
        this.evWin = Ua,
        this.pressed = !1,
        x.apply(this, arguments)
    }
    function M() {
        this.evEl = Xa,
        this.evWin = Ya,
        x.apply(this, arguments),
        this.store = this.manager.session.pointerEvents = []
    }
    function N() {
        this.evTarget = $a,
        this.evWin = _a,
        this.started = !1,
        x.apply(this, arguments)
    }
    function O(a, b) {
        var c = s(a.touches)
          , d = s(a.changedTouches);
        return b & (Ga | Ha) && (c = t(c.concat(d), "identifier", !0)),
        [c, d]
    }
    function P() {
        this.evTarget = bb,
        this.targetIds = {},
        x.apply(this, arguments)
    }
    function Q(a, b) {
        var c = s(a.touches)
          , d = this.targetIds;
        if (b & (Ea | Fa) && 1 === c.length)
            return d[c[0].identifier] = !0,
            [c, c];
        var e, f, g = s(a.changedTouches), h = [], i = this.target;
        if (f = c.filter(function(a) {
            return o(a.target, i)
        }),
        b === Ea)
            for (e = 0; e < f.length; )
                d[f[e].identifier] = !0,
                e++;
        for (e = 0; e < g.length; )
            d[g[e].identifier] && h.push(g[e]),
            b & (Ga | Ha) && delete d[g[e].identifier],
            e++;
        return h.length ? [t(f.concat(h), "identifier", !0), h] : void 0
    }
    function R() {
        x.apply(this, arguments);
        var a = j(this.handler, this);
        this.touch = new P(this.manager,a),
        this.mouse = new L(this.manager,a),
        this.primaryTouch = null,
        this.lastTouches = []
    }
    function S(a, b) {
        a & Ea ? (this.primaryTouch = b.changedPointers[0].identifier,
        T.call(this, b)) : a & (Ga | Ha) && T.call(this, b)
    }
    function T(a) {
        var b = a.changedPointers[0];
        if (b.identifier === this.primaryTouch) {
            var c = {
                x: b.clientX,
                y: b.clientY
            };
            this.lastTouches.push(c);
            var d = this.lastTouches
              , e = function() {
                var a = d.indexOf(c);
                a > -1 && d.splice(a, 1)
            };
            setTimeout(e, cb)
        }
    }
    function U(a) {
        for (var b = a.srcEvent.clientX, c = a.srcEvent.clientY, d = 0; d < this.lastTouches.length; d++) {
            var e = this.lastTouches[d]
              , f = Math.abs(b - e.x)
              , g = Math.abs(c - e.y);
            if (db >= f && db >= g)
                return !0
        }
        return !1
    }
    function V(a, b) {
        this.manager = a,
        this.set(b)
    }
    function W(a) {
        if (p(a, jb))
            return jb;
        var b = p(a, kb)
          , c = p(a, lb);
        return b && c ? jb : b || c ? b ? kb : lb : p(a, ib) ? ib : hb
    }
    function X() {
        if (!fb)
            return !1;
        var b = {}
          , c = a.CSS && a.CSS.supports;
        return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function(d) {
            b[d] = c ? a.CSS.supports("touch-action", d) : !0
        }),
        b
    }
    function Y(a) {
        this.options = la({}, this.defaults, a || {}),
        this.id = v(),
        this.manager = null,
        this.options.enable = l(this.options.enable, !0),
        this.state = nb,
        this.simultaneous = {},
        this.requireFail = []
    }
    function Z(a) {
        return a & sb ? "cancel" : a & qb ? "end" : a & pb ? "move" : a & ob ? "start" : ""
    }
    function $(a) {
        return a == Ma ? "down" : a == La ? "up" : a == Ja ? "left" : a == Ka ? "right" : ""
    }
    function _(a, b) {
        var c = b.manager;
        return c ? c.get(a) : a
    }
    function aa() {
        Y.apply(this, arguments)
    }
    function ba() {
        aa.apply(this, arguments),
        this.pX = null,
        this.pY = null
    }
    function ca() {
        aa.apply(this, arguments)
    }
    function da() {
        Y.apply(this, arguments),
        this._timer = null,
        this._input = null
    }
    function ea() {
        aa.apply(this, arguments)
    }
    function fa() {
        aa.apply(this, arguments)
    }
    function ga() {
        Y.apply(this, arguments),
        this.pTime = !1,
        this.pCenter = !1,
        this._timer = null,
        this._input = null,
        this.count = 0
    }
    function ha(a, b) {
        return b = b || {},
        b.recognizers = l(b.recognizers, ha.defaults.preset),
        new ia(a,b)
    }
    function ia(a, b) {
        this.options = la({}, ha.defaults, b || {}),
        this.options.inputTarget = this.options.inputTarget || a,
        this.handlers = {},
        this.session = {},
        this.recognizers = [],
        this.oldCssProps = {},
        this.element = a,
        this.input = y(this),
        this.touchAction = new V(this,this.options.touchAction),
        ja(this, !0),
        g(this.options.recognizers, function(a) {
            var b = this.add(new a[0](a[1]));
            a[2] && b.recognizeWith(a[2]),
            a[3] && b.requireFailure(a[3])
        }, this)
    }
    function ja(a, b) {
        var c = a.element;
        if (c.style) {
            var d;
            g(a.options.cssProps, function(e, f) {
                d = u(c.style, f),
                b ? (a.oldCssProps[d] = c.style[d],
                c.style[d] = e) : c.style[d] = a.oldCssProps[d] || ""
            }),
            b || (a.oldCssProps = {})
        }
    }
    function ka(a, c) {
        var d = b.createEvent("Event");
        d.initEvent(a, !0, !0),
        d.gesture = c,
        c.target.dispatchEvent(d)
    }
    var la, ma = ["", "webkit", "Moz", "MS", "ms", "o"], na = b.createElement("div"), oa = "function", pa = Math.round, qa = Math.abs, ra = Date.now;
    la = "function" != typeof Object.assign ? function(a) {
        if (a === d || null === a)
            throw new TypeError("Cannot convert undefined or null to object");
        for (var b = Object(a), c = 1; c < arguments.length; c++) {
            var e = arguments[c];
            if (e !== d && null !== e)
                for (var f in e)
                    e.hasOwnProperty(f) && (b[f] = e[f])
        }
        return b
    }
    : Object.assign;
    var sa = h(function(a, b, c) {
        for (var e = Object.keys(b), f = 0; f < e.length; )
            (!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]),
            f++;
        return a
    }, "extend", "Use `assign`.")
      , ta = h(function(a, b) {
        return sa(a, b, !0)
    }, "merge", "Use `assign`.")
      , ua = 1
      , va = /mobile|tablet|ip(ad|hone|od)|android/i
      , wa = "ontouchstart"in a
      , xa = u(a, "PointerEvent") !== d
      , ya = wa && va.test(navigator.userAgent)
      , za = "touch"
      , Aa = "pen"
      , Ba = "mouse"
      , Ca = "kinect"
      , Da = 25
      , Ea = 1
      , Fa = 2
      , Ga = 4
      , Ha = 8
      , Ia = 1
      , Ja = 2
      , Ka = 4
      , La = 8
      , Ma = 16
      , Na = Ja | Ka
      , Oa = La | Ma
      , Pa = Na | Oa
      , Qa = ["x", "y"]
      , Ra = ["clientX", "clientY"];
    x.prototype = {
        handler: function() {},
        init: function() {
            this.evEl && m(this.element, this.evEl, this.domHandler),
            this.evTarget && m(this.target, this.evTarget, this.domHandler),
            this.evWin && m(w(this.element), this.evWin, this.domHandler)
        },
        destroy: function() {
            this.evEl && n(this.element, this.evEl, this.domHandler),
            this.evTarget && n(this.target, this.evTarget, this.domHandler),
            this.evWin && n(w(this.element), this.evWin, this.domHandler)
        }
    };
    var Sa = {
        mousedown: Ea,
        mousemove: Fa,
        mouseup: Ga
    }
      , Ta = "mousedown"
      , Ua = "mousemove mouseup";
    i(L, x, {
        handler: function(a) {
            var b = Sa[a.type];
            b & Ea && 0 === a.button && (this.pressed = !0),
            b & Fa && 1 !== a.which && (b = Ga),
            this.pressed && (b & Ga && (this.pressed = !1),
            this.callback(this.manager, b, {
                pointers: [a],
                changedPointers: [a],
                pointerType: Ba,
                srcEvent: a
            }))
        }
    });
    var Va = {
        pointerdown: Ea,
        pointermove: Fa,
        pointerup: Ga,
        pointercancel: Ha,
        pointerout: Ha
    }
      , Wa = {
        2: za,
        3: Aa,
        4: Ba,
        5: Ca
    }
      , Xa = "pointerdown"
      , Ya = "pointermove pointerup pointercancel";
    a.MSPointerEvent && !a.PointerEvent && (Xa = "MSPointerDown",
    Ya = "MSPointerMove MSPointerUp MSPointerCancel"),
    i(M, x, {
        handler: function(a) {
            var b = this.store
              , c = !1
              , d = a.type.toLowerCase().replace("ms", "")
              , e = Va[d]
              , f = Wa[a.pointerType] || a.pointerType
              , g = f == za
              , h = r(b, a.pointerId, "pointerId");
            e & Ea && (0 === a.button || g) ? 0 > h && (b.push(a),
            h = b.length - 1) : e & (Ga | Ha) && (c = !0),
            0 > h || (b[h] = a,
            this.callback(this.manager, e, {
                pointers: b,
                changedPointers: [a],
                pointerType: f,
                srcEvent: a
            }),
            c && b.splice(h, 1))
        }
    });
    var Za = {
        touchstart: Ea,
        touchmove: Fa,
        touchend: Ga,
        touchcancel: Ha
    }
      , $a = "touchstart"
      , _a = "touchstart touchmove touchend touchcancel";
    i(N, x, {
        handler: function(a) {
            var b = Za[a.type];
            if (b === Ea && (this.started = !0),
            this.started) {
                var c = O.call(this, a, b);
                b & (Ga | Ha) && c[0].length - c[1].length === 0 && (this.started = !1),
                this.callback(this.manager, b, {
                    pointers: c[0],
                    changedPointers: c[1],
                    pointerType: za,
                    srcEvent: a
                })
            }
        }
    });
    var ab = {
        touchstart: Ea,
        touchmove: Fa,
        touchend: Ga,
        touchcancel: Ha
    }
      , bb = "touchstart touchmove touchend touchcancel";
    i(P, x, {
        handler: function(a) {
            var b = ab[a.type]
              , c = Q.call(this, a, b);
            c && this.callback(this.manager, b, {
                pointers: c[0],
                changedPointers: c[1],
                pointerType: za,
                srcEvent: a
            })
        }
    });
    var cb = 2500
      , db = 25;
    i(R, x, {
        handler: function(a, b, c) {
            var d = c.pointerType == za
              , e = c.pointerType == Ba;
            if (!(e && c.sourceCapabilities && c.sourceCapabilities.firesTouchEvents)) {
                if (d)
                    S.call(this, b, c);
                else if (e && U.call(this, c))
                    return;
                this.callback(a, b, c)
            }
        },
        destroy: function() {
            this.touch.destroy(),
            this.mouse.destroy()
        }
    });
    var eb = u(na.style, "touchAction")
      , fb = eb !== d
      , gb = "compute"
      , hb = "auto"
      , ib = "manipulation"
      , jb = "none"
      , kb = "pan-x"
      , lb = "pan-y"
      , mb = X();
    V.prototype = {
        set: function(a) {
            a == gb && (a = this.compute()),
            fb && this.manager.element.style && mb[a] && (this.manager.element.style[eb] = a),
            this.actions = a.toLowerCase().trim()
        },
        update: function() {
            this.set(this.manager.options.touchAction)
        },
        compute: function() {
            var a = [];
            return g(this.manager.recognizers, function(b) {
                k(b.options.enable, [b]) && (a = a.concat(b.getTouchAction()))
            }),
            W(a.join(" "))
        },
        preventDefaults: function(a) {
            var b = a.srcEvent
              , c = a.offsetDirection;
            if (this.manager.session.prevented)
                return void b.preventDefault();
            var d = this.actions
              , e = p(d, jb) && !mb[jb]
              , f = p(d, lb) && !mb[lb]
              , g = p(d, kb) && !mb[kb];
            if (e) {
                var h = 1 === a.pointers.length
                  , i = a.distance < 2
                  , j = a.deltaTime < 250;
                if (h && i && j)
                    return
            }
            return g && f ? void 0 : e || f && c & Na || g && c & Oa ? this.preventSrc(b) : void 0
        },
        preventSrc: function(a) {
            this.manager.session.prevented = !0,
            a.preventDefault()
        }
    };
    var nb = 1
      , ob = 2
      , pb = 4
      , qb = 8
      , rb = qb
      , sb = 16
      , tb = 32;
    Y.prototype = {
        defaults: {},
        set: function(a) {
            return la(this.options, a),
            this.manager && this.manager.touchAction.update(),
            this
        },
        recognizeWith: function(a) {
            if (f(a, "recognizeWith", this))
                return this;
            var b = this.simultaneous;
            return a = _(a, this),
            b[a.id] || (b[a.id] = a,
            a.recognizeWith(this)),
            this
        },
        dropRecognizeWith: function(a) {
            return f(a, "dropRecognizeWith", this) ? this : (a = _(a, this),
            delete this.simultaneous[a.id],
            this)
        },
        requireFailure: function(a) {
            if (f(a, "requireFailure", this))
                return this;
            var b = this.requireFail;
            return a = _(a, this),
            -1 === r(b, a) && (b.push(a),
            a.requireFailure(this)),
            this
        },
        dropRequireFailure: function(a) {
            if (f(a, "dropRequireFailure", this))
                return this;
            a = _(a, this);
            var b = r(this.requireFail, a);
            return b > -1 && this.requireFail.splice(b, 1),
            this
        },
        hasRequireFailures: function() {
            return this.requireFail.length > 0
        },
        canRecognizeWith: function(a) {
            return !!this.simultaneous[a.id]
        },
        emit: function(a) {
            function b(b) {
                c.manager.emit(b, a)
            }
            var c = this
              , d = this.state;
            qb > d && b(c.options.event + Z(d)),
            b(c.options.event),
            a.additionalEvent && b(a.additionalEvent),
            d >= qb && b(c.options.event + Z(d))
        },
        tryEmit: function(a) {
            return this.canEmit() ? this.emit(a) : void (this.state = tb)
        },
        canEmit: function() {
            for (var a = 0; a < this.requireFail.length; ) {
                if (!(this.requireFail[a].state & (tb | nb)))
                    return !1;
                a++
            }
            return !0
        },
        recognize: function(a) {
            var b = la({}, a);
            return k(this.options.enable, [this, b]) ? (this.state & (rb | sb | tb) && (this.state = nb),
            this.state = this.process(b),
            void (this.state & (ob | pb | qb | sb) && this.tryEmit(b))) : (this.reset(),
            void (this.state = tb))
        },
        process: function(a) {},
        getTouchAction: function() {},
        reset: function() {}
    },
    i(aa, Y, {
        defaults: {
            pointers: 1
        },
        attrTest: function(a) {
            var b = this.options.pointers;
            return 0 === b || a.pointers.length === b
        },
        process: function(a) {
            var b = this.state
              , c = a.eventType
              , d = b & (ob | pb)
              , e = this.attrTest(a);
            return d && (c & Ha || !e) ? b | sb : d || e ? c & Ga ? b | qb : b & ob ? b | pb : ob : tb
        }
    }),
    i(ba, aa, {
        defaults: {
            event: "pan",
            threshold: 10,
            pointers: 1,
            direction: Pa
        },
        getTouchAction: function() {
            var a = this.options.direction
              , b = [];
            return a & Na && b.push(lb),
            a & Oa && b.push(kb),
            b
        },
        directionTest: function(a) {
            var b = this.options
              , c = !0
              , d = a.distance
              , e = a.direction
              , f = a.deltaX
              , g = a.deltaY;
            return e & b.direction || (b.direction & Na ? (e = 0 === f ? Ia : 0 > f ? Ja : Ka,
            c = f != this.pX,
            d = Math.abs(a.deltaX)) : (e = 0 === g ? Ia : 0 > g ? La : Ma,
            c = g != this.pY,
            d = Math.abs(a.deltaY))),
            a.direction = e,
            c && d > b.threshold && e & b.direction
        },
        attrTest: function(a) {
            return aa.prototype.attrTest.call(this, a) && (this.state & ob || !(this.state & ob) && this.directionTest(a))
        },
        emit: function(a) {
            this.pX = a.deltaX,
            this.pY = a.deltaY;
            var b = $(a.direction);
            b && (a.additionalEvent = this.options.event + b),
            this._super.emit.call(this, a)
        }
    }),
    i(ca, aa, {
        defaults: {
            event: "pinch",
            threshold: 0,
            pointers: 2
        },
        getTouchAction: function() {
            return [jb]
        },
        attrTest: function(a) {
            return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & ob)
        },
        emit: function(a) {
            if (1 !== a.scale) {
                var b = a.scale < 1 ? "in" : "out";
                a.additionalEvent = this.options.event + b
            }
            this._super.emit.call(this, a)
        }
    }),
    i(da, Y, {
        defaults: {
            event: "press",
            pointers: 1,
            time: 251,
            threshold: 9
        },
        getTouchAction: function() {
            return [hb]
        },
        process: function(a) {
            var b = this.options
              , c = a.pointers.length === b.pointers
              , d = a.distance < b.threshold
              , f = a.deltaTime > b.time;
            if (this._input = a,
            !d || !c || a.eventType & (Ga | Ha) && !f)
                this.reset();
            else if (a.eventType & Ea)
                this.reset(),
                this._timer = e(function() {
                    this.state = rb,
                    this.tryEmit()
                }, b.time, this);
            else if (a.eventType & Ga)
                return rb;
            return tb
        },
        reset: function() {
            clearTimeout(this._timer)
        },
        emit: function(a) {
            this.state === rb && (a && a.eventType & Ga ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = ra(),
            this.manager.emit(this.options.event, this._input)))
        }
    }),
    i(ea, aa, {
        defaults: {
            event: "rotate",
            threshold: 0,
            pointers: 2
        },
        getTouchAction: function() {
            return [jb]
        },
        attrTest: function(a) {
            return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & ob)
        }
    }),
    i(fa, aa, {
        defaults: {
            event: "swipe",
            threshold: 10,
            velocity: .3,
            direction: Na | Oa,
            pointers: 1
        },
        getTouchAction: function() {
            return ba.prototype.getTouchAction.call(this)
        },
        attrTest: function(a) {
            var b, c = this.options.direction;
            return c & (Na | Oa) ? b = a.overallVelocity : c & Na ? b = a.overallVelocityX : c & Oa && (b = a.overallVelocityY),
            this._super.attrTest.call(this, a) && c & a.offsetDirection && a.distance > this.options.threshold && a.maxPointers == this.options.pointers && qa(b) > this.options.velocity && a.eventType & Ga
        },
        emit: function(a) {
            var b = $(a.offsetDirection);
            b && this.manager.emit(this.options.event + b, a),
            this.manager.emit(this.options.event, a)
        }
    }),
    i(ga, Y, {
        defaults: {
            event: "tap",
            pointers: 1,
            taps: 1,
            interval: 300,
            time: 250,
            threshold: 9,
            posThreshold: 10
        },
        getTouchAction: function() {
            return [ib]
        },
        process: function(a) {
            var b = this.options
              , c = a.pointers.length === b.pointers
              , d = a.distance < b.threshold
              , f = a.deltaTime < b.time;
            if (this.reset(),
            a.eventType & Ea && 0 === this.count)
                return this.failTimeout();
            if (d && f && c) {
                if (a.eventType != Ga)
                    return this.failTimeout();
                var g = this.pTime ? a.timeStamp - this.pTime < b.interval : !0
                  , h = !this.pCenter || H(this.pCenter, a.center) < b.posThreshold;
                this.pTime = a.timeStamp,
                this.pCenter = a.center,
                h && g ? this.count += 1 : this.count = 1,
                this._input = a;
                var i = this.count % b.taps;
                if (0 === i)
                    return this.hasRequireFailures() ? (this._timer = e(function() {
                        this.state = rb,
                        this.tryEmit()
                    }, b.interval, this),
                    ob) : rb
            }
            return tb
        },
        failTimeout: function() {
            return this._timer = e(function() {
                this.state = tb
            }, this.options.interval, this),
            tb
        },
        reset: function() {
            clearTimeout(this._timer)
        },
        emit: function() {
            this.state == rb && (this._input.tapCount = this.count,
            this.manager.emit(this.options.event, this._input))
        }
    }),
    ha.VERSION = "2.0.8",
    ha.defaults = {
        domEvents: !1,
        touchAction: gb,
        enable: !0,
        inputTarget: null,
        inputClass: null,
        preset: [[ea, {
            enable: !1
        }], [ca, {
            enable: !1
        }, ["rotate"]], [fa, {
            direction: Na
        }], [ba, {
            direction: Na
        }, ["swipe"]], [ga], [ga, {
            event: "doubletap",
            taps: 2
        }, ["tap"]], [da]],
        cssProps: {
            userSelect: "none",
            touchSelect: "none",
            touchCallout: "none",
            contentZooming: "none",
            userDrag: "none",
            tapHighlightColor: "rgba(0,0,0,0)"
        }
    };
    var ub = 1
      , vb = 2;
    ia.prototype = {
        set: function(a) {
            return la(this.options, a),
            a.touchAction && this.touchAction.update(),
            a.inputTarget && (this.input.destroy(),
            this.input.target = a.inputTarget,
            this.input.init()),
            this
        },
        stop: function(a) {
            this.session.stopped = a ? vb : ub
        },
        recognize: function(a) {
            var b = this.session;
            if (!b.stopped) {
                this.touchAction.preventDefaults(a);
                var c, d = this.recognizers, e = b.curRecognizer;
                (!e || e && e.state & rb) && (e = b.curRecognizer = null);
                for (var f = 0; f < d.length; )
                    c = d[f],
                    b.stopped === vb || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a),
                    !e && c.state & (ob | pb | qb) && (e = b.curRecognizer = c),
                    f++
            }
        },
        get: function(a) {
            if (a instanceof Y)
                return a;
            for (var b = this.recognizers, c = 0; c < b.length; c++)
                if (b[c].options.event == a)
                    return b[c];
            return null
        },
        add: function(a) {
            if (f(a, "add", this))
                return this;
            var b = this.get(a.options.event);
            return b && this.remove(b),
            this.recognizers.push(a),
            a.manager = this,
            this.touchAction.update(),
            a
        },
        remove: function(a) {
            if (f(a, "remove", this))
                return this;
            if (a = this.get(a)) {
                var b = this.recognizers
                  , c = r(b, a);
                -1 !== c && (b.splice(c, 1),
                this.touchAction.update())
            }
            return this
        },
        on: function(a, b) {
            if (a !== d && b !== d) {
                var c = this.handlers;
                return g(q(a), function(a) {
                    c[a] = c[a] || [],
                    c[a].push(b)
                }),
                this
            }
        },
        off: function(a, b) {
            if (a !== d) {
                var c = this.handlers;
                return g(q(a), function(a) {
                    b ? c[a] && c[a].splice(r(c[a], b), 1) : delete c[a]
                }),
                this
            }
        },
        emit: function(a, b) {
            this.options.domEvents && ka(a, b);
            var c = this.handlers[a] && this.handlers[a].slice();
            if (c && c.length) {
                b.type = a,
                b.preventDefault = function() {
                    b.srcEvent.preventDefault()
                }
                ;
                for (var d = 0; d < c.length; )
                    c[d](b),
                    d++
            }
        },
        destroy: function() {
            this.element && ja(this, !1),
            this.handlers = {},
            this.session = {},
            this.input.destroy(),
            this.element = null
        }
    },
    la(ha, {
        INPUT_START: Ea,
        INPUT_MOVE: Fa,
        INPUT_END: Ga,
        INPUT_CANCEL: Ha,
        STATE_POSSIBLE: nb,
        STATE_BEGAN: ob,
        STATE_CHANGED: pb,
        STATE_ENDED: qb,
        STATE_RECOGNIZED: rb,
        STATE_CANCELLED: sb,
        STATE_FAILED: tb,
        DIRECTION_NONE: Ia,
        DIRECTION_LEFT: Ja,
        DIRECTION_RIGHT: Ka,
        DIRECTION_UP: La,
        DIRECTION_DOWN: Ma,
        DIRECTION_HORIZONTAL: Na,
        DIRECTION_VERTICAL: Oa,
        DIRECTION_ALL: Pa,
        Manager: ia,
        Input: x,
        TouchAction: V,
        TouchInput: P,
        MouseInput: L,
        PointerEventInput: M,
        TouchMouseInput: R,
        SingleTouchInput: N,
        Recognizer: Y,
        AttrRecognizer: aa,
        Tap: ga,
        Pan: ba,
        Swipe: fa,
        Pinch: ca,
        Rotate: ea,
        Press: da,
        on: m,
        off: n,
        each: g,
        merge: ta,
        extend: sa,
        assign: la,
        inherit: i,
        bindFn: j,
        prefixed: u
    });
    var wb = "undefined" != typeof a ? a : "undefined" != typeof self ? self : {};
    wb.Hammer = ha,
    "function" == typeof define && define.amd ? define(function() {
        return ha
    }) : "undefined" != typeof module && module.exports ? module.exports = ha : a[c] = ha
}(window, document, "Hammer");
//# sourceMappingURL=hammer.min.js.map

/*! instant.page v5.1.0 - (C) 2019-2020 Alexandre Dieulot - https://instant.page/license */
let t, e;
const n = new Set
  , o = document.createElement("link")
  , i = o.relList && o.relList.supports && o.relList.supports("prefetch") && window.IntersectionObserver && "isIntersecting"in IntersectionObserverEntry.prototype
  , s = "instantAllowQueryString"in document.body.dataset
  , a = "instantAllowExternalLinks"in document.body.dataset
  , r = "instantWhitelist"in document.body.dataset
  , c = "instantMousedownShortcut"in document.body.dataset
  , d = 1111;
let l = 65
  , u = !1
  , f = !1
  , m = !1;
if ("instantIntensity"in document.body.dataset) {
    const t = document.body.dataset.instantIntensity;
    if ("mousedown" == t.substr(0, "mousedown".length))
        u = !0,
        "mousedown-only" == t && (f = !0);
    else if ("viewport" == t.substr(0, "viewport".length))
        navigator.connection && (navigator.connection.saveData || navigator.connection.effectiveType && navigator.connection.effectiveType.includes("2g")) || ("viewport" == t ? document.documentElement.clientWidth * document.documentElement.clientHeight < 45e4 && (m = !0) : "viewport-all" == t && (m = !0));
    else {
        const e = parseInt(t);
        isNaN(e) || (l = e)
    }
}
if (i) {
    const n = {
        capture: !0,
        passive: !0
    };
    if (f || document.addEventListener("touchstart", function(t) {
        e = performance.now();
        const n = t.target.closest("a");
        if (!h(n))
            return;
        v(n.href)
    }, n),
    u ? c || document.addEventListener("mousedown", function(t) {
        const e = t.target.closest("a");
        if (!h(e))
            return;
        v(e.href)
    }, n) : document.addEventListener("mouseover", function(n) {
        if (performance.now() - e < d)
            return;
        const o = n.target.closest("a");
        if (!h(o))
            return;
        o.addEventListener("mouseout", p, {
            passive: !0
        }),
        t = setTimeout( () => {
            v(o.href),
            t = void 0
        }
        , l)
    }, n),
    c && document.addEventListener("mousedown", function(t) {
        if (performance.now() - e < d)
            return;
        const n = t.target.closest("a");
        if (t.which > 1 || t.metaKey || t.ctrlKey)
            return;
        if (!n)
            return;
        n.addEventListener("click", function(t) {
            1337 != t.detail && t.preventDefault()
        }, {
            capture: !0,
            passive: !1,
            once: !0
        });
        const o = new MouseEvent("click",{
            view: window,
            bubbles: !0,
            cancelable: !1,
            detail: 1337
        });
        n.dispatchEvent(o)
    }, n),
    m) {
        let t;
        (t = window.requestIdleCallback ? t => {
            requestIdleCallback(t, {
                timeout: 1500
            })
        }
        : t => {
            t()
        }
        )( () => {
            const t = new IntersectionObserver(e => {
                e.forEach(e => {
                    if (e.isIntersecting) {
                        const n = e.target;
                        t.unobserve(n),
                        v(n.href)
                    }
                }
                )
            }
            );
            document.querySelectorAll("a").forEach(e => {
                h(e) && t.observe(e)
            }
            )
        }
        )
    }
}
function p(e) {
    e.relatedTarget && e.target.closest("a") == e.relatedTarget.closest("a") || t && (clearTimeout(t),
    t = void 0)
}
function h(t) {
    if (t && t.href && (!r || "instant"in t.dataset) && (a || t.origin == location.origin || "instant"in t.dataset) && ["http:", "https:"].includes(t.protocol) && ("http:" != t.protocol || "https:" != location.protocol) && (s || !t.search || "instant"in t.dataset) && !(t.hash && t.pathname + t.search == location.pathname + location.search || "noInstant"in t.dataset))
        return !0
}
function v(t) {
    if (n.has(t))
        return;
    const e = document.createElement("link");
    e.rel = "prefetch",
    e.href = t,
    document.head.appendChild(e),
    n.add(t)
}

$.extend({
    replaceTag: function(e, a, t) {
        var n = $(e)
          , s = $(a).clone();
        return t && (newTag = s[0],
        newTag.className = e.className,
        $.extend(newTag.classList, e.classList),
        $.extend(newTag.attributes, e.attributes)),
        n.wrapAll(s),
        n.contents().unwrap(),
        this
    }
}),
$.fn.extend({
    replaceTag: function(e, a) {
        return this.each(function() {
            jQuery.replaceTag(this, e, a)
        })
    }
});

/*
* jQuery UI Tag-it!
*
* @version v2.0 (06/2011)
*
* Copyright 2011, Levy Carneiro Jr.
* Released under the MIT license.
* http://aehlke.github.com/tag-it/LICENSE
*
* Homepage:
*   http://aehlke.github.com/tag-it/
*
* Authors:
*   Levy Carneiro Jr.
*   Martin Rehfeld
*   Tobias Schmidt
*   Skylar Challand
*   Alex Ehlke
*
* Maintainer:
*   Alex Ehlke - Twitter: @aehlke
*
* Dependencies:
*   jQuery v1.4+
*   jQuery UI v1.8+
*/
(function($) {

    $.widget('ui.tagit', {
        options: {
            allowDuplicates   : false,
            caseSensitive     : true,
            fieldName         : 'tags',
            placeholderText   : null,   // Sets `placeholder` attr on input field.
            readOnly          : false,  // Disables editing.
            removeConfirmation: false,  // Require confirmation to remove tags.
            tagLimit          : null,   // Max number of tags allowed (null for unlimited).

            // Used for autocomplete, unless you override `autocomplete.source`.
            availableTags     : [],

            // Use to override or add any options to the autocomplete widget.
            //
            // By default, autocomplete.source will map to availableTags,
            // unless overridden.
            autocomplete: {},

            // Shows autocomplete before the user even types anything.
            showAutocompleteOnFocus: false,

            // When enabled, quotes are unneccesary for inputting multi-word tags.
            allowSpaces: false,

            // The below options are for using a single field instead of several
            // for our form values.
            //
            // When enabled, will use a single hidden field for the form,
            // rather than one per tag. It will delimit tags in the field
            // with singleFieldDelimiter.
            //
            // The easiest way to use singleField is to just instantiate tag-it
            // on an INPUT element, in which case singleField is automatically
            // set to true, and singleFieldNode is set to that element. This
            // way, you don't need to fiddle with these options.
            singleField: false,

            // This is just used when preloading data from the field, and for
            // populating the field with delimited tags as the user adds them.
            singleFieldDelimiter: ',',

            // Set this to an input DOM node to use an existing form field.
            // Any text in it will be erased on init. But it will be
            // populated with the text of tags as they are created,
            // delimited by singleFieldDelimiter.
            //
            // If this is not set, we create an input node for it,
            // with the name given in settings.fieldName.
            singleFieldNode: null,

            // Whether to animate tag removals or not.
            animate: true,

            // Optionally set a tabindex attribute on the input that gets
            // created for tag-it.
            tabIndex: null,

            // Event callbacks.
            beforeTagAdded      : null,
            afterTagAdded       : null,

            beforeTagRemoved    : null,
            afterTagRemoved     : null,

            onTagClicked        : null,
            onTagLimitExceeded  : null,


            // DEPRECATED:
            //
            // /!\ These event callbacks are deprecated and WILL BE REMOVED at some
            // point in the future. They're here for backwards-compatibility.
            // Use the above before/after event callbacks instead.
            onTagAdded  : null,
            onTagRemoved: null,
            // `autocomplete.source` is the replacement for tagSource.
            tagSource: null
            // Do not use the above deprecated options.
        },

        _create: function() {
            // for handling static scoping inside callbacks
            var that = this;

            // There are 2 kinds of DOM nodes this widget can be instantiated on:
            //     1. UL, OL, or some element containing either of these.
            //     2. INPUT, in which case 'singleField' is overridden to true,
            //        a UL is created and the INPUT is hidden.
            if (this.element.is('input')) {
                this.tagList = $('<ul></ul>').insertAfter(this.element);
                this.options.singleField = true;
                this.options.singleFieldNode = this.element;
                this.element.addClass('tagit-hidden-field');
            } else {
                this.tagList = this.element.find('ul, ol').addBack().last();
            }

            this.tagInput = $('<input type="text" />').addClass('ui-widget-content');

            if (this.options.readOnly) this.tagInput.attr('disabled', 'disabled');

            if (this.options.tabIndex) {
                this.tagInput.attr('tabindex', this.options.tabIndex);
            }

            if (this.options.placeholderText) {
                this.tagInput.attr('placeholder', this.options.placeholderText);
            }

            if (!this.options.autocomplete.source) {
                this.options.autocomplete.source = function(search, showChoices) {
                    var filter = search.term.toLowerCase();
                    var choices = $.grep(this.options.availableTags, function(element) {
                        // Only match autocomplete options that begin with the search term.
                        // (Case insensitive.)
                        return (element.toLowerCase().indexOf(filter) === 0);
                    });
                    if (!this.options.allowDuplicates) {
                        choices = this._subtractArray(choices, this.assignedTags());
                    }
                    showChoices(choices);
                };
            }

            if (this.options.showAutocompleteOnFocus) {
                this.tagInput.focus(function(event, ui) {
                    that._showAutocomplete();
                });

                if (typeof this.options.autocomplete.minLength === 'undefined') {
                    this.options.autocomplete.minLength = 0;
                }
            }

            // Bind autocomplete.source callback functions to this context.
            if ($.isFunction(this.options.autocomplete.source)) {
                this.options.autocomplete.source = $.proxy(this.options.autocomplete.source, this);
            }

            // DEPRECATED.
            if ($.isFunction(this.options.tagSource)) {
                this.options.tagSource = $.proxy(this.options.tagSource, this);
            }

            this.tagList
                .addClass('tagit')
                .addClass('ui-widget ui-widget-content ui-corner-all')
                // Create the input field.
                .append($('<li class="tagit-new"></li>').append(this.tagInput))
                .click(function(e) {
                    var target = $(e.target);
                    if (target.hasClass('tagit-label')) {
                        var tag = target.closest('.tagit-choice');
                        if (!tag.hasClass('removed')) {
                            that._trigger('onTagClicked', e, {tag: tag, tagLabel: that.tagLabel(tag)});
                        }
                    } else {
                        // Sets the focus() to the input field, if the user
                        // clicks anywhere inside the UL. This is needed
                        // because the input field needs to be of a small size.
                        that.tagInput.focus();
                    }
                });

            // Single field support.
            var addedExistingFromSingleFieldNode = false;
            if (this.options.singleField) {
                if (this.options.singleFieldNode) {
                    // Add existing tags from the input field.
                    var node = $(this.options.singleFieldNode);
                    var tags = node.val().split(this.options.singleFieldDelimiter);
                    node.val('');
                    $.each(tags, function(index, tag) {
                        that.createTag(tag, null, true);
                        addedExistingFromSingleFieldNode = true;
                    });
                } else {
                    // Create our single field input after our list.
                    this.options.singleFieldNode = $('<input type="hidden" style="display:none;" value="" name="' + this.options.fieldName + '" />');
                    this.tagList.after(this.options.singleFieldNode);
                }
            }

            // Add existing tags from the list, if any.
            if (!addedExistingFromSingleFieldNode) {
                this.tagList.children('li').each(function() {
                    if (!$(this).hasClass('tagit-new')) {
                        that.createTag($(this).text(), $(this).attr('class'), true);
                        $(this).remove();
                    }
                });
            }

            // Events.
            this.tagInput
                .keydown(function(event) {
                    // Backspace is not detected within a keypress, so it must use keydown.
                    if (event.which == $.ui.keyCode.BACKSPACE && that.tagInput.val() === '') {
                        var tag = that._lastTag();
                        if (!that.options.removeConfirmation || tag.hasClass('remove')) {
                            // When backspace is pressed, the last tag is deleted.
                            that.removeTag(tag);
                        } else if (that.options.removeConfirmation) {
                            tag.addClass('remove ui-state-highlight');
                        }
                    } else if (that.options.removeConfirmation) {
                        that._lastTag().removeClass('remove ui-state-highlight');
                    }

                    // Comma/Space/Enter are all valid delimiters for new tags,
                    // except when there is an open quote or if setting allowSpaces = true.
                    // Tab will also create a tag, unless the tag input is empty,
                    // in which case it isn't caught.
                    if (
                        (event.key === ',' && event.shiftKey === false) ||
                        event.which === $.ui.keyCode.ENTER ||
                        (
                            event.which == $.ui.keyCode.TAB &&
                            that.tagInput.val() !== ''
                        ) ||
                        (
                            event.which == $.ui.keyCode.SPACE &&
                            that.options.allowSpaces !== true &&
                            (
                                $.trim(that.tagInput.val()).replace( /^s*/, '' ).charAt(0) != '"' ||
                                (
                                    $.trim(that.tagInput.val()).charAt(0) == '"' &&
                                    $.trim(that.tagInput.val()).charAt($.trim(that.tagInput.val()).length - 1) == '"' &&
                                    $.trim(that.tagInput.val()).length - 1 !== 0
                                )
                            )
                        )
                    ) {
                        // Enter submits the form if there's no text in the input.
                        if (!(event.which === $.ui.keyCode.ENTER && that.tagInput.val() === '')) {
                            event.preventDefault();
                        }

                        // Autocomplete will create its own tag from a selection and close automatically.
                        if (!(that.options.autocomplete.autoFocus && that.tagInput.data('autocomplete-open'))) {
                            that.tagInput.autocomplete('close');
                            that.createTag(that._cleanedInput());
                        }
                    }
                }).blur(function(e){
                    // Create a tag when the element loses focus.
                    // If autocomplete is enabled and suggestion was clicked, don't add it.
                    if (!that.tagInput.data('autocomplete-open')) {
                        that.createTag(that._cleanedInput());
                    }
                });

            // Autocomplete.
            if (this.options.availableTags || this.options.tagSource || this.options.autocomplete.source) {
                var autocompleteOptions = {
                    select: function(event, ui) {
                        that.createTag(ui.item.value);
                        // Preventing the tag input to be updated with the chosen value.
                        return false;
                    }
                };
                $.extend(autocompleteOptions, this.options.autocomplete);

                // tagSource is deprecated, but takes precedence here since autocomplete.source is set by default,
                // while tagSource is left null by default.
                autocompleteOptions.source = this.options.tagSource || autocompleteOptions.source;

                this.tagInput.autocomplete(autocompleteOptions).bind('autocompleteopen.tagit', function(event, ui) {
                    that.tagInput.data('autocomplete-open', true);
                }).bind('autocompleteclose.tagit', function(event, ui) {
                    that.tagInput.data('autocomplete-open', false)
                });

                this.tagInput.autocomplete('widget').addClass('tagit-autocomplete');
            }
        },

        destroy: function() {
            $.Widget.prototype.destroy.call(this);

            this.element.unbind('.tagit');
            this.tagList.unbind('.tagit');

            this.tagInput.removeData('autocomplete-open');

            this.tagList.removeClass([
                'tagit',
                'ui-widget',
                'ui-widget-content',
                'ui-corner-all',
                'tagit-hidden-field'
            ].join(' '));

            if (this.element.is('input')) {
                this.element.removeClass('tagit-hidden-field');
                this.tagList.remove();
            } else {
                this.element.children('li').each(function() {
                    if ($(this).hasClass('tagit-new')) {
                        $(this).remove();
                    } else {
                        $(this).removeClass([
                            'tagit-choice',
                            'ui-widget-content',
                            'ui-state-default',
                            'ui-state-highlight',
                            'ui-corner-all',
                            'remove',
                            'tagit-choice-editable',
                            'tagit-choice-read-only'
                        ].join(' '));

                        $(this).text($(this).children('.tagit-label').text());
                    }
                });

                if (this.singleFieldNode) {
                    this.singleFieldNode.remove();
                }
            }

            return this;
        },

        _cleanedInput: function() {
            // Returns the contents of the tag input, cleaned and ready to be passed to createTag
            return $.trim(this.tagInput.val().replace(/^"(.*)"$/, '$1'));
        },

        _lastTag: function() {
            return this.tagList.find('.tagit-choice:last:not(.removed)');
        },

        _tags: function() {
            return this.tagList.find('.tagit-choice:not(.removed)');
        },

        assignedTags: function() {
            // Returns an array of tag string values
            var that = this;
            var tags = [];
            if (this.options.singleField) {
                tags = $(this.options.singleFieldNode).val().split(this.options.singleFieldDelimiter);
                if (tags[0] === '') {
                    tags = [];
                }
            } else {
                this._tags().each(function() {
                    tags.push(that.tagLabel(this));
                });
            }
            return tags;
        },

        _updateSingleTagsField: function(tags) {
            // Takes a list of tag string values, updates this.options.singleFieldNode.val to the tags delimited by this.options.singleFieldDelimiter
            $(this.options.singleFieldNode).val(tags.join(this.options.singleFieldDelimiter)).trigger('change');
        },

        _subtractArray: function(a1, a2) {
            var result = [];
            for (var i = 0; i < a1.length; i++) {
                if ($.inArray(a1[i], a2) == -1) {
                    result.push(a1[i]);
                }
            }
            return result;
        },

        tagLabel: function(tag) {
            // Returns the tag's string label.
            if (this.options.singleField) {
                return $(tag).find('.tagit-label:first').text();
            } else {
                return $(tag).find('input:first').val();
            }
        },

        _showAutocomplete: function() {
            this.tagInput.autocomplete('search', '');
        },

        _findTagByLabel: function(name) {
            var that = this;
            var tag = null;
            this._tags().each(function(i) {
                if (that._formatStr(name) == that._formatStr(that.tagLabel(this))) {
                    tag = $(this);
                    return false;
                }
            });
            return tag;
        },

        _isNew: function(name) {
            return !this._findTagByLabel(name);
        },

        _formatStr: function(str) {
            if (this.options.caseSensitive) {
                return str;
            }
            return $.trim(str.toLowerCase());
        },

        _effectExists: function(name) {
            return Boolean($.effects && ($.effects[name] || ($.effects.effect && $.effects.effect[name])));
        },

        createTag: function(value, additionalClass, duringInitialization) {
            var that = this;

            value = $.trim(value);

            if(this.options.preprocessTag) {
                value = this.options.preprocessTag(value);
            }

            if (value === '') {
                return false;
            }

            if (!this.options.allowDuplicates && !this._isNew(value)) {
                var existingTag = this._findTagByLabel(value);
                if (this._trigger('onTagExists', null, {
                    existingTag: existingTag,
                    duringInitialization: duringInitialization
                }) !== false) {
                    if (this._effectExists('highlight')) {
                        existingTag.effect('highlight');
                    }
                }
                return false;
            }

            if (this.options.tagLimit && this._tags().length >= this.options.tagLimit) {
                this._trigger('onTagLimitExceeded', null, {duringInitialization: duringInitialization});
                return false;
            }

            var label = $(this.options.onTagClicked ? '<a class="tagit-label"></a>' : '<span class="tagit-label"></span>').text(value);

            // Create tag.
            var tag = $('<li></li>')
                .addClass('tagit-choice ui-widget-content ui-state-default ui-corner-all')
                .addClass(additionalClass)
                .append(label);

            if (this.options.readOnly){
                tag.addClass('tagit-choice-read-only');
            } else {
                tag.addClass('tagit-choice-editable');
                // Button for removing the tag.
                var removeTagIcon = $('<span></span>')
                    .addClass('ui-icon ui-icon-close');
                var removeTag = $('<a><span class="text-icon">\xd7</span></a>') // \xd7 is an X
                    .addClass('tagit-close')
                    .append(removeTagIcon)
                    .click(function(e) {
                        // Removes a tag when the little 'x' is clicked.
                        that.removeTag(tag);
                    });
                tag.append(removeTag);
            }

            // Unless options.singleField is set, each tag has a hidden input field inline.
            if (!this.options.singleField) {
                var escapedValue = label.html();
                tag.append('<input type="hidden" value="' + escapedValue + '" name="' + this.options.fieldName + '" class="tagit-hidden-field" />');
            }

            if (this._trigger('beforeTagAdded', null, {
                tag: tag,
                tagLabel: this.tagLabel(tag),
                duringInitialization: duringInitialization
            }) === false) {
                return;
            }

            if (this.options.singleField) {
                var tags = this.assignedTags();
                tags.push(value);
                this._updateSingleTagsField(tags);
            }

            // DEPRECATED.
            this._trigger('onTagAdded', null, tag);

            this.tagInput.val('');

            // Insert tag.
            this.tagInput.parent().before(tag);

            this._trigger('afterTagAdded', null, {
                tag: tag,
                tagLabel: this.tagLabel(tag),
                duringInitialization: duringInitialization
            });

            if (this.options.showAutocompleteOnFocus && !duringInitialization) {
                setTimeout(function () { that._showAutocomplete(); }, 0);
            }
        },

        removeTag: function(tag, animate) {
            animate = typeof animate === 'undefined' ? this.options.animate : animate;

            tag = $(tag);

            // DEPRECATED.
            this._trigger('onTagRemoved', null, tag);

            if (this._trigger('beforeTagRemoved', null, {tag: tag, tagLabel: this.tagLabel(tag)}) === false) {
                return;
            }

            if (this.options.singleField) {
                var tags = this.assignedTags();
                var removedTagLabel = this.tagLabel(tag);
                tags = $.grep(tags, function(el){
                    return el != removedTagLabel;
                });
                this._updateSingleTagsField(tags);
            }

            if (animate) {
                tag.addClass('removed'); // Excludes this tag from _tags.
                var hide_args = this._effectExists('blind') ? ['blind', {direction: 'horizontal'}, 'fast'] : ['fast'];

                var thisTag = this;
                hide_args.push(function() {
                    tag.remove();
                    thisTag._trigger('afterTagRemoved', null, {tag: tag, tagLabel: thisTag.tagLabel(tag)});
                });

                tag.fadeOut('fast').hide.apply(tag, hide_args).dequeue();
            } else {
                tag.remove();
                this._trigger('afterTagRemoved', null, {tag: tag, tagLabel: this.tagLabel(tag)});
            }

        },

        removeTagByLabel: function(tagLabel, animate) {
            var toRemove = this._findTagByLabel(tagLabel);
            if (!toRemove) {
                throw "No such tag exists with the name '" + tagLabel + "'";
            }
            this.removeTag(toRemove, animate);
        },

        removeAll: function() {
            // Removes all tags.
            var that = this;
            this._tags().each(function(index, tag) {
                that.removeTag(tag, false);
            });
        }

    });
})(jQuery);

(function(e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self,
    e.Swiper = t())
}
)(this, function() {
    "use strict";
    function e(e, t) {
        for (var a = 0; a < t.length; a++) {
            var i = t[a];
            i.enumerable = i.enumerable || !1,
            i.configurable = !0,
            "value"in i && (i.writable = !0),
            Object.defineProperty(e, i.key, i)
        }
    }
    function t(t, a, i) {
        return a && e(t.prototype, a),
        i && e(t, i),
        t
    }
    function a() {
        return a = Object.assign || function(e) {
            for (var t = 1; t < arguments.length; t++) {
                var a = arguments[t];
                for (var i in a)
                    Object.prototype.hasOwnProperty.call(a, i) && (e[i] = a[i])
            }
            return e
        }
        ,
        a.apply(this, arguments)
    }
    function i(e) {
        return null !== e && "object" == typeof e && "constructor"in e && e.constructor === Object
    }
    function r(e, t) {
        void 0 === e && (e = {}),
        void 0 === t && (t = {}),
        Object.keys(t).forEach(function(a) {
            void 0 === e[a] ? e[a] = t[a] : i(t[a]) && i(e[a]) && Object.keys(t[a]).length > 0 && r(e[a], t[a])
        })
    }
    function s() {
        var e = "undefined" != typeof document ? document : {};
        return r(e, mt),
        e
    }
    function n() {
        var e = "undefined" != typeof window ? window : {};
        return r(e, gt),
        e
    }
    function o(e, t) {
        e.prototype = Object.create(t.prototype),
        e.prototype.constructor = e,
        e.__proto__ = t
    }
    function l(e) {
        return l = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
            return e.__proto__ || Object.getPrototypeOf(e)
        }
        ,
        l(e)
    }
    function d(e, t) {
        return d = Object.setPrototypeOf || function(e, t) {
            return e.__proto__ = t,
            e
        }
        ,
        d(e, t)
    }
    function p() {
        if ("undefined" == typeof Reflect || !Reflect.construct)
            return !1;
        if (Reflect.construct.sham)
            return !1;
        if ("function" == typeof Proxy)
            return !0;
        try {
            return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})),
            !0
        } catch (e) {
            return !1
        }
    }
    function u(e, t, a) {
        return u = p() ? Reflect.construct : function(e, t, a) {
            var i = [null];
            i.push.apply(i, t);
            var r = Function.bind.apply(e, i)
              , s = new r;
            return a && d(s, a.prototype),
            s
        }
        ,
        u.apply(null, arguments)
    }
    function c(e) {
        return -1 !== Function.toString.call(e).indexOf("[native code]")
    }
    function h(e) {
        var t = "function" == typeof Map ? new Map : void 0;
        return h = function(e) {
            function a() {
                return u(e, arguments, l(this).constructor)
            }
            if (null === e || !c(e))
                return e;
            if ("function" != typeof e)
                throw new TypeError("Super expression must either be null or a function");
            if (void 0 !== t) {
                if (t.has(e))
                    return t.get(e);
                t.set(e, a)
            }
            return a.prototype = Object.create(e.prototype, {
                constructor: {
                    value: a,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }),
            d(a, e)
        }
        ,
        h(e)
    }
    function v(e) {
        if (void 0 === e)
            throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return e
    }
    function f(e) {
        var t = e.__proto__;
        Object.defineProperty(e, "__proto__", {
            get: function() {
                return t
            },
            set: function(e) {
                t.__proto__ = e
            }
        })
    }
    function m(e) {
        void 0 === e && (e = []);
        var t = [];
        return e.forEach(function(e) {
            Array.isArray(e) ? t.push.apply(t, m(e)) : t.push(e)
        }),
        t
    }
    function g(e, t) {
        return Array.prototype.filter.call(e, t)
    }
    function b(e) {
        for (var t = [], a = 0; a < e.length; a += 1)
            -1 === t.indexOf(e[a]) && t.push(e[a]);
        return t
    }
    function w(e, t) {
        if ("string" != typeof e)
            return [e];
        for (var a = [], i = t.querySelectorAll(e), r = 0; r < i.length; r += 1)
            a.push(i[r]);
        return a
    }
    function y(e, t) {
        var a = n()
          , i = s()
          , r = [];
        if (!t && e instanceof bt)
            return e;
        if (!e)
            return new bt(r);
        if ("string" == typeof e) {
            var o = e.trim();
            if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) {
                var l = "div";
                0 === o.indexOf("<li") && (l = "ul"),
                0 === o.indexOf("<tr") && (l = "tbody"),
                0 !== o.indexOf("<td") && 0 !== o.indexOf("<th") || (l = "tr"),
                0 === o.indexOf("<tbody") && (l = "table"),
                0 === o.indexOf("<option") && (l = "select");
                var d = i.createElement(l);
                d.innerHTML = o;
                for (var p = 0; p < d.childNodes.length; p += 1)
                    r.push(d.childNodes[p])
            } else
                r = w(e.trim(), t || i)
        } else if (e.nodeType || e === a || e === i)
            r.push(e);
        else if (Array.isArray(e)) {
            if (e instanceof bt)
                return e;
            r = e
        }
        return new bt(b(r))
    }
    function E() {
        for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
            t[a] = arguments[a];
        var i = m(t.map(function(e) {
            return e.split(" ")
        }));
        return this.forEach(function(e) {
            var t;
            (t = e.classList).add.apply(t, i)
        }),
        this
    }
    function x() {
        for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
            t[a] = arguments[a];
        var i = m(t.map(function(e) {
            return e.split(" ")
        }));
        return this.forEach(function(e) {
            var t;
            (t = e.classList).remove.apply(t, i)
        }),
        this
    }
    function T() {
        for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
            t[a] = arguments[a];
        var i = m(t.map(function(e) {
            return e.split(" ")
        }));
        this.forEach(function(e) {
            i.forEach(function(t) {
                e.classList.toggle(t)
            })
        })
    }
    function S() {
        for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
            t[a] = arguments[a];
        var i = m(t.map(function(e) {
            return e.split(" ")
        }));
        return g(this, function(e) {
            return i.filter(function(t) {
                return e.classList.contains(t)
            }).length > 0
        }).length > 0
    }
    function C(e, t) {
        if (1 === arguments.length && "string" == typeof e)
            return this[0] ? this[0].getAttribute(e) : void 0;
        for (var a = 0; a < this.length; a += 1)
            if (2 === arguments.length)
                this[a].setAttribute(e, t);
            else
                for (var i in e)
                    this[a][i] = e[i],
                    this[a].setAttribute(i, e[i]);
        return this
    }
    function M(e) {
        for (var t = 0; t < this.length; t += 1)
            this[t].removeAttribute(e);
        return this
    }
    function z(e) {
        for (var t = 0; t < this.length; t += 1)
            this[t].style.transform = e;
        return this
    }
    function P(e) {
        for (var t = 0; t < this.length; t += 1)
            this[t].style.transitionDuration = "string" != typeof e ? e + "ms" : e;
        return this
    }
    function k() {
        function e(e) {
            var t = e.target;
            if (t) {
                var a = e.target.dom7EventData || [];
                if (a.indexOf(e) < 0 && a.unshift(e),
                y(t).is(n))
                    o.apply(t, a);
                else
                    for (var i = y(t).parents(), r = 0; r < i.length; r += 1)
                        y(i[r]).is(n) && o.apply(i[r], a)
            }
        }
        function t(e) {
            var t = e && e.target && e.target.dom7EventData || [];
            t.indexOf(e) < 0 && t.unshift(e),
            o.apply(this, t)
        }
        for (var a = arguments.length, i = new Array(a), r = 0; r < a; r++)
            i[r] = arguments[r];
        var s = i[0]
          , n = i[1]
          , o = i[2]
          , l = i[3];
        "function" == typeof i[1] && (s = i[0],
        o = i[1],
        l = i[2],
        n = void 0),
        l || (l = !1);
        for (var d, p = s.split(" "), u = 0; u < this.length; u += 1) {
            var c = this[u];
            if (n)
                for (d = 0; d < p.length; d += 1) {
                    var h = p[d];
                    c.dom7LiveListeners || (c.dom7LiveListeners = {}),
                    c.dom7LiveListeners[h] || (c.dom7LiveListeners[h] = []),
                    c.dom7LiveListeners[h].push({
                        listener: o,
                        proxyListener: e
                    }),
                    c.addEventListener(h, e, l)
                }
            else
                for (d = 0; d < p.length; d += 1) {
                    var v = p[d];
                    c.dom7Listeners || (c.dom7Listeners = {}),
                    c.dom7Listeners[v] || (c.dom7Listeners[v] = []),
                    c.dom7Listeners[v].push({
                        listener: o,
                        proxyListener: t
                    }),
                    c.addEventListener(v, t, l)
                }
        }
        return this
    }
    function L() {
        for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
            t[a] = arguments[a];
        var i = t[0]
          , r = t[1]
          , s = t[2]
          , n = t[3];
        "function" == typeof t[1] && (i = t[0],
        s = t[1],
        n = t[2],
        r = void 0),
        n || (n = !1);
        for (var o = i.split(" "), l = 0; l < o.length; l += 1)
            for (var d = o[l], p = 0; p < this.length; p += 1) {
                var u = this[p]
                  , c = void 0;
                if (!r && u.dom7Listeners ? c = u.dom7Listeners[d] : r && u.dom7LiveListeners && (c = u.dom7LiveListeners[d]),
                c && c.length)
                    for (var h = c.length - 1; h >= 0; h -= 1) {
                        var v = c[h];
                        s && v.listener === s ? (u.removeEventListener(d, v.proxyListener, n),
                        c.splice(h, 1)) : s && v.listener && v.listener.dom7proxy && v.listener.dom7proxy === s ? (u.removeEventListener(d, v.proxyListener, n),
                        c.splice(h, 1)) : s || (u.removeEventListener(d, v.proxyListener, n),
                        c.splice(h, 1))
                    }
            }
        return this
    }
    function $() {
        for (var e = n(), t = arguments.length, a = new Array(t), i = 0; i < t; i++)
            a[i] = arguments[i];
        for (var r = a[0].split(" "), s = a[1], o = 0; o < r.length; o += 1)
            for (var l = r[o], d = 0; d < this.length; d += 1) {
                var p = this[d];
                if (e.CustomEvent) {
                    var u = new e.CustomEvent(l,{
                        detail: s,
                        bubbles: !0,
                        cancelable: !0
                    });
                    p.dom7EventData = a.filter(function(e, t) {
                        return t > 0
                    }),
                    p.dispatchEvent(u),
                    p.dom7EventData = [],
                    delete p.dom7EventData
                }
            }
        return this
    }
    function I(e) {
        function t(i) {
            i.target === this && (e.call(this, i),
            a.off("transitionend", t))
        }
        var a = this;
        return e && a.on("transitionend", t),
        this
    }
    function O(e) {
        if (this.length > 0) {
            if (e) {
                var t = this.styles();
                return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left"))
            }
            return this[0].offsetWidth
        }
        return null
    }
    function A(e) {
        if (this.length > 0) {
            if (e) {
                var t = this.styles();
                return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom"))
            }
            return this[0].offsetHeight
        }
        return null
    }
    function D() {
        if (this.length > 0) {
            var e = n()
              , t = s()
              , a = this[0]
              , i = a.getBoundingClientRect()
              , r = t.body
              , o = a.clientTop || r.clientTop || 0
              , l = a.clientLeft || r.clientLeft || 0
              , d = a === e ? e.scrollY : a.scrollTop
              , p = a === e ? e.scrollX : a.scrollLeft;
            return {
                top: i.top + d - o,
                left: i.left + p - l
            }
        }
        return null
    }
    function N() {
        var e = n();
        return this[0] ? e.getComputedStyle(this[0], null) : {}
    }
    function G(e, t) {
        var a, i = n();
        if (1 === arguments.length) {
            if ("string" != typeof e) {
                for (a = 0; a < this.length; a += 1)
                    for (var r in e)
                        this[a].style[r] = e[r];
                return this
            }
            if (this[0])
                return i.getComputedStyle(this[0], null).getPropertyValue(e)
        }
        if (2 === arguments.length && "string" == typeof e) {
            for (a = 0; a < this.length; a += 1)
                this[a].style[e] = t;
            return this
        }
        return this
    }
    function B(e) {
        return e ? (this.forEach(function(t, a) {
            e.apply(t, [t, a])
        }),
        this) : this
    }
    function H(e) {
        var t = g(this, e);
        return y(t)
    }
    function X(e) {
        if (void 0 === e)
            return this[0] ? this[0].innerHTML : null;
        for (var t = 0; t < this.length; t += 1)
            this[t].innerHTML = e;
        return this
    }
    function Y(e) {
        if (void 0 === e)
            return this[0] ? this[0].textContent.trim() : null;
        for (var t = 0; t < this.length; t += 1)
            this[t].textContent = e;
        return this
    }
    function R(e) {
        var t, a, i = n(), r = s(), o = this[0];
        if (!o || void 0 === e)
            return !1;
        if ("string" == typeof e) {
            if (o.matches)
                return o.matches(e);
            if (o.webkitMatchesSelector)
                return o.webkitMatchesSelector(e);
            if (o.msMatchesSelector)
                return o.msMatchesSelector(e);
            for (t = y(e),
            a = 0; a < t.length; a += 1)
                if (t[a] === o)
                    return !0;
            return !1
        }
        if (e === r)
            return o === r;
        if (e === i)
            return o === i;
        if (e.nodeType || e instanceof bt) {
            for (t = e.nodeType ? [e] : e,
            a = 0; a < t.length; a += 1)
                if (t[a] === o)
                    return !0;
            return !1
        }
        return !1
    }
    function V() {
        var e, t = this[0];
        if (t) {
            for (e = 0; null !== (t = t.previousSibling); )
                1 === t.nodeType && (e += 1);
            return e
        }
    }
    function W(e) {
        if (void 0 === e)
            return this;
        var t = this.length;
        if (e > t - 1)
            return y([]);
        if (e < 0) {
            var a = t + e;
            return y(a < 0 ? [] : [this[a]])
        }
        return y([this[e]])
    }
    function F() {
        for (var e, t = s(), a = 0; a < arguments.length; a += 1) {
            e = a < 0 || arguments.length <= a ? void 0 : arguments[a];
            for (var i = 0; i < this.length; i += 1)
                if ("string" == typeof e) {
                    var r = t.createElement("div");
                    for (r.innerHTML = e; r.firstChild; )
                        this[i].appendChild(r.firstChild)
                } else if (e instanceof bt)
                    for (var n = 0; n < e.length; n += 1)
                        this[i].appendChild(e[n]);
                else
                    this[i].appendChild(e)
        }
        return this
    }
    function _(e) {
        var t, a, i = s();
        for (t = 0; t < this.length; t += 1)
            if ("string" == typeof e) {
                var r = i.createElement("div");
                for (r.innerHTML = e,
                a = r.childNodes.length - 1; a >= 0; a -= 1)
                    this[t].insertBefore(r.childNodes[a], this[t].childNodes[0])
            } else if (e instanceof bt)
                for (a = 0; a < e.length; a += 1)
                    this[t].insertBefore(e[a], this[t].childNodes[0]);
            else
                this[t].insertBefore(e, this[t].childNodes[0]);
        return this
    }
    function q(e) {
        return this.length > 0 ? e ? this[0].nextElementSibling && y(this[0].nextElementSibling).is(e) ? y([this[0].nextElementSibling]) : y([]) : this[0].nextElementSibling ? y([this[0].nextElementSibling]) : y([]) : y([])
    }
    function j(e) {
        var t = []
          , a = this[0];
        if (!a)
            return y([]);
        for (; a.nextElementSibling; ) {
            var i = a.nextElementSibling;
            e ? y(i).is(e) && t.push(i) : t.push(i),
            a = i
        }
        return y(t)
    }
    function U(e) {
        if (this.length > 0) {
            var t = this[0];
            return e ? t.previousElementSibling && y(t.previousElementSibling).is(e) ? y([t.previousElementSibling]) : y([]) : t.previousElementSibling ? y([t.previousElementSibling]) : y([])
        }
        return y([])
    }
    function K(e) {
        var t = []
          , a = this[0];
        if (!a)
            return y([]);
        for (; a.previousElementSibling; ) {
            var i = a.previousElementSibling;
            e ? y(i).is(e) && t.push(i) : t.push(i),
            a = i
        }
        return y(t)
    }
    function Z(e) {
        for (var t = [], a = 0; a < this.length; a += 1)
            null !== this[a].parentNode && (e ? y(this[a].parentNode).is(e) && t.push(this[a].parentNode) : t.push(this[a].parentNode));
        return y(t)
    }
    function J(e) {
        for (var t = [], a = 0; a < this.length; a += 1)
            for (var i = this[a].parentNode; i; )
                e ? y(i).is(e) && t.push(i) : t.push(i),
                i = i.parentNode;
        return y(t)
    }
    function Q(e) {
        var t = this;
        return void 0 === e ? y([]) : (t.is(e) || (t = t.parents(e).eq(0)),
        t)
    }
    function ee(e) {
        for (var t = [], a = 0; a < this.length; a += 1) {
            try {
                var i = this[a].querySelectorAll(e)
            } catch (t) {
                console.log(e)
            }
            for (var r = 0; r < i.length; r += 1)
                t.push(i[r])
        }
        return y(t)
    }
    function te(e) {
        for (var t = [], a = 0; a < this.length; a += 1)
            for (var i = this[a].children, r = 0; r < i.length; r += 1)
                e && !y(i[r]).is(e) || t.push(i[r]);
        return y(t)
    }
    function ae() {
        for (var e = 0; e < this.length; e += 1)
            this[e].parentNode && this[e].parentNode.removeChild(this[e]);
        return this
    }
    function ie(e) {
        var t = e;
        Object.keys(t).forEach(function(e) {
            try {
                t[e] = null
            } catch (e) {}
            try {
                delete t[e]
            } catch (e) {}
        })
    }
    function re(e, t) {
        return void 0 === t && (t = 0),
        setTimeout(e, t)
    }
    function se() {
        return Date.now()
    }
    function ne(e) {
        var t, a = n();
        return a.getComputedStyle && (t = a.getComputedStyle(e, null)),
        !t && e.currentStyle && (t = e.currentStyle),
        t || (t = e.style),
        t
    }
    function oe(e, t) {
        void 0 === t && (t = "x");
        var a, i, r, s = n(), o = ne(e);
        return s.WebKitCSSMatrix ? (i = o.transform || o.webkitTransform,
        i.split(",").length > 6 && (i = i.split(", ").map(function(e) {
            return e.replace(",", ".")
        }).join(", ")),
        r = new s.WebKitCSSMatrix("none" === i ? "" : i)) : (r = o.MozTransform || o.OTransform || o.MsTransform || o.msTransform || o.transform || o.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"),
        a = r.toString().split(",")),
        "x" === t && (i = s.WebKitCSSMatrix ? r.m41 : 16 === a.length ? parseFloat(a[12]) : parseFloat(a[4])),
        "y" === t && (i = s.WebKitCSSMatrix ? r.m42 : 16 === a.length ? parseFloat(a[13]) : parseFloat(a[5])),
        i || 0
    }
    function le(e) {
        return "object" == typeof e && null !== e && e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1)
    }
    function de() {
        for (var e = Object(arguments.length <= 0 ? void 0 : arguments[0]), t = ["__proto__", "constructor", "prototype"], a = 1; a < arguments.length; a += 1) {
            var i = a < 0 || arguments.length <= a ? void 0 : arguments[a];
            if (null != i)
                for (var r = Object.keys(Object(i)).filter(function(e) {
                    return t.indexOf(e) < 0
                }), s = 0, n = r.length; s < n; s += 1) {
                    var o = r[s]
                      , l = Object.getOwnPropertyDescriptor(i, o);
                    void 0 !== l && l.enumerable && (le(e[o]) && le(i[o]) ? i[o].__swiper__ ? e[o] = i[o] : de(e[o], i[o]) : !le(e[o]) && le(i[o]) ? (e[o] = {},
                    i[o].__swiper__ ? e[o] = i[o] : de(e[o], i[o])) : e[o] = i[o])
                }
        }
        return e
    }
    function pe(e, t) {
        Object.keys(t).forEach(function(a) {
            le(t[a]) && Object.keys(t[a]).forEach(function(i) {
                "function" == typeof t[a][i] && (t[a][i] = t[a][i].bind(e))
            }),
            e[a] = t[a]
        })
    }
    function ue(e) {
        return void 0 === e && (e = ""),
        "." + e.trim().replace(/([\.:\/])/g, "\\$1").replace(/ /g, ".")
    }
    function ce() {
        var e = n()
          , t = s();
        return {
            touch: !!("ontouchstart"in e || e.DocumentTouch && t instanceof e.DocumentTouch),
            pointerEvents: !!e.PointerEvent && "maxTouchPoints"in e.navigator && e.navigator.maxTouchPoints >= 0,
            observer: "MutationObserver"in e || "WebkitMutationObserver"in e,
            passiveListener: function() {
                var t = !1;
                try {
                    var a = Object.defineProperty({}, "passive", {
                        get: function() {
                            t = !0
                        }
                    });
                    e.addEventListener("testPassiveListener", null, a)
                } catch (e) {}
                return t
            }(),
            gestures: "ongesturestart"in e
        }
    }
    function he() {
        return wt || (wt = ce()),
        wt
    }
    function ve(e) {
        var t = void 0 === e ? {} : e
          , a = t.userAgent
          , i = he()
          , r = n()
          , s = r.navigator.platform
          , o = a || r.navigator.userAgent
          , l = {
            ios: !1,
            android: !1
        }
          , d = r.screen.width
          , p = r.screen.height
          , u = o.match(/(Android);?[\s\/]+([\d.]+)?/)
          , c = o.match(/(iPad).*OS\s([\d_]+)/)
          , h = o.match(/(iPod)(.*OS\s([\d_]+))?/)
          , v = !c && o.match(/(iPhone\sOS|iOS)\s([\d_]+)/)
          , f = "Win32" === s
          , m = "MacIntel" === s
          , g = ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"];
        return !c && m && i.touch && g.indexOf(d + "x" + p) >= 0 && (c = o.match(/(Version)\/([\d.]+)/),
        c || (c = [0, 1, "13_0_0"]),
        m = !1),
        u && !f && (l.os = "android",
        l.android = !0),
        (c || v || h) && (l.os = "ios",
        l.ios = !0),
        l
    }
    function fe(e) {
        return void 0 === e && (e = {}),
        yt || (yt = ve(e)),
        yt
    }
    function me() {
        function e() {
            var e = t.navigator.userAgent.toLowerCase();
            return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0
        }
        var t = n();
        return {
            isEdge: !!t.navigator.userAgent.match(/Edge/g),
            isSafari: e(),
            isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)
        }
    }
    function ge() {
        return Et || (Et = me()),
        Et
    }
    function be() {
        var e, t, a = this, i = a.$el;
        e = void 0 !== a.params.width && null !== a.params.width ? a.params.width : i[0].clientWidth,
        t = void 0 !== a.params.height && null !== a.params.height ? a.params.height : i[0].clientHeight,
        0 === e && a.isHorizontal() || 0 === t && a.isVertical() || (e = e - parseInt(i.css("padding-left") || 0, 10) - parseInt(i.css("padding-right") || 0, 10),
        t = t - parseInt(i.css("padding-top") || 0, 10) - parseInt(i.css("padding-bottom") || 0, 10),
        Number.isNaN(e) && (e = 0),
        Number.isNaN(t) && (t = 0),
        de(a, {
            width: e,
            height: t,
            size: a.isHorizontal() ? e : t
        }))
    }
    function we() {
        function e(e, t) {
            return !r.cssMode || t !== u.length - 1
        }
        var t = this
          , a = function(e) {
            return t.isHorizontal() ? e : {
                width: "height",
                "margin-top": "margin-left",
                "margin-bottom ": "margin-right",
                "margin-left": "margin-top",
                "margin-right": "margin-bottom",
                "padding-left": "padding-top",
                "padding-right": "padding-bottom",
                marginRight: "marginBottom"
            }[e]
        }
          , i = function(e, t) {
            return parseFloat(e.getPropertyValue(a(t)) || 0)
        }
          , r = t.params
          , s = t.$wrapperEl
          , n = t.size
          , o = t.rtlTranslate
          , l = t.wrongRTL
          , d = t.virtual && r.virtual.enabled
          , p = d ? t.virtual.slides.length : t.slides.length
          , u = s.children("." + t.params.slideClass)
          , c = d ? t.virtual.slides.length : u.length
          , h = []
          , v = []
          , f = []
          , m = r.slidesOffsetBefore;
        "function" == typeof m && (m = r.slidesOffsetBefore.call(t));
        var g = r.slidesOffsetAfter;
        "function" == typeof g && (g = r.slidesOffsetAfter.call(t));
        var b = t.snapGrid.length
          , w = t.slidesGrid.length
          , y = r.spaceBetween
          , E = -m
          , x = 0
          , T = 0;
        if (void 0 !== n) {
            var S, C;
            "string" == typeof y && y.indexOf("%") >= 0 && (y = parseFloat(y.replace("%", "")) / 100 * n),
            t.virtualSize = -y,
            o ? u.css({
                marginLeft: "",
                marginTop: ""
            }) : u.css({
                marginRight: "",
                marginBottom: ""
            }),
            r.slidesPerColumn > 1 && (S = Math.floor(c / r.slidesPerColumn) === c / t.params.slidesPerColumn ? c : Math.ceil(c / r.slidesPerColumn) * r.slidesPerColumn,
            "auto" !== r.slidesPerView && "row" === r.slidesPerColumnFill && (S = Math.max(S, r.slidesPerView * r.slidesPerColumn)));
            for (var M, z, P, k = r.slidesPerColumn, L = S / k, $ = Math.floor(c / r.slidesPerColumn), I = 0; I < c; I += 1) {
                C = 0;
                var O = u.eq(I);
                if (r.slidesPerColumn > 1) {
                    var A = void 0
                      , D = void 0
                      , N = void 0;
                    if ("row" === r.slidesPerColumnFill && r.slidesPerGroup > 1) {
                        var G = Math.floor(I / (r.slidesPerGroup * r.slidesPerColumn))
                          , B = I - r.slidesPerColumn * r.slidesPerGroup * G
                          , H = 0 === G ? r.slidesPerGroup : Math.min(Math.ceil((c - G * k * r.slidesPerGroup) / k), r.slidesPerGroup);
                        N = Math.floor(B / H),
                        D = B - N * H + G * r.slidesPerGroup,
                        A = D + N * S / k,
                        O.css({
                            "-webkit-box-ordinal-group": A,
                            "-moz-box-ordinal-group": A,
                            "-ms-flex-order": A,
                            "-webkit-order": A,
                            order: A
                        })
                    } else
                        "column" === r.slidesPerColumnFill ? (D = Math.floor(I / k),
                        N = I - D * k,
                        (D > $ || D === $ && N === k - 1) && (N += 1,
                        N >= k && (N = 0,
                        D += 1))) : (N = Math.floor(I / L),
                        D = I - N * L);
                    O.css(a("margin-top"), 0 !== N && r.spaceBetween && r.spaceBetween + "px")
                }
                if ("none" !== O.css("display")) {
                    if ("auto" === r.slidesPerView) {
                        var X = getComputedStyle(O[0])
                          , Y = O[0].style.transform
                          , R = O[0].style.webkitTransform;
                        if (Y && (O[0].style.transform = "none"),
                        R && (O[0].style.webkitTransform = "none"),
                        r.roundLengths)
                            C = t.isHorizontal() ? O.outerWidth(!0) : O.outerHeight(!0);
                        else {
                            var V = i(X, "width")
                              , W = i(X, "padding-left")
                              , F = i(X, "padding-right")
                              , _ = i(X, "margin-left")
                              , q = i(X, "margin-right")
                              , j = X.getPropertyValue("box-sizing");
                            if (j && "border-box" === j)
                                C = V + _ + q;
                            else {
                                var U = O[0]
                                  , K = U.clientWidth
                                  , Z = U.offsetWidth;
                                C = V + W + F + _ + q + (Z - K)
                            }
                        }
                        Y && (O[0].style.transform = Y),
                        R && (O[0].style.webkitTransform = R),
                        r.roundLengths && (C = Math.floor(C))
                    } else
                        C = (n - (r.slidesPerView - 1) * y) / r.slidesPerView,
                        r.roundLengths && (C = Math.floor(C)),
                        u[I] && (u[I].style[a("width")] = C + "px");
                    u[I] && (u[I].swiperSlideSize = C),
                    f.push(C),
                    r.centeredSlides ? (E = E + C / 2 + x / 2 + y,
                    0 === x && 0 !== I && (E = E - n / 2 - y),
                    0 === I && (E = E - n / 2 - y),
                    Math.abs(E) < .001 && (E = 0),
                    r.roundLengths && (E = Math.floor(E)),
                    T % r.slidesPerGroup == 0 && h.push(E),
                    v.push(E)) : (r.roundLengths && (E = Math.floor(E)),
                    (T - Math.min(t.params.slidesPerGroupSkip, T)) % t.params.slidesPerGroup == 0 && h.push(E),
                    v.push(E),
                    E = E + C + y),
                    t.virtualSize += C + y,
                    x = C,
                    T += 1
                }
            }
            if (t.virtualSize = Math.max(t.virtualSize, n) + g,
            o && l && ("slide" === r.effect || "coverflow" === r.effect) && s.css({
                width: t.virtualSize + r.spaceBetween + "px"
            }),
            r.setWrapperSize)
                s.css((z = {},
                z[a("width")] = t.virtualSize + r.spaceBetween + "px",
                z));
            if (r.slidesPerColumn > 1)
                if (t.virtualSize = (C + r.spaceBetween) * S,
                t.virtualSize = Math.ceil(t.virtualSize / r.slidesPerColumn) - r.spaceBetween,
                s.css((P = {},
                P[a("width")] = t.virtualSize + r.spaceBetween + "px",
                P)),
                r.centeredSlides) {
                    M = [];
                    for (var J = 0; J < h.length; J += 1) {
                        var Q = h[J];
                        r.roundLengths && (Q = Math.floor(Q)),
                        h[J] < t.virtualSize + h[0] && M.push(Q)
                    }
                    h = M
                }
            if (!r.centeredSlides) {
                M = [];
                for (var ee = 0; ee < h.length; ee += 1) {
                    var te = h[ee];
                    r.roundLengths && (te = Math.floor(te)),
                    h[ee] <= t.virtualSize - n && M.push(te)
                }
                h = M,
                Math.floor(t.virtualSize - n) - Math.floor(h[h.length - 1]) > 1 && h.push(t.virtualSize - n)
            }
            if (0 === h.length && (h = [0]),
            0 !== r.spaceBetween) {
                var ae, ie = t.isHorizontal() && o ? "marginLeft" : a("marginRight");
                u.filter(e).css((ae = {},
                ae[ie] = y + "px",
                ae))
            }
            if (r.centeredSlides && r.centeredSlidesBounds) {
                var re = 0;
                f.forEach(function(e) {
                    re += e + (r.spaceBetween ? r.spaceBetween : 0)
                }),
                re -= r.spaceBetween;
                var se = re - n;
                h = h.map(function(e) {
                    return e < 0 ? -m : e > se ? se + g : e
                })
            }
            if (r.centerInsufficientSlides) {
                var ne = 0;
                if (f.forEach(function(e) {
                    ne += e + (r.spaceBetween ? r.spaceBetween : 0)
                }),
                ne -= r.spaceBetween,
                ne < n) {
                    var oe = (n - ne) / 2;
                    h.forEach(function(e, t) {
                        h[t] = e - oe
                    }),
                    v.forEach(function(e, t) {
                        v[t] = e + oe
                    })
                }
            }
            de(t, {
                slides: u,
                snapGrid: h,
                slidesGrid: v,
                slidesSizesGrid: f
            }),
            c !== p && t.emit("slidesLengthChange"),
            h.length !== b && (t.params.watchOverflow && t.checkOverflow(),
            t.emit("snapGridLengthChange")),
            v.length !== w && t.emit("slidesGridLengthChange"),
            (r.watchSlidesProgress || r.watchSlidesVisibility) && t.updateSlidesOffset()
        }
    }
    function ye(e) {
        var t, a = this, i = [], r = 0;
        if ("number" == typeof e ? a.setTransition(e) : !0 === e && a.setTransition(a.params.speed),
        "auto" !== a.params.slidesPerView && a.params.slidesPerView > 1)
            if (a.params.centeredSlides)
                a.visibleSlides.each(function(e) {
                    i.push(e)
                });
            else
                for (t = 0; t < Math.ceil(a.params.slidesPerView); t += 1) {
                    var s = a.activeIndex + t;
                    if (s > a.slides.length)
                        break;
                    i.push(a.slides.eq(s)[0])
                }
        else
            i.push(a.slides.eq(a.activeIndex)[0]);
        for (t = 0; t < i.length; t += 1)
            if (void 0 !== i[t]) {
                var n = i[t].offsetHeight;
                r = n > r ? n : r
            }
        r && a.$wrapperEl.css("height", r + "px")
    }
    function Ee() {
        for (var e = this, t = e.slides, a = 0; a < t.length; a += 1)
            t[a].swiperSlideOffset = e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop
    }
    function xe(e) {
        void 0 === e && (e = this && this.translate || 0);
        var t = this
          , a = t.params
          , i = t.slides
          , r = t.rtlTranslate;
        if (0 !== i.length) {
            void 0 === i[0].swiperSlideOffset && t.updateSlidesOffset();
            var s = -e;
            r && (s = e),
            i.removeClass(a.slideVisibleClass),
            t.visibleSlidesIndexes = [],
            t.visibleSlides = [];
            for (var n = 0; n < i.length; n += 1) {
                var o = i[n]
                  , l = (s + (a.centeredSlides ? t.minTranslate() : 0) - o.swiperSlideOffset) / (o.swiperSlideSize + a.spaceBetween);
                if (a.watchSlidesVisibility || a.centeredSlides && a.autoHeight) {
                    var d = -(s - o.swiperSlideOffset)
                      , p = d + t.slidesSizesGrid[n]
                      , u = d >= 0 && d < t.size - 1 || p > 1 && p <= t.size || d <= 0 && p >= t.size;
                    u && (t.visibleSlides.push(o),
                    t.visibleSlidesIndexes.push(n),
                    i.eq(n).addClass(a.slideVisibleClass))
                }
                o.progress = r ? -l : l
            }
            t.visibleSlides = y(t.visibleSlides)
        }
    }
    function Te(e) {
        var t = this;
        if (void 0 === e) {
            var a = t.rtlTranslate ? -1 : 1;
            e = t && t.translate && t.translate * a || 0
        }
        var i = t.params
          , r = t.maxTranslate() - t.minTranslate()
          , s = t.progress
          , n = t.isBeginning
          , o = t.isEnd
          , l = n
          , d = o;
        0 === r ? (s = 0,
        n = !0,
        o = !0) : (s = (e - t.minTranslate()) / r,
        n = s <= 0,
        o = s >= 1),
        de(t, {
            progress: s,
            isBeginning: n,
            isEnd: o
        }),
        (i.watchSlidesProgress || i.watchSlidesVisibility || i.centeredSlides && i.autoHeight) && t.updateSlidesProgress(e),
        n && !l && t.emit("reachBeginning toEdge"),
        o && !d && t.emit("reachEnd toEdge"),
        (l && !n || d && !o) && t.emit("fromEdge"),
        t.emit("progress", s)
    }
    function Se() {
        var e, t = this, a = t.slides, i = t.params, r = t.$wrapperEl, s = t.activeIndex, n = t.realIndex, o = t.virtual && i.virtual.enabled;
        a.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass),
        e = o ? t.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + s + '"]') : a.eq(s),
        e.addClass(i.slideActiveClass),
        i.loop && (e.hasClass(i.slideDuplicateClass) ? r.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + n + '"]').addClass(i.slideDuplicateActiveClass) : r.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + n + '"]').addClass(i.slideDuplicateActiveClass));
        var l = e.nextAll("." + i.slideClass).eq(0).addClass(i.slideNextClass);
        i.loop && 0 === l.length && (l = a.eq(0),
        l.addClass(i.slideNextClass));
        var d = e.prevAll("." + i.slideClass).eq(0).addClass(i.slidePrevClass);
        i.loop && 0 === d.length && (d = a.eq(-1),
        d.addClass(i.slidePrevClass)),
        i.loop && (l.hasClass(i.slideDuplicateClass) ? r.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass) : r.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass),
        d.hasClass(i.slideDuplicateClass) ? r.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass) : r.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + d.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass)),
        t.emitSlidesClasses()
    }
    function Ce(e) {
        var t, a = this, i = a.rtlTranslate ? a.translate : -a.translate, r = a.slidesGrid, s = a.snapGrid, n = a.params, o = a.activeIndex, l = a.realIndex, d = a.snapIndex, p = e;
        if (void 0 === p) {
            for (var u = 0; u < r.length; u += 1)
                void 0 !== r[u + 1] ? i >= r[u] && i < r[u + 1] - (r[u + 1] - r[u]) / 2 ? p = u : i >= r[u] && i < r[u + 1] && (p = u + 1) : i >= r[u] && (p = u);
            n.normalizeSlideIndex && (p < 0 || void 0 === p) && (p = 0)
        }
        if (s.indexOf(i) >= 0)
            t = s.indexOf(i);
        else {
            var c = Math.min(n.slidesPerGroupSkip, p);
            t = c + Math.floor((p - c) / n.slidesPerGroup)
        }
        if (t >= s.length && (t = s.length - 1),
        p !== o) {
            var h = parseInt(a.slides.eq(p).attr("data-swiper-slide-index") || p, 10);
            de(a, {
                snapIndex: t,
                realIndex: h,
                previousIndex: o,
                activeIndex: p
            }),
            a.emit("activeIndexChange"),
            a.emit("snapIndexChange"),
            l !== h && a.emit("realIndexChange"),
            (a.initialized || a.params.runCallbacksOnInit) && a.emit("slideChange")
        } else
            t !== d && (a.snapIndex = t,
            a.emit("snapIndexChange"))
    }
    function Me(e) {
        var t, a = this, i = a.params, r = y(e.target).closest("." + i.slideClass)[0], s = !1;
        if (r)
            for (var n = 0; n < a.slides.length; n += 1)
                if (a.slides[n] === r) {
                    s = !0,
                    t = n;
                    break
                }
        if (!r || !s)
            return a.clickedSlide = void 0,
            void (a.clickedIndex = void 0);
        a.clickedSlide = r,
        a.virtual && a.params.virtual.enabled ? a.clickedIndex = parseInt(y(r).attr("data-swiper-slide-index"), 10) : a.clickedIndex = t,
        i.slideToClickedSlide && void 0 !== a.clickedIndex && a.clickedIndex !== a.activeIndex && a.slideToClickedSlide()
    }
    function ze(e) {
        void 0 === e && (e = this.isHorizontal() ? "x" : "y");
        var t = this
          , a = t.params
          , i = t.rtlTranslate
          , r = t.translate
          , s = t.$wrapperEl;
        if (a.virtualTranslate)
            return i ? -r : r;
        if (a.cssMode)
            return r;
        var n = oe(s[0], e);
        return i && (n = -n),
        n || 0
    }
    function Pe(e, t) {
        var a, i = this, r = i.rtlTranslate, s = i.params, n = i.$wrapperEl, o = i.wrapperEl, l = i.progress, d = 0, p = 0, u = 0;
        i.isHorizontal() ? d = r ? -e : e : p = e,
        s.roundLengths && (d = Math.floor(d),
        p = Math.floor(p)),
        s.cssMode ? o[i.isHorizontal() ? "scrollLeft" : "scrollTop"] = i.isHorizontal() ? -d : -p : s.virtualTranslate || n.transform("translate3d(" + d + "px, " + p + "px, " + u + "px)"),
        i.previousTranslate = i.translate,
        i.translate = i.isHorizontal() ? d : p;
        var c = i.maxTranslate() - i.minTranslate();
        a = 0 === c ? 0 : (e - i.minTranslate()) / c,
        a !== l && i.updateProgress(e),
        i.emit("setTranslate", i.translate, t)
    }
    function ke() {
        return -this.snapGrid[0]
    }
    function Le() {
        return -this.snapGrid[this.snapGrid.length - 1]
    }
    function $e(e, t, a, i, r) {
        void 0 === e && (e = 0),
        void 0 === t && (t = this.params.speed),
        void 0 === a && (a = !0),
        void 0 === i && (i = !0);
        var s = this
          , n = s.params
          , o = s.wrapperEl;
        if (s.animating && n.preventInteractionOnTransition)
            return !1;
        var l, d = s.minTranslate(), p = s.maxTranslate();
        if (l = i && e > d ? d : i && e < p ? p : e,
        s.updateProgress(l),
        n.cssMode) {
            var u, c = s.isHorizontal();
            if (0 === t)
                o[c ? "scrollLeft" : "scrollTop"] = -l;
            else if (o.scrollTo)
                o.scrollTo((u = {},
                u[c ? "left" : "top"] = -l,
                u.behavior = "smooth",
                u));
            else
                o[c ? "scrollLeft" : "scrollTop"] = -l;
            return !0
        }
        return 0 === t ? (s.setTransition(0),
        s.setTranslate(l),
        a && (s.emit("beforeTransitionStart", t, r),
        s.emit("transitionEnd"))) : (s.setTransition(t),
        s.setTranslate(l),
        a && (s.emit("beforeTransitionStart", t, r),
        s.emit("transitionStart")),
        s.animating || (s.animating = !0,
        s.onTranslateToWrapperTransitionEnd || (s.onTranslateToWrapperTransitionEnd = function(e) {
            s && !s.destroyed && e.target === this && (s.$wrapperEl[0].removeEventListener("transitionend", s.onTranslateToWrapperTransitionEnd),
            s.$wrapperEl[0].removeEventListener("webkitTransitionEnd", s.onTranslateToWrapperTransitionEnd),
            s.onTranslateToWrapperTransitionEnd = null,
            delete s.onTranslateToWrapperTransitionEnd,
            a && s.emit("transitionEnd"))
        }
        ),
        s.$wrapperEl[0].addEventListener("transitionend", s.onTranslateToWrapperTransitionEnd),
        s.$wrapperEl[0].addEventListener("webkitTransitionEnd", s.onTranslateToWrapperTransitionEnd))),
        !0
    }
    function Ie(e, t) {
        var a = this;
        a.params.cssMode || a.$wrapperEl.transition(e),
        a.emit("setTransition", e, t)
    }
    function Oe(e, t) {
        void 0 === e && (e = !0);
        var a = this
          , i = a.activeIndex
          , r = a.params
          , s = a.previousIndex;
        if (!r.cssMode) {
            r.autoHeight && a.updateAutoHeight();
            var n = t;
            if (n || (n = i > s ? "next" : i < s ? "prev" : "reset"),
            a.emit("transitionStart"),
            e && i !== s) {
                if ("reset" === n)
                    return void a.emit("slideResetTransitionStart");
                a.emit("slideChangeTransitionStart"),
                "next" === n ? a.emit("slideNextTransitionStart") : a.emit("slidePrevTransitionStart")
            }
        }
    }
    function Ae(e, t) {
        void 0 === e && (e = !0);
        var a = this
          , i = a.activeIndex
          , r = a.previousIndex
          , s = a.params;
        if (a.animating = !1,
        !s.cssMode) {
            a.setTransition(0);
            var n = t;
            if (n || (n = i > r ? "next" : i < r ? "prev" : "reset"),
            a.emit("transitionEnd"),
            e && i !== r) {
                if ("reset" === n)
                    return void a.emit("slideResetTransitionEnd");
                a.emit("slideChangeTransitionEnd"),
                "next" === n ? a.emit("slideNextTransitionEnd") : a.emit("slidePrevTransitionEnd")
            }
        }
    }
    function De(e, t, a, i) {
        if (void 0 === e && (e = 0),
        void 0 === t && (t = this.params.speed),
        void 0 === a && (a = !0),
        "number" != typeof e && "string" != typeof e)
            throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. [" + typeof e + "] given.");
        if ("string" == typeof e) {
            var r = parseInt(e, 10)
              , s = isFinite(r);
            if (!s)
                throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. [" + e + "] given.");
            e = r
        }
        var n = this
          , o = e;
        o < 0 && (o = 0);
        var l = n.params
          , d = n.snapGrid
          , p = n.slidesGrid
          , u = n.previousIndex
          , c = n.activeIndex
          , h = n.rtlTranslate
          , v = n.wrapperEl;
        if (n.animating && l.preventInteractionOnTransition)
            return !1;
        var f = Math.min(n.params.slidesPerGroupSkip, o)
          , m = f + Math.floor((o - f) / n.params.slidesPerGroup);
        m >= d.length && (m = d.length - 1),
        (c || l.initialSlide || 0) === (u || 0) && a && n.emit("beforeSlideChangeStart");
        var g, b = -d[m];
        if (n.updateProgress(b),
        l.normalizeSlideIndex)
            for (var w = 0; w < p.length; w += 1) {
                var y = -Math.floor(100 * b)
                  , E = Math.floor(100 * p[w])
                  , x = Math.floor(100 * p[w + 1]);
                void 0 !== p[w + 1] ? y >= E && y < x - (x - E) / 2 ? o = w : y >= E && y < x && (o = w + 1) : y >= E && (o = w)
            }
        if (n.initialized && o !== c) {
            if (!n.allowSlideNext && b < n.translate && b < n.minTranslate())
                return !1;
            if (!n.allowSlidePrev && b > n.translate && b > n.maxTranslate() && (c || 0) !== o)
                return !1
        }
        if (g = o > c ? "next" : o < c ? "prev" : "reset",
        h && -b === n.translate || !h && b === n.translate)
            return n.updateActiveIndex(o),
            l.autoHeight && n.updateAutoHeight(),
            n.updateSlidesClasses(),
            "slide" !== l.effect && n.setTranslate(b),
            "reset" !== g && (n.transitionStart(a, g),
            n.transitionEnd(a, g)),
            !1;
        if (l.cssMode) {
            var T, S = n.isHorizontal(), C = -b;
            if (h && (C = v.scrollWidth - v.offsetWidth - C),
            0 === t)
                v[S ? "scrollLeft" : "scrollTop"] = C;
            else if (v.scrollTo)
                v.scrollTo((T = {},
                T[S ? "left" : "top"] = C,
                T.behavior = "smooth",
                T));
            else
                v[S ? "scrollLeft" : "scrollTop"] = C;
            return !0
        }
        return 0 === t ? (n.setTransition(0),
        n.setTranslate(b),
        n.updateActiveIndex(o),
        n.updateSlidesClasses(),
        n.emit("beforeTransitionStart", t, i),
        n.transitionStart(a, g),
        n.transitionEnd(a, g)) : (n.setTransition(t),
        n.setTranslate(b),
        n.updateActiveIndex(o),
        n.updateSlidesClasses(),
        n.emit("beforeTransitionStart", t, i),
        n.transitionStart(a, g),
        n.animating || (n.animating = !0,
        n.onSlideToWrapperTransitionEnd || (n.onSlideToWrapperTransitionEnd = function(e) {
            n && !n.destroyed && e.target === this && (n.$wrapperEl[0].removeEventListener("transitionend", n.onSlideToWrapperTransitionEnd),
            n.$wrapperEl[0].removeEventListener("webkitTransitionEnd", n.onSlideToWrapperTransitionEnd),
            n.onSlideToWrapperTransitionEnd = null,
            delete n.onSlideToWrapperTransitionEnd,
            n.transitionEnd(a, g))
        }
        ),
        n.$wrapperEl[0].addEventListener("transitionend", n.onSlideToWrapperTransitionEnd),
        n.$wrapperEl[0].addEventListener("webkitTransitionEnd", n.onSlideToWrapperTransitionEnd))),
        !0
    }
    function Ne(e, t, a, i) {
        void 0 === e && (e = 0),
        void 0 === t && (t = this.params.speed),
        void 0 === a && (a = !0);
        var r = this
          , s = e;
        return r.params.loop && (s += r.loopedSlides),
        r.slideTo(s, t, a, i)
    }
    function Ge(e, t, a) {
        void 0 === e && (e = this.params.speed),
        void 0 === t && (t = !0);
        var i = this
          , r = i.params
          , s = i.animating
          , n = i.activeIndex < r.slidesPerGroupSkip ? 1 : r.slidesPerGroup;
        if (r.loop) {
            if (s && r.loopPreventsSlide)
                return !1;
            i.loopFix(),
            i._clientLeft = i.$wrapperEl[0].clientLeft
        }
        return i.slideTo(i.activeIndex + n, e, t, a)
    }
    function Be(e, t, a) {
        function i(e) {
            return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e)
        }
        void 0 === e && (e = this.params.speed),
        void 0 === t && (t = !0);
        var r = this
          , s = r.params
          , n = r.animating
          , o = r.snapGrid
          , l = r.slidesGrid
          , d = r.rtlTranslate;
        if (s.loop) {
            if (n && s.loopPreventsSlide)
                return !1;
            r.loopFix(),
            r._clientLeft = r.$wrapperEl[0].clientLeft
        }
        var p = d ? r.translate : -r.translate
          , u = i(p)
          , c = o.map(function(e) {
            return i(e)
        });
        o[c.indexOf(u)];
        var h, v = o[c.indexOf(u) - 1];
        return void 0 === v && s.cssMode && o.forEach(function(e) {
            !v && u >= e && (v = e)
        }),
        void 0 !== v && (h = l.indexOf(v),
        h < 0 && (h = r.activeIndex - 1)),
        r.slideTo(h, e, t, a)
    }
    function He(e, t, a) {
        void 0 === e && (e = this.params.speed),
        void 0 === t && (t = !0);
        var i = this;
        return i.slideTo(i.activeIndex, e, t, a)
    }
    function Xe(e, t, a, i) {
        void 0 === e && (e = this.params.speed),
        void 0 === t && (t = !0),
        void 0 === i && (i = .5);
        var r = this
          , s = r.activeIndex
          , n = Math.min(r.params.slidesPerGroupSkip, s)
          , o = n + Math.floor((s - n) / r.params.slidesPerGroup)
          , l = r.rtlTranslate ? r.translate : -r.translate;
        if (l >= r.snapGrid[o]) {
            var d = r.snapGrid[o]
              , p = r.snapGrid[o + 1];
            l - d > (p - d) * i && (s += r.params.slidesPerGroup)
        } else {
            var u = r.snapGrid[o - 1]
              , c = r.snapGrid[o];
            l - u <= (c - u) * i && (s -= r.params.slidesPerGroup)
        }
        return s = Math.max(s, 0),
        s = Math.min(s, r.slidesGrid.length - 1),
        r.slideTo(s, e, t, a)
    }
    function Ye() {
        var e, t = this, a = t.params, i = t.$wrapperEl, r = "auto" === a.slidesPerView ? t.slidesPerViewDynamic() : a.slidesPerView, s = t.clickedIndex;
        if (a.loop) {
            if (t.animating)
                return;
            e = parseInt(y(t.clickedSlide).attr("data-swiper-slide-index"), 10),
            a.centeredSlides ? s < t.loopedSlides - r / 2 || s > t.slides.length - t.loopedSlides + r / 2 ? (t.loopFix(),
            s = i.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ")").eq(0).index(),
            re(function() {
                t.slideTo(s)
            })) : t.slideTo(s) : s > t.slides.length - r ? (t.loopFix(),
            s = i.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ")").eq(0).index(),
            re(function() {
                t.slideTo(s)
            })) : t.slideTo(s)
        } else
            t.slideTo(s)
    }
    function Re() {
        var e = this
          , t = s()
          , a = e.params
          , i = e.$wrapperEl;
        i.children("." + a.slideClass + "." + a.slideDuplicateClass).remove();
        var r = i.children("." + a.slideClass);
        if (a.loopFillGroupWithBlank) {
            var n = a.slidesPerGroup - r.length % a.slidesPerGroup;
            if (n !== a.slidesPerGroup) {
                for (var o = 0; o < n; o += 1) {
                    var l = y(t.createElement("div")).addClass(a.slideClass + " " + a.slideBlankClass);
                    i.append(l)
                }
                r = i.children("." + a.slideClass)
            }
        }
        "auto" !== a.slidesPerView || a.loopedSlides || (a.loopedSlides = r.length),
        e.loopedSlides = Math.ceil(parseFloat(a.loopedSlides || a.slidesPerView, 10)),
        e.loopedSlides += a.loopAdditionalSlides,
        e.loopedSlides > r.length && (e.loopedSlides = r.length);
        var d = []
          , p = [];
        r.each(function(t, a) {
            var i = y(t);
            a < e.loopedSlides && p.push(t),
            a < r.length && a >= r.length - e.loopedSlides && d.push(t),
            i.attr("data-swiper-slide-index", a)
        });
        for (var u = 0; u < p.length; u += 1)
            i.append(y(p[u].cloneNode(!0)).addClass(a.slideDuplicateClass));
        for (var c = d.length - 1; c >= 0; c -= 1)
            i.prepend(y(d[c].cloneNode(!0)).addClass(a.slideDuplicateClass))
    }
    function Ve() {
        var e = this;
        e.emit("beforeLoopFix");
        var t, a = e.activeIndex, i = e.slides, r = e.loopedSlides, s = e.allowSlidePrev, n = e.allowSlideNext, o = e.snapGrid, l = e.rtlTranslate;
        e.allowSlidePrev = !0,
        e.allowSlideNext = !0;
        var d = -o[a]
          , p = d - e.getTranslate();
        if (a < r) {
            t = i.length - 3 * r + a,
            t += r;
            var u = e.slideTo(t, 0, !1, !0);
            u && 0 !== p && e.setTranslate((l ? -e.translate : e.translate) - p)
        } else if (a >= i.length - r) {
            t = -i.length + a + r,
            t += r;
            var c = e.slideTo(t, 0, !1, !0);
            c && 0 !== p && e.setTranslate((l ? -e.translate : e.translate) - p)
        }
        e.allowSlidePrev = s,
        e.allowSlideNext = n,
        e.emit("loopFix")
    }
    function We() {
        var e = this
          , t = e.$wrapperEl
          , a = e.params
          , i = e.slides;
        t.children("." + a.slideClass + "." + a.slideDuplicateClass + ",." + a.slideClass + "." + a.slideBlankClass).remove(),
        i.removeAttr("data-swiper-slide-index")
    }
    function Fe(e) {
        var t = this;
        if (!(t.support.touch || !t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode)) {
            var a = t.el;
            a.style.cursor = "move",
            a.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab",
            a.style.cursor = e ? "-moz-grabbin" : "-moz-grab",
            a.style.cursor = e ? "grabbing" : "grab"
        }
    }
    function _e() {
        var e = this;
        e.support.touch || e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.el.style.cursor = "")
    }
    function qe(e) {
        var t = this
          , a = t.$wrapperEl
          , i = t.params;
        if (i.loop && t.loopDestroy(),
        "object" == typeof e && "length"in e)
            for (var r = 0; r < e.length; r += 1)
                e[r] && a.append(e[r]);
        else
            a.append(e);
        i.loop && t.loopCreate(),
        i.observer && t.support.observer || t.update()
    }
    function je(e) {
        var t = this
          , a = t.params
          , i = t.$wrapperEl
          , r = t.activeIndex;
        a.loop && t.loopDestroy();
        var s = r + 1;
        if ("object" == typeof e && "length"in e) {
            for (var n = 0; n < e.length; n += 1)
                e[n] && i.prepend(e[n]);
            s = r + e.length
        } else
            i.prepend(e);
        a.loop && t.loopCreate(),
        a.observer && t.support.observer || t.update(),
        t.slideTo(s, 0, !1)
    }
    function Ue(e, t) {
        var a = this
          , i = a.$wrapperEl
          , r = a.params
          , s = a.activeIndex
          , n = s;
        r.loop && (n -= a.loopedSlides,
        a.loopDestroy(),
        a.slides = i.children("." + r.slideClass));
        var o = a.slides.length;
        if (e <= 0)
            a.prependSlide(t);
        else if (e >= o)
            a.appendSlide(t);
        else {
            for (var l = n > e ? n + 1 : n, d = [], p = o - 1; p >= e; p -= 1) {
                var u = a.slides.eq(p);
                u.remove(),
                d.unshift(u)
            }
            if ("object" == typeof t && "length"in t) {
                for (var c = 0; c < t.length; c += 1)
                    t[c] && i.append(t[c]);
                l = n > e ? n + t.length : n
            } else
                i.append(t);
            for (var h = 0; h < d.length; h += 1)
                i.append(d[h]);
            r.loop && a.loopCreate(),
            r.observer && a.support.observer || a.update(),
            r.loop ? a.slideTo(l + a.loopedSlides, 0, !1) : a.slideTo(l, 0, !1)
        }
    }
    function Ke(e) {
        var t = this
          , a = t.params
          , i = t.$wrapperEl
          , r = t.activeIndex
          , s = r;
        a.loop && (s -= t.loopedSlides,
        t.loopDestroy(),
        t.slides = i.children("." + a.slideClass));
        var n, o = s;
        if ("object" == typeof e && "length"in e) {
            for (var l = 0; l < e.length; l += 1)
                n = e[l],
                t.slides[n] && t.slides.eq(n).remove(),
                n < o && (o -= 1);
            o = Math.max(o, 0)
        } else
            n = e,
            t.slides[n] && t.slides.eq(n).remove(),
            n < o && (o -= 1),
            o = Math.max(o, 0);
        a.loop && t.loopCreate(),
        a.observer && t.support.observer || t.update(),
        a.loop ? t.slideTo(o + t.loopedSlides, 0, !1) : t.slideTo(o, 0, !1)
    }
    function Ze() {
        for (var e = this, t = [], a = 0; a < e.slides.length; a += 1)
            t.push(a);
        e.removeSlide(t)
    }
    function Je(e) {
        var t = this
          , a = s()
          , i = n()
          , r = t.touchEventsData
          , o = t.params
          , l = t.touches;
        if (!t.animating || !o.preventInteractionOnTransition) {
            var d = e;
            d.originalEvent && (d = d.originalEvent);
            var p = y(d.target);
            if (("wrapper" !== o.touchEventsTarget || p.closest(t.wrapperEl).length) && (r.isTouchEvent = "touchstart" === d.type,
            (r.isTouchEvent || !("which"in d) || 3 !== d.which) && !(!r.isTouchEvent && "button"in d && d.button > 0 || r.isTouched && r.isMoved))) {
                var u = !!o.noSwipingClass && "" !== o.noSwipingClass;
                if (u && d.target && d.target.shadowRoot && e.path && e.path[0] && (p = y(e.path[0])),
                o.noSwiping && p.closest(o.noSwipingSelector ? o.noSwipingSelector : "." + o.noSwipingClass)[0])
                    t.allowClick = !0;
                else if (!o.swipeHandler || p.closest(o.swipeHandler)[0]) {
                    l.currentX = "touchstart" === d.type ? d.targetTouches[0].pageX : d.pageX,
                    l.currentY = "touchstart" === d.type ? d.targetTouches[0].pageY : d.pageY;
                    var c = l.currentX
                      , h = l.currentY
                      , v = o.edgeSwipeDetection || o.iOSEdgeSwipeDetection
                      , f = o.edgeSwipeThreshold || o.iOSEdgeSwipeThreshold;
                    if (v && (c <= f || c >= i.innerWidth - f)) {
                        if ("prevent" !== v)
                            return;
                        e.preventDefault()
                    }
                    if (de(r, {
                        isTouched: !0,
                        isMoved: !1,
                        allowTouchCallbacks: !0,
                        isScrolling: void 0,
                        startMoving: void 0
                    }),
                    l.startX = c,
                    l.startY = h,
                    r.touchStartTime = se(),
                    t.allowClick = !0,
                    t.updateSize(),
                    t.swipeDirection = void 0,
                    o.threshold > 0 && (r.allowThresholdMove = !1),
                    "touchstart" !== d.type) {
                        var m = !0;
                        p.is(r.formElements) && (m = !1),
                        a.activeElement && y(a.activeElement).is(r.formElements) && a.activeElement !== p[0] && a.activeElement.blur();
                        var g = m && t.allowTouchMove && o.touchStartPreventDefault;
                        !o.touchStartForcePreventDefault && !g || p[0].isContentEditable || d.preventDefault()
                    }
                    t.emit("touchStart", d)
                }
            }
        }
    }
    function Qe(e) {
        var t = s()
          , a = this
          , i = a.touchEventsData
          , r = a.params
          , n = a.touches
          , o = a.rtlTranslate
          , l = e;
        if (l.originalEvent && (l = l.originalEvent),
        i.isTouched) {
            if (!i.isTouchEvent || "touchmove" === l.type) {
                var d = "touchmove" === l.type && l.targetTouches && (l.targetTouches[0] || l.changedTouches[0])
                  , p = "touchmove" === l.type ? d.pageX : l.pageX
                  , u = "touchmove" === l.type ? d.pageY : l.pageY;
                if (l.preventedByNestedSwiper)
                    return n.startX = p,
                    void (n.startY = u);
                if (!a.allowTouchMove)
                    return a.allowClick = !1,
                    void (i.isTouched && (de(n, {
                        startX: p,
                        startY: u,
                        currentX: p,
                        currentY: u
                    }),
                    i.touchStartTime = se()));
                if (i.isTouchEvent && r.touchReleaseOnEdges && !r.loop)
                    if (a.isVertical()) {
                        if (u < n.startY && a.translate <= a.maxTranslate() || u > n.startY && a.translate >= a.minTranslate())
                            return i.isTouched = !1,
                            void (i.isMoved = !1)
                    } else if (p < n.startX && a.translate <= a.maxTranslate() || p > n.startX && a.translate >= a.minTranslate())
                        return;
                if (i.isTouchEvent && t.activeElement && l.target === t.activeElement && y(l.target).is(i.formElements))
                    return i.isMoved = !0,
                    void (a.allowClick = !1);
                if (i.allowTouchCallbacks && a.emit("touchMove", l),
                !(l.targetTouches && l.targetTouches.length > 1)) {
                    n.currentX = p,
                    n.currentY = u;
                    var c = n.currentX - n.startX
                      , h = n.currentY - n.startY;
                    if (!(a.params.threshold && Math.sqrt(Math.pow(c, 2) + Math.pow(h, 2)) < a.params.threshold)) {
                        var v;
                        if (void 0 === i.isScrolling)
                            a.isHorizontal() && n.currentY === n.startY || a.isVertical() && n.currentX === n.startX ? i.isScrolling = !1 : c * c + h * h >= 25 && (v = 180 * Math.atan2(Math.abs(h), Math.abs(c)) / Math.PI,
                            i.isScrolling = a.isHorizontal() ? v > r.touchAngle : 90 - v > r.touchAngle);
                        if (i.isScrolling && a.emit("touchMoveOpposite", l),
                        void 0 === i.startMoving && (n.currentX === n.startX && n.currentY === n.startY || (i.startMoving = !0)),
                        i.isScrolling)
                            i.isTouched = !1;
                        else if (i.startMoving) {
                            a.allowClick = !1,
                            !r.cssMode && l.cancelable && l.preventDefault(),
                            r.touchMoveStopPropagation && !r.nested && l.stopPropagation(),
                            i.isMoved || (r.loop && a.loopFix(),
                            i.startTranslate = a.getTranslate(),
                            a.setTransition(0),
                            a.animating && a.$wrapperEl.trigger("webkitTransitionEnd transitionend"),
                            i.allowMomentumBounce = !1,
                            !r.grabCursor || !0 !== a.allowSlideNext && !0 !== a.allowSlidePrev || a.setGrabCursor(!0),
                            a.emit("sliderFirstMove", l)),
                            a.emit("sliderMove", l),
                            i.isMoved = !0;
                            var f = a.isHorizontal() ? c : h;
                            n.diff = f,
                            f *= r.touchRatio,
                            o && (f = -f),
                            a.swipeDirection = f > 0 ? "prev" : "next",
                            i.currentTranslate = f + i.startTranslate;
                            var m = !0
                              , g = r.resistanceRatio;
                            if (r.touchReleaseOnEdges && (g = 0),
                            f > 0 && i.currentTranslate > a.minTranslate() ? (m = !1,
                            r.resistance && (i.currentTranslate = a.minTranslate() - 1 + Math.pow(-a.minTranslate() + i.startTranslate + f, g))) : f < 0 && i.currentTranslate < a.maxTranslate() && (m = !1,
                            r.resistance && (i.currentTranslate = a.maxTranslate() + 1 - Math.pow(a.maxTranslate() - i.startTranslate - f, g))),
                            m && (l.preventedByNestedSwiper = !0),
                            !a.allowSlideNext && "next" === a.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate),
                            !a.allowSlidePrev && "prev" === a.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate),
                            a.allowSlidePrev || a.allowSlideNext || (i.currentTranslate = i.startTranslate),
                            r.threshold > 0) {
                                if (!(Math.abs(f) > r.threshold || i.allowThresholdMove))
                                    return void (i.currentTranslate = i.startTranslate);
                                if (!i.allowThresholdMove)
                                    return i.allowThresholdMove = !0,
                                    n.startX = n.currentX,
                                    n.startY = n.currentY,
                                    i.currentTranslate = i.startTranslate,
                                    void (n.diff = a.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY)
                            }
                            r.followFinger && !r.cssMode && ((r.freeMode || r.watchSlidesProgress || r.watchSlidesVisibility) && (a.updateActiveIndex(),
                            a.updateSlidesClasses()),
                            r.freeMode && (0 === i.velocities.length && i.velocities.push({
                                position: n[a.isHorizontal() ? "startX" : "startY"],
                                time: i.touchStartTime
                            }),
                            i.velocities.push({
                                position: n[a.isHorizontal() ? "currentX" : "currentY"],
                                time: se()
                            })),
                            a.updateProgress(i.currentTranslate),
                            a.setTranslate(i.currentTranslate))
                        }
                    }
                }
            }
        } else
            i.startMoving && i.isScrolling && a.emit("touchMoveOpposite", l)
    }
    function et(e) {
        var t = this
          , a = t.touchEventsData
          , i = t.params
          , r = t.touches
          , s = t.rtlTranslate
          , n = t.$wrapperEl
          , o = t.slidesGrid
          , l = t.snapGrid
          , d = e;
        if (d.originalEvent && (d = d.originalEvent),
        a.allowTouchCallbacks && t.emit("touchEnd", d),
        a.allowTouchCallbacks = !1,
        !a.isTouched)
            return a.isMoved && i.grabCursor && t.setGrabCursor(!1),
            a.isMoved = !1,
            void (a.startMoving = !1);
        i.grabCursor && a.isMoved && a.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
        var p, u = se(), c = u - a.touchStartTime;
        if (t.allowClick && (t.updateClickedSlide(d),
        t.emit("tap click", d),
        c < 300 && u - a.lastClickTime < 300 && t.emit("doubleTap doubleClick", d)),
        a.lastClickTime = se(),
        re(function() {
            t.destroyed || (t.allowClick = !0)
        }),
        !a.isTouched || !a.isMoved || !t.swipeDirection || 0 === r.diff || a.currentTranslate === a.startTranslate)
            return a.isTouched = !1,
            a.isMoved = !1,
            void (a.startMoving = !1);
        if (a.isTouched = !1,
        a.isMoved = !1,
        a.startMoving = !1,
        p = i.followFinger ? s ? t.translate : -t.translate : -a.currentTranslate,
        !i.cssMode)
            if (i.freeMode) {
                if (p < -t.minTranslate())
                    return void t.slideTo(t.activeIndex);
                if (p > -t.maxTranslate())
                    return void (t.slides.length < l.length ? t.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1));
                if (i.freeModeMomentum) {
                    if (a.velocities.length > 1) {
                        var h = a.velocities.pop()
                          , v = a.velocities.pop()
                          , f = h.position - v.position
                          , m = h.time - v.time;
                        t.velocity = f / m,
                        t.velocity /= 2,
                        Math.abs(t.velocity) < i.freeModeMinimumVelocity && (t.velocity = 0),
                        (m > 150 || se() - h.time > 300) && (t.velocity = 0)
                    } else
                        t.velocity = 0;
                    t.velocity *= i.freeModeMomentumVelocityRatio,
                    a.velocities.length = 0;
                    var g = 1e3 * i.freeModeMomentumRatio
                      , b = t.velocity * g
                      , w = t.translate + b;
                    s && (w = -w);
                    var y, E, x = !1, T = 20 * Math.abs(t.velocity) * i.freeModeMomentumBounceRatio;
                    if (w < t.maxTranslate())
                        i.freeModeMomentumBounce ? (w + t.maxTranslate() < -T && (w = t.maxTranslate() - T),
                        y = t.maxTranslate(),
                        x = !0,
                        a.allowMomentumBounce = !0) : w = t.maxTranslate(),
                        i.loop && i.centeredSlides && (E = !0);
                    else if (w > t.minTranslate())
                        i.freeModeMomentumBounce ? (w - t.minTranslate() > T && (w = t.minTranslate() + T),
                        y = t.minTranslate(),
                        x = !0,
                        a.allowMomentumBounce = !0) : w = t.minTranslate(),
                        i.loop && i.centeredSlides && (E = !0);
                    else if (i.freeModeSticky) {
                        for (var S, C = 0; C < l.length; C += 1)
                            if (l[C] > -w) {
                                S = C;
                                break
                            }
                        w = Math.abs(l[S] - w) < Math.abs(l[S - 1] - w) || "next" === t.swipeDirection ? l[S] : l[S - 1],
                        w = -w
                    }
                    if (E && t.once("transitionEnd", function() {
                        t.loopFix()
                    }),
                    0 !== t.velocity) {
                        if (g = s ? Math.abs((-w - t.translate) / t.velocity) : Math.abs((w - t.translate) / t.velocity),
                        i.freeModeSticky) {
                            var M = Math.abs((s ? -w : w) - t.translate)
                              , z = t.slidesSizesGrid[t.activeIndex];
                            g = M < z ? i.speed : M < 2 * z ? 1.5 * i.speed : 2.5 * i.speed
                        }
                    } else if (i.freeModeSticky)
                        return void t.slideToClosest();
                    i.freeModeMomentumBounce && x ? (t.updateProgress(y),
                    t.setTransition(g),
                    t.setTranslate(w),
                    t.transitionStart(!0, t.swipeDirection),
                    t.animating = !0,
                    n.transitionEnd(function() {
                        t && !t.destroyed && a.allowMomentumBounce && (t.emit("momentumBounce"),
                        t.setTransition(i.speed),
                        setTimeout(function() {
                            t.setTranslate(y),
                            n.transitionEnd(function() {
                                t && !t.destroyed && t.transitionEnd()
                            })
                        }, 0))
                    })) : t.velocity ? (t.updateProgress(w),
                    t.setTransition(g),
                    t.setTranslate(w),
                    t.transitionStart(!0, t.swipeDirection),
                    t.animating || (t.animating = !0,
                    n.transitionEnd(function() {
                        t && !t.destroyed && t.transitionEnd()
                    }))) : (t.emit("_freeModeNoMomentumRelease"),
                    t.updateProgress(w)),
                    t.updateActiveIndex(),
                    t.updateSlidesClasses()
                } else {
                    if (i.freeModeSticky)
                        return void t.slideToClosest();
                    i.freeMode && t.emit("_freeModeNoMomentumRelease")
                }
                (!i.freeModeMomentum || c >= i.longSwipesMs) && (t.updateProgress(),
                t.updateActiveIndex(),
                t.updateSlidesClasses())
            } else {
                for (var P = 0, k = t.slidesSizesGrid[0], L = 0; L < o.length; L += L < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup) {
                    var $ = L < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
                    void 0 !== o[L + $] ? p >= o[L] && p < o[L + $] && (P = L,
                    k = o[L + $] - o[L]) : p >= o[L] && (P = L,
                    k = o[o.length - 1] - o[o.length - 2])
                }
                var I = (p - o[P]) / k
                  , O = P < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup;
                if (c > i.longSwipesMs) {
                    if (!i.longSwipes)
                        return void t.slideTo(t.activeIndex);
                    "next" === t.swipeDirection && (I >= i.longSwipesRatio ? t.slideTo(P + O) : t.slideTo(P)),
                    "prev" === t.swipeDirection && (I > 1 - i.longSwipesRatio ? t.slideTo(P + O) : t.slideTo(P))
                } else {
                    if (!i.shortSwipes)
                        return void t.slideTo(t.activeIndex);
                    var A = t.navigation && (d.target === t.navigation.nextEl || d.target === t.navigation.prevEl);
                    A ? d.target === t.navigation.nextEl ? t.slideTo(P + O) : t.slideTo(P) : ("next" === t.swipeDirection && t.slideTo(P + O),
                    "prev" === t.swipeDirection && t.slideTo(P))
                }
            }
    }
    function tt() {
        var e = this
          , t = e.params
          , a = e.el;
        if (!a || 0 !== a.offsetWidth) {
            t.breakpoints && e.setBreakpoint();
            var i = e.allowSlideNext
              , r = e.allowSlidePrev
              , s = e.snapGrid;
            e.allowSlideNext = !0,
            e.allowSlidePrev = !0,
            e.updateSize(),
            e.updateSlides(),
            e.updateSlidesClasses(),
            ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0),
            e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(),
            e.allowSlidePrev = r,
            e.allowSlideNext = i,
            e.params.watchOverflow && s !== e.snapGrid && e.checkOverflow()
        }
    }
    function at(e) {
        var t = this;
        t.allowClick || (t.params.preventClicks && e.preventDefault(),
        t.params.preventClicksPropagation && t.animating && (e.stopPropagation(),
        e.stopImmediatePropagation()))
    }
    function it() {
        var e, t = this, a = t.wrapperEl, i = t.rtlTranslate;
        t.previousTranslate = t.translate,
        t.isHorizontal() ? t.translate = i ? a.scrollWidth - a.offsetWidth - a.scrollLeft : -a.scrollLeft : t.translate = -a.scrollTop,
        -0 === t.translate && (t.translate = 0),
        t.updateActiveIndex(),
        t.updateSlidesClasses();
        var r = t.maxTranslate() - t.minTranslate();
        e = 0 === r ? 0 : (t.translate - t.minTranslate()) / r,
        e !== t.progress && t.updateProgress(i ? -t.translate : t.translate),
        t.emit("setTranslate", t.translate, !1)
    }
    function rt() {}
    function st() {
        var e = this
          , t = s()
          , a = e.params
          , i = e.touchEvents
          , r = e.el
          , n = e.wrapperEl
          , o = e.device
          , l = e.support;
        e.onTouchStart = Je.bind(e),
        e.onTouchMove = Qe.bind(e),
        e.onTouchEnd = et.bind(e),
        a.cssMode && (e.onScroll = it.bind(e)),
        e.onClick = at.bind(e);
        var d = !!a.nested;
        if (!l.touch && l.pointerEvents)
            r.addEventListener(i.start, e.onTouchStart, !1),
            t.addEventListener(i.move, e.onTouchMove, d),
            t.addEventListener(i.end, e.onTouchEnd, !1);
        else {
            if (l.touch) {
                var p = !("touchstart" !== i.start || !l.passiveListener || !a.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                r.addEventListener(i.start, e.onTouchStart, p),
                r.addEventListener(i.move, e.onTouchMove, l.passiveListener ? {
                    passive: !1,
                    capture: d
                } : d),
                r.addEventListener(i.end, e.onTouchEnd, p),
                i.cancel && r.addEventListener(i.cancel, e.onTouchEnd, p),
                Nt || (t.addEventListener("touchstart", rt),
                Nt = !0)
            }
            (a.simulateTouch && !o.ios && !o.android || a.simulateTouch && !l.touch && o.ios) && (r.addEventListener("mousedown", e.onTouchStart, !1),
            t.addEventListener("mousemove", e.onTouchMove, d),
            t.addEventListener("mouseup", e.onTouchEnd, !1))
        }
        (a.preventClicks || a.preventClicksPropagation) && r.addEventListener("click", e.onClick, !0),
        a.cssMode && n.addEventListener("scroll", e.onScroll),
        a.updateOnWindowResize ? e.on(o.ios || o.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", tt, !0) : e.on("observerUpdate", tt, !0)
    }
    function nt() {
        var e = this
          , t = s()
          , a = e.params
          , i = e.touchEvents
          , r = e.el
          , n = e.wrapperEl
          , o = e.device
          , l = e.support
          , d = !!a.nested;
        if (!l.touch && l.pointerEvents)
            r.removeEventListener(i.start, e.onTouchStart, !1),
            t.removeEventListener(i.move, e.onTouchMove, d),
            t.removeEventListener(i.end, e.onTouchEnd, !1);
        else {
            if (l.touch) {
                var p = !("onTouchStart" !== i.start || !l.passiveListener || !a.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                r.removeEventListener(i.start, e.onTouchStart, p),
                r.removeEventListener(i.move, e.onTouchMove, d),
                r.removeEventListener(i.end, e.onTouchEnd, p),
                i.cancel && r.removeEventListener(i.cancel, e.onTouchEnd, p)
            }
            (a.simulateTouch && !o.ios && !o.android || a.simulateTouch && !l.touch && o.ios) && (r.removeEventListener("mousedown", e.onTouchStart, !1),
            t.removeEventListener("mousemove", e.onTouchMove, d),
            t.removeEventListener("mouseup", e.onTouchEnd, !1))
        }
        (a.preventClicks || a.preventClicksPropagation) && r.removeEventListener("click", e.onClick, !0),
        a.cssMode && n.removeEventListener("scroll", e.onScroll),
        e.off(o.ios || o.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", tt)
    }
    function ot() {
        var e = this
          , t = e.activeIndex
          , a = e.initialized
          , i = e.loopedSlides
          , r = void 0 === i ? 0 : i
          , s = e.params
          , n = e.$el
          , o = s.breakpoints;
        if (o && (!o || 0 !== Object.keys(o).length)) {
            var l = e.getBreakpoint(o, e.params.breakpointsBase, e.el);
            if (l && e.currentBreakpoint !== l) {
                var d = l in o ? o[l] : void 0;
                d && ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn"].forEach(function(e) {
                    var t = d[e];
                    void 0 !== t && (d[e] = "slidesPerView" !== e || "AUTO" !== t && "auto" !== t ? "slidesPerView" === e ? parseFloat(t) : parseInt(t, 10) : "auto")
                });
                var p = d || e.originalParams
                  , u = s.slidesPerColumn > 1
                  , c = p.slidesPerColumn > 1;
                u && !c ? (n.removeClass(s.containerModifierClass + "multirow " + s.containerModifierClass + "multirow-column"),
                e.emitContainerClasses()) : !u && c && (n.addClass(s.containerModifierClass + "multirow"),
                "column" === p.slidesPerColumnFill && n.addClass(s.containerModifierClass + "multirow-column"),
                e.emitContainerClasses());
                var h = p.direction && p.direction !== s.direction
                  , v = s.loop && (p.slidesPerView !== s.slidesPerView || h);
                h && a && e.changeDirection(),
                de(e.params, p),
                de(e, {
                    allowTouchMove: e.params.allowTouchMove,
                    allowSlideNext: e.params.allowSlideNext,
                    allowSlidePrev: e.params.allowSlidePrev
                }),
                e.currentBreakpoint = l,
                e.emit("_beforeBreakpoint", p),
                v && a && (e.loopDestroy(),
                e.loopCreate(),
                e.updateSlides(),
                e.slideTo(t - r + e.loopedSlides, 0, !1)),
                e.emit("breakpoint", p)
            }
        }
    }
    function lt(e, t, a) {
        if (void 0 === t && (t = "window"),
        e && ("container" !== t || a)) {
            var i = !1
              , r = n()
              , s = "window" === t ? r.innerWidth : a.clientWidth
              , o = "window" === t ? r.innerHeight : a.clientHeight
              , l = Object.keys(e).map(function(e) {
                if ("string" == typeof e && 0 === e.indexOf("@")) {
                    var t = parseFloat(e.substr(1))
                      , a = o * t;
                    return {
                        value: a,
                        point: e
                    }
                }
                return {
                    value: e,
                    point: e
                }
            });
            l.sort(function(e, t) {
                return parseInt(e.value, 10) - parseInt(t.value, 10)
            });
            for (var d = 0; d < l.length; d += 1) {
                var p = l[d]
                  , u = p.point
                  , c = p.value;
                c <= s && (i = u)
            }
            return i || "max"
        }
    }
    function dt(e, t) {
        var a = [];
        return e.forEach(function(e) {
            "object" == typeof e ? Object.keys(e).forEach(function(i) {
                e[i] && a.push(t + i)
            }) : "string" == typeof e && a.push(t + e)
        }),
        a
    }
    function pt() {
        var e = this
          , t = e.classNames
          , a = e.params
          , i = e.rtl
          , r = e.$el
          , s = e.device
          , n = e.support
          , o = dt(["initialized", a.direction, {
            "pointer-events": n.pointerEvents && !n.touch
        }, {
            "free-mode": a.freeMode
        }, {
            autoheight: a.autoHeight
        }, {
            rtl: i
        }, {
            multirow: a.slidesPerColumn > 1
        }, {
            "multirow-column": a.slidesPerColumn > 1 && "column" === a.slidesPerColumnFill
        }, {
            android: s.android
        }, {
            ios: s.ios
        }, {
            "css-mode": a.cssMode
        }], a.containerModifierClass);
        t.push.apply(t, o),
        r.addClass([].concat(t).join(" ")),
        e.emitContainerClasses()
    }
    function ut() {
        var e = this
          , t = e.$el
          , a = e.classNames;
        t.removeClass(a.join(" ")),
        e.emitContainerClasses()
    }
    function ct(e, t, a, i, r, s) {
        function o() {
            s && s()
        }
        var l, d = n(), p = y(e).parent("picture")[0];
        p || e.complete && r ? o() : t ? (l = new d.Image,
        l.onload = o,
        l.onerror = o,
        i && (l.sizes = i),
        a && (l.srcset = a),
        t && (l.src = t)) : o()
    }
    function ht() {
        function e() {
            null != t && t && !t.destroyed && (void 0 !== t.imagesLoaded && (t.imagesLoaded += 1),
            t.imagesLoaded === t.imagesToLoad.length && (t.params.updateOnImagesReady && t.update(),
            t.emit("imagesReady")))
        }
        var t = this;
        t.imagesToLoad = t.$el.find("img");
        for (var a = 0; a < t.imagesToLoad.length; a += 1) {
            var i = t.imagesToLoad[a];
            t.loadImage(i, i.currentSrc || i.getAttribute("src"), i.srcset || i.getAttribute("srcset"), i.sizes || i.getAttribute("sizes"), !0, e)
        }
    }
    function vt() {
        var e = this
          , t = e.params
          , a = e.isLocked
          , i = e.slides.length > 0 && t.slidesOffsetBefore + t.spaceBetween * (e.slides.length - 1) + e.slides[0].offsetWidth * e.slides.length;
        t.slidesOffsetBefore && t.slidesOffsetAfter && i ? e.isLocked = i <= e.size : e.isLocked = 1 === e.snapGrid.length,
        e.allowSlideNext = !e.isLocked,
        e.allowSlidePrev = !e.isLocked,
        a !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"),
        a && a !== e.isLocked && (e.isEnd = !1,
        e.navigation && e.navigation.update())
    }
    function ft() {
        var e = s()
          , t = "onwheel"
          , a = t in e;
        if (!a) {
            var i = e.createElement("div");
            i.setAttribute(t, "return;"),
            a = "function" == typeof i[t]
        }
        return !a && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature("", "") && (a = e.implementation.hasFeature("Events.wheel", "3.0")),
        a
    }
    var mt = {
        body: {},
        addEventListener: function() {},
        removeEventListener: function() {},
        activeElement: {
            blur: function() {},
            nodeName: ""
        },
        querySelector: function() {
            return null
        },
        querySelectorAll: function() {
            return []
        },
        getElementById: function() {
            return null
        },
        createEvent: function() {
            return {
                initEvent: function() {}
            }
        },
        createElement: function() {
            return {
                children: [],
                childNodes: [],
                style: {},
                setAttribute: function() {},
                getElementsByTagName: function() {
                    return []
                }
            }
        },
        createElementNS: function() {
            return {}
        },
        importNode: function() {
            return null
        },
        location: {
            hash: "",
            host: "",
            hostname: "",
            href: "",
            origin: "",
            pathname: "",
            protocol: "",
            search: ""
        }
    }
      , gt = {
        document: mt,
        navigator: {
            userAgent: ""
        },
        location: {
            hash: "",
            host: "",
            hostname: "",
            href: "",
            origin: "",
            pathname: "",
            protocol: "",
            search: ""
        },
        history: {
            replaceState: function() {},
            pushState: function() {},
            go: function() {},
            back: function() {}
        },
        CustomEvent: function() {
            return this
        },
        addEventListener: function() {},
        removeEventListener: function() {},
        getComputedStyle: function() {
            return {
                getPropertyValue: function() {
                    return ""
                }
            }
        },
        Image: function() {},
        Date: function() {},
        screen: {},
        setTimeout: function() {},
        clearTimeout: function() {},
        matchMedia: function() {
            return {}
        },
        requestAnimationFrame: function(e) {
            return "undefined" == typeof setTimeout ? (e(),
            null) : setTimeout(e, 0)
        },
        cancelAnimationFrame: function(e) {
            "undefined" != typeof setTimeout && clearTimeout(e)
        }
    }
      , bt = function(e) {
        function t(t) {
            var a;
            return a = e.call.apply(e, [this].concat(t)) || this,
            f(v(a)),
            a
        }
        return o(t, e),
        t
    }(h(Array));
    y.fn = bt.prototype;
    var wt, yt, Et, xt = {
        addClass: E,
        removeClass: x,
        hasClass: S,
        toggleClass: T,
        attr: C,
        removeAttr: M,
        transform: z,
        transition: P,
        on: k,
        off: L,
        trigger: $,
        transitionEnd: I,
        outerWidth: O,
        outerHeight: A,
        styles: N,
        offset: D,
        css: G,
        each: B,
        html: X,
        text: Y,
        is: R,
        index: V,
        eq: W,
        append: F,
        prepend: _,
        next: q,
        nextAll: j,
        prev: U,
        prevAll: K,
        parent: Z,
        parents: J,
        closest: Q,
        find: ee,
        children: te,
        filter: H,
        remove: ae
    };
    Object.keys(xt).forEach(function(e) {
        Object.defineProperty(y.fn, e, {
            value: xt[e],
            writable: !0
        })
    });
    var Tt = function() {
        var e = n();
        return void 0 !== e.ResizeObserver
    }
      , St = {
        name: "resize",
        create: function() {
            var e = this;
            de(e, {
                resize: {
                    observer: null,
                    createObserver: function() {
                        e && !e.destroyed && e.initialized && (e.resize.observer = new ResizeObserver(function(t) {
                            var a = e.width
                              , i = e.height
                              , r = a
                              , s = i;
                            t.forEach(function(t) {
                                var a = t.contentBoxSize
                                  , i = t.contentRect
                                  , n = t.target;
                                n && n !== e.el || (r = i ? i.width : (a[0] || a).inlineSize,
                                s = i ? i.height : (a[0] || a).blockSize)
                            }),
                            r === a && s === i || e.resize.resizeHandler()
                        }
                        ),
                        e.resize.observer.observe(e.el))
                    },
                    removeObserver: function() {
                        e.resize.observer && e.resize.observer.unobserve && e.el && (e.resize.observer.unobserve(e.el),
                        e.resize.observer = null)
                    },
                    resizeHandler: function() {
                        e && !e.destroyed && e.initialized && (e.emit("beforeResize"),
                        e.emit("resize"))
                    },
                    orientationChangeHandler: function() {
                        e && !e.destroyed && e.initialized && e.emit("orientationchange")
                    }
                }
            })
        },
        on: {
            init: function(e) {
                var t = n();
                e.params.resizeObserver && Tt() ? e.resize.createObserver() : (t.addEventListener("resize", e.resize.resizeHandler),
                t.addEventListener("orientationchange", e.resize.orientationChangeHandler))
            },
            destroy: function(e) {
                var t = n();
                e.resize.removeObserver(),
                t.removeEventListener("resize", e.resize.resizeHandler),
                t.removeEventListener("orientationchange", e.resize.orientationChangeHandler)
            }
        }
    }
      , Ct = {
        attach: function(e, t) {
            void 0 === t && (t = {});
            var a = n()
              , i = this
              , r = a.MutationObserver || a.WebkitMutationObserver
              , s = new r(function(e) {
                if (1 !== e.length) {
                    var t = function() {
                        i.emit("observerUpdate", e[0])
                    };
                    a.requestAnimationFrame ? a.requestAnimationFrame(t) : a.setTimeout(t, 0)
                } else
                    i.emit("observerUpdate", e[0])
            }
            );
            s.observe(e, {
                attributes: void 0 === t.attributes || t.attributes,
                childList: void 0 === t.childList || t.childList,
                characterData: void 0 === t.characterData || t.characterData
            }),
            i.observer.observers.push(s)
        },
        init: function() {
            var e = this;
            if (e.support.observer && e.params.observer) {
                if (e.params.observeParents)
                    for (var t = e.$el.parents(), a = 0; a < t.length; a += 1)
                        e.observer.attach(t[a]);
                e.observer.attach(e.$el[0], {
                    childList: e.params.observeSlideChildren
                }),
                e.observer.attach(e.$wrapperEl[0], {
                    attributes: !1
                })
            }
        },
        destroy: function() {
            var e = this;
            e.observer.observers.forEach(function(e) {
                e.disconnect()
            }),
            e.observer.observers = []
        }
    }
      , Mt = {
        name: "observer",
        params: {
            observer: !1,
            observeParents: !1,
            observeSlideChildren: !1
        },
        create: function() {
            var e = this;
            pe(e, {
                observer: a({}, Ct, {
                    observers: []
                })
            })
        },
        on: {
            init: function(e) {
                e.observer.init()
            },
            destroy: function(e) {
                e.observer.destroy()
            }
        }
    }
      , zt = {
        useParams: function(e) {
            var t = this;
            t.modules && Object.keys(t.modules).forEach(function(a) {
                var i = t.modules[a];
                i.params && de(e, i.params)
            })
        },
        useModules: function(e) {
            void 0 === e && (e = {});
            var t = this;
            t.modules && Object.keys(t.modules).forEach(function(a) {
                var i = t.modules[a]
                  , r = e[a] || {};
                i.on && t.on && Object.keys(i.on).forEach(function(e) {
                    t.on(e, i.on[e])
                }),
                i.create && i.create.bind(t)(r)
            })
        }
    }
      , Pt = {
        on: function(e, t, a) {
            var i = this;
            if ("function" != typeof t)
                return i;
            var r = a ? "unshift" : "push";
            return e.split(" ").forEach(function(e) {
                i.eventsListeners[e] || (i.eventsListeners[e] = []),
                i.eventsListeners[e][r](t)
            }),
            i
        },
        once: function(e, t, a) {
            function i() {
                r.off(e, i),
                i.__emitterProxy && delete i.__emitterProxy;
                for (var a = arguments.length, s = new Array(a), n = 0; n < a; n++)
                    s[n] = arguments[n];
                t.apply(r, s)
            }
            var r = this;
            return "function" != typeof t ? r : (i.__emitterProxy = t,
            r.on(e, i, a))
        },
        onAny: function(e, t) {
            var a = this;
            if ("function" != typeof e)
                return a;
            var i = t ? "unshift" : "push";
            return a.eventsAnyListeners.indexOf(e) < 0 && a.eventsAnyListeners[i](e),
            a
        },
        offAny: function(e) {
            var t = this;
            if (!t.eventsAnyListeners)
                return t;
            var a = t.eventsAnyListeners.indexOf(e);
            return a >= 0 && t.eventsAnyListeners.splice(a, 1),
            t
        },
        off: function(e, t) {
            var a = this;
            return a.eventsListeners ? (e.split(" ").forEach(function(e) {
                void 0 === t ? a.eventsListeners[e] = [] : a.eventsListeners[e] && a.eventsListeners[e].forEach(function(i, r) {
                    (i === t || i.__emitterProxy && i.__emitterProxy === t) && a.eventsListeners[e].splice(r, 1)
                })
            }),
            a) : a
        },
        emit: function() {
            var e, t, a, i = this;
            if (!i.eventsListeners)
                return i;
            for (var r = arguments.length, s = new Array(r), n = 0; n < r; n++)
                s[n] = arguments[n];
            "string" == typeof s[0] || Array.isArray(s[0]) ? (e = s[0],
            t = s.slice(1, s.length),
            a = i) : (e = s[0].events,
            t = s[0].data,
            a = s[0].context || i),
            t.unshift(a);
            var o = Array.isArray(e) ? e : e.split(" ");
            return o.forEach(function(e) {
                i.eventsAnyListeners && i.eventsAnyListeners.length && i.eventsAnyListeners.forEach(function(i) {
                    i.apply(a, [e].concat(t))
                }),
                i.eventsListeners && i.eventsListeners[e] && i.eventsListeners[e].forEach(function(e) {
                    e.apply(a, t)
                })
            }),
            i
        }
    }
      , kt = {
        updateSize: be,
        updateSlides: we,
        updateAutoHeight: ye,
        updateSlidesOffset: Ee,
        updateSlidesProgress: xe,
        updateProgress: Te,
        updateSlidesClasses: Se,
        updateActiveIndex: Ce,
        updateClickedSlide: Me
    }
      , Lt = {
        getTranslate: ze,
        setTranslate: Pe,
        minTranslate: ke,
        maxTranslate: Le,
        translateTo: $e
    }
      , $t = {
        setTransition: Ie,
        transitionStart: Oe,
        transitionEnd: Ae
    }
      , It = {
        slideTo: De,
        slideToLoop: Ne,
        slideNext: Ge,
        slidePrev: Be,
        slideReset: He,
        slideToClosest: Xe,
        slideToClickedSlide: Ye
    }
      , Ot = {
        loopCreate: Re,
        loopFix: Ve,
        loopDestroy: We
    }
      , At = {
        setGrabCursor: Fe,
        unsetGrabCursor: _e
    }
      , Dt = {
        appendSlide: qe,
        prependSlide: je,
        addSlide: Ue,
        removeSlide: Ke,
        removeAllSlides: Ze
    }
      , Nt = !1
      , Gt = {
        attachEvents: st,
        detachEvents: nt
    }
      , Bt = {
        setBreakpoint: ot,
        getBreakpoint: lt
    }
      , Ht = {
        addClasses: pt,
        removeClasses: ut
    }
      , Xt = {
        loadImage: ct,
        preloadImages: ht
    }
      , Yt = {
        checkOverflow: vt
    }
      , Rt = {
        init: !0,
        direction: "horizontal",
        touchEventsTarget: "container",
        initialSlide: 0,
        speed: 300,
        cssMode: !1,
        updateOnWindowResize: !0,
        resizeObserver: !1,
        nested: !1,
        width: null,
        height: null,
        preventInteractionOnTransition: !1,
        userAgent: null,
        url: null,
        edgeSwipeDetection: !1,
        edgeSwipeThreshold: 20,
        freeMode: !1,
        freeModeMomentum: !0,
        freeModeMomentumRatio: 1,
        freeModeMomentumBounce: !0,
        freeModeMomentumBounceRatio: 1,
        freeModeMomentumVelocityRatio: 1,
        freeModeSticky: !1,
        freeModeMinimumVelocity: .02,
        autoHeight: !1,
        setWrapperSize: !1,
        virtualTranslate: !1,
        effect: "slide",
        breakpoints: void 0,
        breakpointsBase: "window",
        spaceBetween: 0,
        slidesPerView: 1,
        slidesPerColumn: 1,
        slidesPerColumnFill: "column",
        slidesPerGroup: 1,
        slidesPerGroupSkip: 0,
        centeredSlides: !1,
        centeredSlidesBounds: !1,
        slidesOffsetBefore: 0,
        slidesOffsetAfter: 0,
        normalizeSlideIndex: !0,
        centerInsufficientSlides: !1,
        watchOverflow: !1,
        roundLengths: !1,
        touchRatio: 1,
        touchAngle: 45,
        simulateTouch: !0,
        shortSwipes: !0,
        longSwipes: !0,
        longSwipesRatio: .5,
        longSwipesMs: 300,
        followFinger: !0,
        allowTouchMove: !0,
        threshold: 0,
        touchMoveStopPropagation: !1,
        touchStartPreventDefault: !0,
        touchStartForcePreventDefault: !1,
        touchReleaseOnEdges: !1,
        uniqueNavElements: !0,
        resistance: !0,
        resistanceRatio: .85,
        watchSlidesProgress: !1,
        watchSlidesVisibility: !1,
        grabCursor: !1,
        preventClicks: !0,
        preventClicksPropagation: !0,
        slideToClickedSlide: !1,
        preloadImages: !0,
        updateOnImagesReady: !0,
        loop: !1,
        loopAdditionalSlides: 0,
        loopedSlides: null,
        loopFillGroupWithBlank: !1,
        loopPreventsSlide: !0,
        allowSlidePrev: !0,
        allowSlideNext: !0,
        swipeHandler: null,
        noSwiping: !0,
        noSwipingClass: "swiper-no-swiping",
        noSwipingSelector: null,
        passiveListeners: !0,
        containerModifierClass: "swiper-container-",
        slideClass: "swiper-slide",
        slideBlankClass: "swiper-slide-invisible-blank",
        slideActiveClass: "swiper-slide-active",
        slideDuplicateActiveClass: "swiper-slide-duplicate-active",
        slideVisibleClass: "swiper-slide-visible",
        slideDuplicateClass: "swiper-slide-duplicate",
        slideNextClass: "swiper-slide-next",
        slideDuplicateNextClass: "swiper-slide-duplicate-next",
        slidePrevClass: "swiper-slide-prev",
        slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
        wrapperClass: "swiper-wrapper",
        runCallbacksOnInit: !0,
        _emitClasses: !1
    }
      , Vt = {
        modular: zt,
        eventsEmitter: Pt,
        update: kt,
        translate: Lt,
        transition: $t,
        slide: It,
        loop: Ot,
        grabCursor: At,
        manipulation: Dt,
        events: Gt,
        breakpoints: Bt,
        checkOverflow: Yt,
        classes: Ht,
        images: Xt
    }
      , Wt = {}
      , Ft = function() {
        function e() {
            for (var t, a, i = arguments.length, r = new Array(i), s = 0; s < i; s++)
                r[s] = arguments[s];
            if (1 === r.length && r[0].constructor && "Object" === Object.prototype.toString.call(r[0]).slice(8, -1) ? a = r[0] : (t = r[0],
            a = r[1]),
            a || (a = {}),
            a = de({}, a),
            t && !a.el && (a.el = t),
            a.el && y(a.el).length > 1) {
                var n = [];
                return y(a.el).each(function(t) {
                    var i = de({}, a, {
                        el: t
                    });
                    n.push(new e(i))
                }),
                n
            }
            var o = this;
            o.__swiper__ = !0,
            o.support = he(),
            o.device = fe({
                userAgent: a.userAgent
            }),
            o.browser = ge(),
            o.eventsListeners = {},
            o.eventsAnyListeners = [],
            void 0 === o.modules && (o.modules = {}),
            Object.keys(o.modules).forEach(function(e) {
                var t = o.modules[e];
                if (t.params) {
                    var i = Object.keys(t.params)[0]
                      , r = t.params[i];
                    if ("object" != typeof r || null === r)
                        return;
                    if (!(i in a && "enabled"in r))
                        return;
                    !0 === a[i] && (a[i] = {
                        enabled: !0
                    }),
                    "object" != typeof a[i] || "enabled"in a[i] || (a[i].enabled = !0),
                    a[i] || (a[i] = {
                        enabled: !1
                    })
                }
            });
            var l, d, p = de({}, Rt);
            return o.useParams(p),
            o.params = de({}, p, Wt, a),
            o.originalParams = de({}, o.params),
            o.passedParams = de({}, a),
            o.params && o.params.on && Object.keys(o.params.on).forEach(function(e) {
                o.on(e, o.params.on[e])
            }),
            o.params && o.params.onAny && o.onAny(o.params.onAny),
            o.$ = y,
            de(o, {
                el: t,
                classNames: [],
                slides: y(),
                slidesGrid: [],
                snapGrid: [],
                slidesSizesGrid: [],
                isHorizontal: function() {
                    return "horizontal" === o.params.direction
                },
                isVertical: function() {
                    return "vertical" === o.params.direction
                },
                activeIndex: 0,
                realIndex: 0,
                isBeginning: !0,
                isEnd: !1,
                translate: 0,
                previousTranslate: 0,
                progress: 0,
                velocity: 0,
                animating: !1,
                allowSlideNext: o.params.allowSlideNext,
                allowSlidePrev: o.params.allowSlidePrev,
                touchEvents: (l = ["touchstart", "touchmove", "touchend", "touchcancel"],
                d = ["mousedown", "mousemove", "mouseup"],
                o.support.pointerEvents && (d = ["pointerdown", "pointermove", "pointerup"]),
                o.touchEventsTouch = {
                    start: l[0],
                    move: l[1],
                    end: l[2],
                    cancel: l[3]
                },
                o.touchEventsDesktop = {
                    start: d[0],
                    move: d[1],
                    end: d[2]
                },
                o.support.touch || !o.params.simulateTouch ? o.touchEventsTouch : o.touchEventsDesktop),
                touchEventsData: {
                    isTouched: void 0,
                    isMoved: void 0,
                    allowTouchCallbacks: void 0,
                    touchStartTime: void 0,
                    isScrolling: void 0,
                    currentTranslate: void 0,
                    startTranslate: void 0,
                    allowThresholdMove: void 0,
                    formElements: "input, select, option, textarea, button, video, label",
                    lastClickTime: se(),
                    clickTimeout: void 0,
                    velocities: [],
                    allowMomentumBounce: void 0,
                    isTouchEvent: void 0,
                    startMoving: void 0
                },
                allowClick: !0,
                allowTouchMove: o.params.allowTouchMove,
                touches: {
                    startX: 0,
                    startY: 0,
                    currentX: 0,
                    currentY: 0,
                    diff: 0
                },
                imagesToLoad: [],
                imagesLoaded: 0
            }),
            o.useModules(),
            o.emit("_swiper"),
            o.params.init && o.init(),
            o
        }
        var a = e.prototype;
        return a.setProgress = function(e, t) {
            var a = this;
            e = Math.min(Math.max(e, 0), 1);
            var i = a.minTranslate()
              , r = a.maxTranslate()
              , s = (r - i) * e + i;
            a.translateTo(s, void 0 === t ? 0 : t),
            a.updateActiveIndex(),
            a.updateSlidesClasses()
        }
        ,
        a.emitContainerClasses = function() {
            var e = this;
            if (e.params._emitClasses && e.el) {
                var t = e.el.className.split(" ").filter(function(t) {
                    return 0 === t.indexOf("swiper-container") || 0 === t.indexOf(e.params.containerModifierClass)
                });
                e.emit("_containerClasses", t.join(" "))
            }
        }
        ,
        a.getSlideClasses = function(e) {
            var t = this;
            return e.className.split(" ").filter(function(e) {
                return 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(t.params.slideClass)
            }).join(" ")
        }
        ,
        a.emitSlidesClasses = function() {
            var e = this;
            if (e.params._emitClasses && e.el) {
                var t = [];
                e.slides.each(function(a) {
                    var i = e.getSlideClasses(a);
                    t.push({
                        slideEl: a,
                        classNames: i
                    }),
                    e.emit("_slideClass", a, i)
                }),
                e.emit("_slideClasses", t)
            }
        }
        ,
        a.slidesPerViewDynamic = function() {
            var e = this
              , t = e.params
              , a = e.slides
              , i = e.slidesGrid
              , r = e.size
              , s = e.activeIndex
              , n = 1;
            if (t.centeredSlides) {
                for (var o, l = a[s].swiperSlideSize, d = s + 1; d < a.length; d += 1)
                    a[d] && !o && (l += a[d].swiperSlideSize,
                    n += 1,
                    l > r && (o = !0));
                for (var p = s - 1; p >= 0; p -= 1)
                    a[p] && !o && (l += a[p].swiperSlideSize,
                    n += 1,
                    l > r && (o = !0))
            } else
                for (var u = s + 1; u < a.length; u += 1)
                    i[u] - i[s] < r && (n += 1);
            return n
        }
        ,
        a.update = function() {
            function e() {
                var e = t.rtlTranslate ? -1 * t.translate : t.translate
                  , a = Math.min(Math.max(e, t.maxTranslate()), t.minTranslate());
                t.setTranslate(a),
                t.updateActiveIndex(),
                t.updateSlidesClasses()
            }
            var t = this;
            if (t && !t.destroyed) {
                var a, i = t.snapGrid, r = t.params;
                r.breakpoints && t.setBreakpoint(),
                t.updateSize(),
                t.updateSlides(),
                t.updateProgress(),
                t.updateSlidesClasses(),
                t.params.freeMode ? (e(),
                t.params.autoHeight && t.updateAutoHeight()) : (a = ("auto" === t.params.slidesPerView || t.params.slidesPerView > 1) && t.isEnd && !t.params.centeredSlides ? t.slideTo(t.slides.length - 1, 0, !1, !0) : t.slideTo(t.activeIndex, 0, !1, !0),
                a || e()),
                r.watchOverflow && i !== t.snapGrid && t.checkOverflow(),
                t.emit("update")
            }
        }
        ,
        a.changeDirection = function(e, t) {
            void 0 === t && (t = !0);
            var a = this
              , i = a.params.direction;
            return e || (e = "horizontal" === i ? "vertical" : "horizontal"),
            e === i || "horizontal" !== e && "vertical" !== e ? a : (a.$el.removeClass("" + a.params.containerModifierClass + i).addClass("" + a.params.containerModifierClass + e),
            a.emitContainerClasses(),
            a.params.direction = e,
            a.slides.each(function(t) {
                "vertical" === e ? t.style.width = "" : t.style.height = ""
            }),
            a.emit("changeDirection"),
            t && a.update(),
            a)
        }
        ,
        a.mount = function(e) {
            var t = this;
            if (t.mounted)
                return !0;
            var a, i = y(e || t.params.el);
            return e = i[0],
            !!e && (e.swiper = t,
            e && e.shadowRoot && e.shadowRoot.querySelector ? (a = y(e.shadowRoot.querySelector("." + t.params.wrapperClass)),
            a.children = function(e) {
                return i.children(e)
            }
            ) : a = i.children("." + t.params.wrapperClass),
            de(t, {
                $el: i,
                el: e,
                $wrapperEl: a,
                wrapperEl: a[0],
                mounted: !0,
                rtl: "rtl" === e.dir.toLowerCase() || "rtl" === i.css("direction"),
                rtlTranslate: "horizontal" === t.params.direction && ("rtl" === e.dir.toLowerCase() || "rtl" === i.css("direction")),
                wrongRTL: "-webkit-box" === a.css("display")
            }),
            !0)
        }
        ,
        a.init = function(e) {
            var t = this;
            if (t.initialized)
                return t;
            var a = t.mount(e);
            return !1 === a ? t : (t.emit("beforeInit"),
            t.params.breakpoints && t.setBreakpoint(),
            t.addClasses(),
            t.params.loop && t.loopCreate(),
            t.updateSize(),
            t.updateSlides(),
            t.params.watchOverflow && t.checkOverflow(),
            t.params.grabCursor && t.setGrabCursor(),
            t.params.preloadImages && t.preloadImages(),
            t.params.loop ? t.slideTo(t.params.initialSlide + t.loopedSlides, 0, t.params.runCallbacksOnInit) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit),
            t.attachEvents(),
            t.initialized = !0,
            t.emit("init"),
            t.emit("afterInit"),
            t)
        }
        ,
        a.destroy = function(e, t) {
            void 0 === e && (e = !0),
            void 0 === t && (t = !0);
            var a = this
              , i = a.params
              , r = a.$el
              , s = a.$wrapperEl
              , n = a.slides;
            return void 0 === a.params || a.destroyed ? null : (a.emit("beforeDestroy"),
            a.initialized = !1,
            a.detachEvents(),
            i.loop && a.loopDestroy(),
            t && (a.removeClasses(),
            r.removeAttr("style"),
            s.removeAttr("style"),
            n && n.length && n.removeClass([i.slideVisibleClass, i.slideActiveClass, i.slideNextClass, i.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),
            a.emit("destroy"),
            Object.keys(a.eventsListeners).forEach(function(e) {
                a.off(e)
            }),
            !1 !== e && (a.$el[0].swiper = null,
            ie(a)),
            a.destroyed = !0,
            null)
        }
        ,
        e.extendDefaults = function(e) {
            de(Wt, e)
        }
        ,
        e.installModule = function(t) {
            e.prototype.modules || (e.prototype.modules = {});
            var a = t.name || Object.keys(e.prototype.modules).length + "_" + se();
            e.prototype.modules[a] = t
        }
        ,
        e.use = function(t) {
            return Array.isArray(t) ? (t.forEach(function(t) {
                return e.installModule(t)
            }),
            e) : (e.installModule(t),
            e)
        }
        ,
        t(e, null, [{
            key: "extendedDefaults",
            get: function() {
                return Wt
            }
        }, {
            key: "defaults",
            get: function() {
                return Rt
            }
        }]),
        e
    }();
    Object.keys(Vt).forEach(function(e) {
        Object.keys(Vt[e]).forEach(function(t) {
            Ft.prototype[t] = Vt[e][t]
        })
    }),
    Ft.use([St, Mt]);
    var _t = {
        update: function(e) {
            function t() {
                a.updateSlides(),
                a.updateProgress(),
                a.updateSlidesClasses(),
                a.lazy && a.params.lazy.enabled && a.lazy.load()
            }
            var a = this
              , i = a.params
              , r = i.slidesPerView
              , s = i.slidesPerGroup
              , n = i.centeredSlides
              , o = a.params.virtual
              , l = o.addSlidesBefore
              , d = o.addSlidesAfter
              , p = a.virtual
              , u = p.from
              , c = p.to
              , h = p.slides
              , v = p.slidesGrid
              , f = p.renderSlide
              , m = p.offset;
            a.updateActiveIndex();
            var g, b, w, y = a.activeIndex || 0;
            g = a.rtlTranslate ? "right" : a.isHorizontal() ? "left" : "top",
            n ? (b = Math.floor(r / 2) + s + d,
            w = Math.floor(r / 2) + s + l) : (b = r + (s - 1) + d,
            w = s + l);
            var E = Math.max((y || 0) - w, 0)
              , x = Math.min((y || 0) + b, h.length - 1)
              , T = (a.slidesGrid[E] || 0) - (a.slidesGrid[0] || 0);
            if (de(a.virtual, {
                from: E,
                to: x,
                offset: T,
                slidesGrid: a.slidesGrid
            }),
            u === E && c === x && !e)
                return a.slidesGrid !== v && T !== m && a.slides.css(g, T + "px"),
                void a.updateProgress();
            if (a.params.virtual.renderExternal)
                return a.params.virtual.renderExternal.call(a, {
                    offset: T,
                    from: E,
                    to: x,
                    slides: function() {
                        for (var e = [], t = E; t <= x; t += 1)
                            e.push(h[t]);
                        return e
                    }()
                }),
                void (a.params.virtual.renderExternalUpdate && t());
            var S = []
              , C = [];
            if (e)
                a.$wrapperEl.find("." + a.params.slideClass).remove();
            else
                for (var M = u; M <= c; M += 1)
                    (M < E || M > x) && a.$wrapperEl.find("." + a.params.slideClass + '[data-swiper-slide-index="' + M + '"]').remove();
            for (var z = 0; z < h.length; z += 1)
                z >= E && z <= x && (void 0 === c || e ? C.push(z) : (z > c && C.push(z),
                z < u && S.push(z)));
            C.forEach(function(e) {
                a.$wrapperEl.append(f(h[e], e))
            }),
            S.sort(function(e, t) {
                return t - e
            }).forEach(function(e) {
                a.$wrapperEl.prepend(f(h[e], e))
            }),
            a.$wrapperEl.children(".swiper-slide").css(g, T + "px"),
            t()
        },
        renderSlide: function(e, t) {
            var a = this
              , i = a.params.virtual;
            if (i.cache && a.virtual.cache[t])
                return a.virtual.cache[t];
            var r = i.renderSlide ? y(i.renderSlide.call(a, e, t)) : y('<div class="' + a.params.slideClass + '" data-swiper-slide-index="' + t + '">' + e + "</div>");
            return r.attr("data-swiper-slide-index") || r.attr("data-swiper-slide-index", t),
            i.cache && (a.virtual.cache[t] = r),
            r
        },
        appendSlide: function(e) {
            var t = this;
            if ("object" == typeof e && "length"in e)
                for (var a = 0; a < e.length; a += 1)
                    e[a] && t.virtual.slides.push(e[a]);
            else
                t.virtual.slides.push(e);
            t.virtual.update(!0)
        },
        prependSlide: function(e) {
            var t = this
              , a = t.activeIndex
              , i = a + 1
              , r = 1;
            if (Array.isArray(e)) {
                for (var s = 0; s < e.length; s += 1)
                    e[s] && t.virtual.slides.unshift(e[s]);
                i = a + e.length,
                r = e.length
            } else
                t.virtual.slides.unshift(e);
            if (t.params.virtual.cache) {
                var n = t.virtual.cache
                  , o = {};
                Object.keys(n).forEach(function(e) {
                    var t = n[e]
                      , a = t.attr("data-swiper-slide-index");
                    a && t.attr("data-swiper-slide-index", parseInt(a, 10) + 1),
                    o[parseInt(e, 10) + r] = t
                }),
                t.virtual.cache = o
            }
            t.virtual.update(!0),
            t.slideTo(i, 0)
        },
        removeSlide: function(e) {
            var t = this;
            if (null != e) {
                var a = t.activeIndex;
                if (Array.isArray(e))
                    for (var i = e.length - 1; i >= 0; i -= 1)
                        t.virtual.slides.splice(e[i], 1),
                        t.params.virtual.cache && delete t.virtual.cache[e[i]],
                        e[i] < a && (a -= 1),
                        a = Math.max(a, 0);
                else
                    t.virtual.slides.splice(e, 1),
                    t.params.virtual.cache && delete t.virtual.cache[e],
                    e < a && (a -= 1),
                    a = Math.max(a, 0);
                t.virtual.update(!0),
                t.slideTo(a, 0)
            }
        },
        removeAllSlides: function() {
            var e = this;
            e.virtual.slides = [],
            e.params.virtual.cache && (e.virtual.cache = {}),
            e.virtual.update(!0),
            e.slideTo(0, 0)
        }
    }
      , qt = {
        name: "virtual",
        params: {
            virtual: {
                enabled: !1,
                slides: [],
                cache: !0,
                renderSlide: null,
                renderExternal: null,
                renderExternalUpdate: !0,
                addSlidesBefore: 0,
                addSlidesAfter: 0
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                virtual: a({}, _t, {
                    slides: e.params.virtual.slides,
                    cache: {}
                })
            })
        },
        on: {
            beforeInit: function(e) {
                if (e.params.virtual.enabled) {
                    e.classNames.push(e.params.containerModifierClass + "virtual");
                    var t = {
                        watchSlidesProgress: !0
                    };
                    de(e.params, t),
                    de(e.originalParams, t),
                    e.params.initialSlide || e.virtual.update()
                }
            },
            setTranslate: function(e) {
                e.params.virtual.enabled && e.virtual.update()
            }
        }
    }
      , jt = {
        handle: function(e) {
            var t = this
              , a = n()
              , i = s()
              , r = t.rtlTranslate
              , o = e;
            o.originalEvent && (o = o.originalEvent);
            var l = o.keyCode || o.charCode
              , d = t.params.keyboard.pageUpDown
              , p = d && 33 === l
              , u = d && 34 === l
              , c = 37 === l
              , h = 39 === l
              , v = 38 === l
              , f = 40 === l;
            if (!t.allowSlideNext && (t.isHorizontal() && h || t.isVertical() && f || u))
                return !1;
            if (!t.allowSlidePrev && (t.isHorizontal() && c || t.isVertical() && v || p))
                return !1;
            if (!(o.shiftKey || o.altKey || o.ctrlKey || o.metaKey || i.activeElement && i.activeElement.nodeName && ("input" === i.activeElement.nodeName.toLowerCase() || "textarea" === i.activeElement.nodeName.toLowerCase()))) {
                if (t.params.keyboard.onlyInViewport && (p || u || c || h || v || f)) {
                    var m = !1;
                    if (t.$el.parents("." + t.params.slideClass).length > 0 && 0 === t.$el.parents("." + t.params.slideActiveClass).length)
                        return;
                    var g = t.$el
                      , b = g[0].clientWidth
                      , w = g[0].clientHeight
                      , y = a.innerWidth
                      , E = a.innerHeight
                      , x = t.$el.offset();
                    r && (x.left -= t.$el[0].scrollLeft);
                    for (var T = [[x.left, x.top], [x.left + b, x.top], [x.left, x.top + w], [x.left + b, x.top + w]], S = 0; S < T.length; S += 1) {
                        var C = T[S];
                        if (C[0] >= 0 && C[0] <= y && C[1] >= 0 && C[1] <= E) {
                            if (0 === C[0] && 0 === C[1])
                                continue;
                            m = !0
                        }
                    }
                    if (!m)
                        return
                }
                t.isHorizontal() ? ((p || u || c || h) && (o.preventDefault ? o.preventDefault() : o.returnValue = !1),
                ((u || h) && !r || (p || c) && r) && t.slideNext(),
                ((p || c) && !r || (u || h) && r) && t.slidePrev()) : ((p || u || v || f) && (o.preventDefault ? o.preventDefault() : o.returnValue = !1),
                (u || f) && t.slideNext(),
                (p || v) && t.slidePrev()),
                t.emit("keyPress", l)
            }
        },
        enable: function() {
            var e = this
              , t = s();
            e.keyboard.enabled || (y(t).on("keydown", e.keyboard.handle),
            e.keyboard.enabled = !0)
        },
        disable: function() {
            var e = this
              , t = s();
            e.keyboard.enabled && (y(t).off("keydown", e.keyboard.handle),
            e.keyboard.enabled = !1)
        }
    }
      , Ut = {
        name: "keyboard",
        params: {
            keyboard: {
                enabled: !1,
                onlyInViewport: !0,
                pageUpDown: !0
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                keyboard: a({
                    enabled: !1
                }, jt)
            })
        },
        on: {
            init: function(e) {
                e.params.keyboard.enabled && e.keyboard.enable()
            },
            destroy: function(e) {
                e.keyboard.enabled && e.keyboard.disable()
            }
        }
    }
      , Kt = {
        lastScrollTime: se(),
        lastEventBeforeSnap: void 0,
        recentWheelEvents: [],
        event: function() {
            var e = n();
            return e.navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : ft() ? "wheel" : "mousewheel"
        },
        normalize: function(e) {
            var t = 10
              , a = 40
              , i = 800
              , r = 0
              , s = 0
              , n = 0
              , o = 0;
            return "detail"in e && (s = e.detail),
            "wheelDelta"in e && (s = -e.wheelDelta / 120),
            "wheelDeltaY"in e && (s = -e.wheelDeltaY / 120),
            "wheelDeltaX"in e && (r = -e.wheelDeltaX / 120),
            "axis"in e && e.axis === e.HORIZONTAL_AXIS && (r = s,
            s = 0),
            n = r * t,
            o = s * t,
            "deltaY"in e && (o = e.deltaY),
            "deltaX"in e && (n = e.deltaX),
            e.shiftKey && !n && (n = o,
            o = 0),
            (n || o) && e.deltaMode && (1 === e.deltaMode ? (n *= a,
            o *= a) : (n *= i,
            o *= i)),
            n && !r && (r = n < 1 ? -1 : 1),
            o && !s && (s = o < 1 ? -1 : 1),
            {
                spinX: r,
                spinY: s,
                pixelX: n,
                pixelY: o
            }
        },
        handleMouseEnter: function() {
            var e = this;
            e.mouseEntered = !0
        },
        handleMouseLeave: function() {
            var e = this;
            e.mouseEntered = !1
        },
        handle: function(e) {
            var t = e
              , a = !0
              , i = this
              , r = i.params.mousewheel;
            i.params.cssMode && t.preventDefault();
            var s = i.$el;
            if ("container" !== i.params.mousewheel.eventsTarget && (s = y(i.params.mousewheel.eventsTarget)),
            !i.mouseEntered && !s[0].contains(t.target) && !r.releaseOnEdges)
                return !0;
            t.originalEvent && (t = t.originalEvent);
            var n = 0
              , o = i.rtlTranslate ? -1 : 1
              , l = Kt.normalize(t);
            if (r.forceToAxis)
                if (i.isHorizontal()) {
                    if (!(Math.abs(l.pixelX) > Math.abs(l.pixelY)))
                        return !0;
                    n = -l.pixelX * o
                } else {
                    if (!(Math.abs(l.pixelY) > Math.abs(l.pixelX)))
                        return !0;
                    n = -l.pixelY
                }
            else
                n = Math.abs(l.pixelX) > Math.abs(l.pixelY) ? -l.pixelX * o : -l.pixelY;
            if (0 === n)
                return !0;
            r.invert && (n = -n);
            var d = i.getTranslate() + n * r.sensitivity;
            if (d >= i.minTranslate() && (d = i.minTranslate()),
            d <= i.maxTranslate() && (d = i.maxTranslate()),
            a = !!i.params.loop || !(d === i.minTranslate() || d === i.maxTranslate()),
            a && i.params.nested && t.stopPropagation(),
            i.params.freeMode) {
                var p = {
                    time: se(),
                    delta: Math.abs(n),
                    direction: Math.sign(n)
                }
                  , u = i.mousewheel.lastEventBeforeSnap
                  , c = u && p.time < u.time + 500 && p.delta <= u.delta && p.direction === u.direction;
                if (!c) {
                    i.mousewheel.lastEventBeforeSnap = void 0,
                    i.params.loop && i.loopFix();
                    var h = i.getTranslate() + n * r.sensitivity
                      , v = i.isBeginning
                      , f = i.isEnd;
                    if (h >= i.minTranslate() && (h = i.minTranslate()),
                    h <= i.maxTranslate() && (h = i.maxTranslate()),
                    i.setTransition(0),
                    i.setTranslate(h),
                    i.updateProgress(),
                    i.updateActiveIndex(),
                    i.updateSlidesClasses(),
                    (!v && i.isBeginning || !f && i.isEnd) && i.updateSlidesClasses(),
                    i.params.freeModeSticky) {
                        clearTimeout(i.mousewheel.timeout),
                        i.mousewheel.timeout = void 0;
                        var m = i.mousewheel.recentWheelEvents;
                        m.length >= 15 && m.shift();
                        var g = m.length ? m[m.length - 1] : void 0
                          , b = m[0];
                        if (m.push(p),
                        g && (p.delta > g.delta || p.direction !== g.direction))
                            m.splice(0);
                        else if (m.length >= 15 && p.time - b.time < 500 && b.delta - p.delta >= 1 && p.delta <= 6) {
                            var w = n > 0 ? .8 : .2;
                            i.mousewheel.lastEventBeforeSnap = p,
                            m.splice(0),
                            i.mousewheel.timeout = re(function() {
                                i.slideToClosest(i.params.speed, !0, void 0, w)
                            }, 0)
                        }
                        i.mousewheel.timeout || (i.mousewheel.timeout = re(function() {
                            var e = .5;
                            i.mousewheel.lastEventBeforeSnap = p,
                            m.splice(0),
                            i.slideToClosest(i.params.speed, !0, void 0, e)
                        }, 500))
                    }
                    if (c || i.emit("scroll", t),
                    i.params.autoplay && i.params.autoplayDisableOnInteraction && i.autoplay.stop(),
                    h === i.minTranslate() || h === i.maxTranslate())
                        return !0
                }
            } else {
                var E = {
                    time: se(),
                    delta: Math.abs(n),
                    direction: Math.sign(n),
                    raw: e
                }
                  , x = i.mousewheel.recentWheelEvents;
                x.length >= 2 && x.shift();
                var T = x.length ? x[x.length - 1] : void 0;
                if (x.push(E),
                T ? (E.direction !== T.direction || E.delta > T.delta || E.time > T.time + 150) && i.mousewheel.animateSlider(E) : i.mousewheel.animateSlider(E),
                i.mousewheel.releaseScroll(E))
                    return !0
            }
            return t.preventDefault ? t.preventDefault() : t.returnValue = !1,
            !1
        },
        animateSlider: function(e) {
            var t = this
              , a = n();
            return !(this.params.mousewheel.thresholdDelta && e.delta < this.params.mousewheel.thresholdDelta) && (!(this.params.mousewheel.thresholdTime && se() - t.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) && (e.delta >= 6 && se() - t.mousewheel.lastScrollTime < 60 || (e.direction < 0 ? t.isEnd && !t.params.loop || t.animating || (t.slideNext(),
            t.emit("scroll", e.raw)) : t.isBeginning && !t.params.loop || t.animating || (t.slidePrev(),
            t.emit("scroll", e.raw)),
            t.mousewheel.lastScrollTime = (new a.Date).getTime(),
            !1)))
        },
        releaseScroll: function(e) {
            var t = this
              , a = t.params.mousewheel;
            if (e.direction < 0) {
                if (t.isEnd && !t.params.loop && a.releaseOnEdges)
                    return !0
            } else if (t.isBeginning && !t.params.loop && a.releaseOnEdges)
                return !0;
            return !1
        },
        enable: function() {
            var e = this
              , t = Kt.event();
            if (e.params.cssMode)
                return e.wrapperEl.removeEventListener(t, e.mousewheel.handle),
                !0;
            if (!t)
                return !1;
            if (e.mousewheel.enabled)
                return !1;
            var a = e.$el;
            return "container" !== e.params.mousewheel.eventsTarget && (a = y(e.params.mousewheel.eventsTarget)),
            a.on("mouseenter", e.mousewheel.handleMouseEnter),
            a.on("mouseleave", e.mousewheel.handleMouseLeave),
            a.on(t, e.mousewheel.handle),
            e.mousewheel.enabled = !0,
            !0
        },
        disable: function() {
            var e = this
              , t = Kt.event();
            if (e.params.cssMode)
                return e.wrapperEl.addEventListener(t, e.mousewheel.handle),
                !0;
            if (!t)
                return !1;
            if (!e.mousewheel.enabled)
                return !1;
            var a = e.$el;
            return "container" !== e.params.mousewheel.eventsTarget && (a = y(e.params.mousewheel.eventsTarget)),
            a.off(t, e.mousewheel.handle),
            e.mousewheel.enabled = !1,
            !0
        }
    }
      , Zt = {
        name: "mousewheel",
        params: {
            mousewheel: {
                enabled: !1,
                releaseOnEdges: !1,
                invert: !1,
                forceToAxis: !1,
                sensitivity: 1,
                eventsTarget: "container",
                thresholdDelta: null,
                thresholdTime: null
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                mousewheel: {
                    enabled: !1,
                    lastScrollTime: se(),
                    lastEventBeforeSnap: void 0,
                    recentWheelEvents: [],
                    enable: Kt.enable,
                    disable: Kt.disable,
                    handle: Kt.handle,
                    handleMouseEnter: Kt.handleMouseEnter,
                    handleMouseLeave: Kt.handleMouseLeave,
                    animateSlider: Kt.animateSlider,
                    releaseScroll: Kt.releaseScroll
                }
            })
        },
        on: {
            init: function(e) {
                !e.params.mousewheel.enabled && e.params.cssMode && e.mousewheel.disable(),
                e.params.mousewheel.enabled && e.mousewheel.enable()
            },
            destroy: function(e) {
                e.params.cssMode && e.mousewheel.enable(),
                e.mousewheel.enabled && e.mousewheel.disable()
            }
        }
    }
      , Jt = {
        toggleEl: function(e, t) {
            e[t ? "addClass" : "removeClass"](this.params.navigation.disabledClass),
            e[0] && "BUTTON" === e[0].tagName && (e[0].disabled = t)
        },
        update: function() {
            var e = this
              , t = e.params.navigation
              , a = e.navigation.toggleEl;
            if (!e.params.loop) {
                var i = e.navigation
                  , r = i.$nextEl
                  , s = i.$prevEl;
                s && s.length > 0 && (e.isBeginning ? a(s, !0) : a(s, !1),
                s[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass)),
                r && r.length > 0 && (e.isEnd ? a(r, !0) : a(r, !1),
                r[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](t.lockClass))
            }
        },
        onPrevClick: function(e) {
            var t = this;
            e.preventDefault(),
            t.isBeginning && !t.params.loop || t.slidePrev()
        },
        onNextClick: function(e) {
            var t = this;
            e.preventDefault(),
            t.isEnd && !t.params.loop || t.slideNext()
        },
        init: function() {
            var e, t, a = this, i = a.params.navigation;
            (i.nextEl || i.prevEl) && (i.nextEl && (e = y(i.nextEl),
            a.params.uniqueNavElements && "string" == typeof i.nextEl && e.length > 1 && 1 === a.$el.find(i.nextEl).length && (e = a.$el.find(i.nextEl))),
            i.prevEl && (t = y(i.prevEl),
            a.params.uniqueNavElements && "string" == typeof i.prevEl && t.length > 1 && 1 === a.$el.find(i.prevEl).length && (t = a.$el.find(i.prevEl))),
            e && e.length > 0 && e.on("click", a.navigation.onNextClick),
            t && t.length > 0 && t.on("click", a.navigation.onPrevClick),
            de(a.navigation, {
                $nextEl: e,
                nextEl: e && e[0],
                $prevEl: t,
                prevEl: t && t[0]
            }))
        },
        destroy: function() {
            var e = this
              , t = e.navigation
              , a = t.$nextEl
              , i = t.$prevEl;
            a && a.length && (a.off("click", e.navigation.onNextClick),
            a.removeClass(e.params.navigation.disabledClass)),
            i && i.length && (i.off("click", e.navigation.onPrevClick),
            i.removeClass(e.params.navigation.disabledClass))
        }
    }
      , Qt = {
        name: "navigation",
        params: {
            navigation: {
                nextEl: null,
                prevEl: null,
                hideOnClick: !1,
                disabledClass: "swiper-button-disabled",
                hiddenClass: "swiper-button-hidden",
                lockClass: "swiper-button-lock"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                navigation: a({}, Jt)
            })
        },
        on: {
            init: function(e) {
                e.navigation.init(),
                e.navigation.update()
            },
            toEdge: function(e) {
                e.navigation.update()
            },
            fromEdge: function(e) {
                e.navigation.update()
            },
            destroy: function(e) {
                e.navigation.destroy()
            },
            click: function(e, t) {
                var a = e.navigation
                  , i = a.$nextEl
                  , r = a.$prevEl
                  , s = t.target;
                if (e.params.navigation.hideOnClick && !y(s).is(r) && !y(s).is(i)) {
                    if (e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === s || e.pagination.el.contains(s)))
                        return;
                    var n;
                    i ? n = i.hasClass(e.params.navigation.hiddenClass) : r && (n = r.hasClass(e.params.navigation.hiddenClass)),
                    !0 === n ? e.emit("navigationShow") : e.emit("navigationHide"),
                    i && i.toggleClass(e.params.navigation.hiddenClass),
                    r && r.toggleClass(e.params.navigation.hiddenClass)
                }
            }
        }
    }
      , ea = {
        update: function() {
            var e = this
              , t = e.rtl
              , a = e.params.pagination;
            if (a.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
                var i, r = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, s = e.pagination.$el, n = e.params.loop ? Math.ceil((r - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
                if (e.params.loop ? (i = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup),
                i > r - 1 - 2 * e.loopedSlides && (i -= r - 2 * e.loopedSlides),
                i > n - 1 && (i -= n),
                i < 0 && "bullets" !== e.params.paginationType && (i = n + i)) : i = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0,
                "bullets" === a.type && e.pagination.bullets && e.pagination.bullets.length > 0) {
                    var o, l, d, p = e.pagination.bullets;
                    if (a.dynamicBullets && (e.pagination.bulletSize = p.eq(0)[e.isHorizontal() ? "outerWidth" : "outerHeight"](!0),
                    s.css(e.isHorizontal() ? "width" : "height", e.pagination.bulletSize * (a.dynamicMainBullets + 4) + "px"),
                    a.dynamicMainBullets > 1 && void 0 !== e.previousIndex && (e.pagination.dynamicBulletIndex += i - e.previousIndex,
                    e.pagination.dynamicBulletIndex > a.dynamicMainBullets - 1 ? e.pagination.dynamicBulletIndex = a.dynamicMainBullets - 1 : e.pagination.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)),
                    o = i - e.pagination.dynamicBulletIndex,
                    l = o + (Math.min(p.length, a.dynamicMainBullets) - 1),
                    d = (l + o) / 2),
                    p.removeClass(a.bulletActiveClass + " " + a.bulletActiveClass + "-next " + a.bulletActiveClass + "-next-next " + a.bulletActiveClass + "-prev " + a.bulletActiveClass + "-prev-prev " + a.bulletActiveClass + "-main"),
                    s.length > 1)
                        p.each(function(e) {
                            var t = y(e)
                              , r = t.index();
                            r === i && t.addClass(a.bulletActiveClass),
                            a.dynamicBullets && (r >= o && r <= l && t.addClass(a.bulletActiveClass + "-main"),
                            r === o && t.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"),
                            r === l && t.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next"))
                        });
                    else {
                        var u = p.eq(i)
                          , c = u.index();
                        if (u.addClass(a.bulletActiveClass),
                        a.dynamicBullets) {
                            for (var h = p.eq(o), v = p.eq(l), f = o; f <= l; f += 1)
                                p.eq(f).addClass(a.bulletActiveClass + "-main");
                            if (e.params.loop)
                                if (c >= p.length - a.dynamicMainBullets) {
                                    for (var m = a.dynamicMainBullets; m >= 0; m -= 1)
                                        p.eq(p.length - m).addClass(a.bulletActiveClass + "-main");
                                    p.eq(p.length - a.dynamicMainBullets - 1).addClass(a.bulletActiveClass + "-prev")
                                } else
                                    h.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"),
                                    v.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next");
                            else
                                h.prev().addClass(a.bulletActiveClass + "-prev").prev().addClass(a.bulletActiveClass + "-prev-prev"),
                                v.next().addClass(a.bulletActiveClass + "-next").next().addClass(a.bulletActiveClass + "-next-next")
                        }
                    }
                    if (a.dynamicBullets) {
                        var g = Math.min(p.length, a.dynamicMainBullets + 4)
                          , b = (e.pagination.bulletSize * g - e.pagination.bulletSize) / 2 - d * e.pagination.bulletSize
                          , w = t ? "right" : "left";
                        p.css(e.isHorizontal() ? w : "top", b + "px")
                    }
                }
                if ("fraction" === a.type && (s.find(ue(a.currentClass)).text(a.formatFractionCurrent(i + 1)),
                s.find(ue(a.totalClass)).text(a.formatFractionTotal(n))),
                "progressbar" === a.type) {
                    var E;
                    E = a.progressbarOpposite ? e.isHorizontal() ? "vertical" : "horizontal" : e.isHorizontal() ? "horizontal" : "vertical";
                    var x = (i + 1) / n
                      , T = 1
                      , S = 1;
                    "horizontal" === E ? T = x : S = x,
                    s.find(ue(a.progressbarFillClass)).transform("translate3d(0,0,0) scaleX(" + T + ") scaleY(" + S + ")").transition(e.params.speed)
                }
                "custom" === a.type && a.renderCustom ? (s.html(a.renderCustom(e, i + 1, n)),
                e.emit("paginationRender", s[0])) : e.emit("paginationUpdate", s[0]),
                s[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](a.lockClass)
            }
        },
        render: function() {
            var e = this
              , t = e.params.pagination;
            if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
                var a = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length
                  , i = e.pagination.$el
                  , r = "";
                if ("bullets" === t.type) {
                    var s = e.params.loop ? Math.ceil((a - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length;
                    e.params.freeMode && !e.params.loop && s > a && (s = a);
                    for (var n = 0; n < s; n += 1)
                        t.renderBullet ? r += t.renderBullet.call(e, n, t.bulletClass) : r += "<" + t.bulletElement + ' class="' + t.bulletClass + '"></' + t.bulletElement + ">";
                    i.html(r),
                    e.pagination.bullets = i.find(ue(t.bulletClass))
                }
                "fraction" === t.type && (r = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : '<span class="' + t.currentClass + '"></span> / <span class="' + t.totalClass + '"></span>',
                i.html(r)),
                "progressbar" === t.type && (r = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : '<span class="' + t.progressbarFillClass + '"></span>',
                i.html(r)),
                "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0])
            }
        },
        init: function() {
            var e = this
              , t = e.params.pagination;
            if (t.el) {
                var a = y(t.el);
                0 !== a.length && (e.params.uniqueNavElements && "string" == typeof t.el && a.length > 1 && (a = e.$el.find(t.el)),
                "bullets" === t.type && t.clickable && a.addClass(t.clickableClass),
                a.addClass(t.modifierClass + t.type),
                "bullets" === t.type && t.dynamicBullets && (a.addClass("" + t.modifierClass + t.type + "-dynamic"),
                e.pagination.dynamicBulletIndex = 0,
                t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)),
                "progressbar" === t.type && t.progressbarOpposite && a.addClass(t.progressbarOppositeClass),
                t.clickable && a.on("click", ue(t.bulletClass), function(t) {
                    t.preventDefault();
                    var a = y(this).index() * e.params.slidesPerGroup;
                    e.params.loop && (a += e.loopedSlides),
                    e.slideTo(a)
                }),
                de(e.pagination, {
                    $el: a,
                    el: a[0]
                }))
            }
        },
        destroy: function() {
            var e = this
              , t = e.params.pagination;
            if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
                var a = e.pagination.$el;
                a.removeClass(t.hiddenClass),
                a.removeClass(t.modifierClass + t.type),
                e.pagination.bullets && e.pagination.bullets.removeClass(t.bulletActiveClass),
                t.clickable && a.off("click", ue(t.bulletClass))
            }
        }
    }
      , ta = {
        name: "pagination",
        params: {
            pagination: {
                el: null,
                bulletElement: "span",
                clickable: !1,
                hideOnClick: !1,
                renderBullet: null,
                renderProgressbar: null,
                renderFraction: null,
                renderCustom: null,
                progressbarOpposite: !1,
                type: "bullets",
                dynamicBullets: !1,
                dynamicMainBullets: 1,
                formatFractionCurrent: function(e) {
                    return e
                },
                formatFractionTotal: function(e) {
                    return e
                },
                bulletClass: "swiper-pagination-bullet",
                bulletActiveClass: "swiper-pagination-bullet-active",
                modifierClass: "swiper-pagination-",
                currentClass: "swiper-pagination-current",
                totalClass: "swiper-pagination-total",
                hiddenClass: "swiper-pagination-hidden",
                progressbarFillClass: "swiper-pagination-progressbar-fill",
                progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
                clickableClass: "swiper-pagination-clickable",
                lockClass: "swiper-pagination-lock"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                pagination: a({
                    dynamicBulletIndex: 0
                }, ea)
            })
        },
        on: {
            init: function(e) {
                e.pagination.init(),
                e.pagination.render(),
                e.pagination.update()
            },
            activeIndexChange: function(e) {
                e.params.loop ? e.pagination.update() : void 0 === e.snapIndex && e.pagination.update()
            },
            snapIndexChange: function(e) {
                e.params.loop || e.pagination.update()
            },
            slidesLengthChange: function(e) {
                e.params.loop && (e.pagination.render(),
                e.pagination.update())
            },
            snapGridLengthChange: function(e) {
                e.params.loop || (e.pagination.render(),
                e.pagination.update())
            },
            destroy: function(e) {
                e.pagination.destroy()
            },
            click: function(e, t) {
                var a = t.target;
                if (e.params.pagination.el && e.params.pagination.hideOnClick && e.pagination.$el.length > 0 && !y(a).hasClass(e.params.pagination.bulletClass)) {
                    if (e.navigation && (e.navigation.nextEl && a === e.navigation.nextEl || e.navigation.prevEl && a === e.navigation.prevEl))
                        return;
                    var i = e.pagination.$el.hasClass(e.params.pagination.hiddenClass);
                    !0 === i ? e.emit("paginationShow") : e.emit("paginationHide"),
                    e.pagination.$el.toggleClass(e.params.pagination.hiddenClass)
                }
            }
        }
    }
      , aa = {
        setTranslate: function() {
            var e = this;
            if (e.params.scrollbar.el && e.scrollbar.el) {
                var t = e.scrollbar
                  , a = e.rtlTranslate
                  , i = e.progress
                  , r = t.dragSize
                  , s = t.trackSize
                  , n = t.$dragEl
                  , o = t.$el
                  , l = e.params.scrollbar
                  , d = r
                  , p = (s - r) * i;
                a ? (p = -p,
                p > 0 ? (d = r - p,
                p = 0) : -p + r > s && (d = s + p)) : p < 0 ? (d = r + p,
                p = 0) : p + r > s && (d = s - p),
                e.isHorizontal() ? (n.transform("translate3d(" + p + "px, 0, 0)"),
                n[0].style.width = d + "px") : (n.transform("translate3d(0px, " + p + "px, 0)"),
                n[0].style.height = d + "px"),
                l.hide && (clearTimeout(e.scrollbar.timeout),
                o[0].style.opacity = 1,
                e.scrollbar.timeout = setTimeout(function() {
                    o[0].style.opacity = 0,
                    o.transition(400)
                }, 1e3))
            }
        },
        setTransition: function(e) {
            var t = this;
            t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragEl.transition(e)
        },
        updateSize: function() {
            var e = this;
            if (e.params.scrollbar.el && e.scrollbar.el) {
                var t = e.scrollbar
                  , a = t.$dragEl
                  , i = t.$el;
                a[0].style.width = "",
                a[0].style.height = "";
                var r, s = e.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight, n = e.size / e.virtualSize, o = n * (s / e.size);
                r = "auto" === e.params.scrollbar.dragSize ? s * n : parseInt(e.params.scrollbar.dragSize, 10),
                e.isHorizontal() ? a[0].style.width = r + "px" : a[0].style.height = r + "px",
                i[0].style.display = n >= 1 ? "none" : "",
                e.params.scrollbar.hide && (i[0].style.opacity = 0),
                de(t, {
                    trackSize: s,
                    divider: n,
                    moveDivider: o,
                    dragSize: r
                }),
                t.$el[e.params.watchOverflow && e.isLocked ? "addClass" : "removeClass"](e.params.scrollbar.lockClass)
            }
        },
        getPointerPosition: function(e) {
            var t = this;
            return t.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY
        },
        setDragPosition: function(e) {
            var t, a = this, i = a.scrollbar, r = a.rtlTranslate, s = i.$el, n = i.dragSize, o = i.trackSize, l = i.dragStartPos;
            t = (i.getPointerPosition(e) - s.offset()[a.isHorizontal() ? "left" : "top"] - (null !== l ? l : n / 2)) / (o - n),
            t = Math.max(Math.min(t, 1), 0),
            r && (t = 1 - t);
            var d = a.minTranslate() + (a.maxTranslate() - a.minTranslate()) * t;
            a.updateProgress(d),
            a.setTranslate(d),
            a.updateActiveIndex(),
            a.updateSlidesClasses()
        },
        onDragStart: function(e) {
            var t = this
              , a = t.params.scrollbar
              , i = t.scrollbar
              , r = t.$wrapperEl
              , s = i.$el
              , n = i.$dragEl;
            t.scrollbar.isTouched = !0,
            t.scrollbar.dragStartPos = e.target === n[0] || e.target === n ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null,
            e.preventDefault(),
            e.stopPropagation(),
            r.transition(100),
            n.transition(100),
            i.setDragPosition(e),
            clearTimeout(t.scrollbar.dragTimeout),
            s.transition(0),
            a.hide && s.css("opacity", 1),
            t.params.cssMode && t.$wrapperEl.css("scroll-snap-type", "none"),
            t.emit("scrollbarDragStart", e)
        },
        onDragMove: function(e) {
            var t = this
              , a = t.scrollbar
              , i = t.$wrapperEl
              , r = a.$el
              , s = a.$dragEl;
            t.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1,
            a.setDragPosition(e),
            i.transition(0),
            r.transition(0),
            s.transition(0),
            t.emit("scrollbarDragMove", e))
        },
        onDragEnd: function(e) {
            var t = this
              , a = t.params.scrollbar
              , i = t.scrollbar
              , r = t.$wrapperEl
              , s = i.$el;
            t.scrollbar.isTouched && (t.scrollbar.isTouched = !1,
            t.params.cssMode && (t.$wrapperEl.css("scroll-snap-type", ""),
            r.transition("")),
            a.hide && (clearTimeout(t.scrollbar.dragTimeout),
            t.scrollbar.dragTimeout = re(function() {
                s.css("opacity", 0),
                s.transition(400)
            }, 1e3)),
            t.emit("scrollbarDragEnd", e),
            a.snapOnRelease && t.slideToClosest())
        },
        enableDraggable: function() {
            var e = this;
            if (e.params.scrollbar.el) {
                var t = s()
                  , a = e.scrollbar
                  , i = e.touchEventsTouch
                  , r = e.touchEventsDesktop
                  , n = e.params
                  , o = e.support
                  , l = a.$el
                  , d = l[0]
                  , p = !(!o.passiveListener || !n.passiveListeners) && {
                    passive: !1,
                    capture: !1
                }
                  , u = !(!o.passiveListener || !n.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                d && (o.touch ? (d.addEventListener(i.start, e.scrollbar.onDragStart, p),
                d.addEventListener(i.move, e.scrollbar.onDragMove, p),
                d.addEventListener(i.end, e.scrollbar.onDragEnd, u)) : (d.addEventListener(r.start, e.scrollbar.onDragStart, p),
                t.addEventListener(r.move, e.scrollbar.onDragMove, p),
                t.addEventListener(r.end, e.scrollbar.onDragEnd, u)))
            }
        },
        disableDraggable: function() {
            var e = this;
            if (e.params.scrollbar.el) {
                var t = s()
                  , a = e.scrollbar
                  , i = e.touchEventsTouch
                  , r = e.touchEventsDesktop
                  , n = e.params
                  , o = e.support
                  , l = a.$el
                  , d = l[0]
                  , p = !(!o.passiveListener || !n.passiveListeners) && {
                    passive: !1,
                    capture: !1
                }
                  , u = !(!o.passiveListener || !n.passiveListeners) && {
                    passive: !0,
                    capture: !1
                };
                d && (o.touch ? (d.removeEventListener(i.start, e.scrollbar.onDragStart, p),
                d.removeEventListener(i.move, e.scrollbar.onDragMove, p),
                d.removeEventListener(i.end, e.scrollbar.onDragEnd, u)) : (d.removeEventListener(r.start, e.scrollbar.onDragStart, p),
                t.removeEventListener(r.move, e.scrollbar.onDragMove, p),
                t.removeEventListener(r.end, e.scrollbar.onDragEnd, u)))
            }
        },
        init: function() {
            var e = this;
            if (e.params.scrollbar.el) {
                var t = e.scrollbar
                  , a = e.$el
                  , i = e.params.scrollbar
                  , r = y(i.el);
                e.params.uniqueNavElements && "string" == typeof i.el && r.length > 1 && 1 === a.find(i.el).length && (r = a.find(i.el));
                var s = r.find("." + e.params.scrollbar.dragClass);
                0 === s.length && (s = y('<div class="' + e.params.scrollbar.dragClass + '"></div>'),
                r.append(s)),
                de(t, {
                    $el: r,
                    el: r[0],
                    $dragEl: s,
                    dragEl: s[0]
                }),
                i.draggable && t.enableDraggable()
            }
        },
        destroy: function() {
            var e = this;
            e.scrollbar.disableDraggable()
        }
    }
      , ia = {
        name: "scrollbar",
        params: {
            scrollbar: {
                el: null,
                dragSize: "auto",
                hide: !1,
                draggable: !1,
                snapOnRelease: !0,
                lockClass: "swiper-scrollbar-lock",
                dragClass: "swiper-scrollbar-drag"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                scrollbar: a({
                    isTouched: !1,
                    timeout: null,
                    dragTimeout: null
                }, aa)
            })
        },
        on: {
            init: function(e) {
                e.scrollbar.init(),
                e.scrollbar.updateSize(),
                e.scrollbar.setTranslate()
            },
            update: function(e) {
                e.scrollbar.updateSize()
            },
            resize: function(e) {
                e.scrollbar.updateSize()
            },
            observerUpdate: function(e) {
                e.scrollbar.updateSize()
            },
            setTranslate: function(e) {
                e.scrollbar.setTranslate()
            },
            setTransition: function(e, t) {
                e.scrollbar.setTransition(t)
            },
            destroy: function(e) {
                e.scrollbar.destroy()
            }
        }
    }
      , ra = {
        setTransform: function(e, t) {
            var a = this
              , i = a.rtl
              , r = y(e)
              , s = i ? -1 : 1
              , n = r.attr("data-swiper-parallax") || "0"
              , o = r.attr("data-swiper-parallax-x")
              , l = r.attr("data-swiper-parallax-y")
              , d = r.attr("data-swiper-parallax-scale")
              , p = r.attr("data-swiper-parallax-opacity");
            if (o || l ? (o = o || "0",
            l = l || "0") : a.isHorizontal() ? (o = n,
            l = "0") : (l = n,
            o = "0"),
            o = o.indexOf("%") >= 0 ? parseInt(o, 10) * t * s + "%" : o * t * s + "px",
            l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px",
            null != p) {
                var u = p - (p - 1) * (1 - Math.abs(t));
                r[0].style.opacity = u
            }
            if (null == d)
                r.transform("translate3d(" + o + ", " + l + ", 0px)");
            else {
                var c = d - (d - 1) * (1 - Math.abs(t));
                r.transform("translate3d(" + o + ", " + l + ", 0px) scale(" + c + ")")
            }
        },
        setTranslate: function() {
            var e = this
              , t = e.$el
              , a = e.slides
              , i = e.progress
              , r = e.snapGrid;
            t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(t) {
                e.parallax.setTransform(t, i)
            }),
            a.each(function(t, a) {
                var s = t.progress;
                e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (s += Math.ceil(a / 2) - i * (r.length - 1)),
                s = Math.min(Math.max(s, -1), 1),
                y(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(t) {
                    e.parallax.setTransform(t, s)
                })
            })
        },
        setTransition: function(e) {
            void 0 === e && (e = this.params.speed);
            var t = this
              , a = t.$el;
            a.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(t) {
                var a = y(t)
                  , i = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e;
                0 === e && (i = 0),
                a.transition(i)
            })
        }
    }
      , sa = {
        name: "parallax",
        params: {
            parallax: {
                enabled: !1
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                parallax: a({}, ra)
            })
        },
        on: {
            beforeInit: function(e) {
                e.params.parallax.enabled && (e.params.watchSlidesProgress = !0,
                e.originalParams.watchSlidesProgress = !0)
            },
            init: function(e) {
                e.params.parallax.enabled && e.parallax.setTranslate()
            },
            setTranslate: function(e) {
                e.params.parallax.enabled && e.parallax.setTranslate()
            },
            setTransition: function(e, t) {
                e.params.parallax.enabled && e.parallax.setTransition(t)
            }
        }
    }
      , na = {
        getDistanceBetweenTouches: function(e) {
            if (e.targetTouches.length < 2)
                return 1;
            var t = e.targetTouches[0].pageX
              , a = e.targetTouches[0].pageY
              , i = e.targetTouches[1].pageX
              , r = e.targetTouches[1].pageY
              , s = Math.sqrt(Math.pow(i - t, 2) + Math.pow(r - a, 2));
            return s
        },
        onGestureStart: function(e) {
            var t = this
              , a = t.support
              , i = t.params.zoom
              , r = t.zoom
              , s = r.gesture;
            if (r.fakeGestureTouched = !1,
            r.fakeGestureMoved = !1,
            !a.gestures) {
                if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2)
                    return;
                r.fakeGestureTouched = !0,
                s.scaleStart = na.getDistanceBetweenTouches(e)
            }
            s.$slideEl && s.$slideEl.length || (s.$slideEl = y(e.target).closest("." + t.params.slideClass),
            0 === s.$slideEl.length && (s.$slideEl = t.slides.eq(t.activeIndex)),
            s.$imageEl = s.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
            s.$imageWrapEl = s.$imageEl.parent("." + i.containerClass),
            s.maxRatio = s.$imageWrapEl.attr("data-swiper-zoom") || i.maxRatio,
            0 !== s.$imageWrapEl.length) ? (s.$imageEl && s.$imageEl.transition(0),
            t.zoom.isScaling = !0) : s.$imageEl = void 0
        },
        onGestureChange: function(e) {
            var t = this
              , a = t.support
              , i = t.params.zoom
              , r = t.zoom
              , s = r.gesture;
            if (!a.gestures) {
                if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2)
                    return;
                r.fakeGestureMoved = !0,
                s.scaleMove = na.getDistanceBetweenTouches(e)
            }
            s.$imageEl && 0 !== s.$imageEl.length ? (a.gestures ? r.scale = e.scale * r.currentScale : r.scale = s.scaleMove / s.scaleStart * r.currentScale,
            r.scale > s.maxRatio && (r.scale = s.maxRatio - 1 + Math.pow(r.scale - s.maxRatio + 1, .5)),
            r.scale < i.minRatio && (r.scale = i.minRatio + 1 - Math.pow(i.minRatio - r.scale + 1, .5)),
            s.$imageEl.transform("translate3d(0,0,0) scale(" + r.scale + ")")) : "gesturechange" === e.type && r.onGestureStart(e)
        },
        onGestureEnd: function(e) {
            var t = this
              , a = t.device
              , i = t.support
              , r = t.params.zoom
              , s = t.zoom
              , n = s.gesture;
            if (!i.gestures) {
                if (!s.fakeGestureTouched || !s.fakeGestureMoved)
                    return;
                if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !a.android)
                    return;
                s.fakeGestureTouched = !1,
                s.fakeGestureMoved = !1
            }
            n.$imageEl && 0 !== n.$imageEl.length && (s.scale = Math.max(Math.min(s.scale, n.maxRatio), r.minRatio),
            n.$imageEl.transition(t.params.speed).transform("translate3d(0,0,0) scale(" + s.scale + ")"),
            s.currentScale = s.scale,
            s.isScaling = !1,
            1 === s.scale && (n.$slideEl = void 0))
        },
        onTouchStart: function(e) {
            var t = this
              , a = t.device
              , i = t.zoom
              , r = i.gesture
              , s = i.image;
            r.$imageEl && 0 !== r.$imageEl.length && (s.isTouched || (a.android && e.cancelable && e.preventDefault(),
            s.isTouched = !0,
            s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX,
            s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY))
        },
        onTouchMove: function(e) {
            var t = this
              , a = t.zoom
              , i = a.gesture
              , r = a.image
              , s = a.velocity;
            if (i.$imageEl && 0 !== i.$imageEl.length && (t.allowClick = !1,
            r.isTouched && i.$slideEl)) {
                r.isMoved || (r.width = i.$imageEl[0].offsetWidth,
                r.height = i.$imageEl[0].offsetHeight,
                r.startX = oe(i.$imageWrapEl[0], "x") || 0,
                r.startY = oe(i.$imageWrapEl[0], "y") || 0,
                i.slideWidth = i.$slideEl[0].offsetWidth,
                i.slideHeight = i.$slideEl[0].offsetHeight,
                i.$imageWrapEl.transition(0),
                t.rtl && (r.startX = -r.startX,
                r.startY = -r.startY));
                var n = r.width * a.scale
                  , o = r.height * a.scale;
                if (!(n < i.slideWidth && o < i.slideHeight)) {
                    if (r.minX = Math.min(i.slideWidth / 2 - n / 2, 0),
                    r.maxX = -r.minX,
                    r.minY = Math.min(i.slideHeight / 2 - o / 2, 0),
                    r.maxY = -r.minY,
                    r.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX,
                    r.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY,
                    !r.isMoved && !a.isScaling) {
                        if (t.isHorizontal() && (Math.floor(r.minX) === Math.floor(r.startX) && r.touchesCurrent.x < r.touchesStart.x || Math.floor(r.maxX) === Math.floor(r.startX) && r.touchesCurrent.x > r.touchesStart.x))
                            return void (r.isTouched = !1);
                        if (!t.isHorizontal() && (Math.floor(r.minY) === Math.floor(r.startY) && r.touchesCurrent.y < r.touchesStart.y || Math.floor(r.maxY) === Math.floor(r.startY) && r.touchesCurrent.y > r.touchesStart.y))
                            return void (r.isTouched = !1)
                    }
                    e.cancelable && e.preventDefault(),
                    e.stopPropagation(),
                    r.isMoved = !0,
                    r.currentX = r.touchesCurrent.x - r.touchesStart.x + r.startX,
                    r.currentY = r.touchesCurrent.y - r.touchesStart.y + r.startY,
                    r.currentX < r.minX && (r.currentX = r.minX + 1 - Math.pow(r.minX - r.currentX + 1, .8)),
                    r.currentX > r.maxX && (r.currentX = r.maxX - 1 + Math.pow(r.currentX - r.maxX + 1, .8)),
                    r.currentY < r.minY && (r.currentY = r.minY + 1 - Math.pow(r.minY - r.currentY + 1, .8)),
                    r.currentY > r.maxY && (r.currentY = r.maxY - 1 + Math.pow(r.currentY - r.maxY + 1, .8)),
                    s.prevPositionX || (s.prevPositionX = r.touchesCurrent.x),
                    s.prevPositionY || (s.prevPositionY = r.touchesCurrent.y),
                    s.prevTime || (s.prevTime = Date.now()),
                    s.x = (r.touchesCurrent.x - s.prevPositionX) / (Date.now() - s.prevTime) / 2,
                    s.y = (r.touchesCurrent.y - s.prevPositionY) / (Date.now() - s.prevTime) / 2,
                    Math.abs(r.touchesCurrent.x - s.prevPositionX) < 2 && (s.x = 0),
                    Math.abs(r.touchesCurrent.y - s.prevPositionY) < 2 && (s.y = 0),
                    s.prevPositionX = r.touchesCurrent.x,
                    s.prevPositionY = r.touchesCurrent.y,
                    s.prevTime = Date.now(),
                    i.$imageWrapEl.transform("translate3d(" + r.currentX + "px, " + r.currentY + "px,0)")
                }
            }
        },
        onTouchEnd: function() {
            var e = this
              , t = e.zoom
              , a = t.gesture
              , i = t.image
              , r = t.velocity;
            if (a.$imageEl && 0 !== a.$imageEl.length) {
                if (!i.isTouched || !i.isMoved)
                    return i.isTouched = !1,
                    void (i.isMoved = !1);
                i.isTouched = !1,
                i.isMoved = !1;
                var s = 300
                  , n = 300
                  , o = r.x * s
                  , l = i.currentX + o
                  , d = r.y * n
                  , p = i.currentY + d;
                0 !== r.x && (s = Math.abs((l - i.currentX) / r.x)),
                0 !== r.y && (n = Math.abs((p - i.currentY) / r.y));
                var u = Math.max(s, n);
                i.currentX = l,
                i.currentY = p;
                var c = i.width * t.scale
                  , h = i.height * t.scale;
                i.minX = Math.min(a.slideWidth / 2 - c / 2, 0),
                i.maxX = -i.minX,
                i.minY = Math.min(a.slideHeight / 2 - h / 2, 0),
                i.maxY = -i.minY,
                i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX),
                i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY),
                a.$imageWrapEl.transition(u).transform("translate3d(" + i.currentX + "px, " + i.currentY + "px,0)")
            }
        },
        onTransitionEnd: function() {
            var e = this
              , t = e.zoom
              , a = t.gesture;
            a.$slideEl && e.previousIndex !== e.activeIndex && (a.$imageEl && a.$imageEl.transform("translate3d(0,0,0) scale(1)"),
            a.$imageWrapEl && a.$imageWrapEl.transform("translate3d(0,0,0)"),
            t.scale = 1,
            t.currentScale = 1,
            a.$slideEl = void 0,
            a.$imageEl = void 0,
            a.$imageWrapEl = void 0)
        },
        toggle: function(e) {
            var t = this
              , a = t.zoom;
            a.scale && 1 !== a.scale ? a.out() : a.in(e)
        },
        in: function(e) {
            var t, a, i, r, s, o, l, d, p, u, c, h, v, f, m, g, b, w, y = this, E = n(), x = y.zoom, T = y.params.zoom, S = x.gesture, C = x.image;
            (S.$slideEl || (y.params.virtual && y.params.virtual.enabled && y.virtual ? S.$slideEl = y.$wrapperEl.children("." + y.params.slideActiveClass) : S.$slideEl = y.slides.eq(y.activeIndex),
            S.$imageEl = S.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
            S.$imageWrapEl = S.$imageEl.parent("." + T.containerClass)),
            S.$imageEl && 0 !== S.$imageEl.length) && (S.$slideEl.addClass("" + T.zoomedSlideClass),
            void 0 === C.touchesStart.x && e ? (t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX,
            a = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY) : (t = C.touchesStart.x,
            a = C.touchesStart.y),
            x.scale = S.$imageWrapEl.attr("data-swiper-zoom") || T.maxRatio,
            x.currentScale = S.$imageWrapEl.attr("data-swiper-zoom") || T.maxRatio,
            e ? (b = S.$slideEl[0].offsetWidth,
            w = S.$slideEl[0].offsetHeight,
            i = S.$slideEl.offset().left + E.scrollX,
            r = S.$slideEl.offset().top + E.scrollY,
            s = i + b / 2 - t,
            o = r + w / 2 - a,
            p = S.$imageEl[0].offsetWidth,
            u = S.$imageEl[0].offsetHeight,
            c = p * x.scale,
            h = u * x.scale,
            v = Math.min(b / 2 - c / 2, 0),
            f = Math.min(w / 2 - h / 2, 0),
            m = -v,
            g = -f,
            l = s * x.scale,
            d = o * x.scale,
            l < v && (l = v),
            l > m && (l = m),
            d < f && (d = f),
            d > g && (d = g)) : (l = 0,
            d = 0),
            S.$imageWrapEl.transition(300).transform("translate3d(" + l + "px, " + d + "px,0)"),
            S.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + x.scale + ")"))
        },
        out: function() {
            var e = this
              , t = e.zoom
              , a = e.params.zoom
              , i = t.gesture;
            i.$slideEl || (e.params.virtual && e.params.virtual.enabled && e.virtual ? i.$slideEl = e.$wrapperEl.children("." + e.params.slideActiveClass) : i.$slideEl = e.slides.eq(e.activeIndex),
            i.$imageEl = i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),
            i.$imageWrapEl = i.$imageEl.parent("." + a.containerClass)),
            i.$imageEl && 0 !== i.$imageEl.length && (t.scale = 1,
            t.currentScale = 1,
            i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),
            i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),
            i.$slideEl.removeClass("" + a.zoomedSlideClass),
            i.$slideEl = void 0)
        },
        toggleGestures: function(e) {
            var t = this
              , a = t.zoom
              , i = a.slideSelector
              , r = a.passiveListener;
            t.$wrapperEl[e]("gesturestart", i, a.onGestureStart, r),
            t.$wrapperEl[e]("gesturechange", i, a.onGestureChange, r),
            t.$wrapperEl[e]("gestureend", i, a.onGestureEnd, r)
        },
        enableGestures: function() {
            this.zoom.gesturesEnabled || (this.zoom.gesturesEnabled = !0,
            this.zoom.toggleGestures("on"))
        },
        disableGestures: function() {
            this.zoom.gesturesEnabled && (this.zoom.gesturesEnabled = !1,
            this.zoom.toggleGestures("off"))
        },
        enable: function() {
            var e = this
              , t = e.support
              , a = e.zoom;
            if (!a.enabled) {
                a.enabled = !0;
                var i = !("touchstart" !== e.touchEvents.start || !t.passiveListener || !e.params.passiveListeners) && {
                    passive: !0,
                    capture: !1
                }
                  , r = !t.passiveListener || {
                    passive: !1,
                    capture: !0
                }
                  , s = "." + e.params.slideClass;
                e.zoom.passiveListener = i,
                e.zoom.slideSelector = s,
                t.gestures ? (e.$wrapperEl.on(e.touchEvents.start, e.zoom.enableGestures, i),
                e.$wrapperEl.on(e.touchEvents.end, e.zoom.disableGestures, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, s, a.onGestureStart, i),
                e.$wrapperEl.on(e.touchEvents.move, s, a.onGestureChange, r),
                e.$wrapperEl.on(e.touchEvents.end, s, a.onGestureEnd, i),
                e.touchEvents.cancel && e.$wrapperEl.on(e.touchEvents.cancel, s, a.onGestureEnd, i)),
                e.$wrapperEl.on(e.touchEvents.move, "." + e.params.zoom.containerClass, a.onTouchMove, r)
            }
        },
        disable: function() {
            var e = this
              , t = e.zoom;
            if (t.enabled) {
                var a = e.support;
                e.zoom.enabled = !1;
                var i = !("touchstart" !== e.touchEvents.start || !a.passiveListener || !e.params.passiveListeners) && {
                    passive: !0,
                    capture: !1
                }
                  , r = !a.passiveListener || {
                    passive: !1,
                    capture: !0
                }
                  , s = "." + e.params.slideClass;
                a.gestures ? (e.$wrapperEl.off(e.touchEvents.start, e.zoom.enableGestures, i),
                e.$wrapperEl.off(e.touchEvents.end, e.zoom.disableGestures, i)) : "touchstart" === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, s, t.onGestureStart, i),
                e.$wrapperEl.off(e.touchEvents.move, s, t.onGestureChange, r),
                e.$wrapperEl.off(e.touchEvents.end, s, t.onGestureEnd, i),
                e.touchEvents.cancel && e.$wrapperEl.off(e.touchEvents.cancel, s, t.onGestureEnd, i)),
                e.$wrapperEl.off(e.touchEvents.move, "." + e.params.zoom.containerClass, t.onTouchMove, r)
            }
        }
    }
      , oa = {
        name: "zoom",
        params: {
            zoom: {
                enabled: !1,
                maxRatio: 3,
                minRatio: 1,
                toggle: !0,
                containerClass: "swiper-zoom-container",
                zoomedSlideClass: "swiper-slide-zoomed"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                zoom: a({
                    enabled: !1,
                    scale: 1,
                    currentScale: 1,
                    isScaling: !1,
                    gesture: {
                        $slideEl: void 0,
                        slideWidth: void 0,
                        slideHeight: void 0,
                        $imageEl: void 0,
                        $imageWrapEl: void 0,
                        maxRatio: 3
                    },
                    image: {
                        isTouched: void 0,
                        isMoved: void 0,
                        currentX: void 0,
                        currentY: void 0,
                        minX: void 0,
                        minY: void 0,
                        maxX: void 0,
                        maxY: void 0,
                        width: void 0,
                        height: void 0,
                        startX: void 0,
                        startY: void 0,
                        touchesStart: {},
                        touchesCurrent: {}
                    },
                    velocity: {
                        x: void 0,
                        y: void 0,
                        prevPositionX: void 0,
                        prevPositionY: void 0,
                        prevTime: void 0
                    }
                }, na)
            });
            var t = 1;
            Object.defineProperty(e.zoom, "scale", {
                get: function() {
                    return t
                },
                set: function(a) {
                    if (t !== a) {
                        var i = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0
                          , r = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0;
                        e.emit("zoomChange", a, i, r)
                    }
                    t = a
                }
            })
        },
        on: {
            init: function(e) {
                e.params.zoom.enabled && e.zoom.enable()
            },
            destroy: function(e) {
                e.zoom.disable()
            },
            touchStart: function(e, t) {
                e.zoom.enabled && e.zoom.onTouchStart(t)
            },
            touchEnd: function(e, t) {
                e.zoom.enabled && e.zoom.onTouchEnd(t)
            },
            doubleTap: function(e, t) {
                !e.animating && e.params.zoom.enabled && e.zoom.enabled && e.params.zoom.toggle && e.zoom.toggle(t)
            },
            transitionEnd: function(e) {
                e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd()
            },
            slideChange: function(e) {
                e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && e.zoom.onTransitionEnd()
            }
        }
    }
      , la = {
        loadInSlide: function(e, t) {
            void 0 === t && (t = !0);
            var a = this
              , i = a.params.lazy;
            if (void 0 !== e && 0 !== a.slides.length) {
                var r = a.virtual && a.params.virtual.enabled
                  , s = r ? a.$wrapperEl.children("." + a.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : a.slides.eq(e)
                  , n = s.find("." + i.elementClass + ":not(." + i.loadedClass + "):not(." + i.loadingClass + ")");
                !s.hasClass(i.elementClass) || s.hasClass(i.loadedClass) || s.hasClass(i.loadingClass) || n.push(s[0]),
                0 !== n.length && n.each(function(e) {
                    var r = y(e);
                    r.addClass(i.loadingClass);
                    var n = r.attr("data-background")
                      , o = r.attr("data-src")
                      , l = r.attr("data-srcset")
                      , d = r.attr("data-sizes")
                      , p = r.parent("picture");
                    a.loadImage(r[0], o || n, l, d, !1, function() {
                        if (null != a && a && (!a || a.params) && !a.destroyed) {
                            if (n ? (r.css("background-image", 'url("' + n + '")'),
                            r.removeAttr("data-background")) : (l && (r.attr("srcset", l),
                            r.removeAttr("data-srcset")),
                            d && (r.attr("sizes", d),
                            r.removeAttr("data-sizes")),
                            p.length && p.children("source").each(function(e) {
                                var t = y(e);
                                t.attr("data-srcset") && (t.attr("srcset", t.attr("data-srcset")),
                                t.removeAttr("data-srcset"))
                            }),
                            o && (r.attr("src", o),
                            r.removeAttr("data-src"))),
                            r.addClass(i.loadedClass).removeClass(i.loadingClass),
                            s.find("." + i.preloaderClass).remove(),
                            a.params.loop && t) {
                                var e = s.attr("data-swiper-slide-index");
                                if (s.hasClass(a.params.slideDuplicateClass)) {
                                    var u = a.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + a.params.slideDuplicateClass + ")");
                                    a.lazy.loadInSlide(u.index(), !1)
                                } else {
                                    var c = a.$wrapperEl.children("." + a.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
                                    a.lazy.loadInSlide(c.index(), !1)
                                }
                            }
                            a.emit("lazyImageReady", s[0], r[0]),
                            a.params.autoHeight && a.updateAutoHeight()
                        }
                    }),
                    a.emit("lazyImageLoad", s[0], r[0])
                })
            }
        },
        load: function() {
            function e(e) {
                if (o) {
                    if (i.children("." + r.slideClass + '[data-swiper-slide-index="' + e + '"]').length)
                        return !0
                } else if (s[e])
                    return !0;
                return !1
            }
            function t(e) {
                return o ? y(e).attr("data-swiper-slide-index") : y(e).index()
            }
            var a = this
              , i = a.$wrapperEl
              , r = a.params
              , s = a.slides
              , n = a.activeIndex
              , o = a.virtual && r.virtual.enabled
              , l = r.lazy
              , d = r.slidesPerView;
            if ("auto" === d && (d = 0),
            a.lazy.initialImageLoaded || (a.lazy.initialImageLoaded = !0),
            a.params.watchSlidesVisibility)
                i.children("." + r.slideVisibleClass).each(function(e) {
                    var t = o ? y(e).attr("data-swiper-slide-index") : y(e).index();
                    a.lazy.loadInSlide(t)
                });
            else if (d > 1)
                for (var p = n; p < n + d; p += 1)
                    e(p) && a.lazy.loadInSlide(p);
            else
                a.lazy.loadInSlide(n);
            if (l.loadPrevNext)
                if (d > 1 || l.loadPrevNextAmount && l.loadPrevNextAmount > 1) {
                    for (var u = l.loadPrevNextAmount, c = d, h = Math.min(n + c + Math.max(u, c), s.length), v = Math.max(n - Math.max(c, u), 0), f = n + d; f < h; f += 1)
                        e(f) && a.lazy.loadInSlide(f);
                    for (var m = v; m < n; m += 1)
                        e(m) && a.lazy.loadInSlide(m)
                } else {
                    var g = i.children("." + r.slideNextClass);
                    g.length > 0 && a.lazy.loadInSlide(t(g));
                    var b = i.children("." + r.slidePrevClass);
                    b.length > 0 && a.lazy.loadInSlide(t(b))
                }
        },
        checkInViewOnLoad: function() {
            var e = n()
              , t = this;
            if (t && !t.destroyed) {
                var a = t.params.lazy.scrollingElement ? y(t.params.lazy.scrollingElement) : y(e)
                  , i = a[0] === e
                  , r = i ? e.innerWidth : a[0].offsetWidth
                  , s = i ? e.innerHeight : a[0].offsetHeight
                  , o = t.$el.offset()
                  , l = t.rtlTranslate
                  , d = !1;
                l && (o.left -= t.$el[0].scrollLeft);
                for (var p = [[o.left, o.top], [o.left + t.width, o.top], [o.left, o.top + t.height], [o.left + t.width, o.top + t.height]], u = 0; u < p.length; u += 1) {
                    var c = p[u];
                    if (c[0] >= 0 && c[0] <= r && c[1] >= 0 && c[1] <= s) {
                        if (0 === c[0] && 0 === c[1])
                            continue;
                        d = !0
                    }
                }
                d ? (t.lazy.load(),
                a.off("scroll", t.lazy.checkInViewOnLoad)) : t.lazy.scrollHandlerAttached || (t.lazy.scrollHandlerAttached = !0,
                a.on("scroll", t.lazy.checkInViewOnLoad))
            }
        }
    }
      , da = {
        name: "lazy",
        params: {
            lazy: {
                checkInView: !1,
                enabled: !1,
                loadPrevNext: !1,
                loadPrevNextAmount: 1,
                loadOnTransitionStart: !1,
                scrollingElement: "",
                elementClass: "swiper-lazy",
                loadingClass: "swiper-lazy-loading",
                loadedClass: "swiper-lazy-loaded",
                preloaderClass: "swiper-lazy-preloader"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                lazy: a({
                    initialImageLoaded: !1
                }, la)
            })
        },
        on: {
            beforeInit: function(e) {
                e.params.lazy.enabled && e.params.preloadImages && (e.params.preloadImages = !1)
            },
            init: function(e) {
                e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && (e.params.lazy.checkInView ? e.lazy.checkInViewOnLoad() : e.lazy.load())
            },
            scroll: function(e) {
                e.params.freeMode && !e.params.freeModeSticky && e.lazy.load()
            },
            "scrollbarDragMove resize _freeModeNoMomentumRelease": function(e) {
                e.params.lazy.enabled && e.lazy.load()
            },
            transitionStart: function(e) {
                e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load()
            },
            transitionEnd: function(e) {
                e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load()
            },
            slideChange: function(e) {
                e.params.lazy.enabled && e.params.cssMode && e.lazy.load()
            }
        }
    }
      , pa = {
        LinearSpline: function(e, t) {
            var a, i, r, s, n, o = function(e, t) {
                for (i = -1,
                a = e.length; a - i > 1; )
                    r = a + i >> 1,
                    e[r] <= t ? i = r : a = r;
                return a
            };
            return this.x = e,
            this.y = t,
            this.lastIndex = e.length - 1,
            this.interpolate = function(e) {
                return e ? (n = o(this.x, e),
                s = n - 1,
                (e - this.x[s]) * (this.y[n] - this.y[s]) / (this.x[n] - this.x[s]) + this.y[s]) : 0
            }
            ,
            this
        },
        getInterpolateFunction: function(e) {
            var t = this;
            t.controller.spline || (t.controller.spline = t.params.loop ? new pa.LinearSpline(t.slidesGrid,e.slidesGrid) : new pa.LinearSpline(t.snapGrid,e.snapGrid))
        },
        setTranslate: function(e, t) {
            function a(e) {
                var t = s.rtlTranslate ? -s.translate : s.translate;
                "slide" === s.params.controller.by && (s.controller.getInterpolateFunction(e),
                r = -s.controller.spline.interpolate(-t)),
                r && "container" !== s.params.controller.by || (i = (e.maxTranslate() - e.minTranslate()) / (s.maxTranslate() - s.minTranslate()),
                r = (t - s.minTranslate()) * i + e.minTranslate()),
                s.params.controller.inverse && (r = e.maxTranslate() - r),
                e.updateProgress(r),
                e.setTranslate(r, s),
                e.updateActiveIndex(),
                e.updateSlidesClasses()
            }
            var i, r, s = this, n = s.controller.control, o = s.constructor;
            if (Array.isArray(n))
                for (var l = 0; l < n.length; l += 1)
                    n[l] !== t && n[l]instanceof o && a(n[l]);
            else
                n instanceof o && t !== n && a(n)
        },
        setTransition: function(e, t) {
            function a(t) {
                t.setTransition(e, r),
                0 !== e && (t.transitionStart(),
                t.params.autoHeight && re(function() {
                    t.updateAutoHeight()
                }),
                t.$wrapperEl.transitionEnd(function() {
                    n && (t.params.loop && "slide" === r.params.controller.by && t.loopFix(),
                    t.transitionEnd())
                }))
            }
            var i, r = this, s = r.constructor, n = r.controller.control;
            if (Array.isArray(n))
                for (i = 0; i < n.length; i += 1)
                    n[i] !== t && n[i]instanceof s && a(n[i]);
            else
                n instanceof s && t !== n && a(n)
        }
    }
      , ua = {
        name: "controller",
        params: {
            controller: {
                control: void 0,
                inverse: !1,
                by: "slide"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                controller: a({
                    control: e.params.controller.control
                }, pa)
            })
        },
        on: {
            update: function(e) {
                e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                delete e.controller.spline)
            },
            resize: function(e) {
                e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                delete e.controller.spline)
            },
            observerUpdate: function(e) {
                e.controller.control && e.controller.spline && (e.controller.spline = void 0,
                delete e.controller.spline)
            },
            setTranslate: function(e, t, a) {
                e.controller.control && e.controller.setTranslate(t, a)
            },
            setTransition: function(e, t, a) {
                e.controller.control && e.controller.setTransition(t, a)
            }
        }
    }
      , ca = {
        getRandomNumber: function(e) {
            void 0 === e && (e = 16);
            var t = function() {
                return Math.round(16 * Math.random()).toString(16)
            };
            return "x".repeat(e).replace(/x/g, t)
        },
        makeElFocusable: function(e) {
            return e.attr("tabIndex", "0"),
            e
        },
        makeElNotFocusable: function(e) {
            return e.attr("tabIndex", "-1"),
            e
        },
        addElRole: function(e, t) {
            return e.attr("role", t),
            e
        },
        addElRoleDescription: function(e, t) {
            return e.attr("aria-roledescription", t),
            e
        },
        addElControls: function(e, t) {
            return e.attr("aria-controls", t),
            e
        },
        addElLabel: function(e, t) {
            return e.attr("aria-label", t),
            e
        },
        addElId: function(e, t) {
            return e.attr("id", t),
            e
        },
        addElLive: function(e, t) {
            return e.attr("aria-live", t),
            e
        },
        disableEl: function(e) {
            return e.attr("aria-disabled", !0),
            e
        },
        enableEl: function(e) {
            return e.attr("aria-disabled", !1),
            e
        },
        onEnterOrSpaceKey: function(e) {
            if (13 === e.keyCode || 32 === e.keyCode) {
                var t = this
                  , a = t.params.a11y
                  , i = y(e.target);
                t.navigation && t.navigation.$nextEl && i.is(t.navigation.$nextEl) && (t.isEnd && !t.params.loop || t.slideNext(),
                t.isEnd ? t.a11y.notify(a.lastSlideMessage) : t.a11y.notify(a.nextSlideMessage)),
                t.navigation && t.navigation.$prevEl && i.is(t.navigation.$prevEl) && (t.isBeginning && !t.params.loop || t.slidePrev(),
                t.isBeginning ? t.a11y.notify(a.firstSlideMessage) : t.a11y.notify(a.prevSlideMessage)),
                t.pagination && i.is(ue(t.params.pagination.bulletClass)) && i[0].click()
            }
        },
        notify: function(e) {
            var t = this
              , a = t.a11y.liveRegion;
            0 !== a.length && (a.html(""),
            a.html(e))
        },
        updateNavigation: function() {
            var e = this;
            if (!e.params.loop && e.navigation) {
                var t = e.navigation
                  , a = t.$nextEl
                  , i = t.$prevEl;
                i && i.length > 0 && (e.isBeginning ? (e.a11y.disableEl(i),
                e.a11y.makeElNotFocusable(i)) : (e.a11y.enableEl(i),
                e.a11y.makeElFocusable(i))),
                a && a.length > 0 && (e.isEnd ? (e.a11y.disableEl(a),
                e.a11y.makeElNotFocusable(a)) : (e.a11y.enableEl(a),
                e.a11y.makeElFocusable(a)))
            }
        },
        updatePagination: function() {
            var e = this
              , t = e.params.a11y;
            e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each(function(a) {
                var i = y(a);
                e.a11y.makeElFocusable(i),
                e.params.pagination.renderBullet || (e.a11y.addElRole(i, "button"),
                e.a11y.addElLabel(i, t.paginationBulletMessage.replace(/\{\{index\}\}/, i.index() + 1)))
            })
        },
        init: function() {
            var e = this
              , t = e.params.a11y;
            e.$el.append(e.a11y.liveRegion);
            var a = e.$el;
            t.containerRoleDescriptionMessage && e.a11y.addElRoleDescription(a, t.containerRoleDescriptionMessage),
            t.containerMessage && e.a11y.addElLabel(a, t.containerMessage);
            var i, r, s, n = e.$wrapperEl, o = n.attr("id") || "swiper-wrapper-" + e.a11y.getRandomNumber(16);
            e.a11y.addElId(n, o),
            i = e.params.autoplay && e.params.autoplay.enabled ? "off" : "polite",
            e.a11y.addElLive(n, i),
            t.itemRoleDescriptionMessage && e.a11y.addElRoleDescription(y(e.slides), t.itemRoleDescriptionMessage),
            e.a11y.addElRole(y(e.slides), "group"),
            e.slides.each(function(a) {
                var i = y(a)
                  , r = t.slideLabelMessage.replace(/\{\{index\}\}/, i.index() + 1).replace(/\{\{slidesLength\}\}/, e.slides.length);
                e.a11y.addElLabel(i, r)
            }),
            e.navigation && e.navigation.$nextEl && (r = e.navigation.$nextEl),
            e.navigation && e.navigation.$prevEl && (s = e.navigation.$prevEl),
            r && r.length && (e.a11y.makeElFocusable(r),
            "BUTTON" !== r[0].tagName && (e.a11y.addElRole(r, "button"),
            r.on("keydown", e.a11y.onEnterOrSpaceKey)),
            e.a11y.addElLabel(r, t.nextSlideMessage),
            e.a11y.addElControls(r, o)),
            s && s.length && (e.a11y.makeElFocusable(s),
            "BUTTON" !== s[0].tagName && (e.a11y.addElRole(s, "button"),
            s.on("keydown", e.a11y.onEnterOrSpaceKey)),
            e.a11y.addElLabel(s, t.prevSlideMessage),
            e.a11y.addElControls(s, o)),
            e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", ue(e.params.pagination.bulletClass), e.a11y.onEnterOrSpaceKey)
        },
        destroy: function() {
            var e, t, a = this;
            a.a11y.liveRegion && a.a11y.liveRegion.length > 0 && a.a11y.liveRegion.remove(),
            a.navigation && a.navigation.$nextEl && (e = a.navigation.$nextEl),
            a.navigation && a.navigation.$prevEl && (t = a.navigation.$prevEl),
            e && e.off("keydown", a.a11y.onEnterOrSpaceKey),
            t && t.off("keydown", a.a11y.onEnterOrSpaceKey),
            a.pagination && a.params.pagination.clickable && a.pagination.bullets && a.pagination.bullets.length && a.pagination.$el.off("keydown", ue(a.params.pagination.bulletClass), a.a11y.onEnterOrSpaceKey)
        }
    }
      , ha = {
        name: "a11y",
        params: {
            a11y: {
                enabled: !0,
                notificationClass: "swiper-notification",
                prevSlideMessage: "Previous slide",
                nextSlideMessage: "Next slide",
                firstSlideMessage: "This is the first slide",
                lastSlideMessage: "This is the last slide",
                paginationBulletMessage: "Go to slide {{index}}",
                slideLabelMessage: "{{index}} / {{slidesLength}}",
                containerMessage: null,
                containerRoleDescriptionMessage: null,
                itemRoleDescriptionMessage: null
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                a11y: a({}, ca, {
                    liveRegion: y('<span class="' + e.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>')
                })
            })
        },
        on: {
            afterInit: function(e) {
                e.params.a11y.enabled && (e.a11y.init(),
                e.a11y.updateNavigation())
            },
            toEdge: function(e) {
                e.params.a11y.enabled && e.a11y.updateNavigation()
            },
            fromEdge: function(e) {
                e.params.a11y.enabled && e.a11y.updateNavigation()
            },
            paginationUpdate: function(e) {
                e.params.a11y.enabled && e.a11y.updatePagination()
            },
            destroy: function(e) {
                e.params.a11y.enabled && e.a11y.destroy()
            }
        }
    }
      , va = {
        init: function() {
            var e = this
              , t = n();
            if (e.params.history) {
                if (!t.history || !t.history.pushState)
                    return e.params.history.enabled = !1,
                    void (e.params.hashNavigation.enabled = !0);
                var a = e.history;
                a.initialized = !0,
                a.paths = va.getPathValues(e.params.url),
                (a.paths.key || a.paths.value) && (a.scrollToSlide(0, a.paths.value, e.params.runCallbacksOnInit),
                e.params.history.replaceState || t.addEventListener("popstate", e.history.setHistoryPopState))
            }
        },
        destroy: function() {
            var e = this
              , t = n();
            e.params.history.replaceState || t.removeEventListener("popstate", e.history.setHistoryPopState)
        },
        setHistoryPopState: function() {
            var e = this;
            e.history.paths = va.getPathValues(e.params.url),
            e.history.scrollToSlide(e.params.speed, e.history.paths.value, !1)
        },
        getPathValues: function(e) {
            var t, a = n();
            t = e ? new URL(e) : a.location;
            var i = t.pathname.slice(1).split("/").filter(function(e) {
                return "" !== e
            })
              , r = i.length
              , s = i[r - 2]
              , o = i[r - 1];
            return {
                key: s,
                value: o
            }
        },
        setHistory: function(e, t) {
            var a = this
              , i = n();
            if (a.history.initialized && a.params.history.enabled) {
                var r;
                r = a.params.url ? new URL(a.params.url) : i.location;
                var s = a.slides.eq(t)
                  , o = va.slugify(s.attr("data-history"));
                r.pathname.includes(e) || (o = e + "/" + o);
                var l = i.history.state;
                l && l.value === o || (a.params.history.replaceState ? i.history.replaceState({
                    value: o
                }, null, o) : i.history.pushState({
                    value: o
                }, null, o))
            }
        },
        slugify: function(e) {
            return e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "")
        },
        scrollToSlide: function(e, t, a) {
            var i = this;
            if (t)
                for (var r = 0, s = i.slides.length; r < s; r += 1) {
                    var n = i.slides.eq(r)
                      , o = va.slugify(n.attr("data-history"));
                    if (o === t && !n.hasClass(i.params.slideDuplicateClass)) {
                        var l = n.index();
                        i.slideTo(l, e, a)
                    }
                }
            else
                i.slideTo(0, e, a)
        }
    }
      , fa = {
        name: "history",
        params: {
            history: {
                enabled: !1,
                replaceState: !1,
                key: "slides"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                history: a({}, va)
            })
        },
        on: {
            init: function(e) {
                e.params.history.enabled && e.history.init()
            },
            destroy: function(e) {
                e.params.history.enabled && e.history.destroy()
            },
            transitionEnd: function(e) {
                e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex)
            },
            slideChange: function(e) {
                e.history.initialized && e.params.cssMode && e.history.setHistory(e.params.history.key, e.activeIndex)
            }
        }
    }
      , ma = {
        onHashCange: function() {
            var e = this
              , t = s();
            e.emit("hashChange");
            var a = t.location.hash.replace("#", "")
              , i = e.slides.eq(e.activeIndex).attr("data-hash");
            if (a !== i) {
                var r = e.$wrapperEl.children("." + e.params.slideClass + '[data-hash="' + a + '"]').index();
                if (void 0 === r)
                    return;
                e.slideTo(r)
            }
        },
        setHash: function() {
            var e = this
              , t = n()
              , a = s();
            if (e.hashNavigation.initialized && e.params.hashNavigation.enabled)
                if (e.params.hashNavigation.replaceState && t.history && t.history.replaceState)
                    t.history.replaceState(null, null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || ""),
                    e.emit("hashSet");
                else {
                    var i = e.slides.eq(e.activeIndex)
                      , r = i.attr("data-hash") || i.attr("data-history");
                    a.location.hash = r || "",
                    e.emit("hashSet")
                }
        },
        init: function() {
            var e = this
              , t = s()
              , a = n();
            if (!(!e.params.hashNavigation.enabled || e.params.history && e.params.history.enabled)) {
                e.hashNavigation.initialized = !0;
                var i = t.location.hash.replace("#", "");
                if (i)
                    for (var r = 0, o = 0, l = e.slides.length; o < l; o += 1) {
                        var d = e.slides.eq(o)
                          , p = d.attr("data-hash") || d.attr("data-history");
                        if (p === i && !d.hasClass(e.params.slideDuplicateClass)) {
                            var u = d.index();
                            e.slideTo(u, r, e.params.runCallbacksOnInit, !0)
                        }
                    }
                e.params.hashNavigation.watchState && y(a).on("hashchange", e.hashNavigation.onHashCange)
            }
        },
        destroy: function() {
            var e = this
              , t = n();
            e.params.hashNavigation.watchState && y(t).off("hashchange", e.hashNavigation.onHashCange)
        }
    }
      , ga = {
        name: "hash-navigation",
        params: {
            hashNavigation: {
                enabled: !1,
                replaceState: !1,
                watchState: !1
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                hashNavigation: a({
                    initialized: !1
                }, ma)
            })
        },
        on: {
            init: function(e) {
                e.params.hashNavigation.enabled && e.hashNavigation.init()
            },
            destroy: function(e) {
                e.params.hashNavigation.enabled && e.hashNavigation.destroy()
            },
            transitionEnd: function(e) {
                e.hashNavigation.initialized && e.hashNavigation.setHash()
            },
            slideChange: function(e) {
                e.hashNavigation.initialized && e.params.cssMode && e.hashNavigation.setHash()
            }
        }
    }
      , ba = {
        run: function() {
            var e = this
              , t = e.slides.eq(e.activeIndex)
              , a = e.params.autoplay.delay;
            t.attr("data-swiper-autoplay") && (a = t.attr("data-swiper-autoplay") || e.params.autoplay.delay),
            clearTimeout(e.autoplay.timeout),
            e.autoplay.timeout = re(function() {
                var t;
                e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(),
                t = e.slidePrev(e.params.speed, !0, !0),
                e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(e.slides.length - 1, e.params.speed, !0, !0),
                e.emit("autoplay")) : (t = e.slidePrev(e.params.speed, !0, !0),
                e.emit("autoplay")) : e.params.loop ? (e.loopFix(),
                t = e.slideNext(e.params.speed, !0, !0),
                e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(0, e.params.speed, !0, !0),
                e.emit("autoplay")) : (t = e.slideNext(e.params.speed, !0, !0),
                e.emit("autoplay")),
                e.params.cssMode && e.autoplay.running ? e.autoplay.run() : !1 === t && e.autoplay.run()
            }, a)
        },
        start: function() {
            var e = this;
            return void 0 === e.autoplay.timeout && (!e.autoplay.running && (e.autoplay.running = !0,
            e.emit("autoplayStart"),
            e.autoplay.run(),
            !0))
        },
        stop: function() {
            var e = this;
            return !!e.autoplay.running && (void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout),
            e.autoplay.timeout = void 0),
            e.autoplay.running = !1,
            e.emit("autoplayStop"),
            !0))
        },
        pause: function(e) {
            var t = this;
            t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout),
            t.autoplay.paused = !0,
            0 !== e && t.params.autoplay.waitForTransition ? (t.$wrapperEl[0].addEventListener("transitionend", t.autoplay.onTransitionEnd),
            t.$wrapperEl[0].addEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd)) : (t.autoplay.paused = !1,
            t.autoplay.run())))
        },
        onVisibilityChange: function() {
            var e = this
              , t = s();
            "hidden" === t.visibilityState && e.autoplay.running && e.autoplay.pause(),
            "visible" === t.visibilityState && e.autoplay.paused && (e.autoplay.run(),
            e.autoplay.paused = !1)
        },
        onTransitionEnd: function(e) {
            var t = this;
            t && !t.destroyed && t.$wrapperEl && e.target === t.$wrapperEl[0] && (t.$wrapperEl[0].removeEventListener("transitionend", t.autoplay.onTransitionEnd),
            t.$wrapperEl[0].removeEventListener("webkitTransitionEnd", t.autoplay.onTransitionEnd),
            t.autoplay.paused = !1,
            t.autoplay.running ? t.autoplay.run() : t.autoplay.stop())
        }
    }
      , wa = {
        name: "autoplay",
        params: {
            autoplay: {
                enabled: !1,
                delay: 3e3,
                waitForTransition: !0,
                disableOnInteraction: !0,
                stopOnLastSlide: !1,
                reverseDirection: !1
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                autoplay: a({}, ba, {
                    running: !1,
                    paused: !1
                })
            })
        },
        on: {
            init: function(e) {
                if (e.params.autoplay.enabled) {
                    e.autoplay.start();
                    var t = s();
                    t.addEventListener("visibilitychange", e.autoplay.onVisibilityChange)
                }
            },
            beforeTransitionStart: function(e, t, a) {
                e.autoplay.running && (a || !e.params.autoplay.disableOnInteraction ? e.autoplay.pause(t) : e.autoplay.stop())
            },
            sliderFirstMove: function(e) {
                e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause())
            },
            touchEnd: function(e) {
                e.params.cssMode && e.autoplay.paused && !e.params.autoplay.disableOnInteraction && e.autoplay.run()
            },
            destroy: function(e) {
                e.autoplay.running && e.autoplay.stop();
                var t = s();
                t.removeEventListener("visibilitychange", e.autoplay.onVisibilityChange)
            }
        }
    }
      , ya = {
        setTranslate: function() {
            for (var e = this, t = e.slides, a = 0; a < t.length; a += 1) {
                var i = e.slides.eq(a)
                  , r = i[0].swiperSlideOffset
                  , s = -r;
                e.params.virtualTranslate || (s -= e.translate);
                var n = 0;
                e.isHorizontal() || (n = s,
                s = 0);
                var o = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0);
                i.css({
                    opacity: o
                }).transform("translate3d(" + s + "px, " + n + "px, 0px)")
            }
        },
        setTransition: function(e) {
            var t = this
              , a = t.slides
              , i = t.$wrapperEl;
            if (a.transition(e),
            t.params.virtualTranslate && 0 !== e) {
                var r = !1;
                a.transitionEnd(function() {
                    if (!r && t && !t.destroyed) {
                        r = !0,
                        t.animating = !1;
                        for (var e = ["webkitTransitionEnd", "transitionend"], a = 0; a < e.length; a += 1)
                            i.trigger(e[a])
                    }
                })
            }
        }
    }
      , Ea = {
        name: "effect-fade",
        params: {
            fadeEffect: {
                crossFade: !1
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                fadeEffect: a({}, ya)
            })
        },
        on: {
            beforeInit: function(e) {
                if ("fade" === e.params.effect) {
                    e.classNames.push(e.params.containerModifierClass + "fade");
                    var t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        spaceBetween: 0,
                        virtualTranslate: !0
                    };
                    de(e.params, t),
                    de(e.originalParams, t)
                }
            },
            setTranslate: function(e) {
                "fade" === e.params.effect && e.fadeEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "fade" === e.params.effect && e.fadeEffect.setTransition(t)
            }
        }
    }
      , xa = {
        setTranslate: function() {
            var e, t = this, a = t.$el, i = t.$wrapperEl, r = t.slides, s = t.width, n = t.height, o = t.rtlTranslate, l = t.size, d = t.browser, p = t.params.cubeEffect, u = t.isHorizontal(), c = t.virtual && t.params.virtual.enabled, h = 0;
            p.shadow && (u ? (e = i.find(".swiper-cube-shadow"),
            0 === e.length && (e = y('<div class="swiper-cube-shadow"></div>'),
            i.append(e)),
            e.css({
                height: s + "px"
            })) : (e = a.find(".swiper-cube-shadow"),
            0 === e.length && (e = y('<div class="swiper-cube-shadow"></div>'),
            a.append(e))));
            for (var v = 0; v < r.length; v += 1) {
                var f = r.eq(v)
                  , m = v;
                c && (m = parseInt(f.attr("data-swiper-slide-index"), 10));
                var g = 90 * m
                  , b = Math.floor(g / 360);
                o && (g = -g,
                b = Math.floor(-g / 360));
                var w = Math.max(Math.min(f[0].progress, 1), -1)
                  , E = 0
                  , x = 0
                  , T = 0;
                m % 4 == 0 ? (E = 4 * -b * l,
                T = 0) : (m - 1) % 4 == 0 ? (E = 0,
                T = 4 * -b * l) : (m - 2) % 4 == 0 ? (E = l + 4 * b * l,
                T = l) : (m - 3) % 4 == 0 && (E = -l,
                T = 3 * l + 4 * l * b),
                o && (E = -E),
                u || (x = E,
                E = 0);
                var S = "rotateX(" + (u ? 0 : -g) + "deg) rotateY(" + (u ? g : 0) + "deg) translate3d(" + E + "px, " + x + "px, " + T + "px)";
                if (w <= 1 && w > -1 && (h = 90 * m + 90 * w,
                o && (h = 90 * -m - 90 * w)),
                f.transform(S),
                p.slideShadows) {
                    var C = u ? f.find(".swiper-slide-shadow-left") : f.find(".swiper-slide-shadow-top")
                      , M = u ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom");
                    0 === C.length && (C = y('<div class="swiper-slide-shadow-' + (u ? "left" : "top") + '"></div>'),
                    f.append(C)),
                    0 === M.length && (M = y('<div class="swiper-slide-shadow-' + (u ? "right" : "bottom") + '"></div>'),
                    f.append(M)),
                    C.length && (C[0].style.opacity = Math.max(-w, 0)),
                    M.length && (M[0].style.opacity = Math.max(w, 0))
                }
            }
            if (i.css({
                "-webkit-transform-origin": "50% 50% -" + l / 2 + "px",
                "-moz-transform-origin": "50% 50% -" + l / 2 + "px",
                "-ms-transform-origin": "50% 50% -" + l / 2 + "px",
                "transform-origin": "50% 50% -" + l / 2 + "px"
            }),
            p.shadow)
                if (u)
                    e.transform("translate3d(0px, " + (s / 2 + p.shadowOffset) + "px, " + -s / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + p.shadowScale + ")");
                else {
                    var z = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90)
                      , P = 1.5 - (Math.sin(2 * z * Math.PI / 360) / 2 + Math.cos(2 * z * Math.PI / 360) / 2)
                      , k = p.shadowScale
                      , L = p.shadowScale / P
                      , $ = p.shadowOffset;
                    e.transform("scale3d(" + k + ", 1, " + L + ") translate3d(0px, " + (n / 2 + $) + "px, " + -n / 2 / L + "px) rotateX(-90deg)")
                }
            var I = d.isSafari || d.isWebView ? -l / 2 : 0;
            i.transform("translate3d(0px,0," + I + "px) rotateX(" + (t.isHorizontal() ? 0 : h) + "deg) rotateY(" + (t.isHorizontal() ? -h : 0) + "deg)")
        },
        setTransition: function(e) {
            var t = this
              , a = t.$el
              , i = t.slides;
            i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
            t.params.cubeEffect.shadow && !t.isHorizontal() && a.find(".swiper-cube-shadow").transition(e)
        }
    }
      , Ta = {
        name: "effect-cube",
        params: {
            cubeEffect: {
                slideShadows: !0,
                shadow: !0,
                shadowOffset: 20,
                shadowScale: .94
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                cubeEffect: a({}, xa)
            })
        },
        on: {
            beforeInit: function(e) {
                if ("cube" === e.params.effect) {
                    e.classNames.push(e.params.containerModifierClass + "cube"),
                    e.classNames.push(e.params.containerModifierClass + "3d");
                    var t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        resistanceRatio: 0,
                        spaceBetween: 0,
                        centeredSlides: !1,
                        virtualTranslate: !0
                    };
                    de(e.params, t),
                    de(e.originalParams, t)
                }
            },
            setTranslate: function(e) {
                "cube" === e.params.effect && e.cubeEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "cube" === e.params.effect && e.cubeEffect.setTransition(t)
            }
        }
    }
      , Sa = {
        setTranslate: function() {
            for (var e = this, t = e.slides, a = e.rtlTranslate, i = 0; i < t.length; i += 1) {
                var r = t.eq(i)
                  , s = r[0].progress;
                e.params.flipEffect.limitRotation && (s = Math.max(Math.min(r[0].progress, 1), -1));
                var n = r[0].swiperSlideOffset
                  , o = -180 * s
                  , l = o
                  , d = 0
                  , p = -n
                  , u = 0;
                if (e.isHorizontal() ? a && (l = -l) : (u = p,
                p = 0,
                d = -l,
                l = 0),
                r[0].style.zIndex = -Math.abs(Math.round(s)) + t.length,
                e.params.flipEffect.slideShadows) {
                    var c = e.isHorizontal() ? r.find(".swiper-slide-shadow-left") : r.find(".swiper-slide-shadow-top")
                      , h = e.isHorizontal() ? r.find(".swiper-slide-shadow-right") : r.find(".swiper-slide-shadow-bottom");
                    0 === c.length && (c = y('<div class="swiper-slide-shadow-' + (e.isHorizontal() ? "left" : "top") + '"></div>'),
                    r.append(c)),
                    0 === h.length && (h = y('<div class="swiper-slide-shadow-' + (e.isHorizontal() ? "right" : "bottom") + '"></div>'),
                    r.append(h)),
                    c.length && (c[0].style.opacity = Math.max(-s, 0)),
                    h.length && (h[0].style.opacity = Math.max(s, 0))
                }
                r.transform("translate3d(" + p + "px, " + u + "px, 0px) rotateX(" + d + "deg) rotateY(" + l + "deg)")
            }
        },
        setTransition: function(e) {
            var t = this
              , a = t.slides
              , i = t.activeIndex
              , r = t.$wrapperEl;
            if (a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
            t.params.virtualTranslate && 0 !== e) {
                var s = !1;
                a.eq(i).transitionEnd(function() {
                    if (!s && t && !t.destroyed) {
                        s = !0,
                        t.animating = !1;
                        for (var e = ["webkitTransitionEnd", "transitionend"], a = 0; a < e.length; a += 1)
                            r.trigger(e[a])
                    }
                })
            }
        }
    }
      , Ca = {
        name: "effect-flip",
        params: {
            flipEffect: {
                slideShadows: !0,
                limitRotation: !0
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                flipEffect: a({}, Sa)
            })
        },
        on: {
            beforeInit: function(e) {
                if ("flip" === e.params.effect) {
                    e.classNames.push(e.params.containerModifierClass + "flip"),
                    e.classNames.push(e.params.containerModifierClass + "3d");
                    var t = {
                        slidesPerView: 1,
                        slidesPerColumn: 1,
                        slidesPerGroup: 1,
                        watchSlidesProgress: !0,
                        spaceBetween: 0,
                        virtualTranslate: !0
                    };
                    de(e.params, t),
                    de(e.originalParams, t)
                }
            },
            setTranslate: function(e) {
                "flip" === e.params.effect && e.flipEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "flip" === e.params.effect && e.flipEffect.setTransition(t)
            }
        }
    }
      , Ma = {
        setTranslate: function() {
            for (var e = this, t = e.width, a = e.height, i = e.slides, r = e.slidesSizesGrid, s = e.params.coverflowEffect, n = e.isHorizontal(), o = e.translate, l = n ? t / 2 - o : a / 2 - o, d = n ? s.rotate : -s.rotate, p = s.depth, u = 0, c = i.length; u < c; u += 1) {
                var h = i.eq(u)
                  , v = r[u]
                  , f = h[0].swiperSlideOffset
                  , m = (l - f - v / 2) / v * s.modifier
                  , g = n ? d * m : 0
                  , b = n ? 0 : d * m
                  , w = -p * Math.abs(m)
                  , E = s.stretch;
                "string" == typeof E && -1 !== E.indexOf("%") && (E = parseFloat(s.stretch) / 100 * v);
                var x = n ? 0 : E * m
                  , T = n ? E * m : 0
                  , S = 1 - (1 - s.scale) * Math.abs(m);
                Math.abs(T) < .001 && (T = 0),
                Math.abs(x) < .001 && (x = 0),
                Math.abs(w) < .001 && (w = 0),
                Math.abs(g) < .001 && (g = 0),
                Math.abs(b) < .001 && (b = 0),
                Math.abs(S) < .001 && (S = 0);
                var C = "translate3d(" + T + "px," + x + "px," + w + "px)  rotateX(" + b + "deg) rotateY(" + g + "deg) scale(" + S + ")";
                if (h.transform(C),
                h[0].style.zIndex = 1 - Math.abs(Math.round(m)),
                s.slideShadows) {
                    var M = n ? h.find(".swiper-slide-shadow-left") : h.find(".swiper-slide-shadow-top")
                      , z = n ? h.find(".swiper-slide-shadow-right") : h.find(".swiper-slide-shadow-bottom");
                    0 === M.length && (M = y('<div class="swiper-slide-shadow-' + (n ? "left" : "top") + '"></div>'),
                    h.append(M)),
                    0 === z.length && (z = y('<div class="swiper-slide-shadow-' + (n ? "right" : "bottom") + '"></div>'),
                    h.append(z)),
                    M.length && (M[0].style.opacity = m > 0 ? m : 0),
                    z.length && (z[0].style.opacity = -m > 0 ? -m : 0)
                }
            }
        },
        setTransition: function(e) {
            var t = this;
            t.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
        }
    }
      , za = {
        name: "effect-coverflow",
        params: {
            coverflowEffect: {
                rotate: 50,
                stretch: 0,
                depth: 100,
                scale: 1,
                modifier: 1,
                slideShadows: !0
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                coverflowEffect: a({}, Ma)
            })
        },
        on: {
            beforeInit: function(e) {
                "coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"),
                e.classNames.push(e.params.containerModifierClass + "3d"),
                e.params.watchSlidesProgress = !0,
                e.originalParams.watchSlidesProgress = !0)
            },
            setTranslate: function(e) {
                "coverflow" === e.params.effect && e.coverflowEffect.setTranslate()
            },
            setTransition: function(e, t) {
                "coverflow" === e.params.effect && e.coverflowEffect.setTransition(t)
            }
        }
    }
      , Pa = {
        init: function() {
            var e = this
              , t = e.params.thumbs;
            if (e.thumbs.initialized)
                return !1;
            e.thumbs.initialized = !0;
            var a = e.constructor;
            return t.swiper instanceof a ? (e.thumbs.swiper = t.swiper,
            de(e.thumbs.swiper.originalParams, {
                watchSlidesProgress: !0,
                slideToClickedSlide: !1
            }),
            de(e.thumbs.swiper.params, {
                watchSlidesProgress: !0,
                slideToClickedSlide: !1
            })) : le(t.swiper) && (e.thumbs.swiper = new a(de({}, t.swiper, {
                watchSlidesVisibility: !0,
                watchSlidesProgress: !0,
                slideToClickedSlide: !1
            })),
            e.thumbs.swiperCreated = !0),
            e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),
            e.thumbs.swiper.on("tap", e.thumbs.onThumbClick),
            !0
        },
        onThumbClick: function() {
            var e = this
              , t = e.thumbs.swiper;
            if (t) {
                var a = t.clickedIndex
                  , i = t.clickedSlide;
                if (!(i && y(i).hasClass(e.params.thumbs.slideThumbActiveClass) || null == a)) {
                    var r;
                    if (r = t.params.loop ? parseInt(y(t.clickedSlide).attr("data-swiper-slide-index"), 10) : a,
                    e.params.loop) {
                        var s = e.activeIndex;
                        e.slides.eq(s).hasClass(e.params.slideDuplicateClass) && (e.loopFix(),
                        e._clientLeft = e.$wrapperEl[0].clientLeft,
                        s = e.activeIndex);
                        var n = e.slides.eq(s).prevAll('[data-swiper-slide-index="' + r + '"]').eq(0).index()
                          , o = e.slides.eq(s).nextAll('[data-swiper-slide-index="' + r + '"]').eq(0).index();
                        r = void 0 === n ? o : void 0 === o ? n : o - s < s - n ? o : n
                    }
                    e.slideTo(r)
                }
            }
        },
        update: function(e) {
            var t = this
              , a = t.thumbs.swiper;
            if (a) {
                var i = "auto" === a.params.slidesPerView ? a.slidesPerViewDynamic() : a.params.slidesPerView
                  , r = t.params.thumbs.autoScrollOffset
                  , s = r && !a.params.loop;
                if (t.realIndex !== a.realIndex || s) {
                    var n, o, l = a.activeIndex;
                    if (a.params.loop) {
                        a.slides.eq(l).hasClass(a.params.slideDuplicateClass) && (a.loopFix(),
                        a._clientLeft = a.$wrapperEl[0].clientLeft,
                        l = a.activeIndex);
                        var d = a.slides.eq(l).prevAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index()
                          , p = a.slides.eq(l).nextAll('[data-swiper-slide-index="' + t.realIndex + '"]').eq(0).index();
                        n = void 0 === d ? p : void 0 === p ? d : p - l == l - d ? l : p - l < l - d ? p : d,
                        o = t.activeIndex > t.previousIndex ? "next" : "prev"
                    } else
                        n = t.realIndex,
                        o = n > t.previousIndex ? "next" : "prev";
                    s && (n += "next" === o ? r : -1 * r),
                    a.visibleSlidesIndexes && a.visibleSlidesIndexes.indexOf(n) < 0 && (a.params.centeredSlides ? n = n > l ? n - Math.floor(i / 2) + 1 : n + Math.floor(i / 2) - 1 : n > l && (n = n - i + 1),
                    a.slideTo(n, e ? 0 : void 0))
                }
                var u = 1
                  , c = t.params.thumbs.slideThumbActiveClass;
                if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (u = t.params.slidesPerView),
                t.params.thumbs.multipleActiveThumbs || (u = 1),
                u = Math.floor(u),
                a.slides.removeClass(c),
                a.params.loop || a.params.virtual && a.params.virtual.enabled)
                    for (var h = 0; h < u; h += 1)
                        a.$wrapperEl.children('[data-swiper-slide-index="' + (t.realIndex + h) + '"]').addClass(c);
                else
                    for (var v = 0; v < u; v += 1)
                        a.slides.eq(t.realIndex + v).addClass(c)
            }
        }
    }
      , ka = {
        name: "thumbs",
        params: {
            thumbs: {
                swiper: null,
                multipleActiveThumbs: !0,
                autoScrollOffset: 0,
                slideThumbActiveClass: "swiper-slide-thumb-active",
                thumbsContainerClass: "swiper-container-thumbs"
            }
        },
        create: function() {
            var e = this;
            pe(e, {
                thumbs: a({
                    swiper: null,
                    initialized: !1
                }, Pa)
            })
        },
        on: {
            beforeInit: function(e) {
                var t = e.params.thumbs;
                t && t.swiper && (e.thumbs.init(),
                e.thumbs.update(!0))
            },
            slideChange: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            update: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            resize: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            observerUpdate: function(e) {
                e.thumbs.swiper && e.thumbs.update()
            },
            setTransition: function(e, t) {
                var a = e.thumbs.swiper;
                a && a.setTransition(t)
            },
            beforeDestroy: function(e) {
                var t = e.thumbs.swiper;
                t && e.thumbs.swiperCreated && t && t.destroy()
            }
        }
    }
      , La = [qt, Ut, Zt, Qt, ta, ia, sa, oa, da, ua, ha, fa, ga, wa, Ea, Ta, Ca, za, ka];
    return Ft.use(La),
    Ft
});

var TouchMenuLA = function(t) {
    var e, n, a, s, o, i, l = "", c = 0, r = 0, p = 0, d = 0, u = 0, y = function() {
        e = this,
        n = {
            width: 280,
            zIndex: 99999,
            disableSlide: !1,
            handleSize: 20,
            disableMask: !1,
            maxMaskOpacity: .5
        },
        this.isVisible = !1,
        this.initialize()
    };
    return y.prototype.setDefaultsOptions = function() {
        for (var e in n)
            t[e] || (t[e] = n[e])
    }
    ,
    y.prototype.initElements = function() {
        t.target.style.zIndex = t.zIndex,
        t.target.style.width = t.width + "px",
        t.target.style.left = -t.width + "px",
        s = document.createElement("div"),
        s.className = "tmla-handle",
        s.style.width = t.handleSize + "px",
        s.style.right = -t.handleSize + "px",
        t.target.appendChild(s),
        t.disableMask || (a = document.createElement("div"),
        a.className = "tmla-mask",
        document.body.appendChild(a),
        i = new Hammer(a,null))
    }
    ,
    y.prototype.touchStartMenu = function() {
        o.on("panstart panmove", function(t) {
            c = r + t.deltaX,
            e.changeMenuPos(),
            u = Math.abs(t.velocity)
        })
    }
    ,
    y.prototype.changeMenuPos = function() {
        c <= t.width && (t.target.className = l + " tmla-menu",
        t.target.style.transform = "translate3d(" + c + "px, 0, 0)",
        t.target.style.WebkitTransform = "translate3d(" + c + "px, 0, 0)",
        t.target.style.MozTransform = "translate3d(" + c + "px, 0, 0)",
        t.disableMask || this.setMaskOpacity(c))
    }
    ,
    y.prototype.setMaskOpacity = function(e) {
        var n = parseFloat(e / t.width * t.maxMaskOpacity);
        a.style.opacity = n,
        a.style.zIndex = 0 === n ? -1 : t.zIndex - 1
    }
    ,
    y.prototype.touchEndMenu = function() {
        o.on("panend pancancel", function(t) {
            r = t.deltaX,
            e.checkMenuState(t.deltaX)
        })
    }
    ,
    y.prototype.eventStartMask = function() {
        i.on("panstart panmove", function(n) {
            n.center.x <= t.width && e.isVisible && (d++,
            1 == d && (p = n.deltaX),
            n.deltaX < 0 && (c = n.deltaX - p + t.width,
            e.changeMenuPos(),
            u = Math.abs(n.velocity)))
        })
    }
    ,
    y.prototype.eventEndMask = function() {
        i.on("panend pancancel", function(t) {
            e.checkMenuState(t.deltaX),
            d = 0
        })
    }
    ,
    y.prototype.clickMaskClose = function() {
        a.addEventListener("click", function() {
            e.close()
        })
    }
    ,
    y.prototype.checkMenuState = function(t) {
        u >= 1 ? t >= 0 ? e.open() : e.close() : c >= 100 ? e.open() : e.close()
    }
    ,
    y.prototype.open = function() {
        t.target.className = l + " tmla-menu opened",
        t.target.style.transform = "translate3d(" + t.width + "px, 0, 0)",
        t.target.style.WebkitTransform = "translate3d(" + t.width + "px, 0, 0)",
        t.target.style.MozTransform = "translate3d(" + t.width + "px, 0, 0)",
        r = t.width,
        this.isVisible = !0,
        e.showMask(),
        e.invoke(t.onOpen)
    }
    ,
    y.prototype.close = function() {
        t.target.className = l + " tmla-menu closed",
        r = 0,
        e.isVisible = !1,
        e.hideMask(),
        e.invoke(t.onClose)
    }
    ,
    y.prototype.toggle = function() {
        e.isVisible ? e.close() : e.open()
    }
    ,
    y.prototype.showMask = function() {
        a.className = "tmla-mask transition",
        a.style.opacity = t.maxMaskOpacity,
        a.style.zIndex = t.zIndex - 1
    }
    ,
    y.prototype.hideMask = function() {
        a.className = "tmla-mask transition",
        a.style.opacity = 0,
        a.style.zIndex = -1
    }
    ,
    y.prototype.setMenuClassName = function() {
        l = t.target.className
    }
    ,
    y.prototype.invoke = function(t) {
        t && t.apply(e)
    }
    ,
    y.prototype.initialize = function() {
        t.target ? (o = Hammer(t.target, null),
        e.setDefaultsOptions(),
        e.setMenuClassName(),
        e.initElements(),
        t.disableSlide || (e.touchStartMenu(),
        e.touchEndMenu(),
        e.eventStartMask(),
        e.eventEndMask()),
        t.disableMask || e.clickMaskClose()) : console.error("TouchMenuLA: The option 'target' is required.")
    }
    ,
    new y
}
  , TouchMenuLARTL = function(t) {
    var e, n, a, s, o, i, l = "", c = 0, r = 0, p = 0, d = 0, u = 0, y = function() {
        e = this,
        n = {
            width: 280,
            zIndex: 99999,
            disableSlide: !1,
            handleSize: 20,
            disableMask: !1,
            maxMaskOpacity: .5
        },
        this.isVisible = !1,
        this.initialize()
    };
    return y.prototype.setDefaultsOptions = function() {
        for (var e in n)
            t[e] || (t[e] = n[e])
    }
    ,
    y.prototype.initElements = function() {
        t.target.style.zIndex = t.zIndex,
        t.target.style.width = t.width + "px",
        t.target.style.right = -t.width + "px",
        s = document.createElement("div"),
        s.className = "tmla-handle",
        s.style.width = t.handleSize + "px",
        s.style.right = -t.handleSize + "px",
        t.target.appendChild(s),
        t.disableMask || (a = document.createElement("div"),
        a.className = "tmla-mask",
        document.body.appendChild(a),
        i = new Hammer(a,null))
    }
    ,
    y.prototype.touchStartMenu = function() {
        o.on("panstart panmove", function(t) {
            c = r + t.deltaX,
            e.changeMenuPos(),
            u = Math.abs(t.velocity)
        })
    }
    ,
    y.prototype.changeMenuPos = function() {
        c <= t.width && (t.target.className = l + " tmla-menu",
        t.target.style.transform = "translate3d(" + c + "px, 0, 0)",
        t.target.style.WebkitTransform = "translate3d(" + c + "px, 0, 0)",
        t.target.style.MozTransform = "translate3d(" + c + "px, 0, 0)",
        t.disableMask || this.setMaskOpacity(c))
    }
    ,
    y.prototype.setMaskOpacity = function(e) {
        var n = parseFloat(e / t.width * t.maxMaskOpacity);
        a.style.opacity = n,
        a.style.zIndex = 0 === n ? -1 : t.zIndex - 1
    }
    ,
    y.prototype.touchEndMenu = function() {
        o.on("panend pancancel", function(t) {
            r = t.deltaX,
            e.checkMenuState(t.deltaX)
        })
    }
    ,
    y.prototype.eventStartMask = function() {
        i.on("panstart panmove", function(n) {
            n.center.x <= t.width && e.isVisible && (d++,
            1 == d && (p = n.deltaX),
            n.deltaX < 0 && (c = n.deltaX - p + t.width,
            e.changeMenuPos(),
            u = Math.abs(n.velocity)))
        })
    }
    ,
    y.prototype.eventEndMask = function() {
        i.on("panend pancancel", function(t) {
            e.checkMenuState(t.deltaX),
            d = 0
        })
    }
    ,
    y.prototype.clickMaskClose = function() {
        a.addEventListener("click", function() {
            e.close()
        })
    }
    ,
    y.prototype.checkMenuState = function(t) {
        u >= 1 ? t >= 0 ? e.open() : e.close() : c >= 100 ? e.open() : e.close()
    }
    ,
    y.prototype.open = function() {
        t.target.className = l + " tmla-menu opened",
        t.target.style.transform = "translate3d(-" + t.width + "px, 0, 0)",
        t.target.style.WebkitTransform = "translate3d(-" + t.width + "px, 0, 0)",
        t.target.style.MozTransform = "translate3d(-" + t.width + "px, 0, 0)",
        r = t.width,
        this.isVisible = !0,
        e.showMask(),
        e.invoke(t.onOpen)
    }
    ,
    y.prototype.close = function() {
        t.target.className = l + " tmla-menu closed",
        r = 0,
        e.isVisible = !1,
        e.hideMask(),
        e.invoke(t.onClose)
    }
    ,
    y.prototype.toggle = function() {
        e.isVisible ? e.close() : e.open()
    }
    ,
    y.prototype.showMask = function() {
        a.className = "tmla-mask transition",
        a.style.opacity = t.maxMaskOpacity,
        a.style.zIndex = t.zIndex - 1
    }
    ,
    y.prototype.hideMask = function() {
        a.className = "tmla-mask transition",
        a.style.opacity = 0,
        a.style.zIndex = -1
    }
    ,
    y.prototype.setMenuClassName = function() {
        l = t.target.className
    }
    ,
    y.prototype.invoke = function(t) {
        t && t.apply(e)
    }
    ,
    y.prototype.initialize = function() {
        t.target ? (o = Hammer(t.target, null),
        e.setDefaultsOptions(),
        e.setMenuClassName(),
        e.initElements(),
        t.disableSlide || (e.touchStartMenu(),
        e.touchEndMenu(),
        e.eventStartMask(),
        e.eventEndMask()),
        t.disableMask || e.clickMaskClose()) : console.error("TouchMenuLA: The option 'target' is required.")
    }
    ,
    new y
};

@font-face {
    font-family: 'Academicons';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url(../fonts/academicons.eot);
    src: url(../fonts/academicons.eot) format('embedded-opentype'),url(../fonts/academicons.ttf) format('truetype'),url(../fonts/academicons.woff) format('woff'),url(../fonts/academicons.svg) format('svg')
}

.ai {
    font-family: 'Academicons';
    font-weight: 400;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1
}

.ai-academia:before {
    content: "\e9af"
}

.ai-academia-square:before {
    content: "\e93d"
}

.ai-acclaim:before {
    content: "\e92e"
}

.ai-acclaim-square:before {
    content: "\e93a"
}

.ai-acm:before {
    content: "\e93c"
}

.ai-acm-square:before {
    content: "\e95d"
}

.ai-acmdl:before {
    content: "\e96a"
}

.ai-acmdl-square:before {
    content: "\e9d3"
}

.ai-ads:before {
    content: "\e9cb"
}

.ai-ads-square:before {
    content: "\e94a"
}

.ai-africarxiv:before {
    content: "\e91b"
}

.ai-africarxiv-square:before {
    content: "\e90b"
}

.ai-arxiv:before {
    content: "\e974"
}

.ai-arxiv-square:before {
    content: "\e9a6"
}

.ai-biorxiv:before {
    content: "\e9a2"
}

.ai-biorxiv-square:before {
    content: "\e98b"
}

.ai-ceur:before {
    content: "\e96d"
}

.ai-ceur-square:before {
    content: "\e92f"
}

.ai-ciencia-vitae:before {
    content: "\e912"
}

.ai-ciencia-vitae-square:before {
    content: "\e913"
}

.ai-closed-access:before {
    content: "\e942"
}

.ai-closed-access-square:before {
    content: "\e943"
}

.ai-conversation:before {
    content: "\e94c"
}

.ai-conversation-square:before {
    content: "\e915"
}

.ai-coursera:before {
    content: "\e95f"
}

.ai-coursera-square:before {
    content: "\e97f"
}

.ai-crossref:before {
    content: "\e918"
}

.ai-crossref-square:before {
    content: "\e919"
}

.ai-cv:before {
    content: "\e9a5"
}

.ai-cv-square:before {
    content: "\e90a"
}

.ai-datacite:before {
    content: "\e91c"
}

.ai-datacite-square:before {
    content: "\e91d"
}

.ai-dataverse:before {
    content: "\e9f7"
}

.ai-dataverse-square:before {
    content: "\e9e4"
}

.ai-dblp:before {
    content: "\e94f"
}

.ai-dblp-square:before {
    content: "\e93f"
}

.ai-depsy:before {
    content: "\e97a"
}

.ai-depsy-square:before {
    content: "\e94b"
}

.ai-doi:before {
    content: "\e97e"
}

.ai-doi-square:before {
    content: "\e98f"
}

.ai-dryad:before {
    content: "\e97c"
}

.ai-dryad-square:before {
    content: "\e98c"
}

.ai-elsevier:before {
    content: "\e961"
}

.ai-elsevier-square:before {
    content: "\e910"
}

.ai-figshare:before {
    content: "\e981"
}

.ai-figshare-square:before {
    content: "\e9e7"
}

.ai-google-scholar:before {
    content: "\e9d4"
}

.ai-google-scholar-square:before {
    content: "\e9f9"
}

.ai-hal:before {
    content: "\e92c"
}

.ai-hal-square:before {
    content: "\e92d"
}

.ai-hypothesis:before {
    content: "\e95a"
}

.ai-hypothesis-square:before {
    content: "\e95b"
}

.ai-ideas-repec:before {
    content: "\e9ed"
}

.ai-ideas-repec-square:before {
    content: "\e9f8"
}

.ai-ieee:before {
    content: "\e929"
}

.ai-ieee-square:before {
    content: "\e9b9"
}

.ai-impactstory:before {
    content: "\e9cf"
}

.ai-impactstory-square:before {
    content: "\e9aa"
}

.ai-inaturalist:before {
    content: "\e900"
}

.ai-inaturalist-square:before {
    content: "\e901"
}

.ai-inpn:before {
    content: "\e902"
}

.ai-inpn-square:before {
    content: "\e903"
}

.ai-inspire:before {
    content: "\e9e9"
}

.ai-inspire-square:before {
    content: "\e9fe"
}

.ai-isidore:before {
    content: "\e936"
}

.ai-isidore-square:before {
    content: "\e954"
}

.ai-jstor:before {
    content: "\e938"
}

.ai-jstor-square:before {
    content: "\e944"
}

.ai-lattes:before {
    content: "\e9b3"
}

.ai-lattes-square:before {
    content: "\e99c"
}

.ai-mathoverflow:before {
    content: "\e9f6"
}

.ai-mathoverflow-square:before {
    content: "\e97b"
}

.ai-mendeley:before {
    content: "\e9f0"
}

.ai-mendeley-square:before {
    content: "\e9f3"
}

.ai-moodle:before {
    content: "\e907"
}

.ai-moodle-square:before {
    content: "\e908"
}

.ai-nakala:before {
    content: "\e940"
}

.ai-nakala-square:before {
    content: "\e941"
}

.ai-obp:before {
    content: "\e92a"
}

.ai-obp-square:before {
    content: "\e92b"
}

.ai-open-access:before {
    content: "\e939"
}

.ai-open-access-square:before {
    content: "\e9f4"
}

.ai-open-data:before {
    content: "\e966"
}

.ai-open-data-square:before {
    content: "\e967"
}

.ai-open-materials:before {
    content: "\e968"
}

.ai-open-materials-square:before {
    content: "\e969"
}

.ai-openedition:before {
    content: "\e946"
}

.ai-openedition-square:before {
    content: "\e947"
}

.ai-orcid:before {
    content: "\e9d9"
}

.ai-orcid-square:before {
    content: "\e9c3"
}

.ai-osf:before {
    content: "\e9ef"
}

.ai-osf-square:before {
    content: "\e931"
}

.ai-overleaf:before {
    content: "\e914"
}

.ai-overleaf-square:before {
    content: "\e98d"
}

.ai-philpapers:before {
    content: "\e98a"
}

.ai-philpapers-square:before {
    content: "\e96f"
}

.ai-piazza:before {
    content: "\e99a"
}

.ai-piazza-square:before {
    content: "\e90c"
}

.ai-preregistered:before {
    content: "\e906"
}

.ai-preregistered-square:before {
    content: "\e96b"
}

.ai-protocols:before {
    content: "\e952"
}

.ai-protocols-square:before {
    content: "\e953"
}

.ai-psyarxiv:before {
    content: "\e90e"
}

.ai-psyarxiv-square:before {
    content: "\e90f"
}

.ai-publons:before {
    content: "\e937"
}

.ai-publons-square:before {
    content: "\e94e"
}

.ai-pubmed:before {
    content: "\e99f"
}

.ai-pubmed-square:before {
    content: "\e97d"
}

.ai-pubpeer:before {
    content: "\e922"
}

.ai-pubpeer-square:before {
    content: "\e923"
}

.ai-researcherid:before {
    content: "\e91a"
}

.ai-researcherid-square:before {
    content: "\e95c"
}

.ai-researchgate:before {
    content: "\e95e"
}

.ai-researchgate-square:before {
    content: "\e99e"
}

.ai-ror:before {
    content: "\e948"
}

.ai-ror-square:before {
    content: "\e949"
}

.ai-sci-hub:before {
    content: "\e959"
}

.ai-sci-hub-square:before {
    content: "\e905"
}

.ai-scirate:before {
    content: "\e98e"
}

.ai-scirate-square:before {
    content: "\e99d"
}

.ai-scopus:before {
    content: "\e91e"
}

.ai-scopus-square:before {
    content: "\e91f"
}

.ai-semantic-scholar:before {
    content: "\e96e"
}

.ai-semantic-scholar-square:before {
    content: "\e96c"
}

.ai-springer:before {
    content: "\e928"
}

.ai-springer-square:before {
    content: "\e99b"
}

.ai-ssrn:before {
    content: "\e916"
}

.ai-ssrn-square:before {
    content: "\e917"
}

.ai-stackoverflow:before {
    content: "\e920"
}

.ai-stackoverflow-square:before {
    content: "\e921"
}

.ai-zenodo:before {
    content: "\e911"
}

.ai-zotero:before {
    content: "\e962"
}

.ai-zotero-square:before {
    content: "\e932"
}

.ai-lg {
    font-size: 1.33333em;
    line-height: .75em;
    vertical-align: -.0667em
}

.ai-xs {
    font-size: .75em
}

.ai-sm {
    font-size: .875em
}

.ai-1x {
    font-size: 1em
}

.ai-2x {
    font-size: 2em
}

.ai-3x {
    font-size: 3em
}

.ai-4x {
    font-size: 4em
}

.ai-5x {
    font-size: 5em
}

.ai-6x {
    font-size: 6em
}

.ai-7x {
    font-size: 7em
}

.ai-8x {
    left font-size: 8em
}

.ai-9x {
    font-size: 9em
}

.ai-10x {
    font-size: 10em
}

.ai-fw {
    text-align: center;
    width: 1.25em
}

.ai-ul {
    list-style-type: none;
    margin-left: 2.5em;
    padding-left: 0
}

.ai-ul>li {
    position: relative
}

.ai-li {
    left: -2em;
    position: absolute;
    text-align: center;
    width: 2em;
    line-height: inherit
}

.ai-border {
    border: solid .08em #eee;
    border-radius: .1em;
    padding: .2em .25em .15em
}

.ai-pull-left {
    float: left
}

.ai-pull-right {
    float: right
}

.ai.ai-pull-left {
    margin-right: .3em
}

.ai.ai-pull-right {
    margin-right: .3em
}

.ai-stack {
    display: inline-block;
    height: 2em;
    line-height: 2em;
    position: relative;
    vertical-align: middle;
    width: 2.5em
}

.ai-stack-1x,.ai-stack-2x {
    left: 0;
    position: absolute;
    text-align: center;
    width: 100%
}

.ai-stack-1x {
    line-height: inherit
}

.ai-stack-2x {
    font-size: 2em
}

.ai-inverse {
    color: #fff
}

[data-aos][data-aos][data-aos-duration="50"],body[data-aos-duration="50"] [data-aos] {
    transition-duration: 50ms
}

[data-aos][data-aos][data-aos-delay="50"],body[data-aos-delay="50"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="50"].aos-animate,body[data-aos-delay="50"] [data-aos].aos-animate {
    transition-delay: 50ms
}

[data-aos][data-aos][data-aos-duration="100"],body[data-aos-duration="100"] [data-aos] {
    transition-duration: .1s
}

[data-aos][data-aos][data-aos-delay="100"],body[data-aos-delay="100"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="100"].aos-animate,body[data-aos-delay="100"] [data-aos].aos-animate {
    transition-delay: .1s
}

[data-aos][data-aos][data-aos-duration="150"],body[data-aos-duration="150"] [data-aos] {
    transition-duration: .15s
}

[data-aos][data-aos][data-aos-delay="150"],body[data-aos-delay="150"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="150"].aos-animate,body[data-aos-delay="150"] [data-aos].aos-animate {
    transition-delay: .15s
}

[data-aos][data-aos][data-aos-duration="200"],body[data-aos-duration="200"] [data-aos] {
    transition-duration: .2s
}

[data-aos][data-aos][data-aos-delay="200"],body[data-aos-delay="200"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="200"].aos-animate,body[data-aos-delay="200"] [data-aos].aos-animate {
    transition-delay: .2s
}

[data-aos][data-aos][data-aos-duration="250"],body[data-aos-duration="250"] [data-aos] {
    transition-duration: .25s
}

[data-aos][data-aos][data-aos-delay="250"],body[data-aos-delay="250"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="250"].aos-animate,body[data-aos-delay="250"] [data-aos].aos-animate {
    transition-delay: .25s
}

[data-aos][data-aos][data-aos-duration="300"],body[data-aos-duration="300"] [data-aos] {
    transition-duration: .3s
}

[data-aos][data-aos][data-aos-delay="300"],body[data-aos-delay="300"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="300"].aos-animate,body[data-aos-delay="300"] [data-aos].aos-animate {
    transition-delay: .3s
}

[data-aos][data-aos][data-aos-duration="350"],body[data-aos-duration="350"] [data-aos] {
    transition-duration: .35s
}

[data-aos][data-aos][data-aos-delay="350"],body[data-aos-delay="350"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="350"].aos-animate,body[data-aos-delay="350"] [data-aos].aos-animate {
    transition-delay: .35s
}

[data-aos][data-aos][data-aos-duration="400"],body[data-aos-duration="400"] [data-aos] {
    transition-duration: .4s
}

[data-aos][data-aos][data-aos-delay="400"],body[data-aos-delay="400"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="400"].aos-animate,body[data-aos-delay="400"] [data-aos].aos-animate {
    transition-delay: .4s
}

[data-aos][data-aos][data-aos-duration="450"],body[data-aos-duration="450"] [data-aos] {
    transition-duration: .45s
}

[data-aos][data-aos][data-aos-delay="450"],body[data-aos-delay="450"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="450"].aos-animate,body[data-aos-delay="450"] [data-aos].aos-animate {
    transition-delay: .45s
}

[data-aos][data-aos][data-aos-duration="500"],body[data-aos-duration="500"] [data-aos] {
    transition-duration: .5s
}

[data-aos][data-aos][data-aos-delay="500"],body[data-aos-delay="500"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="500"].aos-animate,body[data-aos-delay="500"] [data-aos].aos-animate {
    transition-delay: .5s
}

[data-aos][data-aos][data-aos-duration="550"],body[data-aos-duration="550"] [data-aos] {
    transition-duration: .55s
}

[data-aos][data-aos][data-aos-delay="550"],body[data-aos-delay="550"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="550"].aos-animate,body[data-aos-delay="550"] [data-aos].aos-animate {
    transition-delay: .55s
}

[data-aos][data-aos][data-aos-duration="600"],body[data-aos-duration="600"] [data-aos] {
    transition-duration: .6s
}

[data-aos][data-aos][data-aos-delay="600"],body[data-aos-delay="600"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="600"].aos-animate,body[data-aos-delay="600"] [data-aos].aos-animate {
    transition-delay: .6s
}

[data-aos][data-aos][data-aos-duration="650"],body[data-aos-duration="650"] [data-aos] {
    transition-duration: .65s
}

[data-aos][data-aos][data-aos-delay="650"],body[data-aos-delay="650"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="650"].aos-animate,body[data-aos-delay="650"] [data-aos].aos-animate {
    transition-delay: .65s
}

[data-aos][data-aos][data-aos-duration="700"],body[data-aos-duration="700"] [data-aos] {
    transition-duration: .7s
}

[data-aos][data-aos][data-aos-delay="700"],body[data-aos-delay="700"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="700"].aos-animate,body[data-aos-delay="700"] [data-aos].aos-animate {
    transition-delay: .7s
}

[data-aos][data-aos][data-aos-duration="750"],body[data-aos-duration="750"] [data-aos] {
    transition-duration: .75s
}

[data-aos][data-aos][data-aos-delay="750"],body[data-aos-delay="750"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="750"].aos-animate,body[data-aos-delay="750"] [data-aos].aos-animate {
    transition-delay: .75s
}

[data-aos][data-aos][data-aos-duration="800"],body[data-aos-duration="800"] [data-aos] {
    transition-duration: .8s
}

[data-aos][data-aos][data-aos-delay="800"],body[data-aos-delay="800"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="800"].aos-animate,body[data-aos-delay="800"] [data-aos].aos-animate {
    transition-delay: .8s
}

[data-aos][data-aos][data-aos-duration="850"],body[data-aos-duration="850"] [data-aos] {
    transition-duration: .85s
}

[data-aos][data-aos][data-aos-delay="850"],body[data-aos-delay="850"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="850"].aos-animate,body[data-aos-delay="850"] [data-aos].aos-animate {
    transition-delay: .85s
}

[data-aos][data-aos][data-aos-duration="900"],body[data-aos-duration="900"] [data-aos] {
    transition-duration: .9s
}

[data-aos][data-aos][data-aos-delay="900"],body[data-aos-delay="900"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="900"].aos-animate,body[data-aos-delay="900"] [data-aos].aos-animate {
    transition-delay: .9s
}

[data-aos][data-aos][data-aos-duration="950"],body[data-aos-duration="950"] [data-aos] {
    transition-duration: .95s
}

[data-aos][data-aos][data-aos-delay="950"],body[data-aos-delay="950"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="950"].aos-animate,body[data-aos-delay="950"] [data-aos].aos-animate {
    transition-delay: .95s
}

[data-aos][data-aos][data-aos-duration="1000"],body[data-aos-duration="1000"] [data-aos] {
    transition-duration: 1s
}

[data-aos][data-aos][data-aos-delay="1000"],body[data-aos-delay="1000"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1000"].aos-animate,body[data-aos-delay="1000"] [data-aos].aos-animate {
    transition-delay: 1s
}

[data-aos][data-aos][data-aos-duration="1050"],body[data-aos-duration="1050"] [data-aos] {
    transition-duration: 1.05s
}

[data-aos][data-aos][data-aos-delay="1050"],body[data-aos-delay="1050"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1050"].aos-animate,body[data-aos-delay="1050"] [data-aos].aos-animate {
    transition-delay: 1.05s
}

[data-aos][data-aos][data-aos-duration="1100"],body[data-aos-duration="1100"] [data-aos] {
    transition-duration: 1.1s
}

[data-aos][data-aos][data-aos-delay="1100"],body[data-aos-delay="1100"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1100"].aos-animate,body[data-aos-delay="1100"] [data-aos].aos-animate {
    transition-delay: 1.1s
}

[data-aos][data-aos][data-aos-duration="1150"],body[data-aos-duration="1150"] [data-aos] {
    transition-duration: 1.15s
}

[data-aos][data-aos][data-aos-delay="1150"],body[data-aos-delay="1150"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1150"].aos-animate,body[data-aos-delay="1150"] [data-aos].aos-animate {
    transition-delay: 1.15s
}

[data-aos][data-aos][data-aos-duration="1200"],body[data-aos-duration="1200"] [data-aos] {
    transition-duration: 1.2s
}

[data-aos][data-aos][data-aos-delay="1200"],body[data-aos-delay="1200"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1200"].aos-animate,body[data-aos-delay="1200"] [data-aos].aos-animate {
    transition-delay: 1.2s
}

[data-aos][data-aos][data-aos-duration="1250"],body[data-aos-duration="1250"] [data-aos] {
    transition-duration: 1.25s
}

[data-aos][data-aos][data-aos-delay="1250"],body[data-aos-delay="1250"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1250"].aos-animate,body[data-aos-delay="1250"] [data-aos].aos-animate {
    transition-delay: 1.25s
}

[data-aos][data-aos][data-aos-duration="1300"],body[data-aos-duration="1300"] [data-aos] {
    transition-duration: 1.3s
}

[data-aos][data-aos][data-aos-delay="1300"],body[data-aos-delay="1300"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1300"].aos-animate,body[data-aos-delay="1300"] [data-aos].aos-animate {
    transition-delay: 1.3s
}

[data-aos][data-aos][data-aos-duration="1350"],body[data-aos-duration="1350"] [data-aos] {
    transition-duration: 1.35s
}

[data-aos][data-aos][data-aos-delay="1350"],body[data-aos-delay="1350"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1350"].aos-animate,body[data-aos-delay="1350"] [data-aos].aos-animate {
    transition-delay: 1.35s
}

[data-aos][data-aos][data-aos-duration="1400"],body[data-aos-duration="1400"] [data-aos] {
    transition-duration: 1.4s
}

[data-aos][data-aos][data-aos-delay="1400"],body[data-aos-delay="1400"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1400"].aos-animate,body[data-aos-delay="1400"] [data-aos].aos-animate {
    transition-delay: 1.4s
}

[data-aos][data-aos][data-aos-duration="1450"],body[data-aos-duration="1450"] [data-aos] {
    transition-duration: 1.45s
}

[data-aos][data-aos][data-aos-delay="1450"],body[data-aos-delay="1450"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1450"].aos-animate,body[data-aos-delay="1450"] [data-aos].aos-animate {
    transition-delay: 1.45s
}

[data-aos][data-aos][data-aos-duration="1500"],body[data-aos-duration="1500"] [data-aos] {
    transition-duration: 1.5s
}

[data-aos][data-aos][data-aos-delay="1500"],body[data-aos-delay="1500"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1500"].aos-animate,body[data-aos-delay="1500"] [data-aos].aos-animate {
    transition-delay: 1.5s
}

[data-aos][data-aos][data-aos-duration="1550"],body[data-aos-duration="1550"] [data-aos] {
    transition-duration: 1.55s
}

[data-aos][data-aos][data-aos-delay="1550"],body[data-aos-delay="1550"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1550"].aos-animate,body[data-aos-delay="1550"] [data-aos].aos-animate {
    transition-delay: 1.55s
}

[data-aos][data-aos][data-aos-duration="1600"],body[data-aos-duration="1600"] [data-aos] {
    transition-duration: 1.6s
}

[data-aos][data-aos][data-aos-delay="1600"],body[data-aos-delay="1600"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1600"].aos-animate,body[data-aos-delay="1600"] [data-aos].aos-animate {
    transition-delay: 1.6s
}

[data-aos][data-aos][data-aos-duration="1650"],body[data-aos-duration="1650"] [data-aos] {
    transition-duration: 1.65s
}

[data-aos][data-aos][data-aos-delay="1650"],body[data-aos-delay="1650"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1650"].aos-animate,body[data-aos-delay="1650"] [data-aos].aos-animate {
    transition-delay: 1.65s
}

[data-aos][data-aos][data-aos-duration="1700"],body[data-aos-duration="1700"] [data-aos] {
    transition-duration: 1.7s
}

[data-aos][data-aos][data-aos-delay="1700"],body[data-aos-delay="1700"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1700"].aos-animate,body[data-aos-delay="1700"] [data-aos].aos-animate {
    transition-delay: 1.7s
}

[data-aos][data-aos][data-aos-duration="1750"],body[data-aos-duration="1750"] [data-aos] {
    transition-duration: 1.75s
}

[data-aos][data-aos][data-aos-delay="1750"],body[data-aos-delay="1750"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1750"].aos-animate,body[data-aos-delay="1750"] [data-aos].aos-animate {
    transition-delay: 1.75s
}

[data-aos][data-aos][data-aos-duration="1800"],body[data-aos-duration="1800"] [data-aos] {
    transition-duration: 1.8s
}

[data-aos][data-aos][data-aos-delay="1800"],body[data-aos-delay="1800"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1800"].aos-animate,body[data-aos-delay="1800"] [data-aos].aos-animate {
    transition-delay: 1.8s
}

[data-aos][data-aos][data-aos-duration="1850"],body[data-aos-duration="1850"] [data-aos] {
    transition-duration: 1.85s
}

[data-aos][data-aos][data-aos-delay="1850"],body[data-aos-delay="1850"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1850"].aos-animate,body[data-aos-delay="1850"] [data-aos].aos-animate {
    transition-delay: 1.85s
}

[data-aos][data-aos][data-aos-duration="1900"],body[data-aos-duration="1900"] [data-aos] {
    transition-duration: 1.9s
}

[data-aos][data-aos][data-aos-delay="1900"],body[data-aos-delay="1900"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1900"].aos-animate,body[data-aos-delay="1900"] [data-aos].aos-animate {
    transition-delay: 1.9s
}

[data-aos][data-aos][data-aos-duration="1950"],body[data-aos-duration="1950"] [data-aos] {
    transition-duration: 1.95s
}

[data-aos][data-aos][data-aos-delay="1950"],body[data-aos-delay="1950"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="1950"].aos-animate,body[data-aos-delay="1950"] [data-aos].aos-animate {
    transition-delay: 1.95s
}

[data-aos][data-aos][data-aos-duration="2000"],body[data-aos-duration="2000"] [data-aos] {
    transition-duration: 2s
}

[data-aos][data-aos][data-aos-delay="2000"],body[data-aos-delay="2000"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2000"].aos-animate,body[data-aos-delay="2000"] [data-aos].aos-animate {
    transition-delay: 2s
}

[data-aos][data-aos][data-aos-duration="2050"],body[data-aos-duration="2050"] [data-aos] {
    transition-duration: 2.05s
}

[data-aos][data-aos][data-aos-delay="2050"],body[data-aos-delay="2050"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2050"].aos-animate,body[data-aos-delay="2050"] [data-aos].aos-animate {
    transition-delay: 2.05s
}

[data-aos][data-aos][data-aos-duration="2100"],body[data-aos-duration="2100"] [data-aos] {
    transition-duration: 2.1s
}

[data-aos][data-aos][data-aos-delay="2100"],body[data-aos-delay="2100"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2100"].aos-animate,body[data-aos-delay="2100"] [data-aos].aos-animate {
    transition-delay: 2.1s
}

[data-aos][data-aos][data-aos-duration="2150"],body[data-aos-duration="2150"] [data-aos] {
    transition-duration: 2.15s
}

[data-aos][data-aos][data-aos-delay="2150"],body[data-aos-delay="2150"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2150"].aos-animate,body[data-aos-delay="2150"] [data-aos].aos-animate {
    transition-delay: 2.15s
}

[data-aos][data-aos][data-aos-duration="2200"],body[data-aos-duration="2200"] [data-aos] {
    transition-duration: 2.2s
}

[data-aos][data-aos][data-aos-delay="2200"],body[data-aos-delay="2200"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2200"].aos-animate,body[data-aos-delay="2200"] [data-aos].aos-animate {
    transition-delay: 2.2s
}

[data-aos][data-aos][data-aos-duration="2250"],body[data-aos-duration="2250"] [data-aos] {
    transition-duration: 2.25s
}

[data-aos][data-aos][data-aos-delay="2250"],body[data-aos-delay="2250"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2250"].aos-animate,body[data-aos-delay="2250"] [data-aos].aos-animate {
    transition-delay: 2.25s
}

[data-aos][data-aos][data-aos-duration="2300"],body[data-aos-duration="2300"] [data-aos] {
    transition-duration: 2.3s
}

[data-aos][data-aos][data-aos-delay="2300"],body[data-aos-delay="2300"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2300"].aos-animate,body[data-aos-delay="2300"] [data-aos].aos-animate {
    transition-delay: 2.3s
}

[data-aos][data-aos][data-aos-duration="2350"],body[data-aos-duration="2350"] [data-aos] {
    transition-duration: 2.35s
}

[data-aos][data-aos][data-aos-delay="2350"],body[data-aos-delay="2350"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2350"].aos-animate,body[data-aos-delay="2350"] [data-aos].aos-animate {
    transition-delay: 2.35s
}

[data-aos][data-aos][data-aos-duration="2400"],body[data-aos-duration="2400"] [data-aos] {
    transition-duration: 2.4s
}

[data-aos][data-aos][data-aos-delay="2400"],body[data-aos-delay="2400"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2400"].aos-animate,body[data-aos-delay="2400"] [data-aos].aos-animate {
    transition-delay: 2.4s
}

[data-aos][data-aos][data-aos-duration="2450"],body[data-aos-duration="2450"] [data-aos] {
    transition-duration: 2.45s
}

[data-aos][data-aos][data-aos-delay="2450"],body[data-aos-delay="2450"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2450"].aos-animate,body[data-aos-delay="2450"] [data-aos].aos-animate {
    transition-delay: 2.45s
}

[data-aos][data-aos][data-aos-duration="2500"],body[data-aos-duration="2500"] [data-aos] {
    transition-duration: 2.5s
}

[data-aos][data-aos][data-aos-delay="2500"],body[data-aos-delay="2500"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2500"].aos-animate,body[data-aos-delay="2500"] [data-aos].aos-animate {
    transition-delay: 2.5s
}

[data-aos][data-aos][data-aos-duration="2550"],body[data-aos-duration="2550"] [data-aos] {
    transition-duration: 2.55s
}

[data-aos][data-aos][data-aos-delay="2550"],body[data-aos-delay="2550"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2550"].aos-animate,body[data-aos-delay="2550"] [data-aos].aos-animate {
    transition-delay: 2.55s
}

[data-aos][data-aos][data-aos-duration="2600"],body[data-aos-duration="2600"] [data-aos] {
    transition-duration: 2.6s
}

[data-aos][data-aos][data-aos-delay="2600"],body[data-aos-delay="2600"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2600"].aos-animate,body[data-aos-delay="2600"] [data-aos].aos-animate {
    transition-delay: 2.6s
}

[data-aos][data-aos][data-aos-duration="2650"],body[data-aos-duration="2650"] [data-aos] {
    transition-duration: 2.65s
}

[data-aos][data-aos][data-aos-delay="2650"],body[data-aos-delay="2650"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2650"].aos-animate,body[data-aos-delay="2650"] [data-aos].aos-animate {
    transition-delay: 2.65s
}

[data-aos][data-aos][data-aos-duration="2700"],body[data-aos-duration="2700"] [data-aos] {
    transition-duration: 2.7s
}

[data-aos][data-aos][data-aos-delay="2700"],body[data-aos-delay="2700"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2700"].aos-animate,body[data-aos-delay="2700"] [data-aos].aos-animate {
    transition-delay: 2.7s
}

[data-aos][data-aos][data-aos-duration="2750"],body[data-aos-duration="2750"] [data-aos] {
    transition-duration: 2.75s
}

[data-aos][data-aos][data-aos-delay="2750"],body[data-aos-delay="2750"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2750"].aos-animate,body[data-aos-delay="2750"] [data-aos].aos-animate {
    transition-delay: 2.75s
}

[data-aos][data-aos][data-aos-duration="2800"],body[data-aos-duration="2800"] [data-aos] {
    transition-duration: 2.8s
}

[data-aos][data-aos][data-aos-delay="2800"],body[data-aos-delay="2800"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2800"].aos-animate,body[data-aos-delay="2800"] [data-aos].aos-animate {
    transition-delay: 2.8s
}

[data-aos][data-aos][data-aos-duration="2850"],body[data-aos-duration="2850"] [data-aos] {
    transition-duration: 2.85s
}

[data-aos][data-aos][data-aos-delay="2850"],body[data-aos-delay="2850"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2850"].aos-animate,body[data-aos-delay="2850"] [data-aos].aos-animate {
    transition-delay: 2.85s
}

[data-aos][data-aos][data-aos-duration="2900"],body[data-aos-duration="2900"] [data-aos] {
    transition-duration: 2.9s
}

[data-aos][data-aos][data-aos-delay="2900"],body[data-aos-delay="2900"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2900"].aos-animate,body[data-aos-delay="2900"] [data-aos].aos-animate {
    transition-delay: 2.9s
}

[data-aos][data-aos][data-aos-duration="2950"],body[data-aos-duration="2950"] [data-aos] {
    transition-duration: 2.95s
}

[data-aos][data-aos][data-aos-delay="2950"],body[data-aos-delay="2950"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="2950"].aos-animate,body[data-aos-delay="2950"] [data-aos].aos-animate {
    transition-delay: 2.95s
}

[data-aos][data-aos][data-aos-duration="3000"],body[data-aos-duration="3000"] [data-aos] {
    transition-duration: 3s
}

[data-aos][data-aos][data-aos-delay="3000"],body[data-aos-delay="3000"] [data-aos] {
    transition-delay: 0
}

[data-aos][data-aos][data-aos-delay="3000"].aos-animate,body[data-aos-delay="3000"] [data-aos].aos-animate {
    transition-delay: 3s
}

[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos] {
    transition-timing-function: cubic-bezier(.25,.25,.75,.75)
}

[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos] {
    transition-timing-function: ease
}

[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos] {
    transition-timing-function: ease-in
}

[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos] {
    transition-timing-function: ease-out
}

[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos] {
    transition-timing-function: ease-in-out
}

[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos] {
    transition-timing-function: cubic-bezier(.6,-.28,.735,.045)
}

[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos] {
    transition-timing-function: cubic-bezier(.175,.885,.32,1.275)
}

[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos] {
    transition-timing-function: cubic-bezier(.68,-.55,.265,1.55)
}

[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos] {
    transition-timing-function: cubic-bezier(.47,0,.745,.715)
}

[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos] {
    transition-timing-function: cubic-bezier(.39,.575,.565,1)
}

[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos] {
    transition-timing-function: cubic-bezier(.445,.05,.55,.95)
}

[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos] {
    transition-timing-function: cubic-bezier(.55,.085,.68,.53)
}

[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos] {
    transition-timing-function: cubic-bezier(.25,.46,.45,.94)
}

[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos] {
    transition-timing-function: cubic-bezier(.455,.03,.515,.955)
}

[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos] {
    transition-timing-function: cubic-bezier(.55,.085,.68,.53)
}

[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos] {
    transition-timing-function: cubic-bezier(.25,.46,.45,.94)
}

[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos] {
    transition-timing-function: cubic-bezier(.455,.03,.515,.955)
}

[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos] {
    transition-timing-function: cubic-bezier(.55,.085,.68,.53)
}

[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos] {
    transition-timing-function: cubic-bezier(.25,.46,.45,.94)
}

[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos] {
    transition-timing-function: cubic-bezier(.455,.03,.515,.955)
}

[data-aos^=fade][data-aos^=fade] {
    opacity: 0;
    transition-property: opacity,transform
}

[data-aos^=fade][data-aos^=fade].aos-animate {
    opacity: 1;
    transform: translateZ(0)
}

[data-aos=fade-up] {
    transform: translate3d(0,100px,0)
}

[data-aos=fade-down] {
    transform: translate3d(0,-100px,0)
}

[data-aos=fade-right] {
    transform: translate3d(-100px,0,0)
}

[data-aos=fade-left] {
    transform: translate3d(100px,0,0)
}

[data-aos=fade-up-right] {
    transform: translate3d(-100px,100px,0)
}

[data-aos=fade-up-left] {
    transform: translate3d(100px,100px,0)
}

[data-aos=fade-down-right] {
    transform: translate3d(-100px,-100px,0)
}

[data-aos=fade-down-left] {
    transform: translate3d(100px,-100px,0)
}

[data-aos^=zoom][data-aos^=zoom] {
    opacity: 0;
    transition-property: opacity,transform
}

[data-aos^=zoom][data-aos^=zoom].aos-animate {
    opacity: 1;
    transform: translateZ(0) scale(1)
}

[data-aos=zoom-in] {
    transform: scale(.6)
}

[data-aos=zoom-in-up] {
    transform: translate3d(0,100px,0) scale(.6)
}

[data-aos=zoom-in-down] {
    transform: translate3d(0,-100px,0) scale(.6)
}

[data-aos=zoom-in-right] {
    transform: translate3d(-100px,0,0) scale(.6)
}

[data-aos=zoom-in-left] {
    transform: translate3d(100px,0,0) scale(.6)
}

[data-aos=zoom-out] {
    transform: scale(1.2)
}

[data-aos=zoom-out-up] {
    transform: translate3d(0,100px,0) scale(1.2)
}

[data-aos=zoom-out-down] {
    transform: translate3d(0,-100px,0) scale(1.2)
}

[data-aos=zoom-out-right] {
    transform: translate3d(-100px,0,0) scale(1.2)
}

[data-aos=zoom-out-left] {
    transform: translate3d(100px,0,0) scale(1.2)
}

[data-aos^=slide][data-aos^=slide] {
    transition-property: transform
}

[data-aos^=slide][data-aos^=slide].aos-animate {
    transform: translateZ(0)
}

[data-aos=slide-up] {
    transform: translate3d(0,100%,0)
}

[data-aos=slide-down] {
    transform: translate3d(0,-100%,0)
}

[data-aos=slide-right] {
    transform: translate3d(-100%,0,0)
}

[data-aos=slide-left] {
    transform: translate3d(100%,0,0)
}

[data-aos^=flip][data-aos^=flip] {
    backface-visibility: hidden;
    transition-property: transform
}

[data-aos=flip-left] {
    transform: perspective(2500px) rotateY(-100deg)
}

[data-aos=flip-left].aos-animate {
    transform: perspective(2500px) rotateY(0)
}

[data-aos=flip-right] {
    transform: perspective(2500px) rotateY(100deg)
}

[data-aos=flip-right].aos-animate {
    transform: perspective(2500px) rotateY(0)
}

[data-aos=flip-up] {
    transform: perspective(2500px) rotateX(-100deg)
}

[data-aos=flip-up].aos-animate {
    transform: perspective(2500px) rotateX(0)
}

[data-aos=flip-down] {
    transform: perspective(2500px) rotateX(100deg)
}

[data-aos=flip-down].aos-animate {
    transform: perspective(2500px) rotateX(0)
}

/*!
 * Hover.css (http://ianlunn.github.io/Hover/)
 * Version: 2.3.1
 * Author: Ian Lunn @IanLunn
 * Author URL: http://ianlunn.co.uk/
 * Github: https://github.com/IanLunn/Hover

 * Hover.css Copyright Ian Lunn 2017. Generated with Sass.
 */
.hvr-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-grow:active,
.hvr-grow:focus,
.hvr-grow:hover {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.hvr-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-shrink:active,
.hvr-shrink:focus,
.hvr-shrink:hover {
  -webkit-transform: scale(0.9);
  transform: scale(0.9);
}
@-webkit-keyframes hvr-pulse {
  25% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  75% {
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
  }
}
@keyframes hvr-pulse {
  25% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  75% {
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
  }
}
.hvr-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-pulse:active,
.hvr-pulse:focus,
.hvr-pulse:hover {
  -webkit-animation-name: hvr-pulse;
  animation-name: hvr-pulse;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}
@-webkit-keyframes hvr-pulse-grow {
  to {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
}
@keyframes hvr-pulse-grow {
  to {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
}
.hvr-pulse-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-pulse-grow:active,
.hvr-pulse-grow:focus,
.hvr-pulse-grow:hover {
  -webkit-animation-name: hvr-pulse-grow;
  animation-name: hvr-pulse-grow;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
  animation-direction: alternate;
}
@-webkit-keyframes hvr-pulse-shrink {
  to {
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
  }
}
@keyframes hvr-pulse-shrink {
  to {
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
  }
}
.hvr-pulse-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-pulse-shrink:active,
.hvr-pulse-shrink:focus,
.hvr-pulse-shrink:hover {
  -webkit-animation-name: hvr-pulse-shrink;
  animation-name: hvr-pulse-shrink;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
  animation-direction: alternate;
}
@-webkit-keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
.hvr-push {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-push:active,
.hvr-push:focus,
.hvr-push:hover {
  -webkit-animation-name: hvr-push;
  animation-name: hvr-push;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-pop {
  50% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
  }
}
@keyframes hvr-pop {
  50% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
  }
}
.hvr-pop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-pop:active,
.hvr-pop:focus,
.hvr-pop:hover {
  -webkit-animation-name: hvr-pop;
  animation-name: hvr-pop;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
.hvr-bounce-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
.hvr-bounce-in:active,
.hvr-bounce-in:focus,
.hvr-bounce-in:hover {
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
  -webkit-transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
  transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
}
.hvr-bounce-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
.hvr-bounce-out:active,
.hvr-bounce-out:focus,
.hvr-bounce-out:hover {
  -webkit-transform: scale(0.8);
  transform: scale(0.8);
  -webkit-transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
  transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
}
.hvr-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-rotate:active,
.hvr-rotate:focus,
.hvr-rotate:hover {
  -webkit-transform: rotate(4deg);
  transform: rotate(4deg);
}
.hvr-grow-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-grow-rotate:active,
.hvr-grow-rotate:focus,
.hvr-grow-rotate:hover {
  -webkit-transform: scale(1.1) rotate(4deg);
  transform: scale(1.1) rotate(4deg);
}
.hvr-float {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-float:active,
.hvr-float:focus,
.hvr-float:hover {
  -webkit-transform: translateY(-8px);
  transform: translateY(-8px);
}
.hvr-sink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-sink:active,
.hvr-sink:focus,
.hvr-sink:hover {
  -webkit-transform: translateY(8px);
  transform: translateY(8px);
}
@-webkit-keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
  50% {
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px);
  }
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
@keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
  50% {
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px);
  }
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
@-webkit-keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
@keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px);
  }
}
.hvr-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-bob:active,
.hvr-bob:focus,
.hvr-bob:hover {
  -webkit-animation-name: hvr-bob-float, hvr-bob;
  animation-name: hvr-bob-float, hvr-bob;
  -webkit-animation-duration: 0.3s, 1.5s;
  animation-duration: 0.3s, 1.5s;
  -webkit-animation-delay: 0s, 0.3s;
  animation-delay: 0s, 0.3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
  animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
  animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
  animation-direction: normal, alternate;
}
@-webkit-keyframes hvr-hang {
  0% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
  50% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
}
@keyframes hvr-hang {
  0% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
  50% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
}
@-webkit-keyframes hvr-hang-sink {
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
}
@keyframes hvr-hang-sink {
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
}
.hvr-hang {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-hang:active,
.hvr-hang:focus,
.hvr-hang:hover {
  -webkit-animation-name: hvr-hang-sink, hvr-hang;
  animation-name: hvr-hang-sink, hvr-hang;
  -webkit-animation-duration: 0.3s, 1.5s;
  animation-duration: 0.3s, 1.5s;
  -webkit-animation-delay: 0s, 0.3s;
  animation-delay: 0s, 0.3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
  animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
  animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
  animation-direction: normal, alternate;
}
.hvr-skew {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-skew:active,
.hvr-skew:focus,
.hvr-skew:hover {
  -webkit-transform: skew(-10deg);
  transform: skew(-10deg);
}
.hvr-skew-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transform-origin: 0 100%;
  transform-origin: 0 100%;
}
.hvr-skew-forward:active,
.hvr-skew-forward:focus,
.hvr-skew-forward:hover {
  -webkit-transform: skew(-10deg);
  transform: skew(-10deg);
}
.hvr-skew-backward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transform-origin: 0 100%;
  transform-origin: 0 100%;
}
.hvr-skew-backward:active,
.hvr-skew-backward:focus,
.hvr-skew-backward:hover {
  -webkit-transform: skew(10deg);
  transform: skew(10deg);
}
@-webkit-keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
  }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
.hvr-wobble-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-wobble-vertical:active,
.hvr-wobble-vertical:focus,
.hvr-wobble-vertical:hover {
  -webkit-animation-name: hvr-wobble-vertical;
  animation-name: hvr-wobble-vertical;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(8px);
    transform: translateX(8px);
  }
  33.3% {
    -webkit-transform: translateX(-6px);
    transform: translateX(-6px);
  }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px);
  }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px);
  }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes hvr-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(8px);
    transform: translateX(8px);
  }
  33.3% {
    -webkit-transform: translateX(-6px);
    transform: translateX(-6px);
  }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px);
  }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px);
  }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
.hvr-wobble-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-wobble-horizontal:active,
.hvr-wobble-horizontal:focus,
.hvr-wobble-horizontal:hover {
  -webkit-animation-name: hvr-wobble-horizontal;
  animation-name: hvr-wobble-horizontal;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-wobble-to-bottom-right {
  16.65% {
    -webkit-transform: translate(8px, 8px);
    transform: translate(8px, 8px);
  }
  33.3% {
    -webkit-transform: translate(-6px, -6px);
    transform: translate(-6px, -6px);
  }
  49.95% {
    -webkit-transform: translate(4px, 4px);
    transform: translate(4px, 4px);
  }
  66.6% {
    -webkit-transform: translate(-2px, -2px);
    transform: translate(-2px, -2px);
  }
  83.25% {
    -webkit-transform: translate(1px, 1px);
    transform: translate(1px, 1px);
  }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@keyframes hvr-wobble-to-bottom-right {
  16.65% {
    -webkit-transform: translate(8px, 8px);
    transform: translate(8px, 8px);
  }
  33.3% {
    -webkit-transform: translate(-6px, -6px);
    transform: translate(-6px, -6px);
  }
  49.95% {
    -webkit-transform: translate(4px, 4px);
    transform: translate(4px, 4px);
  }
  66.6% {
    -webkit-transform: translate(-2px, -2px);
    transform: translate(-2px, -2px);
  }
  83.25% {
    -webkit-transform: translate(1px, 1px);
    transform: translate(1px, 1px);
  }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
.hvr-wobble-to-bottom-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-wobble-to-bottom-right:active,
.hvr-wobble-to-bottom-right:focus,
.hvr-wobble-to-bottom-right:hover {
  -webkit-animation-name: hvr-wobble-to-bottom-right;
  animation-name: hvr-wobble-to-bottom-right;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-wobble-to-top-right {
  16.65% {
    -webkit-transform: translate(8px, -8px);
    transform: translate(8px, -8px);
  }
  33.3% {
    -webkit-transform: translate(-6px, 6px);
    transform: translate(-6px, 6px);
  }
  49.95% {
    -webkit-transform: translate(4px, -4px);
    transform: translate(4px, -4px);
  }
  66.6% {
    -webkit-transform: translate(-2px, 2px);
    transform: translate(-2px, 2px);
  }
  83.25% {
    -webkit-transform: translate(1px, -1px);
    transform: translate(1px, -1px);
  }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
@keyframes hvr-wobble-to-top-right {
  16.65% {
    -webkit-transform: translate(8px, -8px);
    transform: translate(8px, -8px);
  }
  33.3% {
    -webkit-transform: translate(-6px, 6px);
    transform: translate(-6px, 6px);
  }
  49.95% {
    -webkit-transform: translate(4px, -4px);
    transform: translate(4px, -4px);
  }
  66.6% {
    -webkit-transform: translate(-2px, 2px);
    transform: translate(-2px, 2px);
  }
  83.25% {
    -webkit-transform: translate(1px, -1px);
    transform: translate(1px, -1px);
  }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
  }
}
.hvr-wobble-to-top-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-wobble-to-top-right:active,
.hvr-wobble-to-top-right:focus,
.hvr-wobble-to-top-right:hover {
  -webkit-animation-name: hvr-wobble-to-top-right;
  animation-name: hvr-wobble-to-top-right;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-wobble-top {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg);
  }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg);
  }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg);
  }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg);
  }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg);
  }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0);
  }
}
@keyframes hvr-wobble-top {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg);
  }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg);
  }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg);
  }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg);
  }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg);
  }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0);
  }
}
.hvr-wobble-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transform-origin: 0 100%;
  transform-origin: 0 100%;
}
.hvr-wobble-top:active,
.hvr-wobble-top:focus,
.hvr-wobble-top:hover {
  -webkit-animation-name: hvr-wobble-top;
  animation-name: hvr-wobble-top;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-wobble-bottom {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg);
  }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg);
  }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg);
  }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg);
  }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg);
  }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0);
  }
}
@keyframes hvr-wobble-bottom {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg);
  }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg);
  }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg);
  }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg);
  }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg);
  }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0);
  }
}
.hvr-wobble-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transform-origin: 100% 0;
  transform-origin: 100% 0;
}
.hvr-wobble-bottom:active,
.hvr-wobble-bottom:focus,
.hvr-wobble-bottom:hover {
  -webkit-animation-name: hvr-wobble-bottom;
  animation-name: hvr-wobble-bottom;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-wobble-skew {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg);
  }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg);
  }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg);
  }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg);
  }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg);
  }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0);
  }
}
@keyframes hvr-wobble-skew {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg);
  }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg);
  }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg);
  }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg);
  }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg);
  }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0);
  }
}
.hvr-wobble-skew {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-wobble-skew:active,
.hvr-wobble-skew:focus,
.hvr-wobble-skew:hover {
  -webkit-animation-name: hvr-wobble-skew;
  animation-name: hvr-wobble-skew;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
}
@keyframes hvr-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
}
.hvr-buzz {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-buzz:active,
.hvr-buzz:focus,
.hvr-buzz:hover {
  -webkit-animation-name: hvr-buzz;
  animation-name: hvr-buzz;
  -webkit-animation-duration: 0.15s;
  animation-duration: 0.15s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}
@-webkit-keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}
@keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}
.hvr-buzz-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-buzz-out:active,
.hvr-buzz-out:focus,
.hvr-buzz-out:hover {
  -webkit-animation-name: hvr-buzz-out;
  animation-name: hvr-buzz-out;
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
.hvr-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-forward:active,
.hvr-forward:focus,
.hvr-forward:hover {
  -webkit-transform: translateX(8px);
  transform: translateX(8px);
}
.hvr-backward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-backward:active,
.hvr-backward:focus,
.hvr-backward:hover {
  -webkit-transform: translateX(-8px);
  transform: translateX(-8px);
}
.hvr-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  overflow: hidden;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: color, background-color;
  transition-property: color, background-color;
}
.hvr-fade:active,
.hvr-fade:focus,
.hvr-fade:hover {
  background-color: var(--bg-base);
  color: #fff;
}
@-webkit-keyframes hvr-back-pulse {
  50% {
    background-color: rgba(32, 152, 209, 0.75);
  }
}
@keyframes hvr-back-pulse {
  50% {
    background-color: rgba(32, 152, 209, 0.75);
  }
}
.hvr-back-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  overflow: hidden;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-property: color, background-color;
  transition-property: color, background-color;
}
.hvr-back-pulse:active,
.hvr-back-pulse:focus,
.hvr-back-pulse:hover {
  -webkit-animation-name: hvr-back-pulse;
  animation-name: hvr-back-pulse;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  background-color: var(--bg-base);
  background-color: var(--bg-base);
  color: #fff;
}
.hvr-sweep-to-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-sweep-to-right:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
  transform-origin: 0 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-sweep-to-right:active,
.hvr-sweep-to-right:focus,
.hvr-sweep-to-right:hover {
  color: #fff;
}
.hvr-sweep-to-right:active:before,
.hvr-sweep-to-right:focus:before,
.hvr-sweep-to-right:hover:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}
.hvr-sweep-to-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-sweep-to-left:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 100% 50%;
  transform-origin: 100% 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-sweep-to-left:active,
.hvr-sweep-to-left:focus,
.hvr-sweep-to-left:hover {
  color: #fff;
}
.hvr-sweep-to-left:active:before,
.hvr-sweep-to-left:focus:before,
.hvr-sweep-to-left:hover:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}
.hvr-sweep-to-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-sweep-to-bottom:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50% 0;
  transform-origin: 50% 0;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-sweep-to-bottom:active,
.hvr-sweep-to-bottom:focus,
.hvr-sweep-to-bottom:hover {
  color: #fff;
}
.hvr-sweep-to-bottom:active:before,
.hvr-sweep-to-bottom:focus:before,
.hvr-sweep-to-bottom:hover:before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}
.hvr-sweep-to-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-sweep-to-top:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-sweep-to-top:active,
.hvr-sweep-to-top:focus,
.hvr-sweep-to-top:hover {
  color: #fff;
}
.hvr-sweep-to-top:active:before,
.hvr-sweep-to-top:focus:before,
.hvr-sweep-to-top:hover:before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}
.hvr-bounce-to-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
.hvr-bounce-to-right:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 0 50%;
  transform-origin: 0 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-bounce-to-right:active,
.hvr-bounce-to-right:focus,
.hvr-bounce-to-right:hover {
  color: #fff;
}
.hvr-bounce-to-right:active:before,
.hvr-bounce-to-right:focus:before,
.hvr-bounce-to-right:hover:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
  -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}
.hvr-bounce-to-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
.hvr-bounce-to-left:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 100% 50%;
  transform-origin: 100% 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-bounce-to-left:active,
.hvr-bounce-to-left:focus,
.hvr-bounce-to-left:hover {
  color: #fff;
}
.hvr-bounce-to-left:active:before,
.hvr-bounce-to-left:focus:before,
.hvr-bounce-to-left:hover:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
  -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}
.hvr-bounce-to-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
.hvr-bounce-to-bottom:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50% 0;
  transform-origin: 50% 0;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-bounce-to-bottom:active,
.hvr-bounce-to-bottom:focus,
.hvr-bounce-to-bottom:hover {
  color: #fff;
}
.hvr-bounce-to-bottom:active:before,
.hvr-bounce-to-bottom:focus:before,
.hvr-bounce-to-bottom:hover:before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
  -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}
.hvr-bounce-to-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
.hvr-bounce-to-top:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-bounce-to-top:active,
.hvr-bounce-to-top:focus,
.hvr-bounce-to-top:hover {
  color: #fff;
}
.hvr-bounce-to-top:active:before,
.hvr-bounce-to-top:focus:before,
.hvr-bounce-to-top:hover:before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
  -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
  transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}
.hvr-radial-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
  background: #e1e1e1;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-radial-out:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  border-radius: 100%;
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-radial-out:active,
.hvr-radial-out:focus,
.hvr-radial-out:hover {
  color: #fff;
}
.hvr-radial-out:active:before,
.hvr-radial-out:focus:before,
.hvr-radial-out:hover:before {
  -webkit-transform: scale(2);
  transform: scale(2);
}
.hvr-radial-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
  background: var(--bg-base);
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-radial-in:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #e1e1e1;
  border-radius: 100%;
  -webkit-transform: scale(2);
  transform: scale(2);
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-radial-in:active,
.hvr-radial-in:focus,
.hvr-radial-in:hover {
  color: #fff;
}
.hvr-radial-in:active:before,
.hvr-radial-in:focus:before,
.hvr-radial-in:hover:before {
  -webkit-transform: scale(0);
  transform: scale(0);
}
.hvr-rectangle-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: var(--bg-base);
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-rectangle-in:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #e1e1e1;
  -webkit-transform: scale(1);
  transform: scale(1);
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-rectangle-in:active,
.hvr-rectangle-in:focus,
.hvr-rectangle-in:hover {
  color: #fff;
}
.hvr-rectangle-in:active:before,
.hvr-rectangle-in:focus:before,
.hvr-rectangle-in:hover:before {
  -webkit-transform: scale(0);
  transform: scale(0);
}
.hvr-rectangle-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #e1e1e1;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-rectangle-out:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-rectangle-out:active,
.hvr-rectangle-out:focus,
.hvr-rectangle-out:hover {
  color: #fff;
}
.hvr-rectangle-out:active:before,
.hvr-rectangle-out:focus:before,
.hvr-rectangle-out:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}
.hvr-shutter-in-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: var(--bg-base);
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-shutter-in-horizontal:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #e1e1e1;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
  -webkit-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-shutter-in-horizontal:active,
.hvr-shutter-in-horizontal:focus,
.hvr-shutter-in-horizontal:hover {
  color: #fff;
}
.hvr-shutter-in-horizontal:active:before,
.hvr-shutter-in-horizontal:focus:before,
.hvr-shutter-in-horizontal:hover:before {
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
}
.hvr-shutter-out-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #e1e1e1;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-shutter-out-horizontal:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--bg-base);
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-shutter-out-horizontal:active,
.hvr-shutter-out-horizontal:focus,
.hvr-shutter-out-horizontal:hover {
  color: #fff;
}
.hvr-shutter-out-horizontal:active:before,
.hvr-shutter-out-horizontal:focus:before,
.hvr-shutter-out-horizontal:hover:before {
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}
.hvr-shutter-in-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: var(--bg-base);
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-shutter-in-vertical:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #e1e1e1;
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
  -webkit-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-shutter-in-vertical:active,
.hvr-shutter-in-vertical:focus,
.hvr-shutter-in-vertical:hover {
  color: #fff;
}
.hvr-shutter-in-vertical:active:before,
.hvr-shutter-in-vertical:focus:before,
.hvr-shutter-in-vertical:hover:before {
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
}
.hvr-shutter-out-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #e1e1e1;
  -webkit-transition-property: color;
  transition-property: color;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-shutter-out-vertical:before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--bg-base);
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-shutter-out-vertical:active,
.hvr-shutter-out-vertical:focus,
.hvr-shutter-out-vertical:hover {
  color: #fff;
}
.hvr-shutter-out-vertical:active:before,
.hvr-shutter-out-vertical:focus:before,
.hvr-shutter-out-vertical:hover:before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}
.hvr-border-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: box-shadow;
  transition-property: box-shadow;
  box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px transparent;
}
.hvr-border-fade:active,
.hvr-border-fade:focus,
.hvr-border-fade:hover {
  box-shadow: inset 0 0 0 4px var(--bg-base), 0 0 1px transparent;
}
.hvr-hollow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: background;
  transition-property: background;
  box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px transparent;
}
.hvr-hollow:active,
.hvr-hollow:focus,
.hvr-hollow:hover {
  background: 0 0;
}
.hvr-trim {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-trim:before {
  content: '';
  position: absolute;
  border: #fff solid 4px;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  opacity: 0;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: opacity;
  transition-property: opacity;
}
.hvr-trim:active:before,
.hvr-trim:focus:before,
.hvr-trim:hover:before {
  opacity: 1;
}
@-webkit-keyframes hvr-ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0;
  }
}
@keyframes hvr-ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0;
  }
}
.hvr-ripple-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-ripple-out:before {
  content: '';
  position: absolute;
  border: #e1e1e1 solid 6px;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
}
.hvr-ripple-out:active:before,
.hvr-ripple-out:focus:before,
.hvr-ripple-out:hover:before {
  -webkit-animation-name: hvr-ripple-out;
  animation-name: hvr-ripple-out;
}
@-webkit-keyframes hvr-ripple-in {
  100% {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1;
  }
}
@keyframes hvr-ripple-in {
  100% {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1;
  }
}
.hvr-ripple-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-ripple-in:before {
  content: '';
  position: absolute;
  border: #e1e1e1 solid 4px;
  top: -12px;
  right: -12px;
  bottom: -12px;
  left: -12px;
  opacity: 0;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
}
.hvr-ripple-in:active:before,
.hvr-ripple-in:focus:before,
.hvr-ripple-in:hover:before {
  -webkit-animation-name: hvr-ripple-in;
  animation-name: hvr-ripple-in;
}
.hvr-outline-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-outline-out:before {
  content: '';
  position: absolute;
  border: #e1e1e1 solid 4px;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: top, right, bottom, left;
  transition-property: top, right, bottom, left;
}
.hvr-outline-out:active:before,
.hvr-outline-out:focus:before,
.hvr-outline-out:hover:before {
  top: -8px;
  right: -8px;
  bottom: -8px;
  left: -8px;
}
.hvr-outline-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-outline-in:before {
  pointer-events: none;
  content: '';
  position: absolute;
  border: #e1e1e1 solid 4px;
  top: -16px;
  right: -16px;
  bottom: -16px;
  left: -16px;
  opacity: 0;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: top, right, bottom, left;
  transition-property: top, right, bottom, left;
}
.hvr-outline-in:active:before,
.hvr-outline-in:focus:before,
.hvr-outline-in:hover:before {
  top: -8px;
  right: -8px;
  bottom: -8px;
  left: -8px;
  opacity: 1;
}
.hvr-round-corners {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: border-radius;
  transition-property: border-radius;
}
.hvr-round-corners:active,
.hvr-round-corners:focus,
.hvr-round-corners:hover {
  border-radius: 1em;
}
.hvr-underline-from-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-underline-from-left:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  right: 100%;
  bottom: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transition-property: right;
  transition-property: right;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-underline-from-left:active:before,
.hvr-underline-from-left:focus:before,
.hvr-underline-from-left:hover:before {
  right: 0;
}
.hvr-underline-from-center {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-underline-from-center:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 51%;
  right: 51%;
  bottom: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transition-property: left, right;
  transition-property: left, right;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-underline-from-center:active:before,
.hvr-underline-from-center:focus:before,
.hvr-underline-from-center:hover:before {
  left: 0;
  right: 0;
}
.hvr-underline-from-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-underline-from-right:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 100%;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transition-property: left;
  transition-property: left;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-underline-from-right:active:before,
.hvr-underline-from-right:focus:before,
.hvr-underline-from-right:hover:before {
  left: 0;
}
.hvr-overline-from-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-overline-from-left:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  right: 100%;
  top: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transition-property: right;
  transition-property: right;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-overline-from-left:active:before,
.hvr-overline-from-left:focus:before,
.hvr-overline-from-left:hover:before {
  right: 0;
}
.hvr-overline-from-center {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-overline-from-center:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 51%;
  right: 51%;
  top: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transition-property: left, right;
  transition-property: left, right;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-overline-from-center:active:before,
.hvr-overline-from-center:focus:before,
.hvr-overline-from-center:hover:before {
  left: 0;
  right: 0;
}
.hvr-overline-from-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-overline-from-right:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 100%;
  right: 0;
  top: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transition-property: left;
  transition-property: left;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-overline-from-right:active:before,
.hvr-overline-from-right:focus:before,
.hvr-overline-from-right:hover:before {
  left: 0;
}
.hvr-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-reveal:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  border-color: var(--bg-base);
  border-style: solid;
  border-width: 0;
  -webkit-transition-property: border-width;
  transition-property: border-width;
  -webkit-transition-duration: 0.1s;
  transition-duration: 0.1s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-reveal:active:before,
.hvr-reveal:focus:before,
.hvr-reveal:hover:before {
  -webkit-transform: translateY(0);
  transform: translateY(0);
  border-width: 4px;
}
.hvr-underline-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-underline-reveal:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transform: translateY(4px);
  transform: translateY(4px);
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-underline-reveal:active:before,
.hvr-underline-reveal:focus:before,
.hvr-underline-reveal:hover:before {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}
.hvr-overline-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
}
.hvr-overline-reveal:before {
  content: '';
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  top: 0;
  background: var(--bg-base);
  height: 4px;
  -webkit-transform: translateY(-4px);
  transform: translateY(-4px);
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-overline-reveal:active:before,
.hvr-overline-reveal:focus:before,
.hvr-overline-reveal:hover:before {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}
.hvr-glow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: box-shadow;
  transition-property: box-shadow;
}
.hvr-glow:active,
.hvr-glow:focus,
.hvr-glow:hover {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
.hvr-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: box-shadow;
  transition-property: box-shadow;
}
.hvr-shadow:active,
.hvr-shadow:focus,
.hvr-shadow:hover {
  box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5);
}
.hvr-grow-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: box-shadow, transform;
  transition-property: box-shadow, transform;
}
.hvr-grow-shadow:active,
.hvr-grow-shadow:focus,
.hvr-grow-shadow:hover {
  box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5);
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.hvr-box-shadow-outset {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: box-shadow;
  transition-property: box-shadow;
}
.hvr-box-shadow-outset:active,
.hvr-box-shadow-outset:focus,
.hvr-box-shadow-outset:hover {
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6);
}
.hvr-box-shadow-inset {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: box-shadow;
  transition-property: box-shadow;
  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0.6), 0 0 1px transparent;
}
.hvr-box-shadow-inset:active,
.hvr-box-shadow-inset:focus,
.hvr-box-shadow-inset:hover {
  box-shadow: inset 2px 2px 2px rgba(0, 0, 0, 0.6), 0 0 1px transparent;
}
.hvr-float-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-float-shadow:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  top: 100%;
  left: 5%;
  height: 10px;
  width: 90%;
  opacity: 0;
  background: -webkit-radial-gradient(
    center,
    ellipse,
    rgba(0, 0, 0, 0.35) 0,
    rgba(0, 0, 0, 0) 80%
  );
  background: radial-gradient(
    ellipse at center,
    rgba(0, 0, 0, 0.35) 0,
    rgba(0, 0, 0, 0) 80%
  );
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform, opacity;
  transition-property: transform, opacity;
}
.hvr-float-shadow:active,
.hvr-float-shadow:focus,
.hvr-float-shadow:hover {
  -webkit-transform: translateY(-5px);
  transform: translateY(-5px);
}
.hvr-float-shadow:active:before,
.hvr-float-shadow:focus:before,
.hvr-float-shadow:hover:before {
  opacity: 1;
  -webkit-transform: translateY(5px);
  transform: translateY(5px);
}
.hvr-shadow-radial {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-shadow-radial:after,
.hvr-shadow-radial:before {
  pointer-events: none;
  position: absolute;
  content: '';
  left: 0;
  width: 100%;
  box-sizing: border-box;
  height: 5px;
  opacity: 0;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: opacity;
  transition-property: opacity;
}
.hvr-shadow-radial:before {
  bottom: 100%;
  background: -webkit-radial-gradient(
    50% 150%,
    ellipse,
    rgba(0, 0, 0, 0.6) 0,
    rgba(0, 0, 0, 0) 80%
  );
  background: radial-gradient(
    ellipse at 50% 150%,
    rgba(0, 0, 0, 0.6) 0,
    rgba(0, 0, 0, 0) 80%
  );
}
.hvr-shadow-radial:after {
  top: 100%;
  background: -webkit-radial-gradient(
    50% -50%,
    ellipse,
    rgba(0, 0, 0, 0.6) 0,
    rgba(0, 0, 0, 0) 80%
  );
  background: radial-gradient(
    ellipse at 50% -50%,
    rgba(0, 0, 0, 0.6) 0,
    rgba(0, 0, 0, 0) 80%
  );
}
.hvr-shadow-radial:active:after,
.hvr-shadow-radial:active:before,
.hvr-shadow-radial:focus:after,
.hvr-shadow-radial:focus:before,
.hvr-shadow-radial:hover:after,
.hvr-shadow-radial:hover:before {
  opacity: 1;
}
.hvr-bubble-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-bubble-top:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  left: calc(50% - 10px);
  top: 0;
  border-width: 0 10px 10px;
  border-color: transparent transparent #e1e1e1;
}
.hvr-bubble-top:active:before,
.hvr-bubble-top:focus:before,
.hvr-bubble-top:hover:before {
  -webkit-transform: translateY(-10px);
  transform: translateY(-10px);
}
.hvr-bubble-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-bubble-right:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  top: calc(50% - 10px);
  right: 0;
  border-width: 10px 0 10px 10px;
  border-color: transparent transparent transparent #e1e1e1;
}
.hvr-bubble-right:active:before,
.hvr-bubble-right:focus:before,
.hvr-bubble-right:hover:before {
  -webkit-transform: translateX(10px);
  transform: translateX(10px);
}
.hvr-bubble-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-bubble-bottom:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  left: calc(50% - 10px);
  bottom: 0;
  border-width: 10px 10px 0;
  border-color: #e1e1e1 transparent transparent;
}
.hvr-bubble-bottom:active:before,
.hvr-bubble-bottom:focus:before,
.hvr-bubble-bottom:hover:before {
  -webkit-transform: translateY(10px);
  transform: translateY(10px);
}
.hvr-bubble-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-bubble-left:before {
  pointer-events: none;
  position: absolute;
  z-index: -1;
  content: '';
  border-style: solid;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  top: calc(50% - 10px);
  left: 0;
  border-width: 10px 10px 10px 0;
  border-color: transparent #e1e1e1 transparent transparent;
}
.hvr-bubble-left:active:before,
.hvr-bubble-left:focus:before,
.hvr-bubble-left:hover:before {
  -webkit-transform: translateX(-10px);
  transform: translateX(-10px);
}
.hvr-bubble-float-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-top:before {
  position: absolute;
  z-index: -1;
  content: '';
  left: calc(50% - 10px);
  top: 0;
  border-style: solid;
  border-width: 0 10px 10px;
  border-color: transparent transparent #e1e1e1;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-top:active,
.hvr-bubble-float-top:focus,
.hvr-bubble-float-top:hover {
  -webkit-transform: translateY(10px);
  transform: translateY(10px);
}
.hvr-bubble-float-top:active:before,
.hvr-bubble-float-top:focus:before,
.hvr-bubble-float-top:hover:before {
  -webkit-transform: translateY(-10px);
  transform: translateY(-10px);
}
.hvr-bubble-float-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-right:before {
  position: absolute;
  z-index: -1;
  top: calc(50% - 10px);
  right: 0;
  content: '';
  border-style: solid;
  border-width: 10px 0 10px 10px;
  border-color: transparent transparent transparent #e1e1e1;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-right:active,
.hvr-bubble-float-right:focus,
.hvr-bubble-float-right:hover {
  -webkit-transform: translateX(-10px);
  transform: translateX(-10px);
}
.hvr-bubble-float-right:active:before,
.hvr-bubble-float-right:focus:before,
.hvr-bubble-float-right:hover:before {
  -webkit-transform: translateX(10px);
  transform: translateX(10px);
}
.hvr-bubble-float-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-bottom:before {
  position: absolute;
  z-index: -1;
  content: '';
  left: calc(50% - 10px);
  bottom: 0;
  border-style: solid;
  border-width: 10px 10px 0;
  border-color: #e1e1e1 transparent transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-bottom:active,
.hvr-bubble-float-bottom:focus,
.hvr-bubble-float-bottom:hover {
  -webkit-transform: translateY(-10px);
  transform: translateY(-10px);
}
.hvr-bubble-float-bottom:active:before,
.hvr-bubble-float-bottom:focus:before,
.hvr-bubble-float-bottom:hover:before {
  -webkit-transform: translateY(10px);
  transform: translateY(10px);
}
.hvr-bubble-float-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-left:before {
  position: absolute;
  z-index: -1;
  content: '';
  top: calc(50% - 10px);
  left: 0;
  border-style: solid;
  border-width: 10px 10px 10px 0;
  border-color: transparent #e1e1e1 transparent transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
}
.hvr-bubble-float-left:active,
.hvr-bubble-float-left:focus,
.hvr-bubble-float-left:hover {
  -webkit-transform: translateX(10px);
  transform: translateX(10px);
}
.hvr-bubble-float-left:active:before,
.hvr-bubble-float-left:focus:before,
.hvr-bubble-float-left:hover:before {
  -webkit-transform: translateX(-10px);
  transform: translateX(-10px);
}
.hvr-icon-back {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.1s;
  transition-duration: 0.1s;
}
.hvr-icon-back .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.1s;
  transition-duration: 0.1s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-back:active .hvr-icon,
.hvr-icon-back:focus .hvr-icon,
.hvr-icon-back:hover .hvr-icon {
  -webkit-transform: translateX(-4px);
  transform: translateX(-4px);
}
.hvr-icon-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.1s;
  transition-duration: 0.1s;
}
.hvr-icon-forward .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.1s;
  transition-duration: 0.1s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-forward:active .hvr-icon,
.hvr-icon-forward:focus .hvr-icon,
.hvr-icon-forward:hover .hvr-icon {
  -webkit-transform: translateX(4px);
  transform: translateX(4px);
}
@-webkit-keyframes hvr-icon-down {
  0%,
  100%,
  50% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  25%,
  75% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
}
@keyframes hvr-icon-down {
  0%,
  100%,
  50% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  25%,
  75% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
}
.hvr-icon-down {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-down .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-down:active .hvr-icon,
.hvr-icon-down:focus .hvr-icon,
.hvr-icon-down:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-down;
  animation-name: hvr-icon-down;
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}
@-webkit-keyframes hvr-icon-up {
  0%,
  100%,
  50% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  25%,
  75% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
}
@keyframes hvr-icon-up {
  0%,
  100%,
  50% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  25%,
  75% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
}
.hvr-icon-up {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-up .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-up:active .hvr-icon,
.hvr-icon-up:focus .hvr-icon,
.hvr-icon-up:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-up;
  animation-name: hvr-icon-up;
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}
.hvr-icon-spin {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-spin .hvr-icon {
  -webkit-transition-duration: 1s;
  transition-duration: 1s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-in-out;
  transition-timing-function: ease-in-out;
}
.hvr-icon-spin:active .hvr-icon,
.hvr-icon-spin:focus .hvr-icon,
.hvr-icon-spin:hover .hvr-icon {
  -webkit-transform: rotate(360deg);
  transform: rotate(360deg);
}
@-webkit-keyframes hvr-icon-drop {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }
  100%,
  51% {
    opacity: 1;
  }
}
@keyframes hvr-icon-drop {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }
  100%,
  51% {
    opacity: 1;
  }
}
.hvr-icon-drop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-drop .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-drop:active .hvr-icon,
.hvr-icon-drop:focus .hvr-icon,
.hvr-icon-drop:hover .hvr-icon {
  opacity: 0;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-animation-name: hvr-icon-drop;
  animation-name: hvr-icon-drop;
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-delay: 0.3s;
  animation-delay: 0.3s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
  animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}
.hvr-icon-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-fade .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  -webkit-transition-property: color;
  transition-property: color;
}
.hvr-icon-fade:active .hvr-icon,
.hvr-icon-fade:focus .hvr-icon,
.hvr-icon-fade:hover .hvr-icon {
  color: #0f9e5e;
}
@-webkit-keyframes hvr-icon-float-away {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-1em);
    transform: translateY(-1em);
  }
}
@keyframes hvr-icon-float-away {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-1em);
    transform: translateY(-1em);
  }
}
.hvr-icon-float-away {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-float-away .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
.hvr-icon-float-away:active .hvr-icon,
.hvr-icon-float-away:focus .hvr-icon,
.hvr-icon-float-away:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-float-away;
  animation-name: hvr-icon-float-away;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}
@-webkit-keyframes hvr-icon-sink-away {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(1em);
    transform: translateY(1em);
  }
}
@keyframes hvr-icon-sink-away {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(1em);
    transform: translateY(1em);
  }
}
.hvr-icon-sink-away {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-sink-away .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
.hvr-icon-sink-away:active .hvr-icon,
.hvr-icon-sink-away:focus .hvr-icon,
.hvr-icon-sink-away:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-sink-away;
  animation-name: hvr-icon-sink-away;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}
.hvr-icon-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-grow .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-grow:active .hvr-icon,
.hvr-icon-grow:focus .hvr-icon,
.hvr-icon-grow:hover .hvr-icon {
  -webkit-transform: scale(1.3) translateZ(0);
  transform: scale(1.3) translateZ(0);
}
.hvr-icon-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-shrink .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-shrink:active .hvr-icon,
.hvr-icon-shrink:focus .hvr-icon,
.hvr-icon-shrink:hover .hvr-icon {
  -webkit-transform: scale(0.8);
  transform: scale(0.8);
}
@-webkit-keyframes hvr-icon-pulse {
  25% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
  75% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
}
@keyframes hvr-icon-pulse {
  25% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
  75% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
}
.hvr-icon-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-pulse .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-pulse:active .hvr-icon,
.hvr-icon-pulse:focus .hvr-icon,
.hvr-icon-pulse:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-pulse;
  animation-name: hvr-icon-pulse;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}
@-webkit-keyframes hvr-icon-pulse-grow {
  to {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
}
@keyframes hvr-icon-pulse-grow {
  to {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
}
.hvr-icon-pulse-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-pulse-grow .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-pulse-grow:active .hvr-icon,
.hvr-icon-pulse-grow:focus .hvr-icon,
.hvr-icon-pulse-grow:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-pulse-grow;
  animation-name: hvr-icon-pulse-grow;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
  animation-direction: alternate;
}
@-webkit-keyframes hvr-icon-pulse-shrink {
  to {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
}
@keyframes hvr-icon-pulse-shrink {
  to {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
}
.hvr-icon-pulse-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
}
.hvr-icon-pulse-shrink .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-pulse-shrink:active .hvr-icon,
.hvr-icon-pulse-shrink:focus .hvr-icon,
.hvr-icon-pulse-shrink:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-pulse-shrink;
  animation-name: hvr-icon-pulse-shrink;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: alternate;
  animation-direction: alternate;
}
@-webkit-keyframes hvr-icon-push {
  50% {
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
  }
}
@keyframes hvr-icon-push {
  50% {
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
  }
}
.hvr-icon-push {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-push .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-push:active .hvr-icon,
.hvr-icon-push:focus .hvr-icon,
.hvr-icon-push:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-push;
  animation-name: hvr-icon-push;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-icon-pop {
  50% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
  }
}
@keyframes hvr-icon-pop {
  50% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
  }
}
.hvr-icon-pop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-pop .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-pop:active .hvr-icon,
.hvr-icon-pop:focus .hvr-icon,
.hvr-icon-pop:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-pop;
  animation-name: hvr-icon-pop;
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
.hvr-icon-bounce {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-bounce .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-bounce:active .hvr-icon,
.hvr-icon-bounce:focus .hvr-icon,
.hvr-icon-bounce:hover .hvr-icon {
  -webkit-transform: scale(1.5);
  transform: scale(1.5);
  -webkit-transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
  transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36);
}
.hvr-icon-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-rotate .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-rotate:active .hvr-icon,
.hvr-icon-rotate:focus .hvr-icon,
.hvr-icon-rotate:hover .hvr-icon {
  -webkit-transform: rotate(20deg);
  transform: rotate(20deg);
}
.hvr-icon-grow-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-grow-rotate .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-grow-rotate:active .hvr-icon,
.hvr-icon-grow-rotate:focus .hvr-icon,
.hvr-icon-grow-rotate:hover .hvr-icon {
  -webkit-transform: scale(1.5) rotate(12deg);
  transform: scale(1.5) rotate(12deg);
}
.hvr-icon-float {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-float .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-float:active .hvr-icon,
.hvr-icon-float:focus .hvr-icon,
.hvr-icon-float:hover .hvr-icon {
  -webkit-transform: translateY(-4px);
  transform: translateY(-4px);
}
.hvr-icon-sink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-sink .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.hvr-icon-sink:active .hvr-icon,
.hvr-icon-sink:focus .hvr-icon,
.hvr-icon-sink:hover .hvr-icon {
  -webkit-transform: translateY(4px);
  transform: translateY(4px);
}
@-webkit-keyframes hvr-icon-bob {
  0% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  50% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
}
@keyframes hvr-icon-bob {
  0% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
  50% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
}
@-webkit-keyframes hvr-icon-bob-float {
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
}
@keyframes hvr-icon-bob-float {
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px);
  }
}
.hvr-icon-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-bob .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-bob:active .hvr-icon,
.hvr-icon-bob:focus .hvr-icon,
.hvr-icon-bob:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-bob-float, hvr-icon-bob;
  animation-name: hvr-icon-bob-float, hvr-icon-bob;
  -webkit-animation-duration: 0.3s, 1.5s;
  animation-duration: 0.3s, 1.5s;
  -webkit-animation-delay: 0s, 0.3s;
  animation-delay: 0s, 0.3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
  animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
  animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
  animation-direction: normal, alternate;
}
@-webkit-keyframes hvr-icon-hang {
  0% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
  50% {
    -webkit-transform: translateY(2px);
    transform: translateY(2px);
  }
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
}
@keyframes hvr-icon-hang {
  0% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
  50% {
    -webkit-transform: translateY(2px);
    transform: translateY(2px);
  }
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
}
@-webkit-keyframes hvr-icon-hang-sink {
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
}
@keyframes hvr-icon-hang-sink {
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
}
.hvr-icon-hang {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-hang .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-hang:active .hvr-icon,
.hvr-icon-hang:focus .hvr-icon,
.hvr-icon-hang:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-hang-sink, hvr-icon-hang;
  animation-name: hvr-icon-hang-sink, hvr-icon-hang;
  -webkit-animation-duration: 0.3s, 1.5s;
  animation-duration: 0.3s, 1.5s;
  -webkit-animation-delay: 0s, 0.3s;
  animation-delay: 0s, 0.3s;
  -webkit-animation-timing-function: ease-out, ease-in-out;
  animation-timing-function: ease-out, ease-in-out;
  -webkit-animation-iteration-count: 1, infinite;
  animation-iteration-count: 1, infinite;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-direction: normal, alternate;
  animation-direction: normal, alternate;
}
@-webkit-keyframes hvr-icon-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(6px);
    transform: translateX(6px);
  }
  33.3% {
    -webkit-transform: translateX(-5px);
    transform: translateX(-5px);
  }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px);
  }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px);
  }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes hvr-icon-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(6px);
    transform: translateX(6px);
  }
  33.3% {
    -webkit-transform: translateX(-5px);
    transform: translateX(-5px);
  }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px);
  }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px);
  }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
.hvr-icon-wobble-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-wobble-horizontal .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-wobble-horizontal:active .hvr-icon,
.hvr-icon-wobble-horizontal:focus .hvr-icon,
.hvr-icon-wobble-horizontal:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-wobble-horizontal;
  animation-name: hvr-icon-wobble-horizontal;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-icon-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
  33.3% {
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px);
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
@keyframes hvr-icon-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
  }
  33.3% {
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px);
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px);
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px);
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}
.hvr-icon-wobble-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-wobble-vertical .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-wobble-vertical:active .hvr-icon,
.hvr-icon-wobble-vertical:focus .hvr-icon,
.hvr-icon-wobble-vertical:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-wobble-vertical;
  animation-name: hvr-icon-wobble-vertical;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
@-webkit-keyframes hvr-icon-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
}
@keyframes hvr-icon-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
}
.hvr-icon-buzz {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-buzz .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-buzz:active .hvr-icon,
.hvr-icon-buzz:focus .hvr-icon,
.hvr-icon-buzz:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-buzz;
  animation-name: hvr-icon-buzz;
  -webkit-animation-duration: 0.15s;
  animation-duration: 0.15s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}
@-webkit-keyframes hvr-icon-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}
@keyframes hvr-icon-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg);
  }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg);
  }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg);
  }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg);
  }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0);
  }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0);
  }
}
.hvr-icon-buzz-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
}
.hvr-icon-buzz-out .hvr-icon {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.hvr-icon-buzz-out:active .hvr-icon,
.hvr-icon-buzz-out:focus .hvr-icon,
.hvr-icon-buzz-out:hover .hvr-icon {
  -webkit-animation-name: hvr-icon-buzz-out;
  animation-name: hvr-icon-buzz-out;
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
}
.hvr-curl-top-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-curl-top-left:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  top: 0;
  left: 0;
  background: #fff;
  background: linear-gradient(135deg, #fff 45%, #aaa 50%, #ccc 56%, #fff 80%);
  z-index: 1000;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: width, height;
  transition-property: width, height;
}
.hvr-curl-top-left:active:before,
.hvr-curl-top-left:focus:before,
.hvr-curl-top-left:hover:before {
  width: 25px;
  height: 25px;
}
.hvr-curl-top-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-curl-top-right:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  top: 0;
  right: 0;
  background: #fff;
  background: linear-gradient(225deg, #fff 45%, #aaa 50%, #ccc 56%, #fff 80%);
  box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.4);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: width, height;
  transition-property: width, height;
}
.hvr-curl-top-right:active:before,
.hvr-curl-top-right:focus:before,
.hvr-curl-top-right:hover:before {
  width: 25px;
  height: 25px;
}
.hvr-curl-bottom-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-curl-bottom-right:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  bottom: 0;
  right: 0;
  background: #fff;
  background: linear-gradient(315deg, #fff 45%, #aaa 50%, #ccc 56%, #fff 80%);
  box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.4);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: width, height;
  transition-property: width, height;
}
.hvr-curl-bottom-right:active:before,
.hvr-curl-bottom-right:focus:before,
.hvr-curl-bottom-right:hover:before {
  width: 25px;
  height: 25px;
}
.hvr-curl-bottom-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
}
.hvr-curl-bottom-left:before {
  pointer-events: none;
  position: absolute;
  content: '';
  height: 0;
  width: 0;
  bottom: 0;
  left: 0;
  background: #fff;
  background: linear-gradient(45deg, #fff 45%, #aaa 50%, #ccc 56%, #fff 80%);
  box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.4);
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-property: width, height;
  transition-property: width, height;
}
.hvr-curl-bottom-left:active:before,
.hvr-curl-bottom-left:focus:before,
.hvr-curl-bottom-left:hover:before {
  width: 25px;
  height: 25px;
}

/*! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com*/
*,
:after,
:before {
  box-sizing: border-box;
  border: 0 solid #e5e7eb;
}
:after,
:before {
  --tw-content: '';
}
html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif,
    Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
  font-feature-settings: normal;
  font-variation-settings: normal;
}
body {
  margin: 0;
  line-height: inherit;
}
hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}
abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
a {
  color: blue;
  text-decoration: inherit;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
pre,
samp {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    Liberation Mono, Courier New, monospace;
  font-size: 1em;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: initial;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}
button,
select {
  text-transform: none;
}
[type='button'],
[type='reset'],
[type='submit'],
button {
  -webkit-appearance: button;
  background-color: initial;
  background-image: none;
}
:-moz-focusring {
  outline: auto;
}
:-moz-ui-invalid {
  box-shadow: none;
}
progress {
  vertical-align: initial;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
summary {
  display: list-item;
}
blockquote,
dd,
dl,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
p,
pre {
  margin: 0;
}
fieldset {
  margin: 0;
}
fieldset,
legend {
  padding: 0;
}
menu,
ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
textarea {
  resize: vertical;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
  opacity: 1;
  color: #9ca3af;
}
input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}
[role='button'],
button {
  cursor: pointer;
}
:disabled {
  cursor: default;
}
audio,
canvas,
embed,
iframe,
img,
object,
svg,
video {
  display: block;
  vertical-align: middle;
}
img,
video {
  max-width: 100%;
  height: auto;
}
[hidden] {
  display: none;
}
*,
::backdrop,
:after,
:before {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: #3b82f680;
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
}
.container {
  width: 100%;
}
@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}
.prose {
  color: var(--tw-prose-body);
  max-width: 65ch;
}
.prose :where(p):not(:where([class~='not-prose'] *)) {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
}
.prose :where([class~='lead']):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-lead);
  font-size: 1.25em;
  line-height: 1.6;
  margin-top: 1.2em;
  margin-bottom: 1.2em;
}
.prose :where(a):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-links);
  text-decoration: underline;
  font-weight: 500;
}
.prose :where(strong):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-bold);
  font-weight: 600;
}
.prose :where(a strong):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(blockquote strong):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(thead th strong):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(ol):not(:where([class~='not-prose'] *)) {
  list-style-type: decimal;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  padding-left: 1.625em;
}
.prose :where(ol[type='A']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-alpha;
}
.prose :where(ol[type='a']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-alpha;
}
.prose :where(ol[type='A s']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-alpha;
}
.prose :where(ol[type='a s']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-alpha;
}
.prose :where(ol[type='I']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-roman;
}
.prose :where(ol[type='i']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-roman;
}
.prose :where(ol[type='I s']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-roman;
}
.prose :where(ol[type='i s']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-roman;
}
.prose :where(ol[type='1']):not(:where([class~='not-prose'] *)) {
  list-style-type: decimal;
}
.prose :where(ul):not(:where([class~='not-prose'] *)) {
  list-style-type: disc;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  padding-left: 1.625em;
}
.prose :where(ol > li):not(:where([class~='not-prose'] *))::marker {
  font-weight: 400;
  color: var(--tw-prose-counters);
}
.prose :where(ul > li):not(:where([class~='not-prose'] *))::marker {
  color: var(--tw-prose-bullets);
}
.prose :where(hr):not(:where([class~='not-prose'] *)) {
  border-color: var(--tw-prose-hr);
  border-top-width: 1px;
  margin-top: 3em;
  margin-bottom: 3em;
}
.prose :where(blockquote):not(:where([class~='not-prose'] *)) {
  font-weight: 500;
  font-style: italic;
  color: var(--tw-prose-quotes);
  border-left-width: 0.25rem;
  border-left-color: var(--tw-prose-quote-borders);
  quotes: '\201C''\201D''\2018''\2019';
  margin-top: 1.6em;
  margin-bottom: 1.6em;
  padding-left: 1em;
}
.prose
  :where(blockquote p:first-of-type):not(
    :where([class~='not-prose'] *)
  ):before {
  content: open-quote;
}
.prose
  :where(blockquote p:last-of-type):not(:where([class~='not-prose'] *)):after {
  content: close-quote;
}
.prose :where(h1):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 800;
  font-size: 2.25em;
  margin-top: 0;
  margin-bottom: 0.8888889em;
  line-height: 1.1111111;
}
.prose :where(h1 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 900;
  color: inherit;
}
.prose :where(h2):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 700;
  font-size: 1.5em;
  margin-top: 2em;
  margin-bottom: 1em;
  line-height: 1.3333333;
}
.prose :where(h2 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 800;
  color: inherit;
}
.prose :where(h3):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 600;
  font-size: 1.25em;
  margin-top: 1.6em;
  margin-bottom: 0.6em;
  line-height: 1.6;
}
.prose :where(h3 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 700;
  color: inherit;
}
.prose :where(h4):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 600;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  line-height: 1.5;
}
.prose :where(h4 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 700;
  color: inherit;
}
.prose :where(img):not(:where([class~='not-prose'] *)) {
  margin-top: 2em;
  margin-bottom: 2em;
}
.prose :where(figure > *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
  margin-bottom: 0;
}
.prose :where(figcaption):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-captions);
  font-size: 0.875em;
  line-height: 1.4285714;
  margin-top: 0.8571429em;
}
.prose :where(code):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-code);
  font-weight: 600;
  font-size: 0.875em;
}
.prose :where(code):not(:where([class~='not-prose'] *)):before {
  content: '`';
}
.prose :where(code):not(:where([class~='not-prose'] *)):after {
  content: '`';
}
.prose :where(a code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(h1 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(h2 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
  font-size: 0.875em;
}
.prose :where(h3 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
  font-size: 0.9em;
}
.prose :where(h4 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(blockquote code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(thead th code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
.prose :where(pre):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-pre-code);
  background-color: var(--tw-prose-pre-bg);
  overflow-x: auto;
  font-weight: 400;
  font-size: 0.875em;
  line-height: 1.7142857;
  margin-top: 1.7142857em;
  margin-bottom: 1.7142857em;
  border-radius: 0.375rem;
  padding: 0.8571429em 1.1428571em;
}
.prose :where(pre code):not(:where([class~='not-prose'] *)) {
  background-color: initial;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-weight: inherit;
  color: inherit;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}
.prose :where(pre code):not(:where([class~='not-prose'] *)):before {
  content: none;
}
.prose :where(pre code):not(:where([class~='not-prose'] *)):after {
  content: none;
}
.prose :where(table):not(:where([class~='not-prose'] *)) {
  width: 100%;
  table-layout: auto;
  text-align: left;
  margin-top: 2em;
  margin-bottom: 2em;
  font-size: 0.875em;
  line-height: 1.7142857;
}
.prose :where(thead):not(:where([class~='not-prose'] *)) {
  border-bottom-width: 1px;
  border-bottom-color: var(--tw-prose-th-borders);
}
.prose :where(thead th):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 600;
  vertical-align: bottom;
  padding-right: 0.5714286em;
  padding-bottom: 0.5714286em;
  padding-left: 0.5714286em;
}
.prose :where(tbody tr):not(:where([class~='not-prose'] *)) {
  border-bottom-width: 1px;
  border-bottom-color: var(--tw-prose-td-borders);
}
.prose :where(tbody tr:last-child):not(:where([class~='not-prose'] *)) {
  border-bottom-width: 0;
}
.prose :where(tbody td):not(:where([class~='not-prose'] *)) {
  vertical-align: initial;
}
.prose :where(tfoot):not(:where([class~='not-prose'] *)) {
  border-top-width: 1px;
  border-top-color: var(--tw-prose-th-borders);
}
.prose :where(tfoot td):not(:where([class~='not-prose'] *)) {
  vertical-align: top;
}
.prose {
  --tw-prose-body: #374151;
  --tw-prose-headings: #111827;
  --tw-prose-lead: #4b5563;
  --tw-prose-links: #111827;
  --tw-prose-bold: #111827;
  --tw-prose-counters: #6b7280;
  --tw-prose-bullets: #d1d5db;
  --tw-prose-hr: #e5e7eb;
  --tw-prose-quotes: #111827;
  --tw-prose-quote-borders: #e5e7eb;
  --tw-prose-captions: #6b7280;
  --tw-prose-code: #111827;
  --tw-prose-pre-code: #e5e7eb;
  --tw-prose-pre-bg: #1f2937;
  --tw-prose-th-borders: #d1d5db;
  --tw-prose-td-borders: #e5e7eb;
  --tw-prose-invert-body: #d1d5db;
  --tw-prose-invert-headings: #fff;
  --tw-prose-invert-lead: #9ca3af;
  --tw-prose-invert-links: #fff;
  --tw-prose-invert-bold: #fff;
  --tw-prose-invert-counters: #9ca3af;
  --tw-prose-invert-bullets: #4b5563;
  --tw-prose-invert-hr: #374151;
  --tw-prose-invert-quotes: #f3f4f6;
  --tw-prose-invert-quote-borders: #374151;
  --tw-prose-invert-captions: #9ca3af;
  --tw-prose-invert-code: #fff;
  --tw-prose-invert-pre-code: #d1d5db;
  --tw-prose-invert-pre-bg: #00000080;
  --tw-prose-invert-th-borders: #4b5563;
  --tw-prose-invert-td-borders: #374151;
  font-size: 1rem;
  line-height: 1.75;
}
.prose :where(video):not(:where([class~='not-prose'] *)) {
  margin-top: 2em;
  margin-bottom: 2em;
}
.prose :where(figure):not(:where([class~='not-prose'] *)) {
  margin-top: 2em;
  margin-bottom: 2em;
}
.prose :where(li):not(:where([class~='not-prose'] *)) {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.prose :where(ol > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.375em;
}
.prose :where(ul > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.375em;
}
.prose :where(.prose > ul > li p):not(:where([class~='not-prose'] *)) {
  margin-top: 0.75em;
  margin-bottom: 0.75em;
}
.prose
  :where(.prose > ul > li > :first-child):not(:where([class~='not-prose'] *)) {
  margin-top: 1.25em;
}
.prose
  :where(.prose > ul > li > :last-child):not(:where([class~='not-prose'] *)) {
  margin-bottom: 1.25em;
}
.prose
  :where(.prose > ol > li > :first-child):not(:where([class~='not-prose'] *)) {
  margin-top: 1.25em;
}
.prose
  :where(.prose > ol > li > :last-child):not(:where([class~='not-prose'] *)) {
  margin-bottom: 1.25em;
}
.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) {
  margin-top: 0.75em;
  margin-bottom: 0.75em;
}
.prose :where(hr + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose :where(h2 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose :where(h3 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose :where(h4 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose :where(thead th:first-child):not(:where([class~='not-prose'] *)) {
  padding-left: 0;
}
.prose :where(thead th:last-child):not(:where([class~='not-prose'] *)) {
  padding-right: 0;
}
.prose :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) {
  padding: 0.5714286em;
}
.prose
  :where(tbody td:first-child, tfoot td:first-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-left: 0;
}
.prose
  :where(tbody td:last-child, tfoot td:last-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-right: 0;
}
.prose :where(.prose > :first-child):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose :where(.prose > :last-child):not(:where([class~='not-prose'] *)) {
  margin-bottom: 0;
}
.prose-sm {
  font-size: 0.875rem;
  line-height: 1.7142857;
}
.prose-sm :where(p):not(:where([class~='not-prose'] *)) {
  margin-top: 1.1428571em;
  margin-bottom: 1.1428571em;
}
.prose-sm :where([class~='lead']):not(:where([class~='not-prose'] *)) {
  font-size: 1.2857143em;
  line-height: 1.5555556;
  margin-top: 0.8888889em;
  margin-bottom: 0.8888889em;
}
.prose-sm :where(blockquote):not(:where([class~='not-prose'] *)) {
  margin-top: 1.3333333em;
  margin-bottom: 1.3333333em;
  padding-left: 1.1111111em;
}
.prose-sm :where(h1):not(:where([class~='not-prose'] *)) {
  font-size: 2.1428571em;
  margin-top: 0;
  margin-bottom: 0.8em;
  line-height: 1.2;
}
.prose-sm :where(h2):not(:where([class~='not-prose'] *)) {
  font-size: 1.4285714em;
  margin-top: 1.6em;
  margin-bottom: 0.8em;
  line-height: 1.4;
}
.prose-sm :where(h3):not(:where([class~='not-prose'] *)) {
  font-size: 1.2857143em;
  margin-top: 1.5555556em;
  margin-bottom: 0.4444444em;
  line-height: 1.5555556;
}
.prose-sm :where(h4):not(:where([class~='not-prose'] *)) {
  margin-top: 1.4285714em;
  margin-bottom: 0.5714286em;
  line-height: 1.4285714;
}
.prose-sm :where(img):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7142857em;
  margin-bottom: 1.7142857em;
}
.prose-sm :where(video):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7142857em;
  margin-bottom: 1.7142857em;
}
.prose-sm :where(figure):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7142857em;
  margin-bottom: 1.7142857em;
}
.prose-sm :where(figure > *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
  margin-bottom: 0;
}
.prose-sm :where(figcaption):not(:where([class~='not-prose'] *)) {
  font-size: 0.8571429em;
  line-height: 1.3333333;
  margin-top: 0.6666667em;
}
.prose-sm :where(code):not(:where([class~='not-prose'] *)) {
  font-size: 0.8571429em;
}
.prose-sm :where(h2 code):not(:where([class~='not-prose'] *)) {
  font-size: 0.9em;
}
.prose-sm :where(h3 code):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
}
.prose-sm :where(pre):not(:where([class~='not-prose'] *)) {
  font-size: 0.8571429em;
  line-height: 1.6666667;
  margin-top: 1.6666667em;
  margin-bottom: 1.6666667em;
  border-radius: 0.25rem;
  padding: 0.6666667em 1em;
}
.prose-sm :where(ol):not(:where([class~='not-prose'] *)) {
  margin-top: 1.1428571em;
  margin-bottom: 1.1428571em;
  padding-left: 1.5714286em;
}
.prose-sm :where(ul):not(:where([class~='not-prose'] *)) {
  margin-top: 1.1428571em;
  margin-bottom: 1.1428571em;
  padding-left: 1.5714286em;
}
.prose-sm :where(li):not(:where([class~='not-prose'] *)) {
  margin-top: 0.2857143em;
  margin-bottom: 0.2857143em;
}
.prose-sm :where(ol > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.4285714em;
}
.prose-sm :where(ul > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.4285714em;
}
.prose-sm :where(.prose-sm > ul > li p):not(:where([class~='not-prose'] *)) {
  margin-top: 0.5714286em;
  margin-bottom: 0.5714286em;
}
.prose-sm
  :where(.prose-sm > ul > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.1428571em;
}
.prose-sm
  :where(.prose-sm > ul > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.1428571em;
}
.prose-sm
  :where(.prose-sm > ol > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.1428571em;
}
.prose-sm
  :where(.prose-sm > ol > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.1428571em;
}
.prose-sm
  :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) {
  margin-top: 0.5714286em;
  margin-bottom: 0.5714286em;
}
.prose-sm :where(hr):not(:where([class~='not-prose'] *)) {
  margin-top: 2.8571429em;
  margin-bottom: 2.8571429em;
}
.prose-sm :where(hr + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-sm :where(h2 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-sm :where(h3 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-sm :where(h4 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-sm :where(table):not(:where([class~='not-prose'] *)) {
  font-size: 0.8571429em;
  line-height: 1.5;
}
.prose-sm :where(thead th):not(:where([class~='not-prose'] *)) {
  padding-right: 1em;
  padding-bottom: 0.6666667em;
  padding-left: 1em;
}
.prose-sm :where(thead th:first-child):not(:where([class~='not-prose'] *)) {
  padding-left: 0;
}
.prose-sm :where(thead th:last-child):not(:where([class~='not-prose'] *)) {
  padding-right: 0;
}
.prose-sm :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) {
  padding: 0.6666667em 1em;
}
.prose-sm
  :where(tbody td:first-child, tfoot td:first-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-left: 0;
}
.prose-sm
  :where(tbody td:last-child, tfoot td:last-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-right: 0;
}
.prose-sm :where(.prose-sm > :first-child):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-sm :where(.prose-sm > :last-child):not(:where([class~='not-prose'] *)) {
  margin-bottom: 0;
}
.prose-lg {
  font-size: 1.125rem;
  line-height: 1.7777778;
}
.prose-lg :where(p):not(:where([class~='not-prose'] *)) {
  margin-top: 1.3333333em;
  margin-bottom: 1.3333333em;
}
.prose-lg :where([class~='lead']):not(:where([class~='not-prose'] *)) {
  font-size: 1.2222222em;
  line-height: 1.4545455;
  margin-top: 1.0909091em;
  margin-bottom: 1.0909091em;
}
.prose-lg :where(blockquote):not(:where([class~='not-prose'] *)) {
  margin-top: 1.6666667em;
  margin-bottom: 1.6666667em;
  padding-left: 1em;
}
.prose-lg :where(h1):not(:where([class~='not-prose'] *)) {
  font-size: 2.6666667em;
  margin-top: 0;
  margin-bottom: 0.8333333em;
  line-height: 1;
}
.prose-lg :where(h2):not(:where([class~='not-prose'] *)) {
  font-size: 1.6666667em;
  margin-top: 1.8666667em;
  margin-bottom: 1.0666667em;
  line-height: 1.3333333;
}
.prose-lg :where(h3):not(:where([class~='not-prose'] *)) {
  font-size: 1.3333333em;
  margin-top: 1.6666667em;
  margin-bottom: 0.6666667em;
  line-height: 1.5;
}
.prose-lg :where(h4):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 0.4444444em;
  line-height: 1.5555556;
}
.prose-lg :where(img):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 1.7777778em;
}
.prose-lg :where(video):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 1.7777778em;
}
.prose-lg :where(figure):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 1.7777778em;
}
.prose-lg :where(figure > *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
  margin-bottom: 0;
}
.prose-lg :where(figcaption):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
  line-height: 1.5;
  margin-top: 1em;
}
.prose-lg :where(code):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
}
.prose-lg :where(h2 code):not(:where([class~='not-prose'] *)) {
  font-size: 0.8666667em;
}
.prose-lg :where(h3 code):not(:where([class~='not-prose'] *)) {
  font-size: 0.875em;
}
.prose-lg :where(pre):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
  line-height: 1.75;
  margin-top: 2em;
  margin-bottom: 2em;
  border-radius: 0.375rem;
  padding: 1em 1.5em;
}
.prose-lg :where(ol):not(:where([class~='not-prose'] *)) {
  margin-top: 1.3333333em;
  margin-bottom: 1.3333333em;
  padding-left: 1.5555556em;
}
.prose-lg :where(ul):not(:where([class~='not-prose'] *)) {
  margin-top: 1.3333333em;
  margin-bottom: 1.3333333em;
  padding-left: 1.5555556em;
}
.prose-lg :where(li):not(:where([class~='not-prose'] *)) {
  margin-top: 0.6666667em;
  margin-bottom: 0.6666667em;
}
.prose-lg :where(ol > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.4444444em;
}
.prose-lg :where(ul > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.4444444em;
}
.prose-lg :where(.prose-lg > ul > li p):not(:where([class~='not-prose'] *)) {
  margin-top: 0.8888889em;
  margin-bottom: 0.8888889em;
}
.prose-lg
  :where(.prose-lg > ul > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.3333333em;
}
.prose-lg
  :where(.prose-lg > ul > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.3333333em;
}
.prose-lg
  :where(.prose-lg > ol > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.3333333em;
}
.prose-lg
  :where(.prose-lg > ol > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.3333333em;
}
.prose-lg
  :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) {
  margin-top: 0.8888889em;
  margin-bottom: 0.8888889em;
}
.prose-lg :where(hr):not(:where([class~='not-prose'] *)) {
  margin-top: 3.1111111em;
  margin-bottom: 3.1111111em;
}
.prose-lg :where(hr + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-lg :where(h2 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-lg :where(h3 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-lg :where(h4 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-lg :where(table):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
  line-height: 1.5;
}
.prose-lg :where(thead th):not(:where([class~='not-prose'] *)) {
  padding-right: 0.75em;
  padding-bottom: 0.75em;
  padding-left: 0.75em;
}
.prose-lg :where(thead th:first-child):not(:where([class~='not-prose'] *)) {
  padding-left: 0;
}
.prose-lg :where(thead th:last-child):not(:where([class~='not-prose'] *)) {
  padding-right: 0;
}
.prose-lg :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) {
  padding: 0.75em;
}
.prose-lg
  :where(tbody td:first-child, tfoot td:first-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-left: 0;
}
.prose-lg
  :where(tbody td:last-child, tfoot td:last-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-right: 0;
}
.prose-lg :where(.prose-lg > :first-child):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.prose-lg :where(.prose-lg > :last-child):not(:where([class~='not-prose'] *)) {
  margin-bottom: 0;
}
.prose-neutral {
  --tw-prose-body: #404040;
  --tw-prose-headings: #171717;
  --tw-prose-lead: #525252;
  --tw-prose-links: #171717;
  --tw-prose-bold: #171717;
  --tw-prose-counters: #737373;
  --tw-prose-bullets: #d4d4d4;
  --tw-prose-hr: #e5e5e5;
  --tw-prose-quotes: #171717;
  --tw-prose-quote-borders: #e5e5e5;
  --tw-prose-captions: #737373;
  --tw-prose-code: #171717;
  --tw-prose-pre-code: #e5e5e5;
  --tw-prose-pre-bg: #262626;
  --tw-prose-th-borders: #d4d4d4;
  --tw-prose-td-borders: #e5e5e5;
  --tw-prose-invert-body: #d4d4d4;
  --tw-prose-invert-headings: #fff;
  --tw-prose-invert-lead: #a3a3a3;
  --tw-prose-invert-links: #fff;
  --tw-prose-invert-bold: #fff;
  --tw-prose-invert-counters: #a3a3a3;
  --tw-prose-invert-bullets: #525252;
  --tw-prose-invert-hr: #404040;
  --tw-prose-invert-quotes: #f5f5f5;
  --tw-prose-invert-quote-borders: #404040;
  --tw-prose-invert-captions: #a3a3a3;
  --tw-prose-invert-code: #fff;
  --tw-prose-invert-pre-code: #d4d4d4;
  --tw-prose-invert-pre-bg: #00000080;
  --tw-prose-invert-th-borders: #525252;
  --tw-prose-invert-td-borders: #404040;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.not-sr-only {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.pointer-events-none {
  pointer-events: none;
}
.pointer-events-auto {
  pointer-events: auto;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.-inset-1 {
  inset: -0.25rem;
}
.-bottom-2 {
  bottom: -0.5rem;
}
.-right-2 {
  right: -0.5rem;
}
.top-0 {
  top: 0;
}
.top-14 {
  top: 3.5rem;
}
.isolate {
  isolation: isolate;
}
.isolation-auto {
  isolation: auto;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.col-span-1 {
  grid-column: span 1 / span 1;
}
.col-span-10 {
  grid-column: span 10 / span 10;
}
.col-span-11 {
  grid-column: span 11 / span 11;
}
.col-span-12 {
  grid-column: span 12 / span 12;
}
.col-span-2 {
  grid-column: span 2 / span 2;
}
.col-span-3 {
  grid-column: span 3 / span 3;
}
.col-span-4 {
  grid-column: span 4 / span 4;
}
.col-span-5 {
  grid-column: span 5 / span 5;
}
.col-span-6 {
  grid-column: span 6 / span 6;
}
.col-span-7 {
  grid-column: span 7 / span 7;
}
.col-span-8 {
  grid-column: span 8 / span 8;
}
.col-span-9 {
  grid-column: span 9 / span 9;
}
.col-span-full {
  grid-column: 1/-1;
}
.float-right {
  float: right;
}
.float-left {
  float: left;
}
.float-none {
  float: none;
}
.clear-left {
  clear: left;
}
.clear-right {
  clear: right;
}
.clear-both {
  clear: both;
}
.clear-none {
  clear: none;
}
.-m-0 {
  margin: 0;
}
.-m-0\.5 {
  margin: -0.125rem;
}
.-m-1 {
  margin: -0.25rem;
}
.-m-1\.5 {
  margin: -0.375rem;
}
.-m-10 {
  margin: -2.5rem;
}
.-m-11 {
  margin: -2.75rem;
}
.-m-12 {
  margin: -3rem;
}
.-m-14 {
  margin: -3.5rem;
}
.-m-16 {
  margin: -4rem;
}
.-m-2 {
  margin: -0.5rem;
}
.-m-2\.5 {
  margin: -0.625rem;
}
.-m-20 {
  margin: -5rem;
}
.-m-24 {
  margin: -6rem;
}
.-m-28 {
  margin: -7rem;
}
.-m-3 {
  margin: -0.75rem;
}
.-m-3\.5 {
  margin: -0.875rem;
}
.-m-32 {
  margin: -8rem;
}
.-m-36 {
  margin: -9rem;
}
.-m-4 {
  margin: -1rem;
}
.-m-40 {
  margin: -10rem;
}
.-m-44 {
  margin: -11rem;
}
.-m-48 {
  margin: -12rem;
}
.-m-5 {
  margin: -1.25rem;
}
.-m-52 {
  margin: -13rem;
}
.-m-56 {
  margin: -14rem;
}
.-m-6 {
  margin: -1.5rem;
}
.-m-60 {
  margin: -15rem;
}
.-m-64 {
  margin: -16rem;
}
.-m-7 {
  margin: -1.75rem;
}
.-m-72 {
  margin: -18rem;
}
.-m-8 {
  margin: -2rem;
}
.-m-80 {
  margin: -20rem;
}
.-m-9 {
  margin: -2.25rem;
}
.-m-96 {
  margin: -24rem;
}
.-m-px {
  margin: -1px;
}
.m-0 {
  margin: 0;
}
.m-0\.5 {
  margin: 0.125rem;
}
.m-1 {
  margin: 0.25rem;
}
.m-1\.5 {
  margin: 0.375rem;
}
.m-10 {
  margin: 2.5rem;
}
.m-11 {
  margin: 2.75rem;
}
.m-12 {
  margin: 3rem;
}
.m-14 {
  margin: 3.5rem;
}
.m-16 {
  margin: 4rem;
}
.m-2 {
  margin: 0.5rem;
}
.m-2\.5 {
  margin: 0.625rem;
}
.m-20 {
  margin: 5rem;
}
.m-24 {
  margin: 6rem;
}
.m-28 {
  margin: 7rem;
}
.m-3 {
  margin: 0.75rem;
}
.m-3\.5 {
  margin: 0.875rem;
}
.m-32 {
  margin: 8rem;
}
.m-36 {
  margin: 9rem;
}
.m-4 {
  margin: 1rem;
}
.m-40 {
  margin: 10rem;
}
.m-44 {
  margin: 11rem;
}
.m-48 {
  margin: 12rem;
}
.m-5 {
  margin: 1.25rem;
}
.m-52 {
  margin: 13rem;
}
.m-56 {
  margin: 14rem;
}
.m-6 {
  margin: 1.5rem;
}
.m-60 {
  margin: 15rem;
}
.m-64 {
  margin: 16rem;
}
.m-7 {
  margin: 1.75rem;
}
.m-72 {
  margin: 18rem;
}
.m-8 {
  margin: 2rem;
}
.m-80 {
  margin: 20rem;
}
.m-9 {
  margin: 2.25rem;
}
.m-96 {
  margin: 24rem;
}
.m-auto {
  margin: auto;
}
.m-px {
  margin: 1px;
}
.-mx-0 {
  margin-left: 0;
  margin-right: 0;
}
.-mx-0\.5 {
  margin-left: -0.125rem;
  margin-right: -0.125rem;
}
.-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.-mx-1\.5 {
  margin-left: -0.375rem;
  margin-right: -0.375rem;
}
.-mx-10 {
  margin-left: -2.5rem;
  margin-right: -2.5rem;
}
.-mx-11 {
  margin-left: -2.75rem;
  margin-right: -2.75rem;
}
.-mx-12 {
  margin-left: -3rem;
  margin-right: -3rem;
}
.-mx-14 {
  margin-left: -3.5rem;
  margin-right: -3.5rem;
}
.-mx-16 {
  margin-left: -4rem;
  margin-right: -4rem;
}
.-mx-2 {
  margin-left: -0.5rem;
  margin-right: -0.5rem;
}
.-mx-2\.5 {
  margin-left: -0.625rem;
  margin-right: -0.625rem;
}
.-mx-20 {
  margin-left: -5rem;
  margin-right: -5rem;
}
.-mx-24 {
  margin-left: -6rem;
  margin-right: -6rem;
}
.-mx-28 {
  margin-left: -7rem;
  margin-right: -7rem;
}
.-mx-3 {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}
.-mx-3\.5 {
  margin-left: -0.875rem;
  margin-right: -0.875rem;
}
.-mx-32 {
  margin-left: -8rem;
  margin-right: -8rem;
}
.-mx-36 {
  margin-left: -9rem;
  margin-right: -9rem;
}
.-mx-4 {
  margin-left: -1rem;
  margin-right: -1rem;
}
.-mx-40 {
  margin-left: -10rem;
  margin-right: -10rem;
}
.-mx-44 {
  margin-left: -11rem;
  margin-right: -11rem;
}
.-mx-48 {
  margin-left: -12rem;
  margin-right: -12rem;
}
.-mx-5 {
  margin-left: -1.25rem;
  margin-right: -1.25rem;
}
.-mx-52 {
  margin-left: -13rem;
  margin-right: -13rem;
}
.-mx-56 {
  margin-left: -14rem;
  margin-right: -14rem;
}
.-mx-6 {
  margin-left: -1.5rem;
  margin-right: -1.5rem;
}
.-mx-60 {
  margin-left: -15rem;
  margin-right: -15rem;
}
.-mx-64 {
  margin-left: -16rem;
  margin-right: -16rem;
}
.-mx-7 {
  margin-left: -1.75rem;
  margin-right: -1.75rem;
}
.-mx-72 {
  margin-left: -18rem;
  margin-right: -18rem;
}
.-mx-8 {
  margin-left: -2rem;
  margin-right: -2rem;
}
.-mx-80 {
  margin-left: -20rem;
  margin-right: -20rem;
}
.-mx-9 {
  margin-left: -2.25rem;
  margin-right: -2.25rem;
}
.-mx-96 {
  margin-left: -24rem;
  margin-right: -24rem;
}
.-mx-px {
  margin-left: -1px;
  margin-right: -1px;
}
.-my-0 {
  margin-top: 0;
  margin-bottom: 0;
}
.-my-0\.5 {
  margin-top: -0.125rem;
  margin-bottom: -0.125rem;
}
.-my-1 {
  margin-top: -0.25rem;
  margin-bottom: -0.25rem;
}
.-my-1\.5 {
  margin-top: -0.375rem;
  margin-bottom: -0.375rem;
}
.-my-10 {
  margin-top: -2.5rem;
  margin-bottom: -2.5rem;
}
.-my-11 {
  margin-top: -2.75rem;
  margin-bottom: -2.75rem;
}
.-my-12 {
  margin-top: -3rem;
  margin-bottom: -3rem;
}
.-my-14 {
  margin-top: -3.5rem;
  margin-bottom: -3.5rem;
}
.-my-16 {
  margin-top: -4rem;
  margin-bottom: -4rem;
}
.-my-2 {
  margin-top: -0.5rem;
  margin-bottom: -0.5rem;
}
.-my-2\.5 {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem;
}
.-my-20 {
  margin-top: -5rem;
  margin-bottom: -5rem;
}
.-my-24 {
  margin-top: -6rem;
  margin-bottom: -6rem;
}
.-my-28 {
  margin-top: -7rem;
  margin-bottom: -7rem;
}
.-my-3 {
  margin-top: -0.75rem;
  margin-bottom: -0.75rem;
}
.-my-3\.5 {
  margin-top: -0.875rem;
  margin-bottom: -0.875rem;
}
.-my-32 {
  margin-top: -8rem;
  margin-bottom: -8rem;
}
.-my-36 {
  margin-top: -9rem;
  margin-bottom: -9rem;
}
.-my-4 {
  margin-top: -1rem;
  margin-bottom: -1rem;
}
.-my-40 {
  margin-top: -10rem;
  margin-bottom: -10rem;
}
.-my-44 {
  margin-top: -11rem;
  margin-bottom: -11rem;
}
.-my-48 {
  margin-top: -12rem;
  margin-bottom: -12rem;
}
.-my-5 {
  margin-top: -1.25rem;
  margin-bottom: -1.25rem;
}
.-my-52 {
  margin-top: -13rem;
  margin-bottom: -13rem;
}
.-my-56 {
  margin-top: -14rem;
  margin-bottom: -14rem;
}
.-my-6 {
  margin-top: -1.5rem;
  margin-bottom: -1.5rem;
}
.-my-60 {
  margin-top: -15rem;
  margin-bottom: -15rem;
}
.-my-64 {
  margin-top: -16rem;
  margin-bottom: -16rem;
}
.-my-7 {
  margin-top: -1.75rem;
  margin-bottom: -1.75rem;
}
.-my-72 {
  margin-top: -18rem;
  margin-bottom: -18rem;
}
.-my-8 {
  margin-top: -2rem;
  margin-bottom: -2rem;
}
.-my-80 {
  margin-top: -20rem;
  margin-bottom: -20rem;
}
.-my-9 {
  margin-top: -2.25rem;
  margin-bottom: -2.25rem;
}
.-my-96 {
  margin-top: -24rem;
  margin-bottom: -24rem;
}
.-my-px {
  margin-top: -1px;
  margin-bottom: -1px;
}
.mx-0 {
  margin-left: 0;
  margin-right: 0;
}
.mx-0\.5 {
  margin-left: 0.125rem;
  margin-right: 0.125rem;
}
.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-1\.5 {
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}
.mx-10 {
  margin-left: 2.5rem;
  margin-right: 2.5rem;
}
.mx-11 {
  margin-left: 2.75rem;
  margin-right: 2.75rem;
}
.mx-12 {
  margin-left: 3rem;
  margin-right: 3rem;
}
.mx-14 {
  margin-left: 3.5rem;
  margin-right: 3.5rem;
}
.mx-16 {
  margin-left: 4rem;
  margin-right: 4rem;
}
.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-2\.5 {
  margin-left: 0.625rem;
  margin-right: 0.625rem;
}
.mx-20 {
  margin-left: 5rem;
  margin-right: 5rem;
}
.mx-24 {
  margin-left: 6rem;
  margin-right: 6rem;
}
.mx-28 {
  margin-left: 7rem;
  margin-right: 7rem;
}
.mx-3 {
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}
.mx-3\.5 {
  margin-left: 0.875rem;
  margin-right: 0.875rem;
}
.mx-32 {
  margin-left: 8rem;
  margin-right: 8rem;
}
.mx-36 {
  margin-left: 9rem;
  margin-right: 9rem;
}
.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}
.mx-40 {
  margin-left: 10rem;
  margin-right: 10rem;
}
.mx-44 {
  margin-left: 11rem;
  margin-right: 11rem;
}
.mx-48 {
  margin-left: 12rem;
  margin-right: 12rem;
}
.mx-5 {
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}
.mx-52 {
  margin-left: 13rem;
  margin-right: 13rem;
}
.mx-56 {
  margin-left: 14rem;
  margin-right: 14rem;
}
.mx-6 {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.mx-60 {
  margin-left: 15rem;
  margin-right: 15rem;
}
.mx-64 {
  margin-left: 16rem;
  margin-right: 16rem;
}
.mx-7 {
  margin-left: 1.75rem;
  margin-right: 1.75rem;
}
.mx-72 {
  margin-left: 18rem;
  margin-right: 18rem;
}
.mx-8 {
  margin-left: 2rem;
  margin-right: 2rem;
}
.mx-80 {
  margin-left: 20rem;
  margin-right: 20rem;
}
.mx-9 {
  margin-left: 2.25rem;
  margin-right: 2.25rem;
}
.mx-96 {
  margin-left: 24rem;
  margin-right: 24rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mx-px {
  margin-left: 1px;
  margin-right: 1px;
}
.my-0 {
  margin-top: 0;
  margin-bottom: 0;
}
.my-0\.5 {
  margin-top: 0.125rem;
  margin-bottom: 0.125rem;
}
.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.my-1\.5 {
  margin-top: 0.375rem;
  margin-bottom: 0.375rem;
}
.my-10 {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}
.my-11 {
  margin-top: 2.75rem;
  margin-bottom: 2.75rem;
}
.my-12 {
  margin-top: 3rem;
  margin-bottom: 3rem;
}
.my-14 {
  margin-top: 3.5rem;
  margin-bottom: 3.5rem;
}
.my-16 {
  margin-top: 4rem;
  margin-bottom: 4rem;
}
.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.my-2\.5 {
  margin-top: 0.625rem;
  margin-bottom: 0.625rem;
}
.my-20 {
  margin-top: 5rem;
  margin-bottom: 5rem;
}
.my-24 {
  margin-top: 6rem;
  margin-bottom: 6rem;
}
.my-28 {
  margin-top: 7rem;
  margin-bottom: 7rem;
}
.my-3 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}
.my-3\.5 {
  margin-top: 0.875rem;
  margin-bottom: 0.875rem;
}
.my-32 {
  margin-top: 8rem;
  margin-bottom: 8rem;
}
.my-36 {
  margin-top: 9rem;
  margin-bottom: 9rem;
}
.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.my-40 {
  margin-top: 10rem;
  margin-bottom: 10rem;
}
.my-44 {
  margin-top: 11rem;
  margin-bottom: 11rem;
}
.my-48 {
  margin-top: 12rem;
  margin-bottom: 12rem;
}
.my-5 {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}
.my-52 {
  margin-top: 13rem;
  margin-bottom: 13rem;
}
.my-56 {
  margin-top: 14rem;
  margin-bottom: 14rem;
}
.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.my-60 {
  margin-top: 15rem;
  margin-bottom: 15rem;
}
.my-64 {
  margin-top: 16rem;
  margin-bottom: 16rem;
}
.my-7 {
  margin-top: 1.75rem;
  margin-bottom: 1.75rem;
}
.my-72 {
  margin-top: 18rem;
  margin-bottom: 18rem;
}
.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.my-80 {
  margin-top: 20rem;
  margin-bottom: 20rem;
}
.my-9 {
  margin-top: 2.25rem;
  margin-bottom: 2.25rem;
}
.my-96 {
  margin-top: 24rem;
  margin-bottom: 24rem;
}
.my-auto {
  margin-top: auto;
  margin-bottom: auto;
}
.my-px {
  margin-top: 1px;
  margin-bottom: 1px;
}
.-mb-0 {
  margin-bottom: 0;
}
.-mb-0\.5 {
  margin-bottom: -0.125rem;
}
.-mb-1 {
  margin-bottom: -0.25rem;
}
.-mb-1\.5 {
  margin-bottom: -0.375rem;
}
.-mb-10 {
  margin-bottom: -2.5rem;
}
.-mb-11 {
  margin-bottom: -2.75rem;
}
.-mb-12 {
  margin-bottom: -3rem;
}
.-mb-14 {
  margin-bottom: -3.5rem;
}
.-mb-16 {
  margin-bottom: -4rem;
}
.-mb-2 {
  margin-bottom: -0.5rem;
}
.-mb-2\.5 {
  margin-bottom: -0.625rem;
}
.-mb-20 {
  margin-bottom: -5rem;
}
.-mb-24 {
  margin-bottom: -6rem;
}
.-mb-28 {
  margin-bottom: -7rem;
}
.-mb-3 {
  margin-bottom: -0.75rem;
}
.-mb-3\.5 {
  margin-bottom: -0.875rem;
}
.-mb-32 {
  margin-bottom: -8rem;
}
.-mb-36 {
  margin-bottom: -9rem;
}
.-mb-4 {
  margin-bottom: -1rem;
}
.-mb-40 {
  margin-bottom: -10rem;
}
.-mb-44 {
  margin-bottom: -11rem;
}
.-mb-48 {
  margin-bottom: -12rem;
}
.-mb-5 {
  margin-bottom: -1.25rem;
}
.-mb-52 {
  margin-bottom: -13rem;
}
.-mb-56 {
  margin-bottom: -14rem;
}
.-mb-6 {
  margin-bottom: -1.5rem;
}
.-mb-60 {
  margin-bottom: -15rem;
}
.-mb-64 {
  margin-bottom: -16rem;
}
.-mb-7 {
  margin-bottom: -1.75rem;
}
.-mb-72 {
  margin-bottom: -18rem;
}
.-mb-8 {
  margin-bottom: -2rem;
}
.-mb-80 {
  margin-bottom: -20rem;
}
.-mb-9 {
  margin-bottom: -2.25rem;
}
.-mb-96 {
  margin-bottom: -24rem;
}
.-mb-px {
  margin-bottom: -1px;
}
.-me-0 {
  -webkit-margin-end: 0;
  margin-inline-end: 0;
}
.-me-0\.5 {
  -webkit-margin-end: -0.125rem;
  margin-inline-end: -0.125rem;
}
.-me-1 {
  -webkit-margin-end: -0.25rem;
  margin-inline-end: -0.25rem;
}
.-me-1\.5 {
  -webkit-margin-end: -0.375rem;
  margin-inline-end: -0.375rem;
}
.-me-10 {
  -webkit-margin-end: -2.5rem;
  margin-inline-end: -2.5rem;
}
.-me-11 {
  -webkit-margin-end: -2.75rem;
  margin-inline-end: -2.75rem;
}
.-me-12 {
  -webkit-margin-end: -3rem;
  margin-inline-end: -3rem;
}
.-me-14 {
  -webkit-margin-end: -3.5rem;
  margin-inline-end: -3.5rem;
}
.-me-16 {
  -webkit-margin-end: -4rem;
  margin-inline-end: -4rem;
}
.-me-2 {
  -webkit-margin-end: -0.5rem;
  margin-inline-end: -0.5rem;
}
.-me-2\.5 {
  -webkit-margin-end: -0.625rem;
  margin-inline-end: -0.625rem;
}
.-me-20 {
  -webkit-margin-end: -5rem;
  margin-inline-end: -5rem;
}
.-me-24 {
  -webkit-margin-end: -6rem;
  margin-inline-end: -6rem;
}
.-me-28 {
  -webkit-margin-end: -7rem;
  margin-inline-end: -7rem;
}
.-me-3 {
  -webkit-margin-end: -0.75rem;
  margin-inline-end: -0.75rem;
}
.-me-3\.5 {
  -webkit-margin-end: -0.875rem;
  margin-inline-end: -0.875rem;
}
.-me-32 {
  -webkit-margin-end: -8rem;
  margin-inline-end: -8rem;
}
.-me-36 {
  -webkit-margin-end: -9rem;
  margin-inline-end: -9rem;
}
.-me-4 {
  -webkit-margin-end: -1rem;
  margin-inline-end: -1rem;
}
.-me-40 {
  -webkit-margin-end: -10rem;
  margin-inline-end: -10rem;
}
.-me-44 {
  -webkit-margin-end: -11rem;
  margin-inline-end: -11rem;
}
.-me-48 {
  -webkit-margin-end: -12rem;
  margin-inline-end: -12rem;
}
.-me-5 {
  -webkit-margin-end: -1.25rem;
  margin-inline-end: -1.25rem;
}
.-me-52 {
  -webkit-margin-end: -13rem;
  margin-inline-end: -13rem;
}
.-me-56 {
  -webkit-margin-end: -14rem;
  margin-inline-end: -14rem;
}
.-me-6 {
  -webkit-margin-end: -1.5rem;
  margin-inline-end: -1.5rem;
}
.-me-60 {
  -webkit-margin-end: -15rem;
  margin-inline-end: -15rem;
}
.-me-64 {
  -webkit-margin-end: -16rem;
  margin-inline-end: -16rem;
}
.-me-7 {
  -webkit-margin-end: -1.75rem;
  margin-inline-end: -1.75rem;
}
.-me-72 {
  -webkit-margin-end: -18rem;
  margin-inline-end: -18rem;
}
.-me-8 {
  -webkit-margin-end: -2rem;
  margin-inline-end: -2rem;
}
.-me-80 {
  -webkit-margin-end: -20rem;
  margin-inline-end: -20rem;
}
.-me-9 {
  -webkit-margin-end: -2.25rem;
  margin-inline-end: -2.25rem;
}
.-me-96 {
  -webkit-margin-end: -24rem;
  margin-inline-end: -24rem;
}
.-me-px {
  -webkit-margin-end: -1px;
  margin-inline-end: -1px;
}
.-ml-0 {
  margin-left: 0;
}
.-ml-0\.5 {
  margin-left: -0.125rem;
}
.-ml-1 {
  margin-left: -0.25rem;
}
.-ml-1\.5 {
  margin-left: -0.375rem;
}
.-ml-10 {
  margin-left: -2.5rem;
}
.-ml-11 {
  margin-left: -2.75rem;
}
.-ml-12 {
  margin-left: -3rem;
}
.-ml-14 {
  margin-left: -3.5rem;
}
.-ml-16 {
  margin-left: -4rem;
}
.-ml-2 {
  margin-left: -0.5rem;
}
.-ml-2\.5 {
  margin-left: -0.625rem;
}
.-ml-20 {
  margin-left: -5rem;
}
.-ml-24 {
  margin-left: -6rem;
}
.-ml-28 {
  margin-left: -7rem;
}
.-ml-3 {
  margin-left: -0.75rem;
}
.-ml-3\.5 {
  margin-left: -0.875rem;
}
.-ml-32 {
  margin-left: -8rem;
}
.-ml-36 {
  margin-left: -9rem;
}
.-ml-4 {
  margin-left: -1rem;
}
.-ml-40 {
  margin-left: -10rem;
}
.-ml-44 {
  margin-left: -11rem;
}
.-ml-48 {
  margin-left: -12rem;
}
.-ml-5 {
  margin-left: -1.25rem;
}
.-ml-52 {
  margin-left: -13rem;
}
.-ml-56 {
  margin-left: -14rem;
}
.-ml-6 {
  margin-left: -1.5rem;
}
.-ml-60 {
  margin-left: -15rem;
}
.-ml-64 {
  margin-left: -16rem;
}
.-ml-7 {
  margin-left: -1.75rem;
}
.-ml-72 {
  margin-left: -18rem;
}
.-ml-8 {
  margin-left: -2rem;
}
.-ml-80 {
  margin-left: -20rem;
}
.-ml-9 {
  margin-left: -2.25rem;
}
.-ml-96 {
  margin-left: -24rem;
}
.-ml-px {
  margin-left: -1px;
}
.-mr-0 {
  margin-right: 0;
}
.-mr-0\.5 {
  margin-right: -0.125rem;
}
.-mr-1 {
  margin-right: -0.25rem;
}
.-mr-1\.5 {
  margin-right: -0.375rem;
}
.-mr-10 {
  margin-right: -2.5rem;
}
.-mr-11 {
  margin-right: -2.75rem;
}
.-mr-12 {
  margin-right: -3rem;
}
.-mr-14 {
  margin-right: -3.5rem;
}
.-mr-16 {
  margin-right: -4rem;
}
.-mr-2 {
  margin-right: -0.5rem;
}
.-mr-2\.5 {
  margin-right: -0.625rem;
}
.-mr-20 {
  margin-right: -5rem;
}
.-mr-24 {
  margin-right: -6rem;
}
.-mr-28 {
  margin-right: -7rem;
}
.-mr-3 {
  margin-right: -0.75rem;
}
.-mr-3\.5 {
  margin-right: -0.875rem;
}
.-mr-32 {
  margin-right: -8rem;
}
.-mr-36 {
  margin-right: -9rem;
}
.-mr-4 {
  margin-right: -1rem;
}
.-mr-40 {
  margin-right: -10rem;
}
.-mr-44 {
  margin-right: -11rem;
}
.-mr-48 {
  margin-right: -12rem;
}
.-mr-5 {
  margin-right: -1.25rem;
}
.-mr-52 {
  margin-right: -13rem;
}
.-mr-56 {
  margin-right: -14rem;
}
.-mr-6 {
  margin-right: -1.5rem;
}
.-mr-60 {
  margin-right: -15rem;
}
.-mr-64 {
  margin-right: -16rem;
}
.-mr-7 {
  margin-right: -1.75rem;
}
.-mr-72 {
  margin-right: -18rem;
}
.-mr-8 {
  margin-right: -2rem;
}
.-mr-80 {
  margin-right: -20rem;
}
.-mr-9 {
  margin-right: -2.25rem;
}
.-mr-96 {
  margin-right: -24rem;
}
.-mr-px {
  margin-right: -1px;
}
.-ms-0 {
  -webkit-margin-start: 0;
  margin-inline-start: 0;
}
.-ms-0\.5 {
  -webkit-margin-start: -0.125rem;
  margin-inline-start: -0.125rem;
}
.-ms-1 {
  -webkit-margin-start: -0.25rem;
  margin-inline-start: -0.25rem;
}
.-ms-1\.5 {
  -webkit-margin-start: -0.375rem;
  margin-inline-start: -0.375rem;
}
.-ms-10 {
  -webkit-margin-start: -2.5rem;
  margin-inline-start: -2.5rem;
}
.-ms-11 {
  -webkit-margin-start: -2.75rem;
  margin-inline-start: -2.75rem;
}
.-ms-12 {
  -webkit-margin-start: -3rem;
  margin-inline-start: -3rem;
}
.-ms-14 {
  -webkit-margin-start: -3.5rem;
  margin-inline-start: -3.5rem;
}
.-ms-16 {
  -webkit-margin-start: -4rem;
  margin-inline-start: -4rem;
}
.-ms-2 {
  -webkit-margin-start: -0.5rem;
  margin-inline-start: -0.5rem;
}
.-ms-2\.5 {
  -webkit-margin-start: -0.625rem;
  margin-inline-start: -0.625rem;
}
.-ms-20 {
  -webkit-margin-start: -5rem;
  margin-inline-start: -5rem;
}
.-ms-24 {
  -webkit-margin-start: -6rem;
  margin-inline-start: -6rem;
}
.-ms-28 {
  -webkit-margin-start: -7rem;
  margin-inline-start: -7rem;
}
.-ms-3 {
  -webkit-margin-start: -0.75rem;
  margin-inline-start: -0.75rem;
}
.-ms-3\.5 {
  -webkit-margin-start: -0.875rem;
  margin-inline-start: -0.875rem;
}
.-ms-32 {
  -webkit-margin-start: -8rem;
  margin-inline-start: -8rem;
}
.-ms-36 {
  -webkit-margin-start: -9rem;
  margin-inline-start: -9rem;
}
.-ms-4 {
  -webkit-margin-start: -1rem;
  margin-inline-start: -1rem;
}
.-ms-40 {
  -webkit-margin-start: -10rem;
  margin-inline-start: -10rem;
}
.-ms-44 {
  -webkit-margin-start: -11rem;
  margin-inline-start: -11rem;
}
.-ms-48 {
  -webkit-margin-start: -12rem;
  margin-inline-start: -12rem;
}
.-ms-5 {
  -webkit-margin-start: -1.25rem;
  margin-inline-start: -1.25rem;
}
.-ms-52 {
  -webkit-margin-start: -13rem;
  margin-inline-start: -13rem;
}
.-ms-56 {
  -webkit-margin-start: -14rem;
  margin-inline-start: -14rem;
}
.-ms-6 {
  -webkit-margin-start: -1.5rem;
  margin-inline-start: -1.5rem;
}
.-ms-60 {
  -webkit-margin-start: -15rem;
  margin-inline-start: -15rem;
}
.-ms-64 {
  -webkit-margin-start: -16rem;
  margin-inline-start: -16rem;
}
.-ms-7 {
  -webkit-margin-start: -1.75rem;
  margin-inline-start: -1.75rem;
}
.-ms-72 {
  -webkit-margin-start: -18rem;
  margin-inline-start: -18rem;
}
.-ms-8 {
  -webkit-margin-start: -2rem;
  margin-inline-start: -2rem;
}
.-ms-80 {
  -webkit-margin-start: -20rem;
  margin-inline-start: -20rem;
}
.-ms-9 {
  -webkit-margin-start: -2.25rem;
  margin-inline-start: -2.25rem;
}
.-ms-96 {
  -webkit-margin-start: -24rem;
  margin-inline-start: -24rem;
}
.-ms-px {
  -webkit-margin-start: -1px;
  margin-inline-start: -1px;
}
.-mt-0 {
  margin-top: 0;
}
.-mt-0\.5 {
  margin-top: -0.125rem;
}
.-mt-1 {
  margin-top: -0.25rem;
}
.-mt-1\.5 {
  margin-top: -0.375rem;
}
.-mt-10 {
  margin-top: -2.5rem;
}
.-mt-11 {
  margin-top: -2.75rem;
}
.-mt-12 {
  margin-top: -3rem;
}
.-mt-14 {
  margin-top: -3.5rem;
}
.-mt-16 {
  margin-top: -4rem;
}
.-mt-2 {
  margin-top: -0.5rem;
}
.-mt-2\.5 {
  margin-top: -0.625rem;
}
.-mt-20 {
  margin-top: -5rem;
}
.-mt-24 {
  margin-top: -6rem;
}
.-mt-28 {
  margin-top: -7rem;
}
.-mt-3 {
  margin-top: -0.75rem;
}
.-mt-3\.5 {
  margin-top: -0.875rem;
}
.-mt-32 {
  margin-top: -8rem;
}
.-mt-36 {
  margin-top: -9rem;
}
.-mt-4 {
  margin-top: -1rem;
}
.-mt-40 {
  margin-top: -10rem;
}
.-mt-44 {
  margin-top: -11rem;
}
.-mt-48 {
  margin-top: -12rem;
}
.-mt-5 {
  margin-top: -1.25rem;
}
.-mt-52 {
  margin-top: -13rem;
}
.-mt-56 {
  margin-top: -14rem;
}
.-mt-6 {
  margin-top: -1.5rem;
}
.-mt-60 {
  margin-top: -15rem;
}
.-mt-64 {
  margin-top: -16rem;
}
.-mt-7 {
  margin-top: -1.75rem;
}
.-mt-72 {
  margin-top: -18rem;
}
.-mt-8 {
  margin-top: -2rem;
}
.-mt-80 {
  margin-top: -20rem;
}
.-mt-9 {
  margin-top: -2.25rem;
}
.-mt-96 {
  margin-top: -24rem;
}
.-mt-px {
  margin-top: -1px;
}
.mb-0 {
  margin-bottom: 0;
}
.mb-0\.5 {
  margin-bottom: 0.125rem;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-11 {
  margin-bottom: 2.75rem;
}
.mb-12 {
  margin-bottom: 3rem;
}
.mb-14 {
  margin-bottom: 3.5rem;
}
.mb-16 {
  margin-bottom: 4rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-2\.5 {
  margin-bottom: 0.625rem;
}
.mb-20 {
  margin-bottom: 5rem;
}
.mb-24 {
  margin-bottom: 6rem;
}
.mb-28 {
  margin-bottom: 7rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-3\.5 {
  margin-bottom: 0.875rem;
}
.mb-32 {
  margin-bottom: 8rem;
}
.mb-36 {
  margin-bottom: 9rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-40 {
  margin-bottom: 10rem;
}
.mb-44 {
  margin-bottom: 11rem;
}
.mb-48 {
  margin-bottom: 12rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-52 {
  margin-bottom: 13rem;
}
.mb-56 {
  margin-bottom: 14rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-60 {
  margin-bottom: 15rem;
}
.mb-64 {
  margin-bottom: 16rem;
}
.mb-7 {
  margin-bottom: 1.75rem;
}
.mb-72 {
  margin-bottom: 18rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.mb-80 {
  margin-bottom: 20rem;
}
.mb-9 {
  margin-bottom: 2.25rem;
}
.mb-96 {
  margin-bottom: 24rem;
}
.mb-auto {
  margin-bottom: auto;
}
.mb-px {
  margin-bottom: 1px;
}
.ml-0 {
  margin-left: 0;
}
.ml-0\.5 {
  margin-left: 0.125rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-1\.5 {
  margin-left: 0.375rem;
}
.ml-10 {
  margin-left: 2.5rem;
}
.ml-11 {
  margin-left: 2.75rem;
}
.ml-12 {
  margin-left: 3rem;
}
.ml-14 {
  margin-left: 3.5rem;
}
.ml-16 {
  margin-left: 4rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-2\.5 {
  margin-left: 0.625rem;
}
.ml-20 {
  margin-left: 5rem;
}
.ml-24 {
  margin-left: 6rem;
}
.ml-28 {
  margin-left: 7rem;
}
.ml-3 {
  margin-left: 0.75rem;
}
.ml-3\.5 {
  margin-left: 0.875rem;
}
.ml-32 {
  margin-left: 8rem;
}
.ml-36 {
  margin-left: 9rem;
}
.ml-4 {
  margin-left: 1rem;
}
.ml-40 {
  margin-left: 10rem;
}
.ml-44 {
  margin-left: 11rem;
}
.ml-48 {
  margin-left: 12rem;
}
.ml-5 {
  margin-left: 1.25rem;
}
.ml-52 {
  margin-left: 13rem;
}
.ml-56 {
  margin-left: 14rem;
}
.ml-6 {
  margin-left: 1.5rem;
}
.ml-60 {
  margin-left: 15rem;
}
.ml-64 {
  margin-left: 16rem;
}
.ml-7 {
  margin-left: 1.75rem;
}
.ml-72 {
  margin-left: 18rem;
}
.ml-8 {
  margin-left: 2rem;
}
.ml-80 {
  margin-left: 20rem;
}
.ml-9 {
  margin-left: 2.25rem;
}
.ml-96 {
  margin-left: 24rem;
}
.ml-auto {
  margin-left: auto;
}
.ml-px {
  margin-left: 1px;
}
.mr-0 {
  margin-right: 0;
}
.mr-0\.5 {
  margin-right: 0.125rem;
}
.mr-1 {
  margin-right: 0.25rem;
}
.mr-1\.5 {
  margin-right: 0.375rem;
}
.mr-10 {
  margin-right: 2.5rem;
}
.mr-11 {
  margin-right: 2.75rem;
}
.mr-12 {
  margin-right: 3rem;
}
.mr-14 {
  margin-right: 3.5rem;
}
.mr-16 {
  margin-right: 4rem;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mr-2\.5 {
  margin-right: 0.625rem;
}
.mr-20 {
  margin-right: 5rem;
}
.mr-24 {
  margin-right: 6rem;
}
.mr-28 {
  margin-right: 7rem;
}
.mr-3 {
  margin-right: 0.75rem;
}
.mr-3\.5 {
  margin-right: 0.875rem;
}
.mr-32 {
  margin-right: 8rem;
}
.mr-36 {
  margin-right: 9rem;
}
.mr-4 {
  margin-right: 1rem;
}
.mr-40 {
  margin-right: 10rem;
}
.mr-44 {
  margin-right: 11rem;
}
.mr-48 {
  margin-right: 12rem;
}
.mr-5 {
  margin-right: 1.25rem;
}
.mr-52 {
  margin-right: 13rem;
}
.mr-56 {
  margin-right: 14rem;
}
.mr-6 {
  margin-right: 1.5rem;
}
.mr-60 {
  margin-right: 15rem;
}
.mr-64 {
  margin-right: 16rem;
}
.mr-7 {
  margin-right: 1.75rem;
}
.mr-72 {
  margin-right: 18rem;
}
.mr-8 {
  margin-right: 2rem;
}
.mr-80 {
  margin-right: 20rem;
}
.mr-9 {
  margin-right: 2.25rem;
}
.mr-96 {
  margin-right: 24rem;
}
.mr-auto {
  margin-right: auto;
}
.mr-px {
  margin-right: 1px;
}
.mt-0 {
  margin-top: 0;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-11 {
  margin-top: 2.75rem;
}
.mt-12 {
  margin-top: 3rem;
}
.mt-14 {
  margin-top: 3.5rem;
}
.mt-16 {
  margin-top: 4rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-2\.5 {
  margin-top: 0.625rem;
}
.mt-20 {
  margin-top: 5rem;
}
.mt-24 {
  margin-top: 6rem;
}
.mt-28 {
  margin-top: 7rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-3\.5 {
  margin-top: 0.875rem;
}
.mt-32 {
  margin-top: 8rem;
}
.mt-36 {
  margin-top: 9rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-40 {
  margin-top: 10rem;
}
.mt-44 {
  margin-top: 11rem;
}
.mt-48 {
  margin-top: 12rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-52 {
  margin-top: 13rem;
}
.mt-56 {
  margin-top: 14rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-60 {
  margin-top: 15rem;
}
.mt-64 {
  margin-top: 16rem;
}
.mt-7 {
  margin-top: 1.75rem;
}
.mt-72 {
  margin-top: 18rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-80 {
  margin-top: 20rem;
}
.mt-9 {
  margin-top: 2.25rem;
}
.mt-96 {
  margin-top: 24rem;
}
.mt-auto {
  margin-top: auto;
}
.mt-px {
  margin-top: 1px;
}
.box-border {
  box-sizing: border-box;
}
.box-content {
  box-sizing: initial;
}
.line-clamp-none {
  overflow: visible;
  display: block;
  -webkit-box-orient: horizontal;
  -webkit-line-clamp: none;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.inline-table {
  display: inline-table;
}
.table-caption {
  display: table-caption;
}
.table-cell {
  display: table-cell;
}
.table-column {
  display: table-column;
}
.table-column-group {
  display: table-column-group;
}
.table-footer-group {
  display: table-footer-group;
}
.table-header-group {
  display: table-header-group;
}
.table-row-group {
  display: table-row-group;
}
.table-row {
  display: table-row;
}
.flow-root {
  display: flow-root;
}
.grid {
  display: grid;
}
.inline-grid {
  display: inline-grid;
}
.contents {
  display: contents;
}
.list-item {
  display: list-item;
}
.hidden {
  display: none;
}
.h-4 {
  height: 1rem;
}
.h-48 {
  height: 12rem;
}
.h-5 {
  height: 1.25rem;
}
.h-8 {
  height: 2rem;
}
.h-full {
  height: 100%;
}
.max-h-16 {
  max-height: 4rem;
}
.max-h-48 {
  max-height: 12rem;
}
.w-4 {
  width: 1rem;
}
.w-48 {
  width: 12rem;
}
.w-full {
  width: 100%;
}
.min-w-0 {
  min-width: 0;
}
.min-w-80 {
  min-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-auto {
  flex: 1 1 auto;
}
.flex-initial {
  flex: 0 1 auto;
}
.flex-none {
  flex: none;
}
.flex-shrink {
  flex-shrink: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.shrink {
  flex-shrink: 1;
}
.flex-grow {
  flex-grow: 1;
}
.flex-grow-0 {
  flex-grow: 0;
}
.grow {
  flex-grow: 1;
}
.table-auto {
  table-layout: auto;
}
.table-fixed {
  table-layout: fixed;
}
.caption-top {
  caption-side: top;
}
.caption-bottom {
  caption-side: bottom;
}
.border-collapse {
  border-collapse: collapse;
}
.border-separate {
  border-collapse: initial;
}
.scale-75 {
  --tw-scale-x: 0.75;
  --tw-scale-y: 0.75;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y))
    rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
    scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\!transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y))
    rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
    scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
.transform,
.transform-cpu {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y))
    rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
    scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform-gpu {
  transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)
    rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
    scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform-none {
  transform: none;
}
.cursor-default {
  cursor: default;
}
.cursor-pointer {
  cursor: pointer;
}
.touch-auto {
  touch-action: auto;
}
.touch-none {
  touch-action: none;
}
.touch-pan-x {
  --tw-pan-x: pan-x;
}
.touch-pan-left,
.touch-pan-x {
  touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-left {
  --tw-pan-x: pan-left;
}
.touch-pan-right {
  --tw-pan-x: pan-right;
}
.touch-pan-right,
.touch-pan-y {
  touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-y {
  --tw-pan-y: pan-y;
}
.touch-pan-up {
  --tw-pan-y: pan-up;
}
.touch-pan-down,
.touch-pan-up {
  touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-pan-down {
  --tw-pan-y: pan-down;
}
.touch-pinch-zoom {
  --tw-pinch-zoom: pinch-zoom;
  touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);
}
.touch-manipulation {
  touch-action: manipulation;
}
.select-none {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.select-text {
  -webkit-user-select: text;
  -moz-user-select: text;
  user-select: text;
}
.select-all {
  -webkit-user-select: all;
  -moz-user-select: all;
  user-select: all;
}
.select-auto {
  -webkit-user-select: auto;
  -moz-user-select: auto;
  user-select: auto;
}
.resize-none {
  resize: none;
}
.resize-y {
  resize: vertical;
}
.resize-x {
  resize: horizontal;
}
.resize {
  resize: both;
}
.snap-none {
  scroll-snap-type: none;
}
.snap-x {
  scroll-snap-type: x var(--tw-scroll-snap-strictness);
}
.snap-y {
  scroll-snap-type: y var(--tw-scroll-snap-strictness);
}
.snap-both {
  scroll-snap-type: both var(--tw-scroll-snap-strictness);
}
.snap-mandatory {
  --tw-scroll-snap-strictness: mandatory;
}
.snap-proximity {
  --tw-scroll-snap-strictness: proximity;
}
.snap-start {
  scroll-snap-align: start;
}
.snap-end {
  scroll-snap-align: end;
}
.snap-center {
  scroll-snap-align: center;
}
.snap-align-none {
  scroll-snap-align: none;
}
.snap-normal {
  scroll-snap-stop: normal;
}
.snap-always {
  scroll-snap-stop: always;
}
.list-inside {
  list-style-position: inside;
}
.list-outside {
  list-style-position: outside;
}
.list-none {
  list-style-type: none;
}
.appearance-none {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.break-before-auto {
  -moz-column-break-before: auto;
  break-before: auto;
}
.break-before-avoid {
  -moz-column-break-before: avoid;
  break-before: avoid;
}
.break-before-all {
  -moz-column-break-before: all;
  break-before: all;
}
.break-before-avoid-page {
  -moz-column-break-before: avoid;
  break-before: avoid-page;
}
.break-before-page {
  -moz-column-break-before: page;
  break-before: page;
}
.break-before-left {
  -moz-column-break-before: left;
  break-before: left;
}
.break-before-right {
  -moz-column-break-before: right;
  break-before: right;
}
.break-before-column {
  -moz-column-break-before: column;
  break-before: column;
}
.break-inside-auto {
  -moz-column-break-inside: auto;
  break-inside: auto;
}
.break-inside-avoid {
  -moz-column-break-inside: avoid;
  break-inside: avoid;
}
.break-inside-avoid-page {
  break-inside: avoid-page;
}
.break-inside-avoid-column {
  -moz-column-break-inside: avoid;
  break-inside: avoid-column;
}
.break-after-auto {
  -moz-column-break-after: auto;
  break-after: auto;
}
.break-after-avoid {
  -moz-column-break-after: avoid;
  break-after: avoid;
}
.break-after-all {
  -moz-column-break-after: all;
  break-after: all;
}
.break-after-avoid-page {
  -moz-column-break-after: avoid;
  break-after: avoid-page;
}
.break-after-page {
  -moz-column-break-after: page;
  break-after: page;
}
.break-after-left {
  -moz-column-break-after: left;
  break-after: left;
}
.break-after-right {
  -moz-column-break-after: right;
  break-after: right;
}
.break-after-column {
  -moz-column-break-after: column;
  break-after: column;
}
.grid-flow-row {
  grid-auto-flow: row;
}
.grid-flow-col {
  grid-auto-flow: column;
}
.grid-flow-dense {
  grid-auto-flow: dense;
}
.grid-flow-row-dense {
  grid-auto-flow: row dense;
}
.grid-flow-col-dense {
  grid-auto-flow: column dense;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}
.grid-cols-11 {
  grid-template-columns: repeat(11, minmax(0, 1fr));
}
.grid-cols-12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.grid-cols-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}
.grid-cols-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}
.grid-cols-none {
  grid-template-columns: none;
}
.grid-rows-1 {
  grid-template-rows: repeat(1, minmax(0, 1fr));
}
.grid-rows-2 {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
.grid-rows-3 {
  grid-template-rows: repeat(3, minmax(0, 1fr));
}
.grid-rows-4 {
  grid-template-rows: repeat(4, minmax(0, 1fr));
}
.grid-rows-5 {
  grid-template-rows: repeat(5, minmax(0, 1fr));
}
.grid-rows-6 {
  grid-template-rows: repeat(6, minmax(0, 1fr));
}
.grid-rows-none {
  grid-template-rows: none;
}
.flex-row {
  flex-direction: row;
}
.flex-row-reverse {
  flex-direction: row-reverse;
}
.flex-col {
  flex-direction: column;
}
.flex-col-reverse {
  flex-direction: column-reverse;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-wrap-reverse {
  flex-wrap: wrap-reverse;
}
.flex-nowrap {
  flex-wrap: nowrap;
}
.place-content-center {
  place-content: center;
}
.place-content-start {
  place-content: start;
}
.place-content-end {
  place-content: end;
}
.place-content-between {
  place-content: space-between;
}
.place-content-around {
  place-content: space-around;
}
.place-content-evenly {
  place-content: space-evenly;
}
.place-content-baseline {
  place-content: baseline;
}
.place-content-stretch {
  place-content: stretch;
}
.place-items-start {
  place-items: start;
}
.place-items-end {
  place-items: end;
}
.place-items-center {
  place-items: center;
}
.place-items-baseline {
  place-items: baseline;
}
.place-items-stretch {
  place-items: stretch;
}
.content-normal {
  align-content: normal;
}
.content-center {
  align-content: center;
}
.content-start {
  align-content: flex-start;
}
.content-end {
  align-content: flex-end;
}
.content-between {
  align-content: space-between;
}
.content-around {
  align-content: space-around;
}
.content-evenly {
  align-content: space-evenly;
}
.content-baseline {
  align-content: baseline;
}
.content-stretch {
  align-content: stretch;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-normal {
  justify-content: normal;
}
.justify-start {
  justify-content: flex-start;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.justify-around {
  justify-content: space-around;
}
.justify-evenly {
  justify-content: space-evenly;
}
.justify-stretch {
  justify-content: stretch;
}
.justify-items-start {
  justify-items: start;
}
.justify-items-end {
  justify-items: end;
}
.justify-items-center {
  justify-items: center;
}
.justify-items-stretch {
  justify-items: stretch;
}
.gap-0 {
  gap: 0;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-10 {
  gap: 2.5rem;
}
.gap-11 {
  gap: 2.75rem;
}
.gap-12 {
  gap: 3rem;
}
.gap-14 {
  gap: 3.5rem;
}
.gap-16 {
  gap: 4rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-20 {
  gap: 5rem;
}
.gap-24 {
  gap: 6rem;
}
.gap-28 {
  gap: 7rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-3\.5 {
  gap: 0.875rem;
}
.gap-32 {
  gap: 8rem;
}
.gap-36 {
  gap: 9rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-40 {
  gap: 10rem;
}
.gap-44 {
  gap: 11rem;
}
.gap-48 {
  gap: 12rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-52 {
  gap: 13rem;
}
.gap-56 {
  gap: 14rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-60 {
  gap: 15rem;
}
.gap-64 {
  gap: 16rem;
}
.gap-7 {
  gap: 1.75rem;
}
.gap-72 {
  gap: 18rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-80 {
  gap: 20rem;
}
.gap-9 {
  gap: 2.25rem;
}
.gap-96 {
  gap: 24rem;
}
.gap-px {
  gap: 1px;
}
.gap-x-0 {
  -moz-column-gap: 0;
  column-gap: 0;
}
.gap-x-0\.5 {
  -moz-column-gap: 0.125rem;
  column-gap: 0.125rem;
}
.gap-x-1 {
  -moz-column-gap: 0.25rem;
  column-gap: 0.25rem;
}
.gap-x-1\.5 {
  -moz-column-gap: 0.375rem;
  column-gap: 0.375rem;
}
.gap-x-10 {
  -moz-column-gap: 2.5rem;
  column-gap: 2.5rem;
}
.gap-x-11 {
  -moz-column-gap: 2.75rem;
  column-gap: 2.75rem;
}
.gap-x-12 {
  -moz-column-gap: 3rem;
  column-gap: 3rem;
}
.gap-x-14 {
  -moz-column-gap: 3.5rem;
  column-gap: 3.5rem;
}
.gap-x-16 {
  -moz-column-gap: 4rem;
  column-gap: 4rem;
}
.gap-x-2 {
  -moz-column-gap: 0.5rem;
  column-gap: 0.5rem;
}
.gap-x-2\.5 {
  -moz-column-gap: 0.625rem;
  column-gap: 0.625rem;
}
.gap-x-20 {
  -moz-column-gap: 5rem;
  column-gap: 5rem;
}
.gap-x-24 {
  -moz-column-gap: 6rem;
  column-gap: 6rem;
}
.gap-x-28 {
  -moz-column-gap: 7rem;
  column-gap: 7rem;
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
  column-gap: 0.75rem;
}
.gap-x-3\.5 {
  -moz-column-gap: 0.875rem;
  column-gap: 0.875rem;
}
.gap-x-32 {
  -moz-column-gap: 8rem;
  column-gap: 8rem;
}
.gap-x-36 {
  -moz-column-gap: 9rem;
  column-gap: 9rem;
}
.gap-x-4 {
  -moz-column-gap: 1rem;
  column-gap: 1rem;
}
.gap-x-40 {
  -moz-column-gap: 10rem;
  column-gap: 10rem;
}
.gap-x-44 {
  -moz-column-gap: 11rem;
  column-gap: 11rem;
}
.gap-x-48 {
  -moz-column-gap: 12rem;
  column-gap: 12rem;
}
.gap-x-5 {
  -moz-column-gap: 1.25rem;
  column-gap: 1.25rem;
}
.gap-x-52 {
  -moz-column-gap: 13rem;
  column-gap: 13rem;
}
.gap-x-56 {
  -moz-column-gap: 14rem;
  column-gap: 14rem;
}
.gap-x-6 {
  -moz-column-gap: 1.5rem;
  column-gap: 1.5rem;
}
.gap-x-60 {
  -moz-column-gap: 15rem;
  column-gap: 15rem;
}
.gap-x-64 {
  -moz-column-gap: 16rem;
  column-gap: 16rem;
}
.gap-x-7 {
  -moz-column-gap: 1.75rem;
  column-gap: 1.75rem;
}
.gap-x-72 {
  -moz-column-gap: 18rem;
  column-gap: 18rem;
}
.gap-x-8 {
  -moz-column-gap: 2rem;
  column-gap: 2rem;
}
.gap-x-80 {
  -moz-column-gap: 20rem;
  column-gap: 20rem;
}
.gap-x-9 {
  -moz-column-gap: 2.25rem;
  column-gap: 2.25rem;
}
.gap-x-96 {
  -moz-column-gap: 24rem;
  column-gap: 24rem;
}
.gap-x-px {
  -moz-column-gap: 1px;
  column-gap: 1px;
}
.gap-y-0 {
  row-gap: 0;
}
.gap-y-0\.5 {
  row-gap: 0.125rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-1\.5 {
  row-gap: 0.375rem;
}
.gap-y-10 {
  row-gap: 2.5rem;
}
.gap-y-11 {
  row-gap: 2.75rem;
}
.gap-y-12 {
  row-gap: 3rem;
}
.gap-y-14 {
  row-gap: 3.5rem;
}
.gap-y-16 {
  row-gap: 4rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-2\.5 {
  row-gap: 0.625rem;
}
.gap-y-20 {
  row-gap: 5rem;
}
.gap-y-24 {
  row-gap: 6rem;
}
.gap-y-28 {
  row-gap: 7rem;
}
.gap-y-3 {
  row-gap: 0.75rem;
}
.gap-y-3\.5 {
  row-gap: 0.875rem;
}
.gap-y-32 {
  row-gap: 8rem;
}
.gap-y-36 {
  row-gap: 9rem;
}
.gap-y-4 {
  row-gap: 1rem;
}
.gap-y-40 {
  row-gap: 10rem;
}
.gap-y-44 {
  row-gap: 11rem;
}
.gap-y-48 {
  row-gap: 12rem;
}
.gap-y-5 {
  row-gap: 1.25rem;
}
.gap-y-52 {
  row-gap: 13rem;
}
.gap-y-56 {
  row-gap: 14rem;
}
.gap-y-6 {
  row-gap: 1.5rem;
}
.gap-y-60 {
  row-gap: 15rem;
}
.gap-y-64 {
  row-gap: 16rem;
}
.gap-y-7 {
  row-gap: 1.75rem;
}
.gap-y-72 {
  row-gap: 18rem;
}
.gap-y-8 {
  row-gap: 2rem;
}
.gap-y-80 {
  row-gap: 20rem;
}
.gap-y-9 {
  row-gap: 2.25rem;
}
.gap-y-96 {
  row-gap: 24rem;
}
.gap-y-px {
  row-gap: 1px;
}
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * (1 - var(--tw-space-x-reverse)));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * (1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-reverse > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 1;
}
.space-x-reverse > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 1;
}
.divide-x > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-x-reverse: 0;
  border-right-width: calc(1px * var(--tw-divide-x-reverse));
  border-left-width: calc(1px * (1 - var(--tw-divide-x-reverse)));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * (1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-y-reverse > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 1;
}
.divide-x-reverse > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-x-reverse: 1;
}
.divide-solid > :not([hidden]) ~ :not([hidden]) {
  border-style: solid;
}
.divide-dashed > :not([hidden]) ~ :not([hidden]) {
  border-style: dashed;
}
.divide-dotted > :not([hidden]) ~ :not([hidden]) {
  border-style: dotted;
}
.divide-double > :not([hidden]) ~ :not([hidden]) {
  border-style: double;
}
.divide-none > :not([hidden]) ~ :not([hidden]) {
  border-style: none;
}
.place-self-auto {
  place-self: auto;
}
.place-self-start {
  place-self: start;
}
.place-self-end {
  place-self: end;
}
.place-self-center {
  place-self: center;
}
.place-self-stretch {
  place-self: stretch;
}
.self-auto {
  align-self: auto;
}
.self-start {
  align-self: flex-start;
}
.self-end {
  align-self: flex-end;
}
.self-center {
  align-self: center;
}
.self-stretch {
  align-self: stretch;
}
.self-baseline {
  align-self: baseline;
}
.justify-self-auto {
  justify-self: auto;
}
.justify-self-start {
  justify-self: start;
}
.justify-self-end {
  justify-self: end;
}
.justify-self-center {
  justify-self: center;
}
.justify-self-stretch {
  justify-self: stretch;
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-clip {
  overflow: clip;
}
.overflow-visible {
  overflow: visible;
}
.overflow-scroll {
  overflow: scroll;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.overflow-y-hidden {
  overflow-y: hidden;
}
.overflow-x-clip {
  overflow-x: clip;
}
.overflow-y-clip {
  overflow-y: clip;
}
.overflow-x-visible {
  overflow-x: visible;
}
.overflow-y-visible {
  overflow-y: visible;
}
.overflow-x-scroll {
  overflow-x: scroll;
}
.overflow-y-scroll {
  overflow-y: scroll;
}
.overscroll-auto {
  overscroll-behavior: auto;
}
.overscroll-contain {
  overscroll-behavior: contain;
}
.overscroll-none {
  overscroll-behavior: none;
}
.overscroll-y-auto {
  overscroll-behavior-y: auto;
}
.overscroll-y-contain {
  overscroll-behavior-y: contain;
}
.overscroll-y-none {
  overscroll-behavior-y: none;
}
.overscroll-x-auto {
  overscroll-behavior-x: auto;
}
.overscroll-x-contain {
  overscroll-behavior-x: contain;
}
.overscroll-x-none {
  overscroll-behavior-x: none;
}
.scroll-auto {
  scroll-behavior: auto;
}
.scroll-smooth {
  scroll-behavior: smooth;
}
.truncate {
  overflow: hidden;
  white-space: nowrap;
}
.overflow-ellipsis,
.text-ellipsis,
.truncate {
  text-overflow: ellipsis;
}
.text-clip {
  text-overflow: clip;
}
.hyphens-none {
  -webkit-hyphens: none;
  hyphens: none;
}
.hyphens-manual {
  -webkit-hyphens: manual;
  hyphens: manual;
}
.hyphens-auto {
  -webkit-hyphens: auto;
  hyphens: auto;
}
.whitespace-normal {
  white-space: normal;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre {
  white-space: pre;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.whitespace-pre-wrap {
  white-space: pre-wrap;
}
.whitespace-break-spaces {
  white-space: break-spaces;
}
.break-normal {
  overflow-wrap: normal;
  word-break: normal;
}
.break-words {
  overflow-wrap: break-word;
}
.break-all {
  word-break: break-all;
}
.break-keep {
  word-break: keep-all;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-b {
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.rounded-e {
  border-start-end-radius: 0.25rem;
  border-end-end-radius: 0.25rem;
}
.rounded-l {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.rounded-r {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.rounded-s {
  border-start-start-radius: 0.25rem;
  border-end-start-radius: 0.25rem;
}
.rounded-t {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}
.rounded-t-lg {
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}
.rounded-bl {
  border-bottom-left-radius: 0.25rem;
}
.rounded-br {
  border-bottom-right-radius: 0.25rem;
}
.rounded-ee {
  border-end-end-radius: 0.25rem;
}
.rounded-es {
  border-end-start-radius: 0.25rem;
}
.rounded-se {
  border-start-end-radius: 0.25rem;
}
.rounded-ss {
  border-start-start-radius: 0.25rem;
}
.rounded-tl {
  border-top-left-radius: 0.25rem;
}
.rounded-tr {
  border-top-right-radius: 0.25rem;
}
.border {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-x {
  border-left-width: 1px;
  border-right-width: 1px;
}
.border-y {
  border-top-width: 1px;
}
.border-b,
.border-y {
  border-bottom-width: 1px;
}
.border-b-8 {
  border-bottom-width: 8px;
}
.border-l {
  border-left-width: 1px;
}
.border-r {
  border-right-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-t-2 {
  border-top-width: 2px;
}
.border-solid {
  border-style: solid;
}
.border-dashed {
  border-style: dashed;
}
.border-dotted {
  border-style: dotted;
}
.border-double {
  border-style: double;
}
.border-hidden {
  border-style: hidden;
}
.border-none {
  border-style: none;
}
.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity));
}
.border-red-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity));
}
.border-opacity-50 {
  --tw-border-opacity: 0.5;
}
.bg-\[rgb\(255\2c 0\2c 0\)\] {
  --tw-bg-opacity: 1;
  background-color: rgb(255 0 0 / var(--tw-bg-opacity));
}
.bg-amber-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity));
}
.bg-amber-100\/0 {
  background-color: #fef3c700;
}
.bg-amber-100\/10 {
  background-color: #fef3c71a;
}
.bg-amber-100\/100 {
  background-color: #fef3c7;
}
.bg-amber-100\/20 {
  background-color: #fef3c733;
}
.bg-amber-100\/25 {
  background-color: #fef3c740;
}
.bg-amber-100\/30 {
  background-color: #fef3c74d;
}
.bg-amber-100\/40 {
  background-color: #fef3c766;
}
.bg-amber-100\/5 {
  background-color: #fef3c70d;
}
.bg-amber-100\/50 {
  background-color: #fef3c780;
}
.bg-amber-100\/60 {
  background-color: #fef3c799;
}
.bg-amber-100\/70 {
  background-color: #fef3c7b3;
}
.bg-amber-100\/75 {
  background-color: #fef3c7bf;
}
.bg-amber-100\/80 {
  background-color: #fef3c7cc;
}
.bg-amber-100\/90 {
  background-color: #fef3c7e6;
}
.bg-amber-100\/95 {
  background-color: #fef3c7f2;
}
.bg-amber-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 230 138 / var(--tw-bg-opacity));
}
.bg-amber-200\/0 {
  background-color: #fde68a00;
}
.bg-amber-200\/10 {
  background-color: #fde68a1a;
}
.bg-amber-200\/100 {
  background-color: #fde68a;
}
.bg-amber-200\/20 {
  background-color: #fde68a33;
}
.bg-amber-200\/25 {
  background-color: #fde68a40;
}
.bg-amber-200\/30 {
  background-color: #fde68a4d;
}
.bg-amber-200\/40 {
  background-color: #fde68a66;
}
.bg-amber-200\/5 {
  background-color: #fde68a0d;
}
.bg-amber-200\/50 {
  background-color: #fde68a80;
}
.bg-amber-200\/60 {
  background-color: #fde68a99;
}
.bg-amber-200\/70 {
  background-color: #fde68ab3;
}
.bg-amber-200\/75 {
  background-color: #fde68abf;
}
.bg-amber-200\/80 {
  background-color: #fde68acc;
}
.bg-amber-200\/90 {
  background-color: #fde68ae6;
}
.bg-amber-200\/95 {
  background-color: #fde68af2;
}
.bg-amber-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(252 211 77 / var(--tw-bg-opacity));
}
.bg-amber-300\/0 {
  background-color: #fcd34d00;
}
.bg-amber-300\/10 {
  background-color: #fcd34d1a;
}
.bg-amber-300\/100 {
  background-color: #fcd34d;
}
.bg-amber-300\/20 {
  background-color: #fcd34d33;
}
.bg-amber-300\/25 {
  background-color: #fcd34d40;
}
.bg-amber-300\/30 {
  background-color: #fcd34d4d;
}
.bg-amber-300\/40 {
  background-color: #fcd34d66;
}
.bg-amber-300\/5 {
  background-color: #fcd34d0d;
}
.bg-amber-300\/50 {
  background-color: #fcd34d80;
}
.bg-amber-300\/60 {
  background-color: #fcd34d99;
}
.bg-amber-300\/70 {
  background-color: #fcd34db3;
}
.bg-amber-300\/75 {
  background-color: #fcd34dbf;
}
.bg-amber-300\/80 {
  background-color: #fcd34dcc;
}
.bg-amber-300\/90 {
  background-color: #fcd34de6;
}
.bg-amber-300\/95 {
  background-color: #fcd34df2;
}
.bg-amber-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 191 36 / var(--tw-bg-opacity));
}
.bg-amber-400\/0 {
  background-color: #fbbf2400;
}
.bg-amber-400\/10 {
  background-color: #fbbf241a;
}
.bg-amber-400\/100 {
  background-color: #fbbf24;
}
.bg-amber-400\/20 {
  background-color: #fbbf2433;
}
.bg-amber-400\/25 {
  background-color: #fbbf2440;
}
.bg-amber-400\/30 {
  background-color: #fbbf244d;
}
.bg-amber-400\/40 {
  background-color: #fbbf2466;
}
.bg-amber-400\/5 {
  background-color: #fbbf240d;
}
.bg-amber-400\/50 {
  background-color: #fbbf2480;
}
.bg-amber-400\/60 {
  background-color: #fbbf2499;
}
.bg-amber-400\/70 {
  background-color: #fbbf24b3;
}
.bg-amber-400\/75 {
  background-color: #fbbf24bf;
}
.bg-amber-400\/80 {
  background-color: #fbbf24cc;
}
.bg-amber-400\/90 {
  background-color: #fbbf24e6;
}
.bg-amber-400\/95 {
  background-color: #fbbf24f2;
}
.bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity));
}
.bg-amber-50\/0 {
  background-color: #fffbeb00;
}
.bg-amber-50\/10 {
  background-color: #fffbeb1a;
}
.bg-amber-50\/100 {
  background-color: #fffbeb;
}
.bg-amber-50\/20 {
  background-color: #fffbeb33;
}
.bg-amber-50\/25 {
  background-color: #fffbeb40;
}
.bg-amber-50\/30 {
  background-color: #fffbeb4d;
}
.bg-amber-50\/40 {
  background-color: #fffbeb66;
}
.bg-amber-50\/5 {
  background-color: #fffbeb0d;
}
.bg-amber-50\/50 {
  background-color: #fffbeb80;
}
.bg-amber-50\/60 {
  background-color: #fffbeb99;
}
.bg-amber-50\/70 {
  background-color: #fffbebb3;
}
.bg-amber-50\/75 {
  background-color: #fffbebbf;
}
.bg-amber-50\/80 {
  background-color: #fffbebcc;
}
.bg-amber-50\/90 {
  background-color: #fffbebe6;
}
.bg-amber-50\/95 {
  background-color: #fffbebf2;
}
.bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity));
}
.bg-amber-500\/0 {
  background-color: #f59e0b00;
}
.bg-amber-500\/10 {
  background-color: #f59e0b1a;
}
.bg-amber-500\/100 {
  background-color: #f59e0b;
}
.bg-amber-500\/20 {
  background-color: #f59e0b33;
}
.bg-amber-500\/25 {
  background-color: #f59e0b40;
}
.bg-amber-500\/30 {
  background-color: #f59e0b4d;
}
.bg-amber-500\/40 {
  background-color: #f59e0b66;
}
.bg-amber-500\/5 {
  background-color: #f59e0b0d;
}
.bg-amber-500\/50 {
  background-color: #f59e0b80;
}
.bg-amber-500\/60 {
  background-color: #f59e0b99;
}
.bg-amber-500\/70 {
  background-color: #f59e0bb3;
}
.bg-amber-500\/75 {
  background-color: #f59e0bbf;
}
.bg-amber-500\/80 {
  background-color: #f59e0bcc;
}
.bg-amber-500\/90 {
  background-color: #f59e0be6;
}
.bg-amber-500\/95 {
  background-color: #f59e0bf2;
}
.bg-amber-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(217 119 6 / var(--tw-bg-opacity));
}
.bg-amber-600\/0 {
  background-color: #d9770600;
}
.bg-amber-600\/10 {
  background-color: #d977061a;
}
.bg-amber-600\/100 {
  background-color: #d97706;
}
.bg-amber-600\/20 {
  background-color: #d9770633;
}
.bg-amber-600\/25 {
  background-color: #d9770640;
}
.bg-amber-600\/30 {
  background-color: #d977064d;
}
.bg-amber-600\/40 {
  background-color: #d9770666;
}
.bg-amber-600\/5 {
  background-color: #d977060d;
}
.bg-amber-600\/50 {
  background-color: #d9770680;
}
.bg-amber-600\/60 {
  background-color: #d9770699;
}
.bg-amber-600\/70 {
  background-color: #d97706b3;
}
.bg-amber-600\/75 {
  background-color: #d97706bf;
}
.bg-amber-600\/80 {
  background-color: #d97706cc;
}
.bg-amber-600\/90 {
  background-color: #d97706e6;
}
.bg-amber-600\/95 {
  background-color: #d97706f2;
}
.bg-amber-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(180 83 9 / var(--tw-bg-opacity));
}
.bg-amber-700\/0 {
  background-color: #b4530900;
}
.bg-amber-700\/10 {
  background-color: #b453091a;
}
.bg-amber-700\/100 {
  background-color: #b45309;
}
.bg-amber-700\/20 {
  background-color: #b4530933;
}
.bg-amber-700\/25 {
  background-color: #b4530940;
}
.bg-amber-700\/30 {
  background-color: #b453094d;
}
.bg-amber-700\/40 {
  background-color: #b4530966;
}
.bg-amber-700\/5 {
  background-color: #b453090d;
}
.bg-amber-700\/50 {
  background-color: #b4530980;
}
.bg-amber-700\/60 {
  background-color: #b4530999;
}
.bg-amber-700\/70 {
  background-color: #b45309b3;
}
.bg-amber-700\/75 {
  background-color: #b45309bf;
}
.bg-amber-700\/80 {
  background-color: #b45309cc;
}
.bg-amber-700\/90 {
  background-color: #b45309e6;
}
.bg-amber-700\/95 {
  background-color: #b45309f2;
}
.bg-amber-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(146 64 14 / var(--tw-bg-opacity));
}
.bg-amber-800\/0 {
  background-color: #92400e00;
}
.bg-amber-800\/10 {
  background-color: #92400e1a;
}
.bg-amber-800\/100 {
  background-color: #92400e;
}
.bg-amber-800\/20 {
  background-color: #92400e33;
}
.bg-amber-800\/25 {
  background-color: #92400e40;
}
.bg-amber-800\/30 {
  background-color: #92400e4d;
}
.bg-amber-800\/40 {
  background-color: #92400e66;
}
.bg-amber-800\/5 {
  background-color: #92400e0d;
}
.bg-amber-800\/50 {
  background-color: #92400e80;
}
.bg-amber-800\/60 {
  background-color: #92400e99;
}
.bg-amber-800\/70 {
  background-color: #92400eb3;
}
.bg-amber-800\/75 {
  background-color: #92400ebf;
}
.bg-amber-800\/80 {
  background-color: #92400ecc;
}
.bg-amber-800\/90 {
  background-color: #92400ee6;
}
.bg-amber-800\/95 {
  background-color: #92400ef2;
}
.bg-amber-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(120 53 15 / var(--tw-bg-opacity));
}
.bg-amber-900\/0 {
  background-color: #78350f00;
}
.bg-amber-900\/10 {
  background-color: #78350f1a;
}
.bg-amber-900\/100 {
  background-color: #78350f;
}
.bg-amber-900\/20 {
  background-color: #78350f33;
}
.bg-amber-900\/25 {
  background-color: #78350f40;
}
.bg-amber-900\/30 {
  background-color: #78350f4d;
}
.bg-amber-900\/40 {
  background-color: #78350f66;
}
.bg-amber-900\/5 {
  background-color: #78350f0d;
}
.bg-amber-900\/50 {
  background-color: #78350f80;
}
.bg-amber-900\/60 {
  background-color: #78350f99;
}
.bg-amber-900\/70 {
  background-color: #78350fb3;
}
.bg-amber-900\/75 {
  background-color: #78350fbf;
}
.bg-amber-900\/80 {
  background-color: #78350fcc;
}
.bg-amber-900\/90 {
  background-color: #78350fe6;
}
.bg-amber-900\/95 {
  background-color: #78350ff2;
}
.bg-amber-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(69 26 3 / var(--tw-bg-opacity));
}
.bg-amber-950\/0 {
  background-color: #451a0300;
}
.bg-amber-950\/10 {
  background-color: #451a031a;
}
.bg-amber-950\/100 {
  background-color: #451a03;
}
.bg-amber-950\/20 {
  background-color: #451a0333;
}
.bg-amber-950\/25 {
  background-color: #451a0340;
}
.bg-amber-950\/30 {
  background-color: #451a034d;
}
.bg-amber-950\/40 {
  background-color: #451a0366;
}
.bg-amber-950\/5 {
  background-color: #451a030d;
}
.bg-amber-950\/50 {
  background-color: #451a0380;
}
.bg-amber-950\/60 {
  background-color: #451a0399;
}
.bg-amber-950\/70 {
  background-color: #451a03b3;
}
.bg-amber-950\/75 {
  background-color: #451a03bf;
}
.bg-amber-950\/80 {
  background-color: #451a03cc;
}
.bg-amber-950\/90 {
  background-color: #451a03e6;
}
.bg-amber-950\/95 {
  background-color: #451a03f2;
}
.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity));
}
.bg-black\/0 {
  background-color: #0000;
}
.bg-black\/10 {
  background-color: #0000001a;
}
.bg-black\/100 {
  background-color: #000;
}
.bg-black\/20 {
  background-color: #0003;
}
.bg-black\/25 {
  background-color: #00000040;
}
.bg-black\/30 {
  background-color: #0000004d;
}
.bg-black\/40 {
  background-color: #0006;
}
.bg-black\/5 {
  background-color: #0000000d;
}
.bg-black\/50 {
  background-color: #00000080;
}
.bg-black\/60 {
  background-color: #0009;
}
.bg-black\/70 {
  background-color: #000000b3;
}
.bg-black\/75 {
  background-color: #000000bf;
}
.bg-black\/80 {
  background-color: #000c;
}
.bg-black\/90 {
  background-color: #000000e6;
}
.bg-black\/95 {
  background-color: #000000f2;
}
.bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
}
.bg-blue-100\/0 {
  background-color: #dbeafe00;
}
.bg-blue-100\/10 {
  background-color: #dbeafe1a;
}
.bg-blue-100\/100 {
  background-color: #dbeafe;
}
.bg-blue-100\/20 {
  background-color: #dbeafe33;
}
.bg-blue-100\/25 {
  background-color: #dbeafe40;
}
.bg-blue-100\/30 {
  background-color: #dbeafe4d;
}
.bg-blue-100\/40 {
  background-color: #dbeafe66;
}
.bg-blue-100\/5 {
  background-color: #dbeafe0d;
}
.bg-blue-100\/50 {
  background-color: #dbeafe80;
}
.bg-blue-100\/60 {
  background-color: #dbeafe99;
}
.bg-blue-100\/70 {
  background-color: #dbeafeb3;
}
.bg-blue-100\/75 {
  background-color: #dbeafebf;
}
.bg-blue-100\/80 {
  background-color: #dbeafecc;
}
.bg-blue-100\/90 {
  background-color: #dbeafee6;
}
.bg-blue-100\/95 {
  background-color: #dbeafef2;
}
.bg-blue-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(191 219 254 / var(--tw-bg-opacity));
}
.bg-blue-200\/0 {
  background-color: #bfdbfe00;
}
.bg-blue-200\/10 {
  background-color: #bfdbfe1a;
}
.bg-blue-200\/100 {
  background-color: #bfdbfe;
}
.bg-blue-200\/20 {
  background-color: #bfdbfe33;
}
.bg-blue-200\/25 {
  background-color: #bfdbfe40;
}
.bg-blue-200\/30 {
  background-color: #bfdbfe4d;
}
.bg-blue-200\/40 {
  background-color: #bfdbfe66;
}
.bg-blue-200\/5 {
  background-color: #bfdbfe0d;
}
.bg-blue-200\/50 {
  background-color: #bfdbfe80;
}
.bg-blue-200\/60 {
  background-color: #bfdbfe99;
}
.bg-blue-200\/70 {
  background-color: #bfdbfeb3;
}
.bg-blue-200\/75 {
  background-color: #bfdbfebf;
}
.bg-blue-200\/80 {
  background-color: #bfdbfecc;
}
.bg-blue-200\/90 {
  background-color: #bfdbfee6;
}
.bg-blue-200\/95 {
  background-color: #bfdbfef2;
}
.bg-blue-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(147 197 253 / var(--tw-bg-opacity));
}
.bg-blue-300\/0 {
  background-color: #93c5fd00;
}
.bg-blue-300\/10 {
  background-color: #93c5fd1a;
}
.bg-blue-300\/100 {
  background-color: #93c5fd;
}
.bg-blue-300\/20 {
  background-color: #93c5fd33;
}
.bg-blue-300\/25 {
  background-color: #93c5fd40;
}
.bg-blue-300\/30 {
  background-color: #93c5fd4d;
}
.bg-blue-300\/40 {
  background-color: #93c5fd66;
}
.bg-blue-300\/5 {
  background-color: #93c5fd0d;
}
.bg-blue-300\/50 {
  background-color: #93c5fd80;
}
.bg-blue-300\/60 {
  background-color: #93c5fd99;
}
.bg-blue-300\/70 {
  background-color: #93c5fdb3;
}
.bg-blue-300\/75 {
  background-color: #93c5fdbf;
}
.bg-blue-300\/80 {
  background-color: #93c5fdcc;
}
.bg-blue-300\/90 {
  background-color: #93c5fde6;
}
.bg-blue-300\/95 {
  background-color: #93c5fdf2;
}
.bg-blue-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(96 165 250 / var(--tw-bg-opacity));
}
.bg-blue-400\/0 {
  background-color: #60a5fa00;
}
.bg-blue-400\/10 {
  background-color: #60a5fa1a;
}
.bg-blue-400\/100 {
  background-color: #60a5fa;
}
.bg-blue-400\/20 {
  background-color: #60a5fa33;
}
.bg-blue-400\/25 {
  background-color: #60a5fa40;
}
.bg-blue-400\/30 {
  background-color: #60a5fa4d;
}
.bg-blue-400\/40 {
  background-color: #60a5fa66;
}
.bg-blue-400\/5 {
  background-color: #60a5fa0d;
}
.bg-blue-400\/50 {
  background-color: #60a5fa80;
}
.bg-blue-400\/60 {
  background-color: #60a5fa99;
}
.bg-blue-400\/70 {
  background-color: #60a5fab3;
}
.bg-blue-400\/75 {
  background-color: #60a5fabf;
}
.bg-blue-400\/80 {
  background-color: #60a5facc;
}
.bg-blue-400\/90 {
  background-color: #60a5fae6;
}
.bg-blue-400\/95 {
  background-color: #60a5faf2;
}
.bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}
.bg-blue-50\/0 {
  background-color: #eff6ff00;
}
.bg-blue-50\/10 {
  background-color: #eff6ff1a;
}
.bg-blue-50\/100 {
  background-color: #eff6ff;
}
.bg-blue-50\/20 {
  background-color: #eff6ff33;
}
.bg-blue-50\/25 {
  background-color: #eff6ff40;
}
.bg-blue-50\/30 {
  background-color: #eff6ff4d;
}
.bg-blue-50\/40 {
  background-color: #eff6ff66;
}
.bg-blue-50\/5 {
  background-color: #eff6ff0d;
}
.bg-blue-50\/50 {
  background-color: #eff6ff80;
}
.bg-blue-50\/60 {
  background-color: #eff6ff99;
}
.bg-blue-50\/70 {
  background-color: #eff6ffb3;
}
.bg-blue-50\/75 {
  background-color: #eff6ffbf;
}
.bg-blue-50\/80 {
  background-color: #eff6ffcc;
}
.bg-blue-50\/90 {
  background-color: #eff6ffe6;
}
.bg-blue-50\/95 {
  background-color: #eff6fff2;
}
.bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}
.bg-blue-500\/0 {
  background-color: #3b82f600;
}
.bg-blue-500\/10 {
  background-color: #3b82f61a;
}
.bg-blue-500\/100 {
  background-color: #3b82f6;
}
.bg-blue-500\/20 {
  background-color: #3b82f633;
}
.bg-blue-500\/25 {
  background-color: #3b82f640;
}
.bg-blue-500\/30 {
  background-color: #3b82f64d;
}
.bg-blue-500\/40 {
  background-color: #3b82f666;
}
.bg-blue-500\/5 {
  background-color: #3b82f60d;
}
.bg-blue-500\/50 {
  background-color: #3b82f680;
}
.bg-blue-500\/60 {
  background-color: #3b82f699;
}
.bg-blue-500\/70 {
  background-color: #3b82f6b3;
}
.bg-blue-500\/75 {
  background-color: #3b82f6bf;
}
.bg-blue-500\/80 {
  background-color: #3b82f6cc;
}
.bg-blue-500\/90 {
  background-color: #3b82f6e6;
}
.bg-blue-500\/95 {
  background-color: #3b82f6f2;
}
.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
}
.bg-blue-600\/0 {
  background-color: #2563eb00;
}
.bg-blue-600\/10 {
  background-color: #2563eb1a;
}
.bg-blue-600\/100 {
  background-color: #2563eb;
}
.bg-blue-600\/20 {
  background-color: #2563eb33;
}
.bg-blue-600\/25 {
  background-color: #2563eb40;
}
.bg-blue-600\/30 {
  background-color: #2563eb4d;
}
.bg-blue-600\/40 {
  background-color: #2563eb66;
}
.bg-blue-600\/5 {
  background-color: #2563eb0d;
}
.bg-blue-600\/50 {
  background-color: #2563eb80;
}
.bg-blue-600\/60 {
  background-color: #2563eb99;
}
.bg-blue-600\/70 {
  background-color: #2563ebb3;
}
.bg-blue-600\/75 {
  background-color: #2563ebbf;
}
.bg-blue-600\/80 {
  background-color: #2563ebcc;
}
.bg-blue-600\/90 {
  background-color: #2563ebe6;
}
.bg-blue-600\/95 {
  background-color: #2563ebf2;
}
.bg-blue-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity));
}
.bg-blue-700\/0 {
  background-color: #1d4ed800;
}
.bg-blue-700\/10 {
  background-color: #1d4ed81a;
}
.bg-blue-700\/100 {
  background-color: #1d4ed8;
}
.bg-blue-700\/20 {
  background-color: #1d4ed833;
}
.bg-blue-700\/25 {
  background-color: #1d4ed840;
}
.bg-blue-700\/30 {
  background-color: #1d4ed84d;
}
.bg-blue-700\/40 {
  background-color: #1d4ed866;
}
.bg-blue-700\/5 {
  background-color: #1d4ed80d;
}
.bg-blue-700\/50 {
  background-color: #1d4ed880;
}
.bg-blue-700\/60 {
  background-color: #1d4ed899;
}
.bg-blue-700\/70 {
  background-color: #1d4ed8b3;
}
.bg-blue-700\/75 {
  background-color: #1d4ed8bf;
}
.bg-blue-700\/80 {
  background-color: #1d4ed8cc;
}
.bg-blue-700\/90 {
  background-color: #1d4ed8e6;
}
.bg-blue-700\/95 {
  background-color: #1d4ed8f2;
}
.bg-blue-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 64 175 / var(--tw-bg-opacity));
}
.bg-blue-800\/0 {
  background-color: #1e40af00;
}
.bg-blue-800\/10 {
  background-color: #1e40af1a;
}
.bg-blue-800\/100 {
  background-color: #1e40af;
}
.bg-blue-800\/20 {
  background-color: #1e40af33;
}
.bg-blue-800\/25 {
  background-color: #1e40af40;
}
.bg-blue-800\/30 {
  background-color: #1e40af4d;
}
.bg-blue-800\/40 {
  background-color: #1e40af66;
}
.bg-blue-800\/5 {
  background-color: #1e40af0d;
}
.bg-blue-800\/50 {
  background-color: #1e40af80;
}
.bg-blue-800\/60 {
  background-color: #1e40af99;
}
.bg-blue-800\/70 {
  background-color: #1e40afb3;
}
.bg-blue-800\/75 {
  background-color: #1e40afbf;
}
.bg-blue-800\/80 {
  background-color: #1e40afcc;
}
.bg-blue-800\/90 {
  background-color: #1e40afe6;
}
.bg-blue-800\/95 {
  background-color: #1e40aff2;
}
.bg-blue-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 58 138 / var(--tw-bg-opacity));
}
.bg-blue-900\/0 {
  background-color: #1e3a8a00;
}
.bg-blue-900\/10 {
  background-color: #1e3a8a1a;
}
.bg-blue-900\/100 {
  background-color: #1e3a8a;
}
.bg-blue-900\/20 {
  background-color: #1e3a8a33;
}
.bg-blue-900\/25 {
  background-color: #1e3a8a40;
}
.bg-blue-900\/30 {
  background-color: #1e3a8a4d;
}
.bg-blue-900\/40 {
  background-color: #1e3a8a66;
}
.bg-blue-900\/5 {
  background-color: #1e3a8a0d;
}
.bg-blue-900\/50 {
  background-color: #1e3a8a80;
}
.bg-blue-900\/60 {
  background-color: #1e3a8a99;
}
.bg-blue-900\/70 {
  background-color: #1e3a8ab3;
}
.bg-blue-900\/75 {
  background-color: #1e3a8abf;
}
.bg-blue-900\/80 {
  background-color: #1e3a8acc;
}
.bg-blue-900\/90 {
  background-color: #1e3a8ae6;
}
.bg-blue-900\/95 {
  background-color: #1e3a8af2;
}
.bg-blue-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(23 37 84 / var(--tw-bg-opacity));
}
.bg-blue-950\/0 {
  background-color: #17255400;
}
.bg-blue-950\/10 {
  background-color: #1725541a;
}
.bg-blue-950\/100 {
  background-color: #172554;
}
.bg-blue-950\/20 {
  background-color: #17255433;
}
.bg-blue-950\/25 {
  background-color: #17255440;
}
.bg-blue-950\/30 {
  background-color: #1725544d;
}
.bg-blue-950\/40 {
  background-color: #17255466;
}
.bg-blue-950\/5 {
  background-color: #1725540d;
}
.bg-blue-950\/50 {
  background-color: #17255480;
}
.bg-blue-950\/60 {
  background-color: #17255499;
}
.bg-blue-950\/70 {
  background-color: #172554b3;
}
.bg-blue-950\/75 {
  background-color: #172554bf;
}
.bg-blue-950\/80 {
  background-color: #172554cc;
}
.bg-blue-950\/90 {
  background-color: #172554e6;
}
.bg-blue-950\/95 {
  background-color: #172554f2;
}
.bg-current {
  background-color: currentColor;
}
.bg-cyan-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(207 250 254 / var(--tw-bg-opacity));
}
.bg-cyan-100\/0 {
  background-color: #cffafe00;
}
.bg-cyan-100\/10 {
  background-color: #cffafe1a;
}
.bg-cyan-100\/100 {
  background-color: #cffafe;
}
.bg-cyan-100\/20 {
  background-color: #cffafe33;
}
.bg-cyan-100\/25 {
  background-color: #cffafe40;
}
.bg-cyan-100\/30 {
  background-color: #cffafe4d;
}
.bg-cyan-100\/40 {
  background-color: #cffafe66;
}
.bg-cyan-100\/5 {
  background-color: #cffafe0d;
}
.bg-cyan-100\/50 {
  background-color: #cffafe80;
}
.bg-cyan-100\/60 {
  background-color: #cffafe99;
}
.bg-cyan-100\/70 {
  background-color: #cffafeb3;
}
.bg-cyan-100\/75 {
  background-color: #cffafebf;
}
.bg-cyan-100\/80 {
  background-color: #cffafecc;
}
.bg-cyan-100\/90 {
  background-color: #cffafee6;
}
.bg-cyan-100\/95 {
  background-color: #cffafef2;
}
.bg-cyan-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(165 243 252 / var(--tw-bg-opacity));
}
.bg-cyan-200\/0 {
  background-color: #a5f3fc00;
}
.bg-cyan-200\/10 {
  background-color: #a5f3fc1a;
}
.bg-cyan-200\/100 {
  background-color: #a5f3fc;
}
.bg-cyan-200\/20 {
  background-color: #a5f3fc33;
}
.bg-cyan-200\/25 {
  background-color: #a5f3fc40;
}
.bg-cyan-200\/30 {
  background-color: #a5f3fc4d;
}
.bg-cyan-200\/40 {
  background-color: #a5f3fc66;
}
.bg-cyan-200\/5 {
  background-color: #a5f3fc0d;
}
.bg-cyan-200\/50 {
  background-color: #a5f3fc80;
}
.bg-cyan-200\/60 {
  background-color: #a5f3fc99;
}
.bg-cyan-200\/70 {
  background-color: #a5f3fcb3;
}
.bg-cyan-200\/75 {
  background-color: #a5f3fcbf;
}
.bg-cyan-200\/80 {
  background-color: #a5f3fccc;
}
.bg-cyan-200\/90 {
  background-color: #a5f3fce6;
}
.bg-cyan-200\/95 {
  background-color: #a5f3fcf2;
}
.bg-cyan-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(103 232 249 / var(--tw-bg-opacity));
}
.bg-cyan-300\/0 {
  background-color: #67e8f900;
}
.bg-cyan-300\/10 {
  background-color: #67e8f91a;
}
.bg-cyan-300\/100 {
  background-color: #67e8f9;
}
.bg-cyan-300\/20 {
  background-color: #67e8f933;
}
.bg-cyan-300\/25 {
  background-color: #67e8f940;
}
.bg-cyan-300\/30 {
  background-color: #67e8f94d;
}
.bg-cyan-300\/40 {
  background-color: #67e8f966;
}
.bg-cyan-300\/5 {
  background-color: #67e8f90d;
}
.bg-cyan-300\/50 {
  background-color: #67e8f980;
}
.bg-cyan-300\/60 {
  background-color: #67e8f999;
}
.bg-cyan-300\/70 {
  background-color: #67e8f9b3;
}
.bg-cyan-300\/75 {
  background-color: #67e8f9bf;
}
.bg-cyan-300\/80 {
  background-color: #67e8f9cc;
}
.bg-cyan-300\/90 {
  background-color: #67e8f9e6;
}
.bg-cyan-300\/95 {
  background-color: #67e8f9f2;
}
.bg-cyan-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(34 211 238 / var(--tw-bg-opacity));
}
.bg-cyan-400\/0 {
  background-color: #22d3ee00;
}
.bg-cyan-400\/10 {
  background-color: #22d3ee1a;
}
.bg-cyan-400\/100 {
  background-color: #22d3ee;
}
.bg-cyan-400\/20 {
  background-color: #22d3ee33;
}
.bg-cyan-400\/25 {
  background-color: #22d3ee40;
}
.bg-cyan-400\/30 {
  background-color: #22d3ee4d;
}
.bg-cyan-400\/40 {
  background-color: #22d3ee66;
}
.bg-cyan-400\/5 {
  background-color: #22d3ee0d;
}
.bg-cyan-400\/50 {
  background-color: #22d3ee80;
}
.bg-cyan-400\/60 {
  background-color: #22d3ee99;
}
.bg-cyan-400\/70 {
  background-color: #22d3eeb3;
}
.bg-cyan-400\/75 {
  background-color: #22d3eebf;
}
.bg-cyan-400\/80 {
  background-color: #22d3eecc;
}
.bg-cyan-400\/90 {
  background-color: #22d3eee6;
}
.bg-cyan-400\/95 {
  background-color: #22d3eef2;
}
.bg-cyan-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 254 255 / var(--tw-bg-opacity));
}
.bg-cyan-50\/0 {
  background-color: #ecfeff00;
}
.bg-cyan-50\/10 {
  background-color: #ecfeff1a;
}
.bg-cyan-50\/100 {
  background-color: #ecfeff;
}
.bg-cyan-50\/20 {
  background-color: #ecfeff33;
}
.bg-cyan-50\/25 {
  background-color: #ecfeff40;
}
.bg-cyan-50\/30 {
  background-color: #ecfeff4d;
}
.bg-cyan-50\/40 {
  background-color: #ecfeff66;
}
.bg-cyan-50\/5 {
  background-color: #ecfeff0d;
}
.bg-cyan-50\/50 {
  background-color: #ecfeff80;
}
.bg-cyan-50\/60 {
  background-color: #ecfeff99;
}
.bg-cyan-50\/70 {
  background-color: #ecfeffb3;
}
.bg-cyan-50\/75 {
  background-color: #ecfeffbf;
}
.bg-cyan-50\/80 {
  background-color: #ecfeffcc;
}
.bg-cyan-50\/90 {
  background-color: #ecfeffe6;
}
.bg-cyan-50\/95 {
  background-color: #ecfefff2;
}
.bg-cyan-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(6 182 212 / var(--tw-bg-opacity));
}
.bg-cyan-500\/0 {
  background-color: #06b6d400;
}
.bg-cyan-500\/10 {
  background-color: #06b6d41a;
}
.bg-cyan-500\/100 {
  background-color: #06b6d4;
}
.bg-cyan-500\/20 {
  background-color: #06b6d433;
}
.bg-cyan-500\/25 {
  background-color: #06b6d440;
}
.bg-cyan-500\/30 {
  background-color: #06b6d44d;
}
.bg-cyan-500\/40 {
  background-color: #06b6d466;
}
.bg-cyan-500\/5 {
  background-color: #06b6d40d;
}
.bg-cyan-500\/50 {
  background-color: #06b6d480;
}
.bg-cyan-500\/60 {
  background-color: #06b6d499;
}
.bg-cyan-500\/70 {
  background-color: #06b6d4b3;
}
.bg-cyan-500\/75 {
  background-color: #06b6d4bf;
}
.bg-cyan-500\/80 {
  background-color: #06b6d4cc;
}
.bg-cyan-500\/90 {
  background-color: #06b6d4e6;
}
.bg-cyan-500\/95 {
  background-color: #06b6d4f2;
}
.bg-cyan-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(8 145 178 / var(--tw-bg-opacity));
}
.bg-cyan-600\/0 {
  background-color: #0891b200;
}
.bg-cyan-600\/10 {
  background-color: #0891b21a;
}
.bg-cyan-600\/100 {
  background-color: #0891b2;
}
.bg-cyan-600\/20 {
  background-color: #0891b233;
}
.bg-cyan-600\/25 {
  background-color: #0891b240;
}
.bg-cyan-600\/30 {
  background-color: #0891b24d;
}
.bg-cyan-600\/40 {
  background-color: #0891b266;
}
.bg-cyan-600\/5 {
  background-color: #0891b20d;
}
.bg-cyan-600\/50 {
  background-color: #0891b280;
}
.bg-cyan-600\/60 {
  background-color: #0891b299;
}
.bg-cyan-600\/70 {
  background-color: #0891b2b3;
}
.bg-cyan-600\/75 {
  background-color: #0891b2bf;
}
.bg-cyan-600\/80 {
  background-color: #0891b2cc;
}
.bg-cyan-600\/90 {
  background-color: #0891b2e6;
}
.bg-cyan-600\/95 {
  background-color: #0891b2f2;
}
.bg-cyan-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 116 144 / var(--tw-bg-opacity));
}
.bg-cyan-700\/0 {
  background-color: #0e749000;
}
.bg-cyan-700\/10 {
  background-color: #0e74901a;
}
.bg-cyan-700\/100 {
  background-color: #0e7490;
}
.bg-cyan-700\/20 {
  background-color: #0e749033;
}
.bg-cyan-700\/25 {
  background-color: #0e749040;
}
.bg-cyan-700\/30 {
  background-color: #0e74904d;
}
.bg-cyan-700\/40 {
  background-color: #0e749066;
}
.bg-cyan-700\/5 {
  background-color: #0e74900d;
}
.bg-cyan-700\/50 {
  background-color: #0e749080;
}
.bg-cyan-700\/60 {
  background-color: #0e749099;
}
.bg-cyan-700\/70 {
  background-color: #0e7490b3;
}
.bg-cyan-700\/75 {
  background-color: #0e7490bf;
}
.bg-cyan-700\/80 {
  background-color: #0e7490cc;
}
.bg-cyan-700\/90 {
  background-color: #0e7490e6;
}
.bg-cyan-700\/95 {
  background-color: #0e7490f2;
}
.bg-cyan-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(21 94 117 / var(--tw-bg-opacity));
}
.bg-cyan-800\/0 {
  background-color: #155e7500;
}
.bg-cyan-800\/10 {
  background-color: #155e751a;
}
.bg-cyan-800\/100 {
  background-color: #155e75;
}
.bg-cyan-800\/20 {
  background-color: #155e7533;
}
.bg-cyan-800\/25 {
  background-color: #155e7540;
}
.bg-cyan-800\/30 {
  background-color: #155e754d;
}
.bg-cyan-800\/40 {
  background-color: #155e7566;
}
.bg-cyan-800\/5 {
  background-color: #155e750d;
}
.bg-cyan-800\/50 {
  background-color: #155e7580;
}
.bg-cyan-800\/60 {
  background-color: #155e7599;
}
.bg-cyan-800\/70 {
  background-color: #155e75b3;
}
.bg-cyan-800\/75 {
  background-color: #155e75bf;
}
.bg-cyan-800\/80 {
  background-color: #155e75cc;
}
.bg-cyan-800\/90 {
  background-color: #155e75e6;
}
.bg-cyan-800\/95 {
  background-color: #155e75f2;
}
.bg-cyan-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(22 78 99 / var(--tw-bg-opacity));
}
.bg-cyan-900\/0 {
  background-color: #164e6300;
}
.bg-cyan-900\/10 {
  background-color: #164e631a;
}
.bg-cyan-900\/100 {
  background-color: #164e63;
}
.bg-cyan-900\/20 {
  background-color: #164e6333;
}
.bg-cyan-900\/25 {
  background-color: #164e6340;
}
.bg-cyan-900\/30 {
  background-color: #164e634d;
}
.bg-cyan-900\/40 {
  background-color: #164e6366;
}
.bg-cyan-900\/5 {
  background-color: #164e630d;
}
.bg-cyan-900\/50 {
  background-color: #164e6380;
}
.bg-cyan-900\/60 {
  background-color: #164e6399;
}
.bg-cyan-900\/70 {
  background-color: #164e63b3;
}
.bg-cyan-900\/75 {
  background-color: #164e63bf;
}
.bg-cyan-900\/80 {
  background-color: #164e63cc;
}
.bg-cyan-900\/90 {
  background-color: #164e63e6;
}
.bg-cyan-900\/95 {
  background-color: #164e63f2;
}
.bg-cyan-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(8 51 68 / var(--tw-bg-opacity));
}
.bg-cyan-950\/0 {
  background-color: #08334400;
}
.bg-cyan-950\/10 {
  background-color: #0833441a;
}
.bg-cyan-950\/100 {
  background-color: #083344;
}
.bg-cyan-950\/20 {
  background-color: #08334433;
}
.bg-cyan-950\/25 {
  background-color: #08334440;
}
.bg-cyan-950\/30 {
  background-color: #0833444d;
}
.bg-cyan-950\/40 {
  background-color: #08334466;
}
.bg-cyan-950\/5 {
  background-color: #0833440d;
}
.bg-cyan-950\/50 {
  background-color: #08334480;
}
.bg-cyan-950\/60 {
  background-color: #08334499;
}
.bg-cyan-950\/70 {
  background-color: #083344b3;
}
.bg-cyan-950\/75 {
  background-color: #083344bf;
}
.bg-cyan-950\/80 {
  background-color: #083344cc;
}
.bg-cyan-950\/90 {
  background-color: #083344e6;
}
.bg-cyan-950\/95 {
  background-color: #083344f2;
}
.bg-emerald-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity));
}
.bg-emerald-100\/0 {
  background-color: #d1fae500;
}
.bg-emerald-100\/10 {
  background-color: #d1fae51a;
}
.bg-emerald-100\/100 {
  background-color: #d1fae5;
}
.bg-emerald-100\/20 {
  background-color: #d1fae533;
}
.bg-emerald-100\/25 {
  background-color: #d1fae540;
}
.bg-emerald-100\/30 {
  background-color: #d1fae54d;
}
.bg-emerald-100\/40 {
  background-color: #d1fae566;
}
.bg-emerald-100\/5 {
  background-color: #d1fae50d;
}
.bg-emerald-100\/50 {
  background-color: #d1fae580;
}
.bg-emerald-100\/60 {
  background-color: #d1fae599;
}
.bg-emerald-100\/70 {
  background-color: #d1fae5b3;
}
.bg-emerald-100\/75 {
  background-color: #d1fae5bf;
}
.bg-emerald-100\/80 {
  background-color: #d1fae5cc;
}
.bg-emerald-100\/90 {
  background-color: #d1fae5e6;
}
.bg-emerald-100\/95 {
  background-color: #d1fae5f2;
}
.bg-emerald-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(167 243 208 / var(--tw-bg-opacity));
}
.bg-emerald-200\/0 {
  background-color: #a7f3d000;
}
.bg-emerald-200\/10 {
  background-color: #a7f3d01a;
}
.bg-emerald-200\/100 {
  background-color: #a7f3d0;
}
.bg-emerald-200\/20 {
  background-color: #a7f3d033;
}
.bg-emerald-200\/25 {
  background-color: #a7f3d040;
}
.bg-emerald-200\/30 {
  background-color: #a7f3d04d;
}
.bg-emerald-200\/40 {
  background-color: #a7f3d066;
}
.bg-emerald-200\/5 {
  background-color: #a7f3d00d;
}
.bg-emerald-200\/50 {
  background-color: #a7f3d080;
}
.bg-emerald-200\/60 {
  background-color: #a7f3d099;
}
.bg-emerald-200\/70 {
  background-color: #a7f3d0b3;
}
.bg-emerald-200\/75 {
  background-color: #a7f3d0bf;
}
.bg-emerald-200\/80 {
  background-color: #a7f3d0cc;
}
.bg-emerald-200\/90 {
  background-color: #a7f3d0e6;
}
.bg-emerald-200\/95 {
  background-color: #a7f3d0f2;
}
.bg-emerald-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(110 231 183 / var(--tw-bg-opacity));
}
.bg-emerald-300\/0 {
  background-color: #6ee7b700;
}
.bg-emerald-300\/10 {
  background-color: #6ee7b71a;
}
.bg-emerald-300\/100 {
  background-color: #6ee7b7;
}
.bg-emerald-300\/20 {
  background-color: #6ee7b733;
}
.bg-emerald-300\/25 {
  background-color: #6ee7b740;
}
.bg-emerald-300\/30 {
  background-color: #6ee7b74d;
}
.bg-emerald-300\/40 {
  background-color: #6ee7b766;
}
.bg-emerald-300\/5 {
  background-color: #6ee7b70d;
}
.bg-emerald-300\/50 {
  background-color: #6ee7b780;
}
.bg-emerald-300\/60 {
  background-color: #6ee7b799;
}
.bg-emerald-300\/70 {
  background-color: #6ee7b7b3;
}
.bg-emerald-300\/75 {
  background-color: #6ee7b7bf;
}
.bg-emerald-300\/80 {
  background-color: #6ee7b7cc;
}
.bg-emerald-300\/90 {
  background-color: #6ee7b7e6;
}
.bg-emerald-300\/95 {
  background-color: #6ee7b7f2;
}
.bg-emerald-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(52 211 153 / var(--tw-bg-opacity));
}
.bg-emerald-400\/0 {
  background-color: #34d39900;
}
.bg-emerald-400\/10 {
  background-color: #34d3991a;
}
.bg-emerald-400\/100 {
  background-color: #34d399;
}
.bg-emerald-400\/20 {
  background-color: #34d39933;
}
.bg-emerald-400\/25 {
  background-color: #34d39940;
}
.bg-emerald-400\/30 {
  background-color: #34d3994d;
}
.bg-emerald-400\/40 {
  background-color: #34d39966;
}
.bg-emerald-400\/5 {
  background-color: #34d3990d;
}
.bg-emerald-400\/50 {
  background-color: #34d39980;
}
.bg-emerald-400\/60 {
  background-color: #34d39999;
}
.bg-emerald-400\/70 {
  background-color: #34d399b3;
}
.bg-emerald-400\/75 {
  background-color: #34d399bf;
}
.bg-emerald-400\/80 {
  background-color: #34d399cc;
}
.bg-emerald-400\/90 {
  background-color: #34d399e6;
}
.bg-emerald-400\/95 {
  background-color: #34d399f2;
}
.bg-emerald-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity));
}
.bg-emerald-50\/0 {
  background-color: #ecfdf500;
}
.bg-emerald-50\/10 {
  background-color: #ecfdf51a;
}
.bg-emerald-50\/100 {
  background-color: #ecfdf5;
}
.bg-emerald-50\/20 {
  background-color: #ecfdf533;
}
.bg-emerald-50\/25 {
  background-color: #ecfdf540;
}
.bg-emerald-50\/30 {
  background-color: #ecfdf54d;
}
.bg-emerald-50\/40 {
  background-color: #ecfdf566;
}
.bg-emerald-50\/5 {
  background-color: #ecfdf50d;
}
.bg-emerald-50\/50 {
  background-color: #ecfdf580;
}
.bg-emerald-50\/60 {
  background-color: #ecfdf599;
}
.bg-emerald-50\/70 {
  background-color: #ecfdf5b3;
}
.bg-emerald-50\/75 {
  background-color: #ecfdf5bf;
}
.bg-emerald-50\/80 {
  background-color: #ecfdf5cc;
}
.bg-emerald-50\/90 {
  background-color: #ecfdf5e6;
}
.bg-emerald-50\/95 {
  background-color: #ecfdf5f2;
}
.bg-emerald-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity));
}
.bg-emerald-500\/0 {
  background-color: #10b98100;
}
.bg-emerald-500\/10 {
  background-color: #10b9811a;
}
.bg-emerald-500\/100 {
  background-color: #10b981;
}
.bg-emerald-500\/20 {
  background-color: #10b98133;
}
.bg-emerald-500\/25 {
  background-color: #10b98140;
}
.bg-emerald-500\/30 {
  background-color: #10b9814d;
}
.bg-emerald-500\/40 {
  background-color: #10b98166;
}
.bg-emerald-500\/5 {
  background-color: #10b9810d;
}
.bg-emerald-500\/50 {
  background-color: #10b98180;
}
.bg-emerald-500\/60 {
  background-color: #10b98199;
}
.bg-emerald-500\/70 {
  background-color: #10b981b3;
}
.bg-emerald-500\/75 {
  background-color: #10b981bf;
}
.bg-emerald-500\/80 {
  background-color: #10b981cc;
}
.bg-emerald-500\/90 {
  background-color: #10b981e6;
}
.bg-emerald-500\/95 {
  background-color: #10b981f2;
}
.bg-emerald-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(5 150 105 / var(--tw-bg-opacity));
}
.bg-emerald-600\/0 {
  background-color: #05966900;
}
.bg-emerald-600\/10 {
  background-color: #0596691a;
}
.bg-emerald-600\/100 {
  background-color: #059669;
}
.bg-emerald-600\/20 {
  background-color: #05966933;
}
.bg-emerald-600\/25 {
  background-color: #05966940;
}
.bg-emerald-600\/30 {
  background-color: #0596694d;
}
.bg-emerald-600\/40 {
  background-color: #05966966;
}
.bg-emerald-600\/5 {
  background-color: #0596690d;
}
.bg-emerald-600\/50 {
  background-color: #05966980;
}
.bg-emerald-600\/60 {
  background-color: #05966999;
}
.bg-emerald-600\/70 {
  background-color: #059669b3;
}
.bg-emerald-600\/75 {
  background-color: #059669bf;
}
.bg-emerald-600\/80 {
  background-color: #059669cc;
}
.bg-emerald-600\/90 {
  background-color: #059669e6;
}
.bg-emerald-600\/95 {
  background-color: #059669f2;
}
.bg-emerald-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(4 120 87 / var(--tw-bg-opacity));
}
.bg-emerald-700\/0 {
  background-color: #04785700;
}
.bg-emerald-700\/10 {
  background-color: #0478571a;
}
.bg-emerald-700\/100 {
  background-color: #047857;
}
.bg-emerald-700\/20 {
  background-color: #04785733;
}
.bg-emerald-700\/25 {
  background-color: #04785740;
}
.bg-emerald-700\/30 {
  background-color: #0478574d;
}
.bg-emerald-700\/40 {
  background-color: #04785766;
}
.bg-emerald-700\/5 {
  background-color: #0478570d;
}
.bg-emerald-700\/50 {
  background-color: #04785780;
}
.bg-emerald-700\/60 {
  background-color: #04785799;
}
.bg-emerald-700\/70 {
  background-color: #047857b3;
}
.bg-emerald-700\/75 {
  background-color: #047857bf;
}
.bg-emerald-700\/80 {
  background-color: #047857cc;
}
.bg-emerald-700\/90 {
  background-color: #047857e6;
}
.bg-emerald-700\/95 {
  background-color: #047857f2;
}
.bg-emerald-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(6 95 70 / var(--tw-bg-opacity));
}
.bg-emerald-800\/0 {
  background-color: #065f4600;
}
.bg-emerald-800\/10 {
  background-color: #065f461a;
}
.bg-emerald-800\/100 {
  background-color: #065f46;
}
.bg-emerald-800\/20 {
  background-color: #065f4633;
}
.bg-emerald-800\/25 {
  background-color: #065f4640;
}
.bg-emerald-800\/30 {
  background-color: #065f464d;
}
.bg-emerald-800\/40 {
  background-color: #065f4666;
}
.bg-emerald-800\/5 {
  background-color: #065f460d;
}
.bg-emerald-800\/50 {
  background-color: #065f4680;
}
.bg-emerald-800\/60 {
  background-color: #065f4699;
}
.bg-emerald-800\/70 {
  background-color: #065f46b3;
}
.bg-emerald-800\/75 {
  background-color: #065f46bf;
}
.bg-emerald-800\/80 {
  background-color: #065f46cc;
}
.bg-emerald-800\/90 {
  background-color: #065f46e6;
}
.bg-emerald-800\/95 {
  background-color: #065f46f2;
}
.bg-emerald-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(6 78 59 / var(--tw-bg-opacity));
}
.bg-emerald-900\/0 {
  background-color: #064e3b00;
}
.bg-emerald-900\/10 {
  background-color: #064e3b1a;
}
.bg-emerald-900\/100 {
  background-color: #064e3b;
}
.bg-emerald-900\/20 {
  background-color: #064e3b33;
}
.bg-emerald-900\/25 {
  background-color: #064e3b40;
}
.bg-emerald-900\/30 {
  background-color: #064e3b4d;
}
.bg-emerald-900\/40 {
  background-color: #064e3b66;
}
.bg-emerald-900\/5 {
  background-color: #064e3b0d;
}
.bg-emerald-900\/50 {
  background-color: #064e3b80;
}
.bg-emerald-900\/60 {
  background-color: #064e3b99;
}
.bg-emerald-900\/70 {
  background-color: #064e3bb3;
}
.bg-emerald-900\/75 {
  background-color: #064e3bbf;
}
.bg-emerald-900\/80 {
  background-color: #064e3bcc;
}
.bg-emerald-900\/90 {
  background-color: #064e3be6;
}
.bg-emerald-900\/95 {
  background-color: #064e3bf2;
}
.bg-emerald-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(2 44 34 / var(--tw-bg-opacity));
}
.bg-emerald-950\/0 {
  background-color: #022c2200;
}
.bg-emerald-950\/10 {
  background-color: #022c221a;
}
.bg-emerald-950\/100 {
  background-color: #022c22;
}
.bg-emerald-950\/20 {
  background-color: #022c2233;
}
.bg-emerald-950\/25 {
  background-color: #022c2240;
}
.bg-emerald-950\/30 {
  background-color: #022c224d;
}
.bg-emerald-950\/40 {
  background-color: #022c2266;
}
.bg-emerald-950\/5 {
  background-color: #022c220d;
}
.bg-emerald-950\/50 {
  background-color: #022c2280;
}
.bg-emerald-950\/60 {
  background-color: #022c2299;
}
.bg-emerald-950\/70 {
  background-color: #022c22b3;
}
.bg-emerald-950\/75 {
  background-color: #022c22bf;
}
.bg-emerald-950\/80 {
  background-color: #022c22cc;
}
.bg-emerald-950\/90 {
  background-color: #022c22e6;
}
.bg-emerald-950\/95 {
  background-color: #022c22f2;
}
.bg-fuchsia-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 232 255 / var(--tw-bg-opacity));
}
.bg-fuchsia-100\/0 {
  background-color: #fae8ff00;
}
.bg-fuchsia-100\/10 {
  background-color: #fae8ff1a;
}
.bg-fuchsia-100\/100 {
  background-color: #fae8ff;
}
.bg-fuchsia-100\/20 {
  background-color: #fae8ff33;
}
.bg-fuchsia-100\/25 {
  background-color: #fae8ff40;
}
.bg-fuchsia-100\/30 {
  background-color: #fae8ff4d;
}
.bg-fuchsia-100\/40 {
  background-color: #fae8ff66;
}
.bg-fuchsia-100\/5 {
  background-color: #fae8ff0d;
}
.bg-fuchsia-100\/50 {
  background-color: #fae8ff80;
}
.bg-fuchsia-100\/60 {
  background-color: #fae8ff99;
}
.bg-fuchsia-100\/70 {
  background-color: #fae8ffb3;
}
.bg-fuchsia-100\/75 {
  background-color: #fae8ffbf;
}
.bg-fuchsia-100\/80 {
  background-color: #fae8ffcc;
}
.bg-fuchsia-100\/90 {
  background-color: #fae8ffe6;
}
.bg-fuchsia-100\/95 {
  background-color: #fae8fff2;
}
.bg-fuchsia-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 208 254 / var(--tw-bg-opacity));
}
.bg-fuchsia-200\/0 {
  background-color: #f5d0fe00;
}
.bg-fuchsia-200\/10 {
  background-color: #f5d0fe1a;
}
.bg-fuchsia-200\/100 {
  background-color: #f5d0fe;
}
.bg-fuchsia-200\/20 {
  background-color: #f5d0fe33;
}
.bg-fuchsia-200\/25 {
  background-color: #f5d0fe40;
}
.bg-fuchsia-200\/30 {
  background-color: #f5d0fe4d;
}
.bg-fuchsia-200\/40 {
  background-color: #f5d0fe66;
}
.bg-fuchsia-200\/5 {
  background-color: #f5d0fe0d;
}
.bg-fuchsia-200\/50 {
  background-color: #f5d0fe80;
}
.bg-fuchsia-200\/60 {
  background-color: #f5d0fe99;
}
.bg-fuchsia-200\/70 {
  background-color: #f5d0feb3;
}
.bg-fuchsia-200\/75 {
  background-color: #f5d0febf;
}
.bg-fuchsia-200\/80 {
  background-color: #f5d0fecc;
}
.bg-fuchsia-200\/90 {
  background-color: #f5d0fee6;
}
.bg-fuchsia-200\/95 {
  background-color: #f5d0fef2;
}
.bg-fuchsia-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 171 252 / var(--tw-bg-opacity));
}
.bg-fuchsia-300\/0 {
  background-color: #f0abfc00;
}
.bg-fuchsia-300\/10 {
  background-color: #f0abfc1a;
}
.bg-fuchsia-300\/100 {
  background-color: #f0abfc;
}
.bg-fuchsia-300\/20 {
  background-color: #f0abfc33;
}
.bg-fuchsia-300\/25 {
  background-color: #f0abfc40;
}
.bg-fuchsia-300\/30 {
  background-color: #f0abfc4d;
}
.bg-fuchsia-300\/40 {
  background-color: #f0abfc66;
}
.bg-fuchsia-300\/5 {
  background-color: #f0abfc0d;
}
.bg-fuchsia-300\/50 {
  background-color: #f0abfc80;
}
.bg-fuchsia-300\/60 {
  background-color: #f0abfc99;
}
.bg-fuchsia-300\/70 {
  background-color: #f0abfcb3;
}
.bg-fuchsia-300\/75 {
  background-color: #f0abfcbf;
}
.bg-fuchsia-300\/80 {
  background-color: #f0abfccc;
}
.bg-fuchsia-300\/90 {
  background-color: #f0abfce6;
}
.bg-fuchsia-300\/95 {
  background-color: #f0abfcf2;
}
.bg-fuchsia-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(232 121 249 / var(--tw-bg-opacity));
}
.bg-fuchsia-400\/0 {
  background-color: #e879f900;
}
.bg-fuchsia-400\/10 {
  background-color: #e879f91a;
}
.bg-fuchsia-400\/100 {
  background-color: #e879f9;
}
.bg-fuchsia-400\/20 {
  background-color: #e879f933;
}
.bg-fuchsia-400\/25 {
  background-color: #e879f940;
}
.bg-fuchsia-400\/30 {
  background-color: #e879f94d;
}
.bg-fuchsia-400\/40 {
  background-color: #e879f966;
}
.bg-fuchsia-400\/5 {
  background-color: #e879f90d;
}
.bg-fuchsia-400\/50 {
  background-color: #e879f980;
}
.bg-fuchsia-400\/60 {
  background-color: #e879f999;
}
.bg-fuchsia-400\/70 {
  background-color: #e879f9b3;
}
.bg-fuchsia-400\/75 {
  background-color: #e879f9bf;
}
.bg-fuchsia-400\/80 {
  background-color: #e879f9cc;
}
.bg-fuchsia-400\/90 {
  background-color: #e879f9e6;
}
.bg-fuchsia-400\/95 {
  background-color: #e879f9f2;
}
.bg-fuchsia-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 244 255 / var(--tw-bg-opacity));
}
.bg-fuchsia-50\/0 {
  background-color: #fdf4ff00;
}
.bg-fuchsia-50\/10 {
  background-color: #fdf4ff1a;
}
.bg-fuchsia-50\/100 {
  background-color: #fdf4ff;
}
.bg-fuchsia-50\/20 {
  background-color: #fdf4ff33;
}
.bg-fuchsia-50\/25 {
  background-color: #fdf4ff40;
}
.bg-fuchsia-50\/30 {
  background-color: #fdf4ff4d;
}
.bg-fuchsia-50\/40 {
  background-color: #fdf4ff66;
}
.bg-fuchsia-50\/5 {
  background-color: #fdf4ff0d;
}
.bg-fuchsia-50\/50 {
  background-color: #fdf4ff80;
}
.bg-fuchsia-50\/60 {
  background-color: #fdf4ff99;
}
.bg-fuchsia-50\/70 {
  background-color: #fdf4ffb3;
}
.bg-fuchsia-50\/75 {
  background-color: #fdf4ffbf;
}
.bg-fuchsia-50\/80 {
  background-color: #fdf4ffcc;
}
.bg-fuchsia-50\/90 {
  background-color: #fdf4ffe6;
}
.bg-fuchsia-50\/95 {
  background-color: #fdf4fff2;
}
.bg-fuchsia-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(217 70 239 / var(--tw-bg-opacity));
}
.bg-fuchsia-500\/0 {
  background-color: #d946ef00;
}
.bg-fuchsia-500\/10 {
  background-color: #d946ef1a;
}
.bg-fuchsia-500\/100 {
  background-color: #d946ef;
}
.bg-fuchsia-500\/20 {
  background-color: #d946ef33;
}
.bg-fuchsia-500\/25 {
  background-color: #d946ef40;
}
.bg-fuchsia-500\/30 {
  background-color: #d946ef4d;
}
.bg-fuchsia-500\/40 {
  background-color: #d946ef66;
}
.bg-fuchsia-500\/5 {
  background-color: #d946ef0d;
}
.bg-fuchsia-500\/50 {
  background-color: #d946ef80;
}
.bg-fuchsia-500\/60 {
  background-color: #d946ef99;
}
.bg-fuchsia-500\/70 {
  background-color: #d946efb3;
}
.bg-fuchsia-500\/75 {
  background-color: #d946efbf;
}
.bg-fuchsia-500\/80 {
  background-color: #d946efcc;
}
.bg-fuchsia-500\/90 {
  background-color: #d946efe6;
}
.bg-fuchsia-500\/95 {
  background-color: #d946eff2;
}
.bg-fuchsia-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(192 38 211 / var(--tw-bg-opacity));
}
.bg-fuchsia-600\/0 {
  background-color: #c026d300;
}
.bg-fuchsia-600\/10 {
  background-color: #c026d31a;
}
.bg-fuchsia-600\/100 {
  background-color: #c026d3;
}
.bg-fuchsia-600\/20 {
  background-color: #c026d333;
}
.bg-fuchsia-600\/25 {
  background-color: #c026d340;
}
.bg-fuchsia-600\/30 {
  background-color: #c026d34d;
}
.bg-fuchsia-600\/40 {
  background-color: #c026d366;
}
.bg-fuchsia-600\/5 {
  background-color: #c026d30d;
}
.bg-fuchsia-600\/50 {
  background-color: #c026d380;
}
.bg-fuchsia-600\/60 {
  background-color: #c026d399;
}
.bg-fuchsia-600\/70 {
  background-color: #c026d3b3;
}
.bg-fuchsia-600\/75 {
  background-color: #c026d3bf;
}
.bg-fuchsia-600\/80 {
  background-color: #c026d3cc;
}
.bg-fuchsia-600\/90 {
  background-color: #c026d3e6;
}
.bg-fuchsia-600\/95 {
  background-color: #c026d3f2;
}
.bg-fuchsia-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(162 28 175 / var(--tw-bg-opacity));
}
.bg-fuchsia-700\/0 {
  background-color: #a21caf00;
}
.bg-fuchsia-700\/10 {
  background-color: #a21caf1a;
}
.bg-fuchsia-700\/100 {
  background-color: #a21caf;
}
.bg-fuchsia-700\/20 {
  background-color: #a21caf33;
}
.bg-fuchsia-700\/25 {
  background-color: #a21caf40;
}
.bg-fuchsia-700\/30 {
  background-color: #a21caf4d;
}
.bg-fuchsia-700\/40 {
  background-color: #a21caf66;
}
.bg-fuchsia-700\/5 {
  background-color: #a21caf0d;
}
.bg-fuchsia-700\/50 {
  background-color: #a21caf80;
}
.bg-fuchsia-700\/60 {
  background-color: #a21caf99;
}
.bg-fuchsia-700\/70 {
  background-color: #a21cafb3;
}
.bg-fuchsia-700\/75 {
  background-color: #a21cafbf;
}
.bg-fuchsia-700\/80 {
  background-color: #a21cafcc;
}
.bg-fuchsia-700\/90 {
  background-color: #a21cafe6;
}
.bg-fuchsia-700\/95 {
  background-color: #a21caff2;
}
.bg-fuchsia-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(134 25 143 / var(--tw-bg-opacity));
}
.bg-fuchsia-800\/0 {
  background-color: #86198f00;
}
.bg-fuchsia-800\/10 {
  background-color: #86198f1a;
}
.bg-fuchsia-800\/100 {
  background-color: #86198f;
}
.bg-fuchsia-800\/20 {
  background-color: #86198f33;
}
.bg-fuchsia-800\/25 {
  background-color: #86198f40;
}
.bg-fuchsia-800\/30 {
  background-color: #86198f4d;
}
.bg-fuchsia-800\/40 {
  background-color: #86198f66;
}
.bg-fuchsia-800\/5 {
  background-color: #86198f0d;
}
.bg-fuchsia-800\/50 {
  background-color: #86198f80;
}
.bg-fuchsia-800\/60 {
  background-color: #86198f99;
}
.bg-fuchsia-800\/70 {
  background-color: #86198fb3;
}
.bg-fuchsia-800\/75 {
  background-color: #86198fbf;
}
.bg-fuchsia-800\/80 {
  background-color: #86198fcc;
}
.bg-fuchsia-800\/90 {
  background-color: #86198fe6;
}
.bg-fuchsia-800\/95 {
  background-color: #86198ff2;
}
.bg-fuchsia-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(112 26 117 / var(--tw-bg-opacity));
}
.bg-fuchsia-900\/0 {
  background-color: #701a7500;
}
.bg-fuchsia-900\/10 {
  background-color: #701a751a;
}
.bg-fuchsia-900\/100 {
  background-color: #701a75;
}
.bg-fuchsia-900\/20 {
  background-color: #701a7533;
}
.bg-fuchsia-900\/25 {
  background-color: #701a7540;
}
.bg-fuchsia-900\/30 {
  background-color: #701a754d;
}
.bg-fuchsia-900\/40 {
  background-color: #701a7566;
}
.bg-fuchsia-900\/5 {
  background-color: #701a750d;
}
.bg-fuchsia-900\/50 {
  background-color: #701a7580;
}
.bg-fuchsia-900\/60 {
  background-color: #701a7599;
}
.bg-fuchsia-900\/70 {
  background-color: #701a75b3;
}
.bg-fuchsia-900\/75 {
  background-color: #701a75bf;
}
.bg-fuchsia-900\/80 {
  background-color: #701a75cc;
}
.bg-fuchsia-900\/90 {
  background-color: #701a75e6;
}
.bg-fuchsia-900\/95 {
  background-color: #701a75f2;
}
.bg-fuchsia-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(74 4 78 / var(--tw-bg-opacity));
}
.bg-fuchsia-950\/0 {
  background-color: #4a044e00;
}
.bg-fuchsia-950\/10 {
  background-color: #4a044e1a;
}
.bg-fuchsia-950\/100 {
  background-color: #4a044e;
}
.bg-fuchsia-950\/20 {
  background-color: #4a044e33;
}
.bg-fuchsia-950\/25 {
  background-color: #4a044e40;
}
.bg-fuchsia-950\/30 {
  background-color: #4a044e4d;
}
.bg-fuchsia-950\/40 {
  background-color: #4a044e66;
}
.bg-fuchsia-950\/5 {
  background-color: #4a044e0d;
}
.bg-fuchsia-950\/50 {
  background-color: #4a044e80;
}
.bg-fuchsia-950\/60 {
  background-color: #4a044e99;
}
.bg-fuchsia-950\/70 {
  background-color: #4a044eb3;
}
.bg-fuchsia-950\/75 {
  background-color: #4a044ebf;
}
.bg-fuchsia-950\/80 {
  background-color: #4a044ecc;
}
.bg-fuchsia-950\/90 {
  background-color: #4a044ee6;
}
.bg-fuchsia-950\/95 {
  background-color: #4a044ef2;
}
.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}
.bg-gray-100\/0 {
  background-color: #f3f4f600;
}
.bg-gray-100\/10 {
  background-color: #f3f4f61a;
}
.bg-gray-100\/100 {
  background-color: #f3f4f6;
}
.bg-gray-100\/20 {
  background-color: #f3f4f633;
}
.bg-gray-100\/25 {
  background-color: #f3f4f640;
}
.bg-gray-100\/30 {
  background-color: #f3f4f64d;
}
.bg-gray-100\/40 {
  background-color: #f3f4f666;
}
.bg-gray-100\/5 {
  background-color: #f3f4f60d;
}
.bg-gray-100\/50 {
  background-color: #f3f4f680;
}
.bg-gray-100\/60 {
  background-color: #f3f4f699;
}
.bg-gray-100\/70 {
  background-color: #f3f4f6b3;
}
.bg-gray-100\/75 {
  background-color: #f3f4f6bf;
}
.bg-gray-100\/80 {
  background-color: #f3f4f6cc;
}
.bg-gray-100\/90 {
  background-color: #f3f4f6e6;
}
.bg-gray-100\/95 {
  background-color: #f3f4f6f2;
}
.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
.bg-gray-200\/0 {
  background-color: #e5e7eb00;
}
.bg-gray-200\/10 {
  background-color: #e5e7eb1a;
}
.bg-gray-200\/100 {
  background-color: #e5e7eb;
}
.bg-gray-200\/20 {
  background-color: #e5e7eb33;
}
.bg-gray-200\/25 {
  background-color: #e5e7eb40;
}
.bg-gray-200\/30 {
  background-color: #e5e7eb4d;
}
.bg-gray-200\/40 {
  background-color: #e5e7eb66;
}
.bg-gray-200\/5 {
  background-color: #e5e7eb0d;
}
.bg-gray-200\/50 {
  background-color: #e5e7eb80;
}
.bg-gray-200\/60 {
  background-color: #e5e7eb99;
}
.bg-gray-200\/70 {
  background-color: #e5e7ebb3;
}
.bg-gray-200\/75 {
  background-color: #e5e7ebbf;
}
.bg-gray-200\/80 {
  background-color: #e5e7ebcc;
}
.bg-gray-200\/90 {
  background-color: #e5e7ebe6;
}
.bg-gray-200\/95 {
  background-color: #e5e7ebf2;
}
.bg-gray-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}
.bg-gray-300\/0 {
  background-color: #d1d5db00;
}
.bg-gray-300\/10 {
  background-color: #d1d5db1a;
}
.bg-gray-300\/100 {
  background-color: #d1d5db;
}
.bg-gray-300\/20 {
  background-color: #d1d5db33;
}
.bg-gray-300\/25 {
  background-color: #d1d5db40;
}
.bg-gray-300\/30 {
  background-color: #d1d5db4d;
}
.bg-gray-300\/40 {
  background-color: #d1d5db66;
}
.bg-gray-300\/5 {
  background-color: #d1d5db0d;
}
.bg-gray-300\/50 {
  background-color: #d1d5db80;
}
.bg-gray-300\/60 {
  background-color: #d1d5db99;
}
.bg-gray-300\/70 {
  background-color: #d1d5dbb3;
}
.bg-gray-300\/75 {
  background-color: #d1d5dbbf;
}
.bg-gray-300\/80 {
  background-color: #d1d5dbcc;
}
.bg-gray-300\/90 {
  background-color: #d1d5dbe6;
}
.bg-gray-300\/95 {
  background-color: #d1d5dbf2;
}
.bg-gray-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / var(--tw-bg-opacity));
}
.bg-gray-400\/0 {
  background-color: #9ca3af00;
}
.bg-gray-400\/10 {
  background-color: #9ca3af1a;
}
.bg-gray-400\/100 {
  background-color: #9ca3af;
}
.bg-gray-400\/20 {
  background-color: #9ca3af33;
}
.bg-gray-400\/25 {
  background-color: #9ca3af40;
}
.bg-gray-400\/30 {
  background-color: #9ca3af4d;
}
.bg-gray-400\/40 {
  background-color: #9ca3af66;
}
.bg-gray-400\/5 {
  background-color: #9ca3af0d;
}
.bg-gray-400\/50 {
  background-color: #9ca3af80;
}
.bg-gray-400\/60 {
  background-color: #9ca3af99;
}
.bg-gray-400\/70 {
  background-color: #9ca3afb3;
}
.bg-gray-400\/75 {
  background-color: #9ca3afbf;
}
.bg-gray-400\/80 {
  background-color: #9ca3afcc;
}
.bg-gray-400\/90 {
  background-color: #9ca3afe6;
}
.bg-gray-400\/95 {
  background-color: #9ca3aff2;
}
.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}
.bg-gray-50\/0 {
  background-color: #f9fafb00;
}
.bg-gray-50\/10 {
  background-color: #f9fafb1a;
}
.bg-gray-50\/100 {
  background-color: #f9fafb;
}
.bg-gray-50\/20 {
  background-color: #f9fafb33;
}
.bg-gray-50\/25 {
  background-color: #f9fafb40;
}
.bg-gray-50\/30 {
  background-color: #f9fafb4d;
}
.bg-gray-50\/40 {
  background-color: #f9fafb66;
}
.bg-gray-50\/5 {
  background-color: #f9fafb0d;
}
.bg-gray-50\/50 {
  background-color: #f9fafb80;
}
.bg-gray-50\/60 {
  background-color: #f9fafb99;
}
.bg-gray-50\/70 {
  background-color: #f9fafbb3;
}
.bg-gray-50\/75 {
  background-color: #f9fafbbf;
}
.bg-gray-50\/80 {
  background-color: #f9fafbcc;
}
.bg-gray-50\/90 {
  background-color: #f9fafbe6;
}
.bg-gray-50\/95 {
  background-color: #f9fafbf2;
}
.bg-gray-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity));
}
.bg-gray-500\/0 {
  background-color: #6b728000;
}
.bg-gray-500\/10 {
  background-color: #6b72801a;
}
.bg-gray-500\/100 {
  background-color: #6b7280;
}
.bg-gray-500\/20 {
  background-color: #6b728033;
}
.bg-gray-500\/25 {
  background-color: #6b728040;
}
.bg-gray-500\/30 {
  background-color: #6b72804d;
}
.bg-gray-500\/40 {
  background-color: #6b728066;
}
.bg-gray-500\/5 {
  background-color: #6b72800d;
}
.bg-gray-500\/50 {
  background-color: #6b728080;
}
.bg-gray-500\/60 {
  background-color: #6b728099;
}
.bg-gray-500\/70 {
  background-color: #6b7280b3;
}
.bg-gray-500\/75 {
  background-color: #6b7280bf;
}
.bg-gray-500\/80 {
  background-color: #6b7280cc;
}
.bg-gray-500\/90 {
  background-color: #6b7280e6;
}
.bg-gray-500\/95 {
  background-color: #6b7280f2;
}
.bg-gray-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity));
}
.bg-gray-600\/0 {
  background-color: #4b556300;
}
.bg-gray-600\/10 {
  background-color: #4b55631a;
}
.bg-gray-600\/100 {
  background-color: #4b5563;
}
.bg-gray-600\/20 {
  background-color: #4b556333;
}
.bg-gray-600\/25 {
  background-color: #4b556340;
}
.bg-gray-600\/30 {
  background-color: #4b55634d;
}
.bg-gray-600\/40 {
  background-color: #4b556366;
}
.bg-gray-600\/5 {
  background-color: #4b55630d;
}
.bg-gray-600\/50 {
  background-color: #4b556380;
}
.bg-gray-600\/60 {
  background-color: #4b556399;
}
.bg-gray-600\/70 {
  background-color: #4b5563b3;
}
.bg-gray-600\/75 {
  background-color: #4b5563bf;
}
.bg-gray-600\/80 {
  background-color: #4b5563cc;
}
.bg-gray-600\/90 {
  background-color: #4b5563e6;
}
.bg-gray-600\/95 {
  background-color: #4b5563f2;
}
.bg-gray-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity));
}
.bg-gray-700\/0 {
  background-color: #37415100;
}
.bg-gray-700\/10 {
  background-color: #3741511a;
}
.bg-gray-700\/100 {
  background-color: #374151;
}
.bg-gray-700\/20 {
  background-color: #37415133;
}
.bg-gray-700\/25 {
  background-color: #37415140;
}
.bg-gray-700\/30 {
  background-color: #3741514d;
}
.bg-gray-700\/40 {
  background-color: #37415166;
}
.bg-gray-700\/5 {
  background-color: #3741510d;
}
.bg-gray-700\/50 {
  background-color: #37415180;
}
.bg-gray-700\/60 {
  background-color: #37415199;
}
.bg-gray-700\/70 {
  background-color: #374151b3;
}
.bg-gray-700\/75 {
  background-color: #374151bf;
}
.bg-gray-700\/80 {
  background-color: #374151cc;
}
.bg-gray-700\/90 {
  background-color: #374151e6;
}
.bg-gray-700\/95 {
  background-color: #374151f2;
}
.bg-gray-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity));
}
.bg-gray-800\/0 {
  background-color: #1f293700;
}
.bg-gray-800\/10 {
  background-color: #1f29371a;
}
.bg-gray-800\/100 {
  background-color: #1f2937;
}
.bg-gray-800\/20 {
  background-color: #1f293733;
}
.bg-gray-800\/25 {
  background-color: #1f293740;
}
.bg-gray-800\/30 {
  background-color: #1f29374d;
}
.bg-gray-800\/40 {
  background-color: #1f293766;
}
.bg-gray-800\/5 {
  background-color: #1f29370d;
}
.bg-gray-800\/50 {
  background-color: #1f293780;
}
.bg-gray-800\/60 {
  background-color: #1f293799;
}
.bg-gray-800\/70 {
  background-color: #1f2937b3;
}
.bg-gray-800\/75 {
  background-color: #1f2937bf;
}
.bg-gray-800\/80 {
  background-color: #1f2937cc;
}
.bg-gray-800\/90 {
  background-color: #1f2937e6;
}
.bg-gray-800\/95 {
  background-color: #1f2937f2;
}
.bg-gray-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(17 24 39 / var(--tw-bg-opacity));
}
.bg-gray-900\/0 {
  background-color: #11182700;
}
.bg-gray-900\/10 {
  background-color: #1118271a;
}
.bg-gray-900\/100 {
  background-color: #111827;
}
.bg-gray-900\/20 {
  background-color: #11182733;
}
.bg-gray-900\/25 {
  background-color: #11182740;
}
.bg-gray-900\/30 {
  background-color: #1118274d;
}
.bg-gray-900\/40 {
  background-color: #11182766;
}
.bg-gray-900\/5 {
  background-color: #1118270d;
}
.bg-gray-900\/50 {
  background-color: #11182780;
}
.bg-gray-900\/60 {
  background-color: #11182799;
}
.bg-gray-900\/70 {
  background-color: #111827b3;
}
.bg-gray-900\/75 {
  background-color: #111827bf;
}
.bg-gray-900\/80 {
  background-color: #111827cc;
}
.bg-gray-900\/90 {
  background-color: #111827e6;
}
.bg-gray-900\/95 {
  background-color: #111827f2;
}
.bg-gray-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(3 7 18 / var(--tw-bg-opacity));
}
.bg-gray-950\/0 {
  background-color: #03071200;
}
.bg-gray-950\/10 {
  background-color: #0307121a;
}
.bg-gray-950\/100 {
  background-color: #030712;
}
.bg-gray-950\/20 {
  background-color: #03071233;
}
.bg-gray-950\/25 {
  background-color: #03071240;
}
.bg-gray-950\/30 {
  background-color: #0307124d;
}
.bg-gray-950\/40 {
  background-color: #03071266;
}
.bg-gray-950\/5 {
  background-color: #0307120d;
}
.bg-gray-950\/50 {
  background-color: #03071280;
}
.bg-gray-950\/60 {
  background-color: #03071299;
}
.bg-gray-950\/70 {
  background-color: #030712b3;
}
.bg-gray-950\/75 {
  background-color: #030712bf;
}
.bg-gray-950\/80 {
  background-color: #030712cc;
}
.bg-gray-950\/90 {
  background-color: #030712e6;
}
.bg-gray-950\/95 {
  background-color: #030712f2;
}
.bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity));
}
.bg-green-100\/0 {
  background-color: #dcfce700;
}
.bg-green-100\/10 {
  background-color: #dcfce71a;
}
.bg-green-100\/100 {
  background-color: #dcfce7;
}
.bg-green-100\/20 {
  background-color: #dcfce733;
}
.bg-green-100\/25 {
  background-color: #dcfce740;
}
.bg-green-100\/30 {
  background-color: #dcfce74d;
}
.bg-green-100\/40 {
  background-color: #dcfce766;
}
.bg-green-100\/5 {
  background-color: #dcfce70d;
}
.bg-green-100\/50 {
  background-color: #dcfce780;
}
.bg-green-100\/60 {
  background-color: #dcfce799;
}
.bg-green-100\/70 {
  background-color: #dcfce7b3;
}
.bg-green-100\/75 {
  background-color: #dcfce7bf;
}
.bg-green-100\/80 {
  background-color: #dcfce7cc;
}
.bg-green-100\/90 {
  background-color: #dcfce7e6;
}
.bg-green-100\/95 {
  background-color: #dcfce7f2;
}
.bg-green-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(187 247 208 / var(--tw-bg-opacity));
}
.bg-green-200\/0 {
  background-color: #bbf7d000;
}
.bg-green-200\/10 {
  background-color: #bbf7d01a;
}
.bg-green-200\/100 {
  background-color: #bbf7d0;
}
.bg-green-200\/20 {
  background-color: #bbf7d033;
}
.bg-green-200\/25 {
  background-color: #bbf7d040;
}
.bg-green-200\/30 {
  background-color: #bbf7d04d;
}
.bg-green-200\/40 {
  background-color: #bbf7d066;
}
.bg-green-200\/5 {
  background-color: #bbf7d00d;
}
.bg-green-200\/50 {
  background-color: #bbf7d080;
}
.bg-green-200\/60 {
  background-color: #bbf7d099;
}
.bg-green-200\/70 {
  background-color: #bbf7d0b3;
}
.bg-green-200\/75 {
  background-color: #bbf7d0bf;
}
.bg-green-200\/80 {
  background-color: #bbf7d0cc;
}
.bg-green-200\/90 {
  background-color: #bbf7d0e6;
}
.bg-green-200\/95 {
  background-color: #bbf7d0f2;
}
.bg-green-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(134 239 172 / var(--tw-bg-opacity));
}
.bg-green-300\/0 {
  background-color: #86efac00;
}
.bg-green-300\/10 {
  background-color: #86efac1a;
}
.bg-green-300\/100 {
  background-color: #86efac;
}
.bg-green-300\/20 {
  background-color: #86efac33;
}
.bg-green-300\/25 {
  background-color: #86efac40;
}
.bg-green-300\/30 {
  background-color: #86efac4d;
}
.bg-green-300\/40 {
  background-color: #86efac66;
}
.bg-green-300\/5 {
  background-color: #86efac0d;
}
.bg-green-300\/50 {
  background-color: #86efac80;
}
.bg-green-300\/60 {
  background-color: #86efac99;
}
.bg-green-300\/70 {
  background-color: #86efacb3;
}
.bg-green-300\/75 {
  background-color: #86efacbf;
}
.bg-green-300\/80 {
  background-color: #86efaccc;
}
.bg-green-300\/90 {
  background-color: #86eface6;
}
.bg-green-300\/95 {
  background-color: #86efacf2;
}
.bg-green-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(74 222 128 / var(--tw-bg-opacity));
}
.bg-green-400\/0 {
  background-color: #4ade8000;
}
.bg-green-400\/10 {
  background-color: #4ade801a;
}
.bg-green-400\/100 {
  background-color: #4ade80;
}
.bg-green-400\/20 {
  background-color: #4ade8033;
}
.bg-green-400\/25 {
  background-color: #4ade8040;
}
.bg-green-400\/30 {
  background-color: #4ade804d;
}
.bg-green-400\/40 {
  background-color: #4ade8066;
}
.bg-green-400\/5 {
  background-color: #4ade800d;
}
.bg-green-400\/50 {
  background-color: #4ade8080;
}
.bg-green-400\/60 {
  background-color: #4ade8099;
}
.bg-green-400\/70 {
  background-color: #4ade80b3;
}
.bg-green-400\/75 {
  background-color: #4ade80bf;
}
.bg-green-400\/80 {
  background-color: #4ade80cc;
}
.bg-green-400\/90 {
  background-color: #4ade80e6;
}
.bg-green-400\/95 {
  background-color: #4ade80f2;
}
.bg-green-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity));
}
.bg-green-50\/0 {
  background-color: #f0fdf400;
}
.bg-green-50\/10 {
  background-color: #f0fdf41a;
}
.bg-green-50\/100 {
  background-color: #f0fdf4;
}
.bg-green-50\/20 {
  background-color: #f0fdf433;
}
.bg-green-50\/25 {
  background-color: #f0fdf440;
}
.bg-green-50\/30 {
  background-color: #f0fdf44d;
}
.bg-green-50\/40 {
  background-color: #f0fdf466;
}
.bg-green-50\/5 {
  background-color: #f0fdf40d;
}
.bg-green-50\/50 {
  background-color: #f0fdf480;
}
.bg-green-50\/60 {
  background-color: #f0fdf499;
}
.bg-green-50\/70 {
  background-color: #f0fdf4b3;
}
.bg-green-50\/75 {
  background-color: #f0fdf4bf;
}
.bg-green-50\/80 {
  background-color: #f0fdf4cc;
}
.bg-green-50\/90 {
  background-color: #f0fdf4e6;
}
.bg-green-50\/95 {
  background-color: #f0fdf4f2;
}
.bg-green-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}
.bg-green-500\/0 {
  background-color: #22c55e00;
}
.bg-green-500\/10 {
  background-color: #22c55e1a;
}
.bg-green-500\/100 {
  background-color: #22c55e;
}
.bg-green-500\/20 {
  background-color: #22c55e33;
}
.bg-green-500\/25 {
  background-color: #22c55e40;
}
.bg-green-500\/30 {
  background-color: #22c55e4d;
}
.bg-green-500\/40 {
  background-color: #22c55e66;
}
.bg-green-500\/5 {
  background-color: #22c55e0d;
}
.bg-green-500\/50 {
  background-color: #22c55e80;
}
.bg-green-500\/60 {
  background-color: #22c55e99;
}
.bg-green-500\/70 {
  background-color: #22c55eb3;
}
.bg-green-500\/75 {
  background-color: #22c55ebf;
}
.bg-green-500\/80 {
  background-color: #22c55ecc;
}
.bg-green-500\/90 {
  background-color: #22c55ee6;
}
.bg-green-500\/95 {
  background-color: #22c55ef2;
}
.bg-green-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity));
}
.bg-green-600\/0 {
  background-color: #16a34a00;
}
.bg-green-600\/10 {
  background-color: #16a34a1a;
}
.bg-green-600\/100 {
  background-color: #16a34a;
}
.bg-green-600\/20 {
  background-color: #16a34a33;
}
.bg-green-600\/25 {
  background-color: #16a34a40;
}
.bg-green-600\/30 {
  background-color: #16a34a4d;
}
.bg-green-600\/40 {
  background-color: #16a34a66;
}
.bg-green-600\/5 {
  background-color: #16a34a0d;
}
.bg-green-600\/50 {
  background-color: #16a34a80;
}
.bg-green-600\/60 {
  background-color: #16a34a99;
}
.bg-green-600\/70 {
  background-color: #16a34ab3;
}
.bg-green-600\/75 {
  background-color: #16a34abf;
}
.bg-green-600\/80 {
  background-color: #16a34acc;
}
.bg-green-600\/90 {
  background-color: #16a34ae6;
}
.bg-green-600\/95 {
  background-color: #16a34af2;
}
.bg-green-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(21 128 61 / var(--tw-bg-opacity));
}
.bg-green-700\/0 {
  background-color: #15803d00;
}
.bg-green-700\/10 {
  background-color: #15803d1a;
}
.bg-green-700\/100 {
  background-color: #15803d;
}
.bg-green-700\/20 {
  background-color: #15803d33;
}
.bg-green-700\/25 {
  background-color: #15803d40;
}
.bg-green-700\/30 {
  background-color: #15803d4d;
}
.bg-green-700\/40 {
  background-color: #15803d66;
}
.bg-green-700\/5 {
  background-color: #15803d0d;
}
.bg-green-700\/50 {
  background-color: #15803d80;
}
.bg-green-700\/60 {
  background-color: #15803d99;
}
.bg-green-700\/70 {
  background-color: #15803db3;
}
.bg-green-700\/75 {
  background-color: #15803dbf;
}
.bg-green-700\/80 {
  background-color: #15803dcc;
}
.bg-green-700\/90 {
  background-color: #15803de6;
}
.bg-green-700\/95 {
  background-color: #15803df2;
}
.bg-green-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(22 101 52 / var(--tw-bg-opacity));
}
.bg-green-800\/0 {
  background-color: #16653400;
}
.bg-green-800\/10 {
  background-color: #1665341a;
}
.bg-green-800\/100 {
  background-color: #166534;
}
.bg-green-800\/20 {
  background-color: #16653433;
}
.bg-green-800\/25 {
  background-color: #16653440;
}
.bg-green-800\/30 {
  background-color: #1665344d;
}
.bg-green-800\/40 {
  background-color: #16653466;
}
.bg-green-800\/5 {
  background-color: #1665340d;
}
.bg-green-800\/50 {
  background-color: #16653480;
}
.bg-green-800\/60 {
  background-color: #16653499;
}
.bg-green-800\/70 {
  background-color: #166534b3;
}
.bg-green-800\/75 {
  background-color: #166534bf;
}
.bg-green-800\/80 {
  background-color: #166534cc;
}
.bg-green-800\/90 {
  background-color: #166534e6;
}
.bg-green-800\/95 {
  background-color: #166534f2;
}
.bg-green-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(20 83 45 / var(--tw-bg-opacity));
}
.bg-green-900\/0 {
  background-color: #14532d00;
}
.bg-green-900\/10 {
  background-color: #14532d1a;
}
.bg-green-900\/100 {
  background-color: #14532d;
}
.bg-green-900\/20 {
  background-color: #14532d33;
}
.bg-green-900\/25 {
  background-color: #14532d40;
}
.bg-green-900\/30 {
  background-color: #14532d4d;
}
.bg-green-900\/40 {
  background-color: #14532d66;
}
.bg-green-900\/5 {
  background-color: #14532d0d;
}
.bg-green-900\/50 {
  background-color: #14532d80;
}
.bg-green-900\/60 {
  background-color: #14532d99;
}
.bg-green-900\/70 {
  background-color: #14532db3;
}
.bg-green-900\/75 {
  background-color: #14532dbf;
}
.bg-green-900\/80 {
  background-color: #14532dcc;
}
.bg-green-900\/90 {
  background-color: #14532de6;
}
.bg-green-900\/95 {
  background-color: #14532df2;
}
.bg-green-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(5 46 22 / var(--tw-bg-opacity));
}
.bg-green-950\/0 {
  background-color: #052e1600;
}
.bg-green-950\/10 {
  background-color: #052e161a;
}
.bg-green-950\/100 {
  background-color: #052e16;
}
.bg-green-950\/20 {
  background-color: #052e1633;
}
.bg-green-950\/25 {
  background-color: #052e1640;
}
.bg-green-950\/30 {
  background-color: #052e164d;
}
.bg-green-950\/40 {
  background-color: #052e1666;
}
.bg-green-950\/5 {
  background-color: #052e160d;
}
.bg-green-950\/50 {
  background-color: #052e1680;
}
.bg-green-950\/60 {
  background-color: #052e1699;
}
.bg-green-950\/70 {
  background-color: #052e16b3;
}
.bg-green-950\/75 {
  background-color: #052e16bf;
}
.bg-green-950\/80 {
  background-color: #052e16cc;
}
.bg-green-950\/90 {
  background-color: #052e16e6;
}
.bg-green-950\/95 {
  background-color: #052e16f2;
}
.bg-indigo-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(224 231 255 / var(--tw-bg-opacity));
}
.bg-indigo-100\/0 {
  background-color: #e0e7ff00;
}
.bg-indigo-100\/10 {
  background-color: #e0e7ff1a;
}
.bg-indigo-100\/100 {
  background-color: #e0e7ff;
}
.bg-indigo-100\/20 {
  background-color: #e0e7ff33;
}
.bg-indigo-100\/25 {
  background-color: #e0e7ff40;
}
.bg-indigo-100\/30 {
  background-color: #e0e7ff4d;
}
.bg-indigo-100\/40 {
  background-color: #e0e7ff66;
}
.bg-indigo-100\/5 {
  background-color: #e0e7ff0d;
}
.bg-indigo-100\/50 {
  background-color: #e0e7ff80;
}
.bg-indigo-100\/60 {
  background-color: #e0e7ff99;
}
.bg-indigo-100\/70 {
  background-color: #e0e7ffb3;
}
.bg-indigo-100\/75 {
  background-color: #e0e7ffbf;
}
.bg-indigo-100\/80 {
  background-color: #e0e7ffcc;
}
.bg-indigo-100\/90 {
  background-color: #e0e7ffe6;
}
.bg-indigo-100\/95 {
  background-color: #e0e7fff2;
}
.bg-indigo-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(199 210 254 / var(--tw-bg-opacity));
}
.bg-indigo-200\/0 {
  background-color: #c7d2fe00;
}
.bg-indigo-200\/10 {
  background-color: #c7d2fe1a;
}
.bg-indigo-200\/100 {
  background-color: #c7d2fe;
}
.bg-indigo-200\/20 {
  background-color: #c7d2fe33;
}
.bg-indigo-200\/25 {
  background-color: #c7d2fe40;
}
.bg-indigo-200\/30 {
  background-color: #c7d2fe4d;
}
.bg-indigo-200\/40 {
  background-color: #c7d2fe66;
}
.bg-indigo-200\/5 {
  background-color: #c7d2fe0d;
}
.bg-indigo-200\/50 {
  background-color: #c7d2fe80;
}
.bg-indigo-200\/60 {
  background-color: #c7d2fe99;
}
.bg-indigo-200\/70 {
  background-color: #c7d2feb3;
}
.bg-indigo-200\/75 {
  background-color: #c7d2febf;
}
.bg-indigo-200\/80 {
  background-color: #c7d2fecc;
}
.bg-indigo-200\/90 {
  background-color: #c7d2fee6;
}
.bg-indigo-200\/95 {
  background-color: #c7d2fef2;
}
.bg-indigo-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(165 180 252 / var(--tw-bg-opacity));
}
.bg-indigo-300\/0 {
  background-color: #a5b4fc00;
}
.bg-indigo-300\/10 {
  background-color: #a5b4fc1a;
}
.bg-indigo-300\/100 {
  background-color: #a5b4fc;
}
.bg-indigo-300\/20 {
  background-color: #a5b4fc33;
}
.bg-indigo-300\/25 {
  background-color: #a5b4fc40;
}
.bg-indigo-300\/30 {
  background-color: #a5b4fc4d;
}
.bg-indigo-300\/40 {
  background-color: #a5b4fc66;
}
.bg-indigo-300\/5 {
  background-color: #a5b4fc0d;
}
.bg-indigo-300\/50 {
  background-color: #a5b4fc80;
}
.bg-indigo-300\/60 {
  background-color: #a5b4fc99;
}
.bg-indigo-300\/70 {
  background-color: #a5b4fcb3;
}
.bg-indigo-300\/75 {
  background-color: #a5b4fcbf;
}
.bg-indigo-300\/80 {
  background-color: #a5b4fccc;
}
.bg-indigo-300\/90 {
  background-color: #a5b4fce6;
}
.bg-indigo-300\/95 {
  background-color: #a5b4fcf2;
}
.bg-indigo-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(129 140 248 / var(--tw-bg-opacity));
}
.bg-indigo-400\/0 {
  background-color: #818cf800;
}
.bg-indigo-400\/10 {
  background-color: #818cf81a;
}
.bg-indigo-400\/100 {
  background-color: #818cf8;
}
.bg-indigo-400\/20 {
  background-color: #818cf833;
}
.bg-indigo-400\/25 {
  background-color: #818cf840;
}
.bg-indigo-400\/30 {
  background-color: #818cf84d;
}
.bg-indigo-400\/40 {
  background-color: #818cf866;
}
.bg-indigo-400\/5 {
  background-color: #818cf80d;
}
.bg-indigo-400\/50 {
  background-color: #818cf880;
}
.bg-indigo-400\/60 {
  background-color: #818cf899;
}
.bg-indigo-400\/70 {
  background-color: #818cf8b3;
}
.bg-indigo-400\/75 {
  background-color: #818cf8bf;
}
.bg-indigo-400\/80 {
  background-color: #818cf8cc;
}
.bg-indigo-400\/90 {
  background-color: #818cf8e6;
}
.bg-indigo-400\/95 {
  background-color: #818cf8f2;
}
.bg-indigo-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity));
}
.bg-indigo-50\/0 {
  background-color: #eef2ff00;
}
.bg-indigo-50\/10 {
  background-color: #eef2ff1a;
}
.bg-indigo-50\/100 {
  background-color: #eef2ff;
}
.bg-indigo-50\/20 {
  background-color: #eef2ff33;
}
.bg-indigo-50\/25 {
  background-color: #eef2ff40;
}
.bg-indigo-50\/30 {
  background-color: #eef2ff4d;
}
.bg-indigo-50\/40 {
  background-color: #eef2ff66;
}
.bg-indigo-50\/5 {
  background-color: #eef2ff0d;
}
.bg-indigo-50\/50 {
  background-color: #eef2ff80;
}
.bg-indigo-50\/60 {
  background-color: #eef2ff99;
}
.bg-indigo-50\/70 {
  background-color: #eef2ffb3;
}
.bg-indigo-50\/75 {
  background-color: #eef2ffbf;
}
.bg-indigo-50\/80 {
  background-color: #eef2ffcc;
}
.bg-indigo-50\/90 {
  background-color: #eef2ffe6;
}
.bg-indigo-50\/95 {
  background-color: #eef2fff2;
}
.bg-indigo-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / var(--tw-bg-opacity));
}
.bg-indigo-500\/0 {
  background-color: #6366f100;
}
.bg-indigo-500\/10 {
  background-color: #6366f11a;
}
.bg-indigo-500\/100 {
  background-color: #6366f1;
}
.bg-indigo-500\/20 {
  background-color: #6366f133;
}
.bg-indigo-500\/25 {
  background-color: #6366f140;
}
.bg-indigo-500\/30 {
  background-color: #6366f14d;
}
.bg-indigo-500\/40 {
  background-color: #6366f166;
}
.bg-indigo-500\/5 {
  background-color: #6366f10d;
}
.bg-indigo-500\/50 {
  background-color: #6366f180;
}
.bg-indigo-500\/60 {
  background-color: #6366f199;
}
.bg-indigo-500\/70 {
  background-color: #6366f1b3;
}
.bg-indigo-500\/75 {
  background-color: #6366f1bf;
}
.bg-indigo-500\/80 {
  background-color: #6366f1cc;
}
.bg-indigo-500\/90 {
  background-color: #6366f1e6;
}
.bg-indigo-500\/95 {
  background-color: #6366f1f2;
}
.bg-indigo-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(79 70 229 / var(--tw-bg-opacity));
}
.bg-indigo-600\/0 {
  background-color: #4f46e500;
}
.bg-indigo-600\/10 {
  background-color: #4f46e51a;
}
.bg-indigo-600\/100 {
  background-color: #4f46e5;
}
.bg-indigo-600\/20 {
  background-color: #4f46e533;
}
.bg-indigo-600\/25 {
  background-color: #4f46e540;
}
.bg-indigo-600\/30 {
  background-color: #4f46e54d;
}
.bg-indigo-600\/40 {
  background-color: #4f46e566;
}
.bg-indigo-600\/5 {
  background-color: #4f46e50d;
}
.bg-indigo-600\/50 {
  background-color: #4f46e580;
}
.bg-indigo-600\/60 {
  background-color: #4f46e599;
}
.bg-indigo-600\/70 {
  background-color: #4f46e5b3;
}
.bg-indigo-600\/75 {
  background-color: #4f46e5bf;
}
.bg-indigo-600\/80 {
  background-color: #4f46e5cc;
}
.bg-indigo-600\/90 {
  background-color: #4f46e5e6;
}
.bg-indigo-600\/95 {
  background-color: #4f46e5f2;
}
.bg-indigo-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(67 56 202 / var(--tw-bg-opacity));
}
.bg-indigo-700\/0 {
  background-color: #4338ca00;
}
.bg-indigo-700\/10 {
  background-color: #4338ca1a;
}
.bg-indigo-700\/100 {
  background-color: #4338ca;
}
.bg-indigo-700\/20 {
  background-color: #4338ca33;
}
.bg-indigo-700\/25 {
  background-color: #4338ca40;
}
.bg-indigo-700\/30 {
  background-color: #4338ca4d;
}
.bg-indigo-700\/40 {
  background-color: #4338ca66;
}
.bg-indigo-700\/5 {
  background-color: #4338ca0d;
}
.bg-indigo-700\/50 {
  background-color: #4338ca80;
}
.bg-indigo-700\/60 {
  background-color: #4338ca99;
}
.bg-indigo-700\/70 {
  background-color: #4338cab3;
}
.bg-indigo-700\/75 {
  background-color: #4338cabf;
}
.bg-indigo-700\/80 {
  background-color: #4338cacc;
}
.bg-indigo-700\/90 {
  background-color: #4338cae6;
}
.bg-indigo-700\/95 {
  background-color: #4338caf2;
}
.bg-indigo-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(55 48 163 / var(--tw-bg-opacity));
}
.bg-indigo-800\/0 {
  background-color: #3730a300;
}
.bg-indigo-800\/10 {
  background-color: #3730a31a;
}
.bg-indigo-800\/100 {
  background-color: #3730a3;
}
.bg-indigo-800\/20 {
  background-color: #3730a333;
}
.bg-indigo-800\/25 {
  background-color: #3730a340;
}
.bg-indigo-800\/30 {
  background-color: #3730a34d;
}
.bg-indigo-800\/40 {
  background-color: #3730a366;
}
.bg-indigo-800\/5 {
  background-color: #3730a30d;
}
.bg-indigo-800\/50 {
  background-color: #3730a380;
}
.bg-indigo-800\/60 {
  background-color: #3730a399;
}
.bg-indigo-800\/70 {
  background-color: #3730a3b3;
}
.bg-indigo-800\/75 {
  background-color: #3730a3bf;
}
.bg-indigo-800\/80 {
  background-color: #3730a3cc;
}
.bg-indigo-800\/90 {
  background-color: #3730a3e6;
}
.bg-indigo-800\/95 {
  background-color: #3730a3f2;
}
.bg-indigo-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(49 46 129 / var(--tw-bg-opacity));
}
.bg-indigo-900\/0 {
  background-color: #312e8100;
}
.bg-indigo-900\/10 {
  background-color: #312e811a;
}
.bg-indigo-900\/100 {
  background-color: #312e81;
}
.bg-indigo-900\/20 {
  background-color: #312e8133;
}
.bg-indigo-900\/25 {
  background-color: #312e8140;
}
.bg-indigo-900\/30 {
  background-color: #312e814d;
}
.bg-indigo-900\/40 {
  background-color: #312e8166;
}
.bg-indigo-900\/5 {
  background-color: #312e810d;
}
.bg-indigo-900\/50 {
  background-color: #312e8180;
}
.bg-indigo-900\/60 {
  background-color: #312e8199;
}
.bg-indigo-900\/70 {
  background-color: #312e81b3;
}
.bg-indigo-900\/75 {
  background-color: #312e81bf;
}
.bg-indigo-900\/80 {
  background-color: #312e81cc;
}
.bg-indigo-900\/90 {
  background-color: #312e81e6;
}
.bg-indigo-900\/95 {
  background-color: #312e81f2;
}
.bg-indigo-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 27 75 / var(--tw-bg-opacity));
}
.bg-indigo-950\/0 {
  background-color: #1e1b4b00;
}
.bg-indigo-950\/10 {
  background-color: #1e1b4b1a;
}
.bg-indigo-950\/100 {
  background-color: #1e1b4b;
}
.bg-indigo-950\/20 {
  background-color: #1e1b4b33;
}
.bg-indigo-950\/25 {
  background-color: #1e1b4b40;
}
.bg-indigo-950\/30 {
  background-color: #1e1b4b4d;
}
.bg-indigo-950\/40 {
  background-color: #1e1b4b66;
}
.bg-indigo-950\/5 {
  background-color: #1e1b4b0d;
}
.bg-indigo-950\/50 {
  background-color: #1e1b4b80;
}
.bg-indigo-950\/60 {
  background-color: #1e1b4b99;
}
.bg-indigo-950\/70 {
  background-color: #1e1b4bb3;
}
.bg-indigo-950\/75 {
  background-color: #1e1b4bbf;
}
.bg-indigo-950\/80 {
  background-color: #1e1b4bcc;
}
.bg-indigo-950\/90 {
  background-color: #1e1b4be6;
}
.bg-indigo-950\/95 {
  background-color: #1e1b4bf2;
}
.bg-inherit {
  background-color: inherit;
}
.bg-lime-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 252 203 / var(--tw-bg-opacity));
}
.bg-lime-100\/0 {
  background-color: #ecfccb00;
}
.bg-lime-100\/10 {
  background-color: #ecfccb1a;
}
.bg-lime-100\/100 {
  background-color: #ecfccb;
}
.bg-lime-100\/20 {
  background-color: #ecfccb33;
}
.bg-lime-100\/25 {
  background-color: #ecfccb40;
}
.bg-lime-100\/30 {
  background-color: #ecfccb4d;
}
.bg-lime-100\/40 {
  background-color: #ecfccb66;
}
.bg-lime-100\/5 {
  background-color: #ecfccb0d;
}
.bg-lime-100\/50 {
  background-color: #ecfccb80;
}
.bg-lime-100\/60 {
  background-color: #ecfccb99;
}
.bg-lime-100\/70 {
  background-color: #ecfccbb3;
}
.bg-lime-100\/75 {
  background-color: #ecfccbbf;
}
.bg-lime-100\/80 {
  background-color: #ecfccbcc;
}
.bg-lime-100\/90 {
  background-color: #ecfccbe6;
}
.bg-lime-100\/95 {
  background-color: #ecfccbf2;
}
.bg-lime-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(217 249 157 / var(--tw-bg-opacity));
}
.bg-lime-200\/0 {
  background-color: #d9f99d00;
}
.bg-lime-200\/10 {
  background-color: #d9f99d1a;
}
.bg-lime-200\/100 {
  background-color: #d9f99d;
}
.bg-lime-200\/20 {
  background-color: #d9f99d33;
}
.bg-lime-200\/25 {
  background-color: #d9f99d40;
}
.bg-lime-200\/30 {
  background-color: #d9f99d4d;
}
.bg-lime-200\/40 {
  background-color: #d9f99d66;
}
.bg-lime-200\/5 {
  background-color: #d9f99d0d;
}
.bg-lime-200\/50 {
  background-color: #d9f99d80;
}
.bg-lime-200\/60 {
  background-color: #d9f99d99;
}
.bg-lime-200\/70 {
  background-color: #d9f99db3;
}
.bg-lime-200\/75 {
  background-color: #d9f99dbf;
}
.bg-lime-200\/80 {
  background-color: #d9f99dcc;
}
.bg-lime-200\/90 {
  background-color: #d9f99de6;
}
.bg-lime-200\/95 {
  background-color: #d9f99df2;
}
.bg-lime-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(190 242 100 / var(--tw-bg-opacity));
}
.bg-lime-300\/0 {
  background-color: #bef26400;
}
.bg-lime-300\/10 {
  background-color: #bef2641a;
}
.bg-lime-300\/100 {
  background-color: #bef264;
}
.bg-lime-300\/20 {
  background-color: #bef26433;
}
.bg-lime-300\/25 {
  background-color: #bef26440;
}
.bg-lime-300\/30 {
  background-color: #bef2644d;
}
.bg-lime-300\/40 {
  background-color: #bef26466;
}
.bg-lime-300\/5 {
  background-color: #bef2640d;
}
.bg-lime-300\/50 {
  background-color: #bef26480;
}
.bg-lime-300\/60 {
  background-color: #bef26499;
}
.bg-lime-300\/70 {
  background-color: #bef264b3;
}
.bg-lime-300\/75 {
  background-color: #bef264bf;
}
.bg-lime-300\/80 {
  background-color: #bef264cc;
}
.bg-lime-300\/90 {
  background-color: #bef264e6;
}
.bg-lime-300\/95 {
  background-color: #bef264f2;
}
.bg-lime-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(163 230 53 / var(--tw-bg-opacity));
}
.bg-lime-400\/0 {
  background-color: #a3e63500;
}
.bg-lime-400\/10 {
  background-color: #a3e6351a;
}
.bg-lime-400\/100 {
  background-color: #a3e635;
}
.bg-lime-400\/20 {
  background-color: #a3e63533;
}
.bg-lime-400\/25 {
  background-color: #a3e63540;
}
.bg-lime-400\/30 {
  background-color: #a3e6354d;
}
.bg-lime-400\/40 {
  background-color: #a3e63566;
}
.bg-lime-400\/5 {
  background-color: #a3e6350d;
}
.bg-lime-400\/50 {
  background-color: #a3e63580;
}
.bg-lime-400\/60 {
  background-color: #a3e63599;
}
.bg-lime-400\/70 {
  background-color: #a3e635b3;
}
.bg-lime-400\/75 {
  background-color: #a3e635bf;
}
.bg-lime-400\/80 {
  background-color: #a3e635cc;
}
.bg-lime-400\/90 {
  background-color: #a3e635e6;
}
.bg-lime-400\/95 {
  background-color: #a3e635f2;
}
.bg-lime-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(247 254 231 / var(--tw-bg-opacity));
}
.bg-lime-50\/0 {
  background-color: #f7fee700;
}
.bg-lime-50\/10 {
  background-color: #f7fee71a;
}
.bg-lime-50\/100 {
  background-color: #f7fee7;
}
.bg-lime-50\/20 {
  background-color: #f7fee733;
}
.bg-lime-50\/25 {
  background-color: #f7fee740;
}
.bg-lime-50\/30 {
  background-color: #f7fee74d;
}
.bg-lime-50\/40 {
  background-color: #f7fee766;
}
.bg-lime-50\/5 {
  background-color: #f7fee70d;
}
.bg-lime-50\/50 {
  background-color: #f7fee780;
}
.bg-lime-50\/60 {
  background-color: #f7fee799;
}
.bg-lime-50\/70 {
  background-color: #f7fee7b3;
}
.bg-lime-50\/75 {
  background-color: #f7fee7bf;
}
.bg-lime-50\/80 {
  background-color: #f7fee7cc;
}
.bg-lime-50\/90 {
  background-color: #f7fee7e6;
}
.bg-lime-50\/95 {
  background-color: #f7fee7f2;
}
.bg-lime-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(132 204 22 / var(--tw-bg-opacity));
}
.bg-lime-500\/0 {
  background-color: #84cc1600;
}
.bg-lime-500\/10 {
  background-color: #84cc161a;
}
.bg-lime-500\/100 {
  background-color: #84cc16;
}
.bg-lime-500\/20 {
  background-color: #84cc1633;
}
.bg-lime-500\/25 {
  background-color: #84cc1640;
}
.bg-lime-500\/30 {
  background-color: #84cc164d;
}
.bg-lime-500\/40 {
  background-color: #84cc1666;
}
.bg-lime-500\/5 {
  background-color: #84cc160d;
}
.bg-lime-500\/50 {
  background-color: #84cc1680;
}
.bg-lime-500\/60 {
  background-color: #84cc1699;
}
.bg-lime-500\/70 {
  background-color: #84cc16b3;
}
.bg-lime-500\/75 {
  background-color: #84cc16bf;
}
.bg-lime-500\/80 {
  background-color: #84cc16cc;
}
.bg-lime-500\/90 {
  background-color: #84cc16e6;
}
.bg-lime-500\/95 {
  background-color: #84cc16f2;
}
.bg-lime-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(101 163 13 / var(--tw-bg-opacity));
}
.bg-lime-600\/0 {
  background-color: #65a30d00;
}
.bg-lime-600\/10 {
  background-color: #65a30d1a;
}
.bg-lime-600\/100 {
  background-color: #65a30d;
}
.bg-lime-600\/20 {
  background-color: #65a30d33;
}
.bg-lime-600\/25 {
  background-color: #65a30d40;
}
.bg-lime-600\/30 {
  background-color: #65a30d4d;
}
.bg-lime-600\/40 {
  background-color: #65a30d66;
}
.bg-lime-600\/5 {
  background-color: #65a30d0d;
}
.bg-lime-600\/50 {
  background-color: #65a30d80;
}
.bg-lime-600\/60 {
  background-color: #65a30d99;
}
.bg-lime-600\/70 {
  background-color: #65a30db3;
}
.bg-lime-600\/75 {
  background-color: #65a30dbf;
}
.bg-lime-600\/80 {
  background-color: #65a30dcc;
}
.bg-lime-600\/90 {
  background-color: #65a30de6;
}
.bg-lime-600\/95 {
  background-color: #65a30df2;
}
.bg-lime-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(77 124 15 / var(--tw-bg-opacity));
}
.bg-lime-700\/0 {
  background-color: #4d7c0f00;
}
.bg-lime-700\/10 {
  background-color: #4d7c0f1a;
}
.bg-lime-700\/100 {
  background-color: #4d7c0f;
}
.bg-lime-700\/20 {
  background-color: #4d7c0f33;
}
.bg-lime-700\/25 {
  background-color: #4d7c0f40;
}
.bg-lime-700\/30 {
  background-color: #4d7c0f4d;
}
.bg-lime-700\/40 {
  background-color: #4d7c0f66;
}
.bg-lime-700\/5 {
  background-color: #4d7c0f0d;
}
.bg-lime-700\/50 {
  background-color: #4d7c0f80;
}
.bg-lime-700\/60 {
  background-color: #4d7c0f99;
}
.bg-lime-700\/70 {
  background-color: #4d7c0fb3;
}
.bg-lime-700\/75 {
  background-color: #4d7c0fbf;
}
.bg-lime-700\/80 {
  background-color: #4d7c0fcc;
}
.bg-lime-700\/90 {
  background-color: #4d7c0fe6;
}
.bg-lime-700\/95 {
  background-color: #4d7c0ff2;
}
.bg-lime-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(63 98 18 / var(--tw-bg-opacity));
}
.bg-lime-800\/0 {
  background-color: #3f621200;
}
.bg-lime-800\/10 {
  background-color: #3f62121a;
}
.bg-lime-800\/100 {
  background-color: #3f6212;
}
.bg-lime-800\/20 {
  background-color: #3f621233;
}
.bg-lime-800\/25 {
  background-color: #3f621240;
}
.bg-lime-800\/30 {
  background-color: #3f62124d;
}
.bg-lime-800\/40 {
  background-color: #3f621266;
}
.bg-lime-800\/5 {
  background-color: #3f62120d;
}
.bg-lime-800\/50 {
  background-color: #3f621280;
}
.bg-lime-800\/60 {
  background-color: #3f621299;
}
.bg-lime-800\/70 {
  background-color: #3f6212b3;
}
.bg-lime-800\/75 {
  background-color: #3f6212bf;
}
.bg-lime-800\/80 {
  background-color: #3f6212cc;
}
.bg-lime-800\/90 {
  background-color: #3f6212e6;
}
.bg-lime-800\/95 {
  background-color: #3f6212f2;
}
.bg-lime-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(54 83 20 / var(--tw-bg-opacity));
}
.bg-lime-900\/0 {
  background-color: #36531400;
}
.bg-lime-900\/10 {
  background-color: #3653141a;
}
.bg-lime-900\/100 {
  background-color: #365314;
}
.bg-lime-900\/20 {
  background-color: #36531433;
}
.bg-lime-900\/25 {
  background-color: #36531440;
}
.bg-lime-900\/30 {
  background-color: #3653144d;
}
.bg-lime-900\/40 {
  background-color: #36531466;
}
.bg-lime-900\/5 {
  background-color: #3653140d;
}
.bg-lime-900\/50 {
  background-color: #36531480;
}
.bg-lime-900\/60 {
  background-color: #36531499;
}
.bg-lime-900\/70 {
  background-color: #365314b3;
}
.bg-lime-900\/75 {
  background-color: #365314bf;
}
.bg-lime-900\/80 {
  background-color: #365314cc;
}
.bg-lime-900\/90 {
  background-color: #365314e6;
}
.bg-lime-900\/95 {
  background-color: #365314f2;
}
.bg-lime-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(26 46 5 / var(--tw-bg-opacity));
}
.bg-lime-950\/0 {
  background-color: #1a2e0500;
}
.bg-lime-950\/10 {
  background-color: #1a2e051a;
}
.bg-lime-950\/100 {
  background-color: #1a2e05;
}
.bg-lime-950\/20 {
  background-color: #1a2e0533;
}
.bg-lime-950\/25 {
  background-color: #1a2e0540;
}
.bg-lime-950\/30 {
  background-color: #1a2e054d;
}
.bg-lime-950\/40 {
  background-color: #1a2e0566;
}
.bg-lime-950\/5 {
  background-color: #1a2e050d;
}
.bg-lime-950\/50 {
  background-color: #1a2e0580;
}
.bg-lime-950\/60 {
  background-color: #1a2e0599;
}
.bg-lime-950\/70 {
  background-color: #1a2e05b3;
}
.bg-lime-950\/75 {
  background-color: #1a2e05bf;
}
.bg-lime-950\/80 {
  background-color: #1a2e05cc;
}
.bg-lime-950\/90 {
  background-color: #1a2e05e6;
}
.bg-lime-950\/95 {
  background-color: #1a2e05f2;
}
.bg-neutral-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 245 245 / var(--tw-bg-opacity));
}
.bg-neutral-100\/0 {
  background-color: #f5f5f500;
}
.bg-neutral-100\/10 {
  background-color: #f5f5f51a;
}
.bg-neutral-100\/100 {
  background-color: #f5f5f5;
}
.bg-neutral-100\/20 {
  background-color: #f5f5f533;
}
.bg-neutral-100\/25 {
  background-color: #f5f5f540;
}
.bg-neutral-100\/30 {
  background-color: #f5f5f54d;
}
.bg-neutral-100\/40 {
  background-color: #f5f5f566;
}
.bg-neutral-100\/5 {
  background-color: #f5f5f50d;
}
.bg-neutral-100\/50 {
  background-color: #f5f5f580;
}
.bg-neutral-100\/60 {
  background-color: #f5f5f599;
}
.bg-neutral-100\/70 {
  background-color: #f5f5f5b3;
}
.bg-neutral-100\/75 {
  background-color: #f5f5f5bf;
}
.bg-neutral-100\/80 {
  background-color: #f5f5f5cc;
}
.bg-neutral-100\/90 {
  background-color: #f5f5f5e6;
}
.bg-neutral-100\/95 {
  background-color: #f5f5f5f2;
}
.bg-neutral-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 229 229 / var(--tw-bg-opacity));
}
.bg-neutral-200\/0 {
  background-color: #e5e5e500;
}
.bg-neutral-200\/10 {
  background-color: #e5e5e51a;
}
.bg-neutral-200\/100 {
  background-color: #e5e5e5;
}
.bg-neutral-200\/20 {
  background-color: #e5e5e533;
}
.bg-neutral-200\/25 {
  background-color: #e5e5e540;
}
.bg-neutral-200\/30 {
  background-color: #e5e5e54d;
}
.bg-neutral-200\/40 {
  background-color: #e5e5e566;
}
.bg-neutral-200\/5 {
  background-color: #e5e5e50d;
}
.bg-neutral-200\/50 {
  background-color: #e5e5e580;
}
.bg-neutral-200\/60 {
  background-color: #e5e5e599;
}
.bg-neutral-200\/70 {
  background-color: #e5e5e5b3;
}
.bg-neutral-200\/75 {
  background-color: #e5e5e5bf;
}
.bg-neutral-200\/80 {
  background-color: #e5e5e5cc;
}
.bg-neutral-200\/90 {
  background-color: #e5e5e5e6;
}
.bg-neutral-200\/95 {
  background-color: #e5e5e5f2;
}
.bg-neutral-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(212 212 212 / var(--tw-bg-opacity));
}
.bg-neutral-300\/0 {
  background-color: #d4d4d400;
}
.bg-neutral-300\/10 {
  background-color: #d4d4d41a;
}
.bg-neutral-300\/100 {
  background-color: #d4d4d4;
}
.bg-neutral-300\/20 {
  background-color: #d4d4d433;
}
.bg-neutral-300\/25 {
  background-color: #d4d4d440;
}
.bg-neutral-300\/30 {
  background-color: #d4d4d44d;
}
.bg-neutral-300\/40 {
  background-color: #d4d4d466;
}
.bg-neutral-300\/5 {
  background-color: #d4d4d40d;
}
.bg-neutral-300\/50 {
  background-color: #d4d4d480;
}
.bg-neutral-300\/60 {
  background-color: #d4d4d499;
}
.bg-neutral-300\/70 {
  background-color: #d4d4d4b3;
}
.bg-neutral-300\/75 {
  background-color: #d4d4d4bf;
}
.bg-neutral-300\/80 {
  background-color: #d4d4d4cc;
}
.bg-neutral-300\/90 {
  background-color: #d4d4d4e6;
}
.bg-neutral-300\/95 {
  background-color: #d4d4d4f2;
}
.bg-neutral-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(163 163 163 / var(--tw-bg-opacity));
}
.bg-neutral-400\/0 {
  background-color: #a3a3a300;
}
.bg-neutral-400\/10 {
  background-color: #a3a3a31a;
}
.bg-neutral-400\/100 {
  background-color: #a3a3a3;
}
.bg-neutral-400\/20 {
  background-color: #a3a3a333;
}
.bg-neutral-400\/25 {
  background-color: #a3a3a340;
}
.bg-neutral-400\/30 {
  background-color: #a3a3a34d;
}
.bg-neutral-400\/40 {
  background-color: #a3a3a366;
}
.bg-neutral-400\/5 {
  background-color: #a3a3a30d;
}
.bg-neutral-400\/50 {
  background-color: #a3a3a380;
}
.bg-neutral-400\/60 {
  background-color: #a3a3a399;
}
.bg-neutral-400\/70 {
  background-color: #a3a3a3b3;
}
.bg-neutral-400\/75 {
  background-color: #a3a3a3bf;
}
.bg-neutral-400\/80 {
  background-color: #a3a3a3cc;
}
.bg-neutral-400\/90 {
  background-color: #a3a3a3e6;
}
.bg-neutral-400\/95 {
  background-color: #a3a3a3f2;
}
.bg-neutral-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 250 / var(--tw-bg-opacity));
}
.bg-neutral-50\/0 {
  background-color: #fafafa00;
}
.bg-neutral-50\/10 {
  background-color: #fafafa1a;
}
.bg-neutral-50\/100 {
  background-color: #fafafa;
}
.bg-neutral-50\/20 {
  background-color: #fafafa33;
}
.bg-neutral-50\/25 {
  background-color: #fafafa40;
}
.bg-neutral-50\/30 {
  background-color: #fafafa4d;
}
.bg-neutral-50\/40 {
  background-color: #fafafa66;
}
.bg-neutral-50\/5 {
  background-color: #fafafa0d;
}
.bg-neutral-50\/50 {
  background-color: #fafafa80;
}
.bg-neutral-50\/60 {
  background-color: #fafafa99;
}
.bg-neutral-50\/70 {
  background-color: #fafafab3;
}
.bg-neutral-50\/75 {
  background-color: #fafafabf;
}
.bg-neutral-50\/80 {
  background-color: #fafafacc;
}
.bg-neutral-50\/90 {
  background-color: #fafafae6;
}
.bg-neutral-50\/95 {
  background-color: #fafafaf2;
}
.bg-neutral-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(115 115 115 / var(--tw-bg-opacity));
}
.bg-neutral-500\/0 {
  background-color: #73737300;
}
.bg-neutral-500\/10 {
  background-color: #7373731a;
}
.bg-neutral-500\/100 {
  background-color: #737373;
}
.bg-neutral-500\/20 {
  background-color: #73737333;
}
.bg-neutral-500\/25 {
  background-color: #73737340;
}
.bg-neutral-500\/30 {
  background-color: #7373734d;
}
.bg-neutral-500\/40 {
  background-color: #73737366;
}
.bg-neutral-500\/5 {
  background-color: #7373730d;
}
.bg-neutral-500\/50 {
  background-color: #73737380;
}
.bg-neutral-500\/60 {
  background-color: #73737399;
}
.bg-neutral-500\/70 {
  background-color: #737373b3;
}
.bg-neutral-500\/75 {
  background-color: #737373bf;
}
.bg-neutral-500\/80 {
  background-color: #737373cc;
}
.bg-neutral-500\/90 {
  background-color: #737373e6;
}
.bg-neutral-500\/95 {
  background-color: #737373f2;
}
.bg-neutral-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(82 82 82 / var(--tw-bg-opacity));
}
.bg-neutral-600\/0 {
  background-color: #52525200;
}
.bg-neutral-600\/10 {
  background-color: #5252521a;
}
.bg-neutral-600\/100 {
  background-color: #525252;
}
.bg-neutral-600\/20 {
  background-color: #52525233;
}
.bg-neutral-600\/25 {
  background-color: #52525240;
}
.bg-neutral-600\/30 {
  background-color: #5252524d;
}
.bg-neutral-600\/40 {
  background-color: #52525266;
}
.bg-neutral-600\/5 {
  background-color: #5252520d;
}
.bg-neutral-600\/50 {
  background-color: #52525280;
}
.bg-neutral-600\/60 {
  background-color: #52525299;
}
.bg-neutral-600\/70 {
  background-color: #525252b3;
}
.bg-neutral-600\/75 {
  background-color: #525252bf;
}
.bg-neutral-600\/80 {
  background-color: #525252cc;
}
.bg-neutral-600\/90 {
  background-color: #525252e6;
}
.bg-neutral-600\/95 {
  background-color: #525252f2;
}
.bg-neutral-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(64 64 64 / var(--tw-bg-opacity));
}
.bg-neutral-700\/0 {
  background-color: #40404000;
}
.bg-neutral-700\/10 {
  background-color: #4040401a;
}
.bg-neutral-700\/100 {
  background-color: #404040;
}
.bg-neutral-700\/20 {
  background-color: #40404033;
}
.bg-neutral-700\/25 {
  background-color: #40404040;
}
.bg-neutral-700\/30 {
  background-color: #4040404d;
}
.bg-neutral-700\/40 {
  background-color: #40404066;
}
.bg-neutral-700\/5 {
  background-color: #4040400d;
}
.bg-neutral-700\/50 {
  background-color: #40404080;
}
.bg-neutral-700\/60 {
  background-color: #40404099;
}
.bg-neutral-700\/70 {
  background-color: #404040b3;
}
.bg-neutral-700\/75 {
  background-color: #404040bf;
}
.bg-neutral-700\/80 {
  background-color: #404040cc;
}
.bg-neutral-700\/90 {
  background-color: #404040e6;
}
.bg-neutral-700\/95 {
  background-color: #404040f2;
}
.bg-neutral-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(38 38 38 / var(--tw-bg-opacity));
}
.bg-neutral-800\/0 {
  background-color: #26262600;
}
.bg-neutral-800\/10 {
  background-color: #2626261a;
}
.bg-neutral-800\/100 {
  background-color: #262626;
}
.bg-neutral-800\/20 {
  background-color: #26262633;
}
.bg-neutral-800\/25 {
  background-color: #26262640;
}
.bg-neutral-800\/30 {
  background-color: #2626264d;
}
.bg-neutral-800\/40 {
  background-color: #26262666;
}
.bg-neutral-800\/5 {
  background-color: #2626260d;
}
.bg-neutral-800\/50 {
  background-color: #26262680;
}
.bg-neutral-800\/60 {
  background-color: #26262699;
}
.bg-neutral-800\/70 {
  background-color: #262626b3;
}
.bg-neutral-800\/75 {
  background-color: #262626bf;
}
.bg-neutral-800\/80 {
  background-color: #262626cc;
}
.bg-neutral-800\/90 {
  background-color: #262626e6;
}
.bg-neutral-800\/95 {
  background-color: #262626f2;
}
.bg-neutral-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(23 23 23 / var(--tw-bg-opacity));
}
.bg-neutral-900\/0 {
  background-color: #17171700;
}
.bg-neutral-900\/10 {
  background-color: #1717171a;
}
.bg-neutral-900\/100 {
  background-color: #171717;
}
.bg-neutral-900\/20 {
  background-color: #17171733;
}
.bg-neutral-900\/25 {
  background-color: #17171740;
}
.bg-neutral-900\/30 {
  background-color: #1717174d;
}
.bg-neutral-900\/40 {
  background-color: #17171766;
}
.bg-neutral-900\/5 {
  background-color: #1717170d;
}
.bg-neutral-900\/50 {
  background-color: #17171780;
}
.bg-neutral-900\/60 {
  background-color: #17171799;
}
.bg-neutral-900\/70 {
  background-color: #171717b3;
}
.bg-neutral-900\/75 {
  background-color: #171717bf;
}
.bg-neutral-900\/80 {
  background-color: #171717cc;
}
.bg-neutral-900\/90 {
  background-color: #171717e6;
}
.bg-neutral-900\/95 {
  background-color: #171717f2;
}
.bg-neutral-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(10 10 10 / var(--tw-bg-opacity));
}
.bg-neutral-950\/0 {
  background-color: #0a0a0a00;
}
.bg-neutral-950\/10 {
  background-color: #0a0a0a1a;
}
.bg-neutral-950\/100 {
  background-color: #0a0a0a;
}
.bg-neutral-950\/20 {
  background-color: #0a0a0a33;
}
.bg-neutral-950\/25 {
  background-color: #0a0a0a40;
}
.bg-neutral-950\/30 {
  background-color: #0a0a0a4d;
}
.bg-neutral-950\/40 {
  background-color: #0a0a0a66;
}
.bg-neutral-950\/5 {
  background-color: #0a0a0a0d;
}
.bg-neutral-950\/50 {
  background-color: #0a0a0a80;
}
.bg-neutral-950\/60 {
  background-color: #0a0a0a99;
}
.bg-neutral-950\/70 {
  background-color: #0a0a0ab3;
}
.bg-neutral-950\/75 {
  background-color: #0a0a0abf;
}
.bg-neutral-950\/80 {
  background-color: #0a0a0acc;
}
.bg-neutral-950\/90 {
  background-color: #0a0a0ae6;
}
.bg-neutral-950\/95 {
  background-color: #0a0a0af2;
}
.bg-orange-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity));
}
.bg-orange-100\/0 {
  background-color: #ffedd500;
}
.bg-orange-100\/10 {
  background-color: #ffedd51a;
}
.bg-orange-100\/100 {
  background-color: #ffedd5;
}
.bg-orange-100\/20 {
  background-color: #ffedd533;
}
.bg-orange-100\/25 {
  background-color: #ffedd540;
}
.bg-orange-100\/30 {
  background-color: #ffedd54d;
}
.bg-orange-100\/40 {
  background-color: #ffedd566;
}
.bg-orange-100\/5 {
  background-color: #ffedd50d;
}
.bg-orange-100\/50 {
  background-color: #ffedd580;
}
.bg-orange-100\/60 {
  background-color: #ffedd599;
}
.bg-orange-100\/70 {
  background-color: #ffedd5b3;
}
.bg-orange-100\/75 {
  background-color: #ffedd5bf;
}
.bg-orange-100\/80 {
  background-color: #ffedd5cc;
}
.bg-orange-100\/90 {
  background-color: #ffedd5e6;
}
.bg-orange-100\/95 {
  background-color: #ffedd5f2;
}
.bg-orange-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 215 170 / var(--tw-bg-opacity));
}
.bg-orange-200\/0 {
  background-color: #fed7aa00;
}
.bg-orange-200\/10 {
  background-color: #fed7aa1a;
}
.bg-orange-200\/100 {
  background-color: #fed7aa;
}
.bg-orange-200\/20 {
  background-color: #fed7aa33;
}
.bg-orange-200\/25 {
  background-color: #fed7aa40;
}
.bg-orange-200\/30 {
  background-color: #fed7aa4d;
}
.bg-orange-200\/40 {
  background-color: #fed7aa66;
}
.bg-orange-200\/5 {
  background-color: #fed7aa0d;
}
.bg-orange-200\/50 {
  background-color: #fed7aa80;
}
.bg-orange-200\/60 {
  background-color: #fed7aa99;
}
.bg-orange-200\/70 {
  background-color: #fed7aab3;
}
.bg-orange-200\/75 {
  background-color: #fed7aabf;
}
.bg-orange-200\/80 {
  background-color: #fed7aacc;
}
.bg-orange-200\/90 {
  background-color: #fed7aae6;
}
.bg-orange-200\/95 {
  background-color: #fed7aaf2;
}
.bg-orange-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 186 116 / var(--tw-bg-opacity));
}
.bg-orange-300\/0 {
  background-color: #fdba7400;
}
.bg-orange-300\/10 {
  background-color: #fdba741a;
}
.bg-orange-300\/100 {
  background-color: #fdba74;
}
.bg-orange-300\/20 {
  background-color: #fdba7433;
}
.bg-orange-300\/25 {
  background-color: #fdba7440;
}
.bg-orange-300\/30 {
  background-color: #fdba744d;
}
.bg-orange-300\/40 {
  background-color: #fdba7466;
}
.bg-orange-300\/5 {
  background-color: #fdba740d;
}
.bg-orange-300\/50 {
  background-color: #fdba7480;
}
.bg-orange-300\/60 {
  background-color: #fdba7499;
}
.bg-orange-300\/70 {
  background-color: #fdba74b3;
}
.bg-orange-300\/75 {
  background-color: #fdba74bf;
}
.bg-orange-300\/80 {
  background-color: #fdba74cc;
}
.bg-orange-300\/90 {
  background-color: #fdba74e6;
}
.bg-orange-300\/95 {
  background-color: #fdba74f2;
}
.bg-orange-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 146 60 / var(--tw-bg-opacity));
}
.bg-orange-400\/0 {
  background-color: #fb923c00;
}
.bg-orange-400\/10 {
  background-color: #fb923c1a;
}
.bg-orange-400\/100 {
  background-color: #fb923c;
}
.bg-orange-400\/20 {
  background-color: #fb923c33;
}
.bg-orange-400\/25 {
  background-color: #fb923c40;
}
.bg-orange-400\/30 {
  background-color: #fb923c4d;
}
.bg-orange-400\/40 {
  background-color: #fb923c66;
}
.bg-orange-400\/5 {
  background-color: #fb923c0d;
}
.bg-orange-400\/50 {
  background-color: #fb923c80;
}
.bg-orange-400\/60 {
  background-color: #fb923c99;
}
.bg-orange-400\/70 {
  background-color: #fb923cb3;
}
.bg-orange-400\/75 {
  background-color: #fb923cbf;
}
.bg-orange-400\/80 {
  background-color: #fb923ccc;
}
.bg-orange-400\/90 {
  background-color: #fb923ce6;
}
.bg-orange-400\/95 {
  background-color: #fb923cf2;
}
.bg-orange-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity));
}
.bg-orange-50\/0 {
  background-color: #fff7ed00;
}
.bg-orange-50\/10 {
  background-color: #fff7ed1a;
}
.bg-orange-50\/100 {
  background-color: #fff7ed;
}
.bg-orange-50\/20 {
  background-color: #fff7ed33;
}
.bg-orange-50\/25 {
  background-color: #fff7ed40;
}
.bg-orange-50\/30 {
  background-color: #fff7ed4d;
}
.bg-orange-50\/40 {
  background-color: #fff7ed66;
}
.bg-orange-50\/5 {
  background-color: #fff7ed0d;
}
.bg-orange-50\/50 {
  background-color: #fff7ed80;
}
.bg-orange-50\/60 {
  background-color: #fff7ed99;
}
.bg-orange-50\/70 {
  background-color: #fff7edb3;
}
.bg-orange-50\/75 {
  background-color: #fff7edbf;
}
.bg-orange-50\/80 {
  background-color: #fff7edcc;
}
.bg-orange-50\/90 {
  background-color: #fff7ede6;
}
.bg-orange-50\/95 {
  background-color: #fff7edf2;
}
.bg-orange-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 115 22 / var(--tw-bg-opacity));
}
.bg-orange-500\/0 {
  background-color: #f9731600;
}
.bg-orange-500\/10 {
  background-color: #f973161a;
}
.bg-orange-500\/100 {
  background-color: #f97316;
}
.bg-orange-500\/20 {
  background-color: #f9731633;
}
.bg-orange-500\/25 {
  background-color: #f9731640;
}
.bg-orange-500\/30 {
  background-color: #f973164d;
}
.bg-orange-500\/40 {
  background-color: #f9731666;
}
.bg-orange-500\/5 {
  background-color: #f973160d;
}
.bg-orange-500\/50 {
  background-color: #f9731680;
}
.bg-orange-500\/60 {
  background-color: #f9731699;
}
.bg-orange-500\/70 {
  background-color: #f97316b3;
}
.bg-orange-500\/75 {
  background-color: #f97316bf;
}
.bg-orange-500\/80 {
  background-color: #f97316cc;
}
.bg-orange-500\/90 {
  background-color: #f97316e6;
}
.bg-orange-500\/95 {
  background-color: #f97316f2;
}
.bg-orange-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 88 12 / var(--tw-bg-opacity));
}
.bg-orange-600\/0 {
  background-color: #ea580c00;
}
.bg-orange-600\/10 {
  background-color: #ea580c1a;
}
.bg-orange-600\/100 {
  background-color: #ea580c;
}
.bg-orange-600\/20 {
  background-color: #ea580c33;
}
.bg-orange-600\/25 {
  background-color: #ea580c40;
}
.bg-orange-600\/30 {
  background-color: #ea580c4d;
}
.bg-orange-600\/40 {
  background-color: #ea580c66;
}
.bg-orange-600\/5 {
  background-color: #ea580c0d;
}
.bg-orange-600\/50 {
  background-color: #ea580c80;
}
.bg-orange-600\/60 {
  background-color: #ea580c99;
}
.bg-orange-600\/70 {
  background-color: #ea580cb3;
}
.bg-orange-600\/75 {
  background-color: #ea580cbf;
}
.bg-orange-600\/80 {
  background-color: #ea580ccc;
}
.bg-orange-600\/90 {
  background-color: #ea580ce6;
}
.bg-orange-600\/95 {
  background-color: #ea580cf2;
}
.bg-orange-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(194 65 12 / var(--tw-bg-opacity));
}
.bg-orange-700\/0 {
  background-color: #c2410c00;
}
.bg-orange-700\/10 {
  background-color: #c2410c1a;
}
.bg-orange-700\/100 {
  background-color: #c2410c;
}
.bg-orange-700\/20 {
  background-color: #c2410c33;
}
.bg-orange-700\/25 {
  background-color: #c2410c40;
}
.bg-orange-700\/30 {
  background-color: #c2410c4d;
}
.bg-orange-700\/40 {
  background-color: #c2410c66;
}
.bg-orange-700\/5 {
  background-color: #c2410c0d;
}
.bg-orange-700\/50 {
  background-color: #c2410c80;
}
.bg-orange-700\/60 {
  background-color: #c2410c99;
}
.bg-orange-700\/70 {
  background-color: #c2410cb3;
}
.bg-orange-700\/75 {
  background-color: #c2410cbf;
}
.bg-orange-700\/80 {
  background-color: #c2410ccc;
}
.bg-orange-700\/90 {
  background-color: #c2410ce6;
}
.bg-orange-700\/95 {
  background-color: #c2410cf2;
}
.bg-orange-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(154 52 18 / var(--tw-bg-opacity));
}
.bg-orange-800\/0 {
  background-color: #9a341200;
}
.bg-orange-800\/10 {
  background-color: #9a34121a;
}
.bg-orange-800\/100 {
  background-color: #9a3412;
}
.bg-orange-800\/20 {
  background-color: #9a341233;
}
.bg-orange-800\/25 {
  background-color: #9a341240;
}
.bg-orange-800\/30 {
  background-color: #9a34124d;
}
.bg-orange-800\/40 {
  background-color: #9a341266;
}
.bg-orange-800\/5 {
  background-color: #9a34120d;
}
.bg-orange-800\/50 {
  background-color: #9a341280;
}
.bg-orange-800\/60 {
  background-color: #9a341299;
}
.bg-orange-800\/70 {
  background-color: #9a3412b3;
}
.bg-orange-800\/75 {
  background-color: #9a3412bf;
}
.bg-orange-800\/80 {
  background-color: #9a3412cc;
}
.bg-orange-800\/90 {
  background-color: #9a3412e6;
}
.bg-orange-800\/95 {
  background-color: #9a3412f2;
}
.bg-orange-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(124 45 18 / var(--tw-bg-opacity));
}
.bg-orange-900\/0 {
  background-color: #7c2d1200;
}
.bg-orange-900\/10 {
  background-color: #7c2d121a;
}
.bg-orange-900\/100 {
  background-color: #7c2d12;
}
.bg-orange-900\/20 {
  background-color: #7c2d1233;
}
.bg-orange-900\/25 {
  background-color: #7c2d1240;
}
.bg-orange-900\/30 {
  background-color: #7c2d124d;
}
.bg-orange-900\/40 {
  background-color: #7c2d1266;
}
.bg-orange-900\/5 {
  background-color: #7c2d120d;
}
.bg-orange-900\/50 {
  background-color: #7c2d1280;
}
.bg-orange-900\/60 {
  background-color: #7c2d1299;
}
.bg-orange-900\/70 {
  background-color: #7c2d12b3;
}
.bg-orange-900\/75 {
  background-color: #7c2d12bf;
}
.bg-orange-900\/80 {
  background-color: #7c2d12cc;
}
.bg-orange-900\/90 {
  background-color: #7c2d12e6;
}
.bg-orange-900\/95 {
  background-color: #7c2d12f2;
}
.bg-orange-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(67 20 7 / var(--tw-bg-opacity));
}
.bg-orange-950\/0 {
  background-color: #43140700;
}
.bg-orange-950\/10 {
  background-color: #4314071a;
}
.bg-orange-950\/100 {
  background-color: #431407;
}
.bg-orange-950\/20 {
  background-color: #43140733;
}
.bg-orange-950\/25 {
  background-color: #43140740;
}
.bg-orange-950\/30 {
  background-color: #4314074d;
}
.bg-orange-950\/40 {
  background-color: #43140766;
}
.bg-orange-950\/5 {
  background-color: #4314070d;
}
.bg-orange-950\/50 {
  background-color: #43140780;
}
.bg-orange-950\/60 {
  background-color: #43140799;
}
.bg-orange-950\/70 {
  background-color: #431407b3;
}
.bg-orange-950\/75 {
  background-color: #431407bf;
}
.bg-orange-950\/80 {
  background-color: #431407cc;
}
.bg-orange-950\/90 {
  background-color: #431407e6;
}
.bg-orange-950\/95 {
  background-color: #431407f2;
}
.bg-pink-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(252 231 243 / var(--tw-bg-opacity));
}
.bg-pink-100\/0 {
  background-color: #fce7f300;
}
.bg-pink-100\/10 {
  background-color: #fce7f31a;
}
.bg-pink-100\/100 {
  background-color: #fce7f3;
}
.bg-pink-100\/20 {
  background-color: #fce7f333;
}
.bg-pink-100\/25 {
  background-color: #fce7f340;
}
.bg-pink-100\/30 {
  background-color: #fce7f34d;
}
.bg-pink-100\/40 {
  background-color: #fce7f366;
}
.bg-pink-100\/5 {
  background-color: #fce7f30d;
}
.bg-pink-100\/50 {
  background-color: #fce7f380;
}
.bg-pink-100\/60 {
  background-color: #fce7f399;
}
.bg-pink-100\/70 {
  background-color: #fce7f3b3;
}
.bg-pink-100\/75 {
  background-color: #fce7f3bf;
}
.bg-pink-100\/80 {
  background-color: #fce7f3cc;
}
.bg-pink-100\/90 {
  background-color: #fce7f3e6;
}
.bg-pink-100\/95 {
  background-color: #fce7f3f2;
}
.bg-pink-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 207 232 / var(--tw-bg-opacity));
}
.bg-pink-200\/0 {
  background-color: #fbcfe800;
}
.bg-pink-200\/10 {
  background-color: #fbcfe81a;
}
.bg-pink-200\/100 {
  background-color: #fbcfe8;
}
.bg-pink-200\/20 {
  background-color: #fbcfe833;
}
.bg-pink-200\/25 {
  background-color: #fbcfe840;
}
.bg-pink-200\/30 {
  background-color: #fbcfe84d;
}
.bg-pink-200\/40 {
  background-color: #fbcfe866;
}
.bg-pink-200\/5 {
  background-color: #fbcfe80d;
}
.bg-pink-200\/50 {
  background-color: #fbcfe880;
}
.bg-pink-200\/60 {
  background-color: #fbcfe899;
}
.bg-pink-200\/70 {
  background-color: #fbcfe8b3;
}
.bg-pink-200\/75 {
  background-color: #fbcfe8bf;
}
.bg-pink-200\/80 {
  background-color: #fbcfe8cc;
}
.bg-pink-200\/90 {
  background-color: #fbcfe8e6;
}
.bg-pink-200\/95 {
  background-color: #fbcfe8f2;
}
.bg-pink-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 168 212 / var(--tw-bg-opacity));
}
.bg-pink-300\/0 {
  background-color: #f9a8d400;
}
.bg-pink-300\/10 {
  background-color: #f9a8d41a;
}
.bg-pink-300\/100 {
  background-color: #f9a8d4;
}
.bg-pink-300\/20 {
  background-color: #f9a8d433;
}
.bg-pink-300\/25 {
  background-color: #f9a8d440;
}
.bg-pink-300\/30 {
  background-color: #f9a8d44d;
}
.bg-pink-300\/40 {
  background-color: #f9a8d466;
}
.bg-pink-300\/5 {
  background-color: #f9a8d40d;
}
.bg-pink-300\/50 {
  background-color: #f9a8d480;
}
.bg-pink-300\/60 {
  background-color: #f9a8d499;
}
.bg-pink-300\/70 {
  background-color: #f9a8d4b3;
}
.bg-pink-300\/75 {
  background-color: #f9a8d4bf;
}
.bg-pink-300\/80 {
  background-color: #f9a8d4cc;
}
.bg-pink-300\/90 {
  background-color: #f9a8d4e6;
}
.bg-pink-300\/95 {
  background-color: #f9a8d4f2;
}
.bg-pink-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 114 182 / var(--tw-bg-opacity));
}
.bg-pink-400\/0 {
  background-color: #f472b600;
}
.bg-pink-400\/10 {
  background-color: #f472b61a;
}
.bg-pink-400\/100 {
  background-color: #f472b6;
}
.bg-pink-400\/20 {
  background-color: #f472b633;
}
.bg-pink-400\/25 {
  background-color: #f472b640;
}
.bg-pink-400\/30 {
  background-color: #f472b64d;
}
.bg-pink-400\/40 {
  background-color: #f472b666;
}
.bg-pink-400\/5 {
  background-color: #f472b60d;
}
.bg-pink-400\/50 {
  background-color: #f472b680;
}
.bg-pink-400\/60 {
  background-color: #f472b699;
}
.bg-pink-400\/70 {
  background-color: #f472b6b3;
}
.bg-pink-400\/75 {
  background-color: #f472b6bf;
}
.bg-pink-400\/80 {
  background-color: #f472b6cc;
}
.bg-pink-400\/90 {
  background-color: #f472b6e6;
}
.bg-pink-400\/95 {
  background-color: #f472b6f2;
}
.bg-pink-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 242 248 / var(--tw-bg-opacity));
}
.bg-pink-50\/0 {
  background-color: #fdf2f800;
}
.bg-pink-50\/10 {
  background-color: #fdf2f81a;
}
.bg-pink-50\/100 {
  background-color: #fdf2f8;
}
.bg-pink-50\/20 {
  background-color: #fdf2f833;
}
.bg-pink-50\/25 {
  background-color: #fdf2f840;
}
.bg-pink-50\/30 {
  background-color: #fdf2f84d;
}
.bg-pink-50\/40 {
  background-color: #fdf2f866;
}
.bg-pink-50\/5 {
  background-color: #fdf2f80d;
}
.bg-pink-50\/50 {
  background-color: #fdf2f880;
}
.bg-pink-50\/60 {
  background-color: #fdf2f899;
}
.bg-pink-50\/70 {
  background-color: #fdf2f8b3;
}
.bg-pink-50\/75 {
  background-color: #fdf2f8bf;
}
.bg-pink-50\/80 {
  background-color: #fdf2f8cc;
}
.bg-pink-50\/90 {
  background-color: #fdf2f8e6;
}
.bg-pink-50\/95 {
  background-color: #fdf2f8f2;
}
.bg-pink-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 72 153 / var(--tw-bg-opacity));
}
.bg-pink-500\/0 {
  background-color: #ec489900;
}
.bg-pink-500\/10 {
  background-color: #ec48991a;
}
.bg-pink-500\/100 {
  background-color: #ec4899;
}
.bg-pink-500\/20 {
  background-color: #ec489933;
}
.bg-pink-500\/25 {
  background-color: #ec489940;
}
.bg-pink-500\/30 {
  background-color: #ec48994d;
}
.bg-pink-500\/40 {
  background-color: #ec489966;
}
.bg-pink-500\/5 {
  background-color: #ec48990d;
}
.bg-pink-500\/50 {
  background-color: #ec489980;
}
.bg-pink-500\/60 {
  background-color: #ec489999;
}
.bg-pink-500\/70 {
  background-color: #ec4899b3;
}
.bg-pink-500\/75 {
  background-color: #ec4899bf;
}
.bg-pink-500\/80 {
  background-color: #ec4899cc;
}
.bg-pink-500\/90 {
  background-color: #ec4899e6;
}
.bg-pink-500\/95 {
  background-color: #ec4899f2;
}
.bg-pink-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 39 119 / var(--tw-bg-opacity));
}
.bg-pink-600\/0 {
  background-color: #db277700;
}
.bg-pink-600\/10 {
  background-color: #db27771a;
}
.bg-pink-600\/100 {
  background-color: #db2777;
}
.bg-pink-600\/20 {
  background-color: #db277733;
}
.bg-pink-600\/25 {
  background-color: #db277740;
}
.bg-pink-600\/30 {
  background-color: #db27774d;
}
.bg-pink-600\/40 {
  background-color: #db277766;
}
.bg-pink-600\/5 {
  background-color: #db27770d;
}
.bg-pink-600\/50 {
  background-color: #db277780;
}
.bg-pink-600\/60 {
  background-color: #db277799;
}
.bg-pink-600\/70 {
  background-color: #db2777b3;
}
.bg-pink-600\/75 {
  background-color: #db2777bf;
}
.bg-pink-600\/80 {
  background-color: #db2777cc;
}
.bg-pink-600\/90 {
  background-color: #db2777e6;
}
.bg-pink-600\/95 {
  background-color: #db2777f2;
}
.bg-pink-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(190 24 93 / var(--tw-bg-opacity));
}
.bg-pink-700\/0 {
  background-color: #be185d00;
}
.bg-pink-700\/10 {
  background-color: #be185d1a;
}
.bg-pink-700\/100 {
  background-color: #be185d;
}
.bg-pink-700\/20 {
  background-color: #be185d33;
}
.bg-pink-700\/25 {
  background-color: #be185d40;
}
.bg-pink-700\/30 {
  background-color: #be185d4d;
}
.bg-pink-700\/40 {
  background-color: #be185d66;
}
.bg-pink-700\/5 {
  background-color: #be185d0d;
}
.bg-pink-700\/50 {
  background-color: #be185d80;
}
.bg-pink-700\/60 {
  background-color: #be185d99;
}
.bg-pink-700\/70 {
  background-color: #be185db3;
}
.bg-pink-700\/75 {
  background-color: #be185dbf;
}
.bg-pink-700\/80 {
  background-color: #be185dcc;
}
.bg-pink-700\/90 {
  background-color: #be185de6;
}
.bg-pink-700\/95 {
  background-color: #be185df2;
}
.bg-pink-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(157 23 77 / var(--tw-bg-opacity));
}
.bg-pink-800\/0 {
  background-color: #9d174d00;
}
.bg-pink-800\/10 {
  background-color: #9d174d1a;
}
.bg-pink-800\/100 {
  background-color: #9d174d;
}
.bg-pink-800\/20 {
  background-color: #9d174d33;
}
.bg-pink-800\/25 {
  background-color: #9d174d40;
}
.bg-pink-800\/30 {
  background-color: #9d174d4d;
}
.bg-pink-800\/40 {
  background-color: #9d174d66;
}
.bg-pink-800\/5 {
  background-color: #9d174d0d;
}
.bg-pink-800\/50 {
  background-color: #9d174d80;
}
.bg-pink-800\/60 {
  background-color: #9d174d99;
}
.bg-pink-800\/70 {
  background-color: #9d174db3;
}
.bg-pink-800\/75 {
  background-color: #9d174dbf;
}
.bg-pink-800\/80 {
  background-color: #9d174dcc;
}
.bg-pink-800\/90 {
  background-color: #9d174de6;
}
.bg-pink-800\/95 {
  background-color: #9d174df2;
}
.bg-pink-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(131 24 67 / var(--tw-bg-opacity));
}
.bg-pink-900\/0 {
  background-color: #83184300;
}
.bg-pink-900\/10 {
  background-color: #8318431a;
}
.bg-pink-900\/100 {
  background-color: #831843;
}
.bg-pink-900\/20 {
  background-color: #83184333;
}
.bg-pink-900\/25 {
  background-color: #83184340;
}
.bg-pink-900\/30 {
  background-color: #8318434d;
}
.bg-pink-900\/40 {
  background-color: #83184366;
}
.bg-pink-900\/5 {
  background-color: #8318430d;
}
.bg-pink-900\/50 {
  background-color: #83184380;
}
.bg-pink-900\/60 {
  background-color: #83184399;
}
.bg-pink-900\/70 {
  background-color: #831843b3;
}
.bg-pink-900\/75 {
  background-color: #831843bf;
}
.bg-pink-900\/80 {
  background-color: #831843cc;
}
.bg-pink-900\/90 {
  background-color: #831843e6;
}
.bg-pink-900\/95 {
  background-color: #831843f2;
}
.bg-pink-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(80 7 36 / var(--tw-bg-opacity));
}
.bg-pink-950\/0 {
  background-color: #50072400;
}
.bg-pink-950\/10 {
  background-color: #5007241a;
}
.bg-pink-950\/100 {
  background-color: #500724;
}
.bg-pink-950\/20 {
  background-color: #50072433;
}
.bg-pink-950\/25 {
  background-color: #50072440;
}
.bg-pink-950\/30 {
  background-color: #5007244d;
}
.bg-pink-950\/40 {
  background-color: #50072466;
}
.bg-pink-950\/5 {
  background-color: #5007240d;
}
.bg-pink-950\/50 {
  background-color: #50072480;
}
.bg-pink-950\/60 {
  background-color: #50072499;
}
.bg-pink-950\/70 {
  background-color: #500724b3;
}
.bg-pink-950\/75 {
  background-color: #500724bf;
}
.bg-pink-950\/80 {
  background-color: #500724cc;
}
.bg-pink-950\/90 {
  background-color: #500724e6;
}
.bg-pink-950\/95 {
  background-color: #500724f2;
}
.bg-purple-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 232 255 / var(--tw-bg-opacity));
}
.bg-purple-100\/0 {
  background-color: #f3e8ff00;
}
.bg-purple-100\/10 {
  background-color: #f3e8ff1a;
}
.bg-purple-100\/100 {
  background-color: #f3e8ff;
}
.bg-purple-100\/20 {
  background-color: #f3e8ff33;
}
.bg-purple-100\/25 {
  background-color: #f3e8ff40;
}
.bg-purple-100\/30 {
  background-color: #f3e8ff4d;
}
.bg-purple-100\/40 {
  background-color: #f3e8ff66;
}
.bg-purple-100\/5 {
  background-color: #f3e8ff0d;
}
.bg-purple-100\/50 {
  background-color: #f3e8ff80;
}
.bg-purple-100\/60 {
  background-color: #f3e8ff99;
}
.bg-purple-100\/70 {
  background-color: #f3e8ffb3;
}
.bg-purple-100\/75 {
  background-color: #f3e8ffbf;
}
.bg-purple-100\/80 {
  background-color: #f3e8ffcc;
}
.bg-purple-100\/90 {
  background-color: #f3e8ffe6;
}
.bg-purple-100\/95 {
  background-color: #f3e8fff2;
}
.bg-purple-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(233 213 255 / var(--tw-bg-opacity));
}
.bg-purple-200\/0 {
  background-color: #e9d5ff00;
}
.bg-purple-200\/10 {
  background-color: #e9d5ff1a;
}
.bg-purple-200\/100 {
  background-color: #e9d5ff;
}
.bg-purple-200\/20 {
  background-color: #e9d5ff33;
}
.bg-purple-200\/25 {
  background-color: #e9d5ff40;
}
.bg-purple-200\/30 {
  background-color: #e9d5ff4d;
}
.bg-purple-200\/40 {
  background-color: #e9d5ff66;
}
.bg-purple-200\/5 {
  background-color: #e9d5ff0d;
}
.bg-purple-200\/50 {
  background-color: #e9d5ff80;
}
.bg-purple-200\/60 {
  background-color: #e9d5ff99;
}
.bg-purple-200\/70 {
  background-color: #e9d5ffb3;
}
.bg-purple-200\/75 {
  background-color: #e9d5ffbf;
}
.bg-purple-200\/80 {
  background-color: #e9d5ffcc;
}
.bg-purple-200\/90 {
  background-color: #e9d5ffe6;
}
.bg-purple-200\/95 {
  background-color: #e9d5fff2;
}
.bg-purple-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(216 180 254 / var(--tw-bg-opacity));
}
.bg-purple-300\/0 {
  background-color: #d8b4fe00;
}
.bg-purple-300\/10 {
  background-color: #d8b4fe1a;
}
.bg-purple-300\/100 {
  background-color: #d8b4fe;
}
.bg-purple-300\/20 {
  background-color: #d8b4fe33;
}
.bg-purple-300\/25 {
  background-color: #d8b4fe40;
}
.bg-purple-300\/30 {
  background-color: #d8b4fe4d;
}
.bg-purple-300\/40 {
  background-color: #d8b4fe66;
}
.bg-purple-300\/5 {
  background-color: #d8b4fe0d;
}
.bg-purple-300\/50 {
  background-color: #d8b4fe80;
}
.bg-purple-300\/60 {
  background-color: #d8b4fe99;
}
.bg-purple-300\/70 {
  background-color: #d8b4feb3;
}
.bg-purple-300\/75 {
  background-color: #d8b4febf;
}
.bg-purple-300\/80 {
  background-color: #d8b4fecc;
}
.bg-purple-300\/90 {
  background-color: #d8b4fee6;
}
.bg-purple-300\/95 {
  background-color: #d8b4fef2;
}
.bg-purple-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(192 132 252 / var(--tw-bg-opacity));
}
.bg-purple-400\/0 {
  background-color: #c084fc00;
}
.bg-purple-400\/10 {
  background-color: #c084fc1a;
}
.bg-purple-400\/100 {
  background-color: #c084fc;
}
.bg-purple-400\/20 {
  background-color: #c084fc33;
}
.bg-purple-400\/25 {
  background-color: #c084fc40;
}
.bg-purple-400\/30 {
  background-color: #c084fc4d;
}
.bg-purple-400\/40 {
  background-color: #c084fc66;
}
.bg-purple-400\/5 {
  background-color: #c084fc0d;
}
.bg-purple-400\/50 {
  background-color: #c084fc80;
}
.bg-purple-400\/60 {
  background-color: #c084fc99;
}
.bg-purple-400\/70 {
  background-color: #c084fcb3;
}
.bg-purple-400\/75 {
  background-color: #c084fcbf;
}
.bg-purple-400\/80 {
  background-color: #c084fccc;
}
.bg-purple-400\/90 {
  background-color: #c084fce6;
}
.bg-purple-400\/95 {
  background-color: #c084fcf2;
}
.bg-purple-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity));
}
.bg-purple-50\/0 {
  background-color: #faf5ff00;
}
.bg-purple-50\/10 {
  background-color: #faf5ff1a;
}
.bg-purple-50\/100 {
  background-color: #faf5ff;
}
.bg-purple-50\/20 {
  background-color: #faf5ff33;
}
.bg-purple-50\/25 {
  background-color: #faf5ff40;
}
.bg-purple-50\/30 {
  background-color: #faf5ff4d;
}
.bg-purple-50\/40 {
  background-color: #faf5ff66;
}
.bg-purple-50\/5 {
  background-color: #faf5ff0d;
}
.bg-purple-50\/50 {
  background-color: #faf5ff80;
}
.bg-purple-50\/60 {
  background-color: #faf5ff99;
}
.bg-purple-50\/70 {
  background-color: #faf5ffb3;
}
.bg-purple-50\/75 {
  background-color: #faf5ffbf;
}
.bg-purple-50\/80 {
  background-color: #faf5ffcc;
}
.bg-purple-50\/90 {
  background-color: #faf5ffe6;
}
.bg-purple-50\/95 {
  background-color: #faf5fff2;
}
.bg-purple-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(168 85 247 / var(--tw-bg-opacity));
}
.bg-purple-500\/0 {
  background-color: #a855f700;
}
.bg-purple-500\/10 {
  background-color: #a855f71a;
}
.bg-purple-500\/100 {
  background-color: #a855f7;
}
.bg-purple-500\/20 {
  background-color: #a855f733;
}
.bg-purple-500\/25 {
  background-color: #a855f740;
}
.bg-purple-500\/30 {
  background-color: #a855f74d;
}
.bg-purple-500\/40 {
  background-color: #a855f766;
}
.bg-purple-500\/5 {
  background-color: #a855f70d;
}
.bg-purple-500\/50 {
  background-color: #a855f780;
}
.bg-purple-500\/60 {
  background-color: #a855f799;
}
.bg-purple-500\/70 {
  background-color: #a855f7b3;
}
.bg-purple-500\/75 {
  background-color: #a855f7bf;
}
.bg-purple-500\/80 {
  background-color: #a855f7cc;
}
.bg-purple-500\/90 {
  background-color: #a855f7e6;
}
.bg-purple-500\/95 {
  background-color: #a855f7f2;
}
.bg-purple-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(147 51 234 / var(--tw-bg-opacity));
}
.bg-purple-600\/0 {
  background-color: #9333ea00;
}
.bg-purple-600\/10 {
  background-color: #9333ea1a;
}
.bg-purple-600\/100 {
  background-color: #9333ea;
}
.bg-purple-600\/20 {
  background-color: #9333ea33;
}
.bg-purple-600\/25 {
  background-color: #9333ea40;
}
.bg-purple-600\/30 {
  background-color: #9333ea4d;
}
.bg-purple-600\/40 {
  background-color: #9333ea66;
}
.bg-purple-600\/5 {
  background-color: #9333ea0d;
}
.bg-purple-600\/50 {
  background-color: #9333ea80;
}
.bg-purple-600\/60 {
  background-color: #9333ea99;
}
.bg-purple-600\/70 {
  background-color: #9333eab3;
}
.bg-purple-600\/75 {
  background-color: #9333eabf;
}
.bg-purple-600\/80 {
  background-color: #9333eacc;
}
.bg-purple-600\/90 {
  background-color: #9333eae6;
}
.bg-purple-600\/95 {
  background-color: #9333eaf2;
}
.bg-purple-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(126 34 206 / var(--tw-bg-opacity));
}
.bg-purple-700\/0 {
  background-color: #7e22ce00;
}
.bg-purple-700\/10 {
  background-color: #7e22ce1a;
}
.bg-purple-700\/100 {
  background-color: #7e22ce;
}
.bg-purple-700\/20 {
  background-color: #7e22ce33;
}
.bg-purple-700\/25 {
  background-color: #7e22ce40;
}
.bg-purple-700\/30 {
  background-color: #7e22ce4d;
}
.bg-purple-700\/40 {
  background-color: #7e22ce66;
}
.bg-purple-700\/5 {
  background-color: #7e22ce0d;
}
.bg-purple-700\/50 {
  background-color: #7e22ce80;
}
.bg-purple-700\/60 {
  background-color: #7e22ce99;
}
.bg-purple-700\/70 {
  background-color: #7e22ceb3;
}
.bg-purple-700\/75 {
  background-color: #7e22cebf;
}
.bg-purple-700\/80 {
  background-color: #7e22cecc;
}
.bg-purple-700\/90 {
  background-color: #7e22cee6;
}
.bg-purple-700\/95 {
  background-color: #7e22cef2;
}
.bg-purple-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(107 33 168 / var(--tw-bg-opacity));
}
.bg-purple-800\/0 {
  background-color: #6b21a800;
}
.bg-purple-800\/10 {
  background-color: #6b21a81a;
}
.bg-purple-800\/100 {
  background-color: #6b21a8;
}
.bg-purple-800\/20 {
  background-color: #6b21a833;
}
.bg-purple-800\/25 {
  background-color: #6b21a840;
}
.bg-purple-800\/30 {
  background-color: #6b21a84d;
}
.bg-purple-800\/40 {
  background-color: #6b21a866;
}
.bg-purple-800\/5 {
  background-color: #6b21a80d;
}
.bg-purple-800\/50 {
  background-color: #6b21a880;
}
.bg-purple-800\/60 {
  background-color: #6b21a899;
}
.bg-purple-800\/70 {
  background-color: #6b21a8b3;
}
.bg-purple-800\/75 {
  background-color: #6b21a8bf;
}
.bg-purple-800\/80 {
  background-color: #6b21a8cc;
}
.bg-purple-800\/90 {
  background-color: #6b21a8e6;
}
.bg-purple-800\/95 {
  background-color: #6b21a8f2;
}
.bg-purple-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(88 28 135 / var(--tw-bg-opacity));
}
.bg-purple-900\/0 {
  background-color: #581c8700;
}
.bg-purple-900\/10 {
  background-color: #581c871a;
}
.bg-purple-900\/100 {
  background-color: #581c87;
}
.bg-purple-900\/20 {
  background-color: #581c8733;
}
.bg-purple-900\/25 {
  background-color: #581c8740;
}
.bg-purple-900\/30 {
  background-color: #581c874d;
}
.bg-purple-900\/40 {
  background-color: #581c8766;
}
.bg-purple-900\/5 {
  background-color: #581c870d;
}
.bg-purple-900\/50 {
  background-color: #581c8780;
}
.bg-purple-900\/60 {
  background-color: #581c8799;
}
.bg-purple-900\/70 {
  background-color: #581c87b3;
}
.bg-purple-900\/75 {
  background-color: #581c87bf;
}
.bg-purple-900\/80 {
  background-color: #581c87cc;
}
.bg-purple-900\/90 {
  background-color: #581c87e6;
}
.bg-purple-900\/95 {
  background-color: #581c87f2;
}
.bg-purple-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 7 100 / var(--tw-bg-opacity));
}
.bg-purple-950\/0 {
  background-color: #3b076400;
}
.bg-purple-950\/10 {
  background-color: #3b07641a;
}
.bg-purple-950\/100 {
  background-color: #3b0764;
}
.bg-purple-950\/20 {
  background-color: #3b076433;
}
.bg-purple-950\/25 {
  background-color: #3b076440;
}
.bg-purple-950\/30 {
  background-color: #3b07644d;
}
.bg-purple-950\/40 {
  background-color: #3b076466;
}
.bg-purple-950\/5 {
  background-color: #3b07640d;
}
.bg-purple-950\/50 {
  background-color: #3b076480;
}
.bg-purple-950\/60 {
  background-color: #3b076499;
}
.bg-purple-950\/70 {
  background-color: #3b0764b3;
}
.bg-purple-950\/75 {
  background-color: #3b0764bf;
}
.bg-purple-950\/80 {
  background-color: #3b0764cc;
}
.bg-purple-950\/90 {
  background-color: #3b0764e6;
}
.bg-purple-950\/95 {
  background-color: #3b0764f2;
}
.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity));
}
.bg-red-100\/0 {
  background-color: #fee2e200;
}
.bg-red-100\/10 {
  background-color: #fee2e21a;
}
.bg-red-100\/100 {
  background-color: #fee2e2;
}
.bg-red-100\/20 {
  background-color: #fee2e233;
}
.bg-red-100\/25 {
  background-color: #fee2e240;
}
.bg-red-100\/30 {
  background-color: #fee2e24d;
}
.bg-red-100\/40 {
  background-color: #fee2e266;
}
.bg-red-100\/5 {
  background-color: #fee2e20d;
}
.bg-red-100\/50 {
  background-color: #fee2e280;
}
.bg-red-100\/60 {
  background-color: #fee2e299;
}
.bg-red-100\/70 {
  background-color: #fee2e2b3;
}
.bg-red-100\/75 {
  background-color: #fee2e2bf;
}
.bg-red-100\/80 {
  background-color: #fee2e2cc;
}
.bg-red-100\/90 {
  background-color: #fee2e2e6;
}
.bg-red-100\/95 {
  background-color: #fee2e2f2;
}
.bg-red-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 202 202 / var(--tw-bg-opacity));
}
.bg-red-200\/0 {
  background-color: #fecaca00;
}
.bg-red-200\/10 {
  background-color: #fecaca1a;
}
.bg-red-200\/100 {
  background-color: #fecaca;
}
.bg-red-200\/20 {
  background-color: #fecaca33;
}
.bg-red-200\/25 {
  background-color: #fecaca40;
}
.bg-red-200\/30 {
  background-color: #fecaca4d;
}
.bg-red-200\/40 {
  background-color: #fecaca66;
}
.bg-red-200\/5 {
  background-color: #fecaca0d;
}
.bg-red-200\/50 {
  background-color: #fecaca80;
}
.bg-red-200\/60 {
  background-color: #fecaca99;
}
.bg-red-200\/70 {
  background-color: #fecacab3;
}
.bg-red-200\/75 {
  background-color: #fecacabf;
}
.bg-red-200\/80 {
  background-color: #fecacacc;
}
.bg-red-200\/90 {
  background-color: #fecacae6;
}
.bg-red-200\/95 {
  background-color: #fecacaf2;
}
.bg-red-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(252 165 165 / var(--tw-bg-opacity));
}
.bg-red-300\/0 {
  background-color: #fca5a500;
}
.bg-red-300\/10 {
  background-color: #fca5a51a;
}
.bg-red-300\/100 {
  background-color: #fca5a5;
}
.bg-red-300\/20 {
  background-color: #fca5a533;
}
.bg-red-300\/25 {
  background-color: #fca5a540;
}
.bg-red-300\/30 {
  background-color: #fca5a54d;
}
.bg-red-300\/40 {
  background-color: #fca5a566;
}
.bg-red-300\/5 {
  background-color: #fca5a50d;
}
.bg-red-300\/50 {
  background-color: #fca5a580;
}
.bg-red-300\/60 {
  background-color: #fca5a599;
}
.bg-red-300\/70 {
  background-color: #fca5a5b3;
}
.bg-red-300\/75 {
  background-color: #fca5a5bf;
}
.bg-red-300\/80 {
  background-color: #fca5a5cc;
}
.bg-red-300\/90 {
  background-color: #fca5a5e6;
}
.bg-red-300\/95 {
  background-color: #fca5a5f2;
}
.bg-red-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 113 113 / var(--tw-bg-opacity));
}
.bg-red-400\/0 {
  background-color: #f8717100;
}
.bg-red-400\/10 {
  background-color: #f871711a;
}
.bg-red-400\/100 {
  background-color: #f87171;
}
.bg-red-400\/20 {
  background-color: #f8717133;
}
.bg-red-400\/25 {
  background-color: #f8717140;
}
.bg-red-400\/30 {
  background-color: #f871714d;
}
.bg-red-400\/40 {
  background-color: #f8717166;
}
.bg-red-400\/5 {
  background-color: #f871710d;
}
.bg-red-400\/50 {
  background-color: #f8717180;
}
.bg-red-400\/60 {
  background-color: #f8717199;
}
.bg-red-400\/70 {
  background-color: #f87171b3;
}
.bg-red-400\/75 {
  background-color: #f87171bf;
}
.bg-red-400\/80 {
  background-color: #f87171cc;
}
.bg-red-400\/90 {
  background-color: #f87171e6;
}
.bg-red-400\/95 {
  background-color: #f87171f2;
}
.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity));
}
.bg-red-50\/0 {
  background-color: #fef2f200;
}
.bg-red-50\/10 {
  background-color: #fef2f21a;
}
.bg-red-50\/100 {
  background-color: #fef2f2;
}
.bg-red-50\/20 {
  background-color: #fef2f233;
}
.bg-red-50\/25 {
  background-color: #fef2f240;
}
.bg-red-50\/30 {
  background-color: #fef2f24d;
}
.bg-red-50\/40 {
  background-color: #fef2f266;
}
.bg-red-50\/5 {
  background-color: #fef2f20d;
}
.bg-red-50\/50 {
  background-color: #fef2f280;
}
.bg-red-50\/60 {
  background-color: #fef2f299;
}
.bg-red-50\/70 {
  background-color: #fef2f2b3;
}
.bg-red-50\/75 {
  background-color: #fef2f2bf;
}
.bg-red-50\/80 {
  background-color: #fef2f2cc;
}
.bg-red-50\/90 {
  background-color: #fef2f2e6;
}
.bg-red-50\/95 {
  background-color: #fef2f2f2;
}
.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
}
.bg-red-500\/0 {
  background-color: #ef444400;
}
.bg-red-500\/10 {
  background-color: #ef44441a;
}
.bg-red-500\/100 {
  background-color: #ef4444;
}
.bg-red-500\/20 {
  background-color: #ef444433;
}
.bg-red-500\/25 {
  background-color: #ef444440;
}
.bg-red-500\/30 {
  background-color: #ef44444d;
}
.bg-red-500\/40 {
  background-color: #ef444466;
}
.bg-red-500\/5 {
  background-color: #ef44440d;
}
.bg-red-500\/50 {
  background-color: #ef444480;
}
.bg-red-500\/60 {
  background-color: #ef444499;
}
.bg-red-500\/70 {
  background-color: #ef4444b3;
}
.bg-red-500\/75 {
  background-color: #ef4444bf;
}
.bg-red-500\/80 {
  background-color: #ef4444cc;
}
.bg-red-500\/90 {
  background-color: #ef4444e6;
}
.bg-red-500\/95 {
  background-color: #ef4444f2;
}
.bg-red-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity));
}
.bg-red-600\/0 {
  background-color: #dc262600;
}
.bg-red-600\/10 {
  background-color: #dc26261a;
}
.bg-red-600\/100 {
  background-color: #dc2626;
}
.bg-red-600\/20 {
  background-color: #dc262633;
}
.bg-red-600\/25 {
  background-color: #dc262640;
}
.bg-red-600\/30 {
  background-color: #dc26264d;
}
.bg-red-600\/40 {
  background-color: #dc262666;
}
.bg-red-600\/5 {
  background-color: #dc26260d;
}
.bg-red-600\/50 {
  background-color: #dc262680;
}
.bg-red-600\/60 {
  background-color: #dc262699;
}
.bg-red-600\/70 {
  background-color: #dc2626b3;
}
.bg-red-600\/75 {
  background-color: #dc2626bf;
}
.bg-red-600\/80 {
  background-color: #dc2626cc;
}
.bg-red-600\/90 {
  background-color: #dc2626e6;
}
.bg-red-600\/95 {
  background-color: #dc2626f2;
}
.bg-red-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity));
}
.bg-red-700\/0 {
  background-color: #b91c1c00;
}
.bg-red-700\/10 {
  background-color: #b91c1c1a;
}
.bg-red-700\/100 {
  background-color: #b91c1c;
}
.bg-red-700\/20 {
  background-color: #b91c1c33;
}
.bg-red-700\/25 {
  background-color: #b91c1c40;
}
.bg-red-700\/30 {
  background-color: #b91c1c4d;
}
.bg-red-700\/40 {
  background-color: #b91c1c66;
}
.bg-red-700\/5 {
  background-color: #b91c1c0d;
}
.bg-red-700\/50 {
  background-color: #b91c1c80;
}
.bg-red-700\/60 {
  background-color: #b91c1c99;
}
.bg-red-700\/70 {
  background-color: #b91c1cb3;
}
.bg-red-700\/75 {
  background-color: #b91c1cbf;
}
.bg-red-700\/80 {
  background-color: #b91c1ccc;
}
.bg-red-700\/90 {
  background-color: #b91c1ce6;
}
.bg-red-700\/95 {
  background-color: #b91c1cf2;
}
.bg-red-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(153 27 27 / var(--tw-bg-opacity));
}
.bg-red-800\/0 {
  background-color: #991b1b00;
}
.bg-red-800\/10 {
  background-color: #991b1b1a;
}
.bg-red-800\/100 {
  background-color: #991b1b;
}
.bg-red-800\/20 {
  background-color: #991b1b33;
}
.bg-red-800\/25 {
  background-color: #991b1b40;
}
.bg-red-800\/30 {
  background-color: #991b1b4d;
}
.bg-red-800\/40 {
  background-color: #991b1b66;
}
.bg-red-800\/5 {
  background-color: #991b1b0d;
}
.bg-red-800\/50 {
  background-color: #991b1b80;
}
.bg-red-800\/60 {
  background-color: #991b1b99;
}
.bg-red-800\/70 {
  background-color: #991b1bb3;
}
.bg-red-800\/75 {
  background-color: #991b1bbf;
}
.bg-red-800\/80 {
  background-color: #991b1bcc;
}
.bg-red-800\/90 {
  background-color: #991b1be6;
}
.bg-red-800\/95 {
  background-color: #991b1bf2;
}
.bg-red-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(127 29 29 / var(--tw-bg-opacity));
}
.bg-red-900\/0 {
  background-color: #7f1d1d00;
}
.bg-red-900\/10 {
  background-color: #7f1d1d1a;
}
.bg-red-900\/100 {
  background-color: #7f1d1d;
}
.bg-red-900\/20 {
  background-color: #7f1d1d33;
}
.bg-red-900\/25 {
  background-color: #7f1d1d40;
}
.bg-red-900\/30 {
  background-color: #7f1d1d4d;
}
.bg-red-900\/40 {
  background-color: #7f1d1d66;
}
.bg-red-900\/5 {
  background-color: #7f1d1d0d;
}
.bg-red-900\/50 {
  background-color: #7f1d1d80;
}
.bg-red-900\/60 {
  background-color: #7f1d1d99;
}
.bg-red-900\/70 {
  background-color: #7f1d1db3;
}
.bg-red-900\/75 {
  background-color: #7f1d1dbf;
}
.bg-red-900\/80 {
  background-color: #7f1d1dcc;
}
.bg-red-900\/90 {
  background-color: #7f1d1de6;
}
.bg-red-900\/95 {
  background-color: #7f1d1df2;
}
.bg-red-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(69 10 10 / var(--tw-bg-opacity));
}
.bg-red-950\/0 {
  background-color: #450a0a00;
}
.bg-red-950\/10 {
  background-color: #450a0a1a;
}
.bg-red-950\/100 {
  background-color: #450a0a;
}
.bg-red-950\/20 {
  background-color: #450a0a33;
}
.bg-red-950\/25 {
  background-color: #450a0a40;
}
.bg-red-950\/30 {
  background-color: #450a0a4d;
}
.bg-red-950\/40 {
  background-color: #450a0a66;
}
.bg-red-950\/5 {
  background-color: #450a0a0d;
}
.bg-red-950\/50 {
  background-color: #450a0a80;
}
.bg-red-950\/60 {
  background-color: #450a0a99;
}
.bg-red-950\/70 {
  background-color: #450a0ab3;
}
.bg-red-950\/75 {
  background-color: #450a0abf;
}
.bg-red-950\/80 {
  background-color: #450a0acc;
}
.bg-red-950\/90 {
  background-color: #450a0ae6;
}
.bg-red-950\/95 {
  background-color: #450a0af2;
}
.bg-rose-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity));
}
.bg-rose-100\/0 {
  background-color: #ffe4e600;
}
.bg-rose-100\/10 {
  background-color: #ffe4e61a;
}
.bg-rose-100\/100 {
  background-color: #ffe4e6;
}
.bg-rose-100\/20 {
  background-color: #ffe4e633;
}
.bg-rose-100\/25 {
  background-color: #ffe4e640;
}
.bg-rose-100\/30 {
  background-color: #ffe4e64d;
}
.bg-rose-100\/40 {
  background-color: #ffe4e666;
}
.bg-rose-100\/5 {
  background-color: #ffe4e60d;
}
.bg-rose-100\/50 {
  background-color: #ffe4e680;
}
.bg-rose-100\/60 {
  background-color: #ffe4e699;
}
.bg-rose-100\/70 {
  background-color: #ffe4e6b3;
}
.bg-rose-100\/75 {
  background-color: #ffe4e6bf;
}
.bg-rose-100\/80 {
  background-color: #ffe4e6cc;
}
.bg-rose-100\/90 {
  background-color: #ffe4e6e6;
}
.bg-rose-100\/95 {
  background-color: #ffe4e6f2;
}
.bg-rose-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 205 211 / var(--tw-bg-opacity));
}
.bg-rose-200\/0 {
  background-color: #fecdd300;
}
.bg-rose-200\/10 {
  background-color: #fecdd31a;
}
.bg-rose-200\/100 {
  background-color: #fecdd3;
}
.bg-rose-200\/20 {
  background-color: #fecdd333;
}
.bg-rose-200\/25 {
  background-color: #fecdd340;
}
.bg-rose-200\/30 {
  background-color: #fecdd34d;
}
.bg-rose-200\/40 {
  background-color: #fecdd366;
}
.bg-rose-200\/5 {
  background-color: #fecdd30d;
}
.bg-rose-200\/50 {
  background-color: #fecdd380;
}
.bg-rose-200\/60 {
  background-color: #fecdd399;
}
.bg-rose-200\/70 {
  background-color: #fecdd3b3;
}
.bg-rose-200\/75 {
  background-color: #fecdd3bf;
}
.bg-rose-200\/80 {
  background-color: #fecdd3cc;
}
.bg-rose-200\/90 {
  background-color: #fecdd3e6;
}
.bg-rose-200\/95 {
  background-color: #fecdd3f2;
}
.bg-rose-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 164 175 / var(--tw-bg-opacity));
}
.bg-rose-300\/0 {
  background-color: #fda4af00;
}
.bg-rose-300\/10 {
  background-color: #fda4af1a;
}
.bg-rose-300\/100 {
  background-color: #fda4af;
}
.bg-rose-300\/20 {
  background-color: #fda4af33;
}
.bg-rose-300\/25 {
  background-color: #fda4af40;
}
.bg-rose-300\/30 {
  background-color: #fda4af4d;
}
.bg-rose-300\/40 {
  background-color: #fda4af66;
}
.bg-rose-300\/5 {
  background-color: #fda4af0d;
}
.bg-rose-300\/50 {
  background-color: #fda4af80;
}
.bg-rose-300\/60 {
  background-color: #fda4af99;
}
.bg-rose-300\/70 {
  background-color: #fda4afb3;
}
.bg-rose-300\/75 {
  background-color: #fda4afbf;
}
.bg-rose-300\/80 {
  background-color: #fda4afcc;
}
.bg-rose-300\/90 {
  background-color: #fda4afe6;
}
.bg-rose-300\/95 {
  background-color: #fda4aff2;
}
.bg-rose-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 113 133 / var(--tw-bg-opacity));
}
.bg-rose-400\/0 {
  background-color: #fb718500;
}
.bg-rose-400\/10 {
  background-color: #fb71851a;
}
.bg-rose-400\/100 {
  background-color: #fb7185;
}
.bg-rose-400\/20 {
  background-color: #fb718533;
}
.bg-rose-400\/25 {
  background-color: #fb718540;
}
.bg-rose-400\/30 {
  background-color: #fb71854d;
}
.bg-rose-400\/40 {
  background-color: #fb718566;
}
.bg-rose-400\/5 {
  background-color: #fb71850d;
}
.bg-rose-400\/50 {
  background-color: #fb718580;
}
.bg-rose-400\/60 {
  background-color: #fb718599;
}
.bg-rose-400\/70 {
  background-color: #fb7185b3;
}
.bg-rose-400\/75 {
  background-color: #fb7185bf;
}
.bg-rose-400\/80 {
  background-color: #fb7185cc;
}
.bg-rose-400\/90 {
  background-color: #fb7185e6;
}
.bg-rose-400\/95 {
  background-color: #fb7185f2;
}
.bg-rose-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity));
}
.bg-rose-50\/0 {
  background-color: #fff1f200;
}
.bg-rose-50\/10 {
  background-color: #fff1f21a;
}
.bg-rose-50\/100 {
  background-color: #fff1f2;
}
.bg-rose-50\/20 {
  background-color: #fff1f233;
}
.bg-rose-50\/25 {
  background-color: #fff1f240;
}
.bg-rose-50\/30 {
  background-color: #fff1f24d;
}
.bg-rose-50\/40 {
  background-color: #fff1f266;
}
.bg-rose-50\/5 {
  background-color: #fff1f20d;
}
.bg-rose-50\/50 {
  background-color: #fff1f280;
}
.bg-rose-50\/60 {
  background-color: #fff1f299;
}
.bg-rose-50\/70 {
  background-color: #fff1f2b3;
}
.bg-rose-50\/75 {
  background-color: #fff1f2bf;
}
.bg-rose-50\/80 {
  background-color: #fff1f2cc;
}
.bg-rose-50\/90 {
  background-color: #fff1f2e6;
}
.bg-rose-50\/95 {
  background-color: #fff1f2f2;
}
.bg-rose-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity));
}
.bg-rose-500\/0 {
  background-color: #f43f5e00;
}
.bg-rose-500\/10 {
  background-color: #f43f5e1a;
}
.bg-rose-500\/100 {
  background-color: #f43f5e;
}
.bg-rose-500\/20 {
  background-color: #f43f5e33;
}
.bg-rose-500\/25 {
  background-color: #f43f5e40;
}
.bg-rose-500\/30 {
  background-color: #f43f5e4d;
}
.bg-rose-500\/40 {
  background-color: #f43f5e66;
}
.bg-rose-500\/5 {
  background-color: #f43f5e0d;
}
.bg-rose-500\/50 {
  background-color: #f43f5e80;
}
.bg-rose-500\/60 {
  background-color: #f43f5e99;
}
.bg-rose-500\/70 {
  background-color: #f43f5eb3;
}
.bg-rose-500\/75 {
  background-color: #f43f5ebf;
}
.bg-rose-500\/80 {
  background-color: #f43f5ecc;
}
.bg-rose-500\/90 {
  background-color: #f43f5ee6;
}
.bg-rose-500\/95 {
  background-color: #f43f5ef2;
}
.bg-rose-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity));
}
.bg-rose-600\/0 {
  background-color: #e11d4800;
}
.bg-rose-600\/10 {
  background-color: #e11d481a;
}
.bg-rose-600\/100 {
  background-color: #e11d48;
}
.bg-rose-600\/20 {
  background-color: #e11d4833;
}
.bg-rose-600\/25 {
  background-color: #e11d4840;
}
.bg-rose-600\/30 {
  background-color: #e11d484d;
}
.bg-rose-600\/40 {
  background-color: #e11d4866;
}
.bg-rose-600\/5 {
  background-color: #e11d480d;
}
.bg-rose-600\/50 {
  background-color: #e11d4880;
}
.bg-rose-600\/60 {
  background-color: #e11d4899;
}
.bg-rose-600\/70 {
  background-color: #e11d48b3;
}
.bg-rose-600\/75 {
  background-color: #e11d48bf;
}
.bg-rose-600\/80 {
  background-color: #e11d48cc;
}
.bg-rose-600\/90 {
  background-color: #e11d48e6;
}
.bg-rose-600\/95 {
  background-color: #e11d48f2;
}
.bg-rose-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(190 18 60 / var(--tw-bg-opacity));
}
.bg-rose-700\/0 {
  background-color: #be123c00;
}
.bg-rose-700\/10 {
  background-color: #be123c1a;
}
.bg-rose-700\/100 {
  background-color: #be123c;
}
.bg-rose-700\/20 {
  background-color: #be123c33;
}
.bg-rose-700\/25 {
  background-color: #be123c40;
}
.bg-rose-700\/30 {
  background-color: #be123c4d;
}
.bg-rose-700\/40 {
  background-color: #be123c66;
}
.bg-rose-700\/5 {
  background-color: #be123c0d;
}
.bg-rose-700\/50 {
  background-color: #be123c80;
}
.bg-rose-700\/60 {
  background-color: #be123c99;
}
.bg-rose-700\/70 {
  background-color: #be123cb3;
}
.bg-rose-700\/75 {
  background-color: #be123cbf;
}
.bg-rose-700\/80 {
  background-color: #be123ccc;
}
.bg-rose-700\/90 {
  background-color: #be123ce6;
}
.bg-rose-700\/95 {
  background-color: #be123cf2;
}
.bg-rose-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(159 18 57 / var(--tw-bg-opacity));
}
.bg-rose-800\/0 {
  background-color: #9f123900;
}
.bg-rose-800\/10 {
  background-color: #9f12391a;
}
.bg-rose-800\/100 {
  background-color: #9f1239;
}
.bg-rose-800\/20 {
  background-color: #9f123933;
}
.bg-rose-800\/25 {
  background-color: #9f123940;
}
.bg-rose-800\/30 {
  background-color: #9f12394d;
}
.bg-rose-800\/40 {
  background-color: #9f123966;
}
.bg-rose-800\/5 {
  background-color: #9f12390d;
}
.bg-rose-800\/50 {
  background-color: #9f123980;
}
.bg-rose-800\/60 {
  background-color: #9f123999;
}
.bg-rose-800\/70 {
  background-color: #9f1239b3;
}
.bg-rose-800\/75 {
  background-color: #9f1239bf;
}
.bg-rose-800\/80 {
  background-color: #9f1239cc;
}
.bg-rose-800\/90 {
  background-color: #9f1239e6;
}
.bg-rose-800\/95 {
  background-color: #9f1239f2;
}
.bg-rose-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(136 19 55 / var(--tw-bg-opacity));
}
.bg-rose-900\/0 {
  background-color: #88133700;
}
.bg-rose-900\/10 {
  background-color: #8813371a;
}
.bg-rose-900\/100 {
  background-color: #881337;
}
.bg-rose-900\/20 {
  background-color: #88133733;
}
.bg-rose-900\/25 {
  background-color: #88133740;
}
.bg-rose-900\/30 {
  background-color: #8813374d;
}
.bg-rose-900\/40 {
  background-color: #88133766;
}
.bg-rose-900\/5 {
  background-color: #8813370d;
}
.bg-rose-900\/50 {
  background-color: #88133780;
}
.bg-rose-900\/60 {
  background-color: #88133799;
}
.bg-rose-900\/70 {
  background-color: #881337b3;
}
.bg-rose-900\/75 {
  background-color: #881337bf;
}
.bg-rose-900\/80 {
  background-color: #881337cc;
}
.bg-rose-900\/90 {
  background-color: #881337e6;
}
.bg-rose-900\/95 {
  background-color: #881337f2;
}
.bg-rose-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(76 5 25 / var(--tw-bg-opacity));
}
.bg-rose-950\/0 {
  background-color: #4c051900;
}
.bg-rose-950\/10 {
  background-color: #4c05191a;
}
.bg-rose-950\/100 {
  background-color: #4c0519;
}
.bg-rose-950\/20 {
  background-color: #4c051933;
}
.bg-rose-950\/25 {
  background-color: #4c051940;
}
.bg-rose-950\/30 {
  background-color: #4c05194d;
}
.bg-rose-950\/40 {
  background-color: #4c051966;
}
.bg-rose-950\/5 {
  background-color: #4c05190d;
}
.bg-rose-950\/50 {
  background-color: #4c051980;
}
.bg-rose-950\/60 {
  background-color: #4c051999;
}
.bg-rose-950\/70 {
  background-color: #4c0519b3;
}
.bg-rose-950\/75 {
  background-color: #4c0519bf;
}
.bg-rose-950\/80 {
  background-color: #4c0519cc;
}
.bg-rose-950\/90 {
  background-color: #4c0519e6;
}
.bg-rose-950\/95 {
  background-color: #4c0519f2;
}
.bg-sky-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(224 242 254 / var(--tw-bg-opacity));
}
.bg-sky-100\/0 {
  background-color: #e0f2fe00;
}
.bg-sky-100\/10 {
  background-color: #e0f2fe1a;
}
.bg-sky-100\/100 {
  background-color: #e0f2fe;
}
.bg-sky-100\/20 {
  background-color: #e0f2fe33;
}
.bg-sky-100\/25 {
  background-color: #e0f2fe40;
}
.bg-sky-100\/30 {
  background-color: #e0f2fe4d;
}
.bg-sky-100\/40 {
  background-color: #e0f2fe66;
}
.bg-sky-100\/5 {
  background-color: #e0f2fe0d;
}
.bg-sky-100\/50 {
  background-color: #e0f2fe80;
}
.bg-sky-100\/60 {
  background-color: #e0f2fe99;
}
.bg-sky-100\/70 {
  background-color: #e0f2feb3;
}
.bg-sky-100\/75 {
  background-color: #e0f2febf;
}
.bg-sky-100\/80 {
  background-color: #e0f2fecc;
}
.bg-sky-100\/90 {
  background-color: #e0f2fee6;
}
.bg-sky-100\/95 {
  background-color: #e0f2fef2;
}
.bg-sky-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(186 230 253 / var(--tw-bg-opacity));
}
.bg-sky-200\/0 {
  background-color: #bae6fd00;
}
.bg-sky-200\/10 {
  background-color: #bae6fd1a;
}
.bg-sky-200\/100 {
  background-color: #bae6fd;
}
.bg-sky-200\/20 {
  background-color: #bae6fd33;
}
.bg-sky-200\/25 {
  background-color: #bae6fd40;
}
.bg-sky-200\/30 {
  background-color: #bae6fd4d;
}
.bg-sky-200\/40 {
  background-color: #bae6fd66;
}
.bg-sky-200\/5 {
  background-color: #bae6fd0d;
}
.bg-sky-200\/50 {
  background-color: #bae6fd80;
}
.bg-sky-200\/60 {
  background-color: #bae6fd99;
}
.bg-sky-200\/70 {
  background-color: #bae6fdb3;
}
.bg-sky-200\/75 {
  background-color: #bae6fdbf;
}
.bg-sky-200\/80 {
  background-color: #bae6fdcc;
}
.bg-sky-200\/90 {
  background-color: #bae6fde6;
}
.bg-sky-200\/95 {
  background-color: #bae6fdf2;
}
.bg-sky-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(125 211 252 / var(--tw-bg-opacity));
}
.bg-sky-300\/0 {
  background-color: #7dd3fc00;
}
.bg-sky-300\/10 {
  background-color: #7dd3fc1a;
}
.bg-sky-300\/100 {
  background-color: #7dd3fc;
}
.bg-sky-300\/20 {
  background-color: #7dd3fc33;
}
.bg-sky-300\/25 {
  background-color: #7dd3fc40;
}
.bg-sky-300\/30 {
  background-color: #7dd3fc4d;
}
.bg-sky-300\/40 {
  background-color: #7dd3fc66;
}
.bg-sky-300\/5 {
  background-color: #7dd3fc0d;
}
.bg-sky-300\/50 {
  background-color: #7dd3fc80;
}
.bg-sky-300\/60 {
  background-color: #7dd3fc99;
}
.bg-sky-300\/70 {
  background-color: #7dd3fcb3;
}
.bg-sky-300\/75 {
  background-color: #7dd3fcbf;
}
.bg-sky-300\/80 {
  background-color: #7dd3fccc;
}
.bg-sky-300\/90 {
  background-color: #7dd3fce6;
}
.bg-sky-300\/95 {
  background-color: #7dd3fcf2;
}
.bg-sky-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(56 189 248 / var(--tw-bg-opacity));
}
.bg-sky-400\/0 {
  background-color: #38bdf800;
}
.bg-sky-400\/10 {
  background-color: #38bdf81a;
}
.bg-sky-400\/100 {
  background-color: #38bdf8;
}
.bg-sky-400\/20 {
  background-color: #38bdf833;
}
.bg-sky-400\/25 {
  background-color: #38bdf840;
}
.bg-sky-400\/30 {
  background-color: #38bdf84d;
}
.bg-sky-400\/40 {
  background-color: #38bdf866;
}
.bg-sky-400\/5 {
  background-color: #38bdf80d;
}
.bg-sky-400\/50 {
  background-color: #38bdf880;
}
.bg-sky-400\/60 {
  background-color: #38bdf899;
}
.bg-sky-400\/70 {
  background-color: #38bdf8b3;
}
.bg-sky-400\/75 {
  background-color: #38bdf8bf;
}
.bg-sky-400\/80 {
  background-color: #38bdf8cc;
}
.bg-sky-400\/90 {
  background-color: #38bdf8e6;
}
.bg-sky-400\/95 {
  background-color: #38bdf8f2;
}
.bg-sky-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 249 255 / var(--tw-bg-opacity));
}
.bg-sky-50\/0 {
  background-color: #f0f9ff00;
}
.bg-sky-50\/10 {
  background-color: #f0f9ff1a;
}
.bg-sky-50\/100 {
  background-color: #f0f9ff;
}
.bg-sky-50\/20 {
  background-color: #f0f9ff33;
}
.bg-sky-50\/25 {
  background-color: #f0f9ff40;
}
.bg-sky-50\/30 {
  background-color: #f0f9ff4d;
}
.bg-sky-50\/40 {
  background-color: #f0f9ff66;
}
.bg-sky-50\/5 {
  background-color: #f0f9ff0d;
}
.bg-sky-50\/50 {
  background-color: #f0f9ff80;
}
.bg-sky-50\/60 {
  background-color: #f0f9ff99;
}
.bg-sky-50\/70 {
  background-color: #f0f9ffb3;
}
.bg-sky-50\/75 {
  background-color: #f0f9ffbf;
}
.bg-sky-50\/80 {
  background-color: #f0f9ffcc;
}
.bg-sky-50\/90 {
  background-color: #f0f9ffe6;
}
.bg-sky-50\/95 {
  background-color: #f0f9fff2;
}
.bg-sky-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 165 233 / var(--tw-bg-opacity));
}
.bg-sky-500\/0 {
  background-color: #0ea5e900;
}
.bg-sky-500\/10 {
  background-color: #0ea5e91a;
}
.bg-sky-500\/100 {
  background-color: #0ea5e9;
}
.bg-sky-500\/20 {
  background-color: #0ea5e933;
}
.bg-sky-500\/25 {
  background-color: #0ea5e940;
}
.bg-sky-500\/30 {
  background-color: #0ea5e94d;
}
.bg-sky-500\/40 {
  background-color: #0ea5e966;
}
.bg-sky-500\/5 {
  background-color: #0ea5e90d;
}
.bg-sky-500\/50 {
  background-color: #0ea5e980;
}
.bg-sky-500\/60 {
  background-color: #0ea5e999;
}
.bg-sky-500\/70 {
  background-color: #0ea5e9b3;
}
.bg-sky-500\/75 {
  background-color: #0ea5e9bf;
}
.bg-sky-500\/80 {
  background-color: #0ea5e9cc;
}
.bg-sky-500\/90 {
  background-color: #0ea5e9e6;
}
.bg-sky-500\/95 {
  background-color: #0ea5e9f2;
}
.bg-sky-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(2 132 199 / var(--tw-bg-opacity));
}
.bg-sky-600\/0 {
  background-color: #0284c700;
}
.bg-sky-600\/10 {
  background-color: #0284c71a;
}
.bg-sky-600\/100 {
  background-color: #0284c7;
}
.bg-sky-600\/20 {
  background-color: #0284c733;
}
.bg-sky-600\/25 {
  background-color: #0284c740;
}
.bg-sky-600\/30 {
  background-color: #0284c74d;
}
.bg-sky-600\/40 {
  background-color: #0284c766;
}
.bg-sky-600\/5 {
  background-color: #0284c70d;
}
.bg-sky-600\/50 {
  background-color: #0284c780;
}
.bg-sky-600\/60 {
  background-color: #0284c799;
}
.bg-sky-600\/70 {
  background-color: #0284c7b3;
}
.bg-sky-600\/75 {
  background-color: #0284c7bf;
}
.bg-sky-600\/80 {
  background-color: #0284c7cc;
}
.bg-sky-600\/90 {
  background-color: #0284c7e6;
}
.bg-sky-600\/95 {
  background-color: #0284c7f2;
}
.bg-sky-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(3 105 161 / var(--tw-bg-opacity));
}
.bg-sky-700\/0 {
  background-color: #0369a100;
}
.bg-sky-700\/10 {
  background-color: #0369a11a;
}
.bg-sky-700\/100 {
  background-color: #0369a1;
}
.bg-sky-700\/20 {
  background-color: #0369a133;
}
.bg-sky-700\/25 {
  background-color: #0369a140;
}
.bg-sky-700\/30 {
  background-color: #0369a14d;
}
.bg-sky-700\/40 {
  background-color: #0369a166;
}
.bg-sky-700\/5 {
  background-color: #0369a10d;
}
.bg-sky-700\/50 {
  background-color: #0369a180;
}
.bg-sky-700\/60 {
  background-color: #0369a199;
}
.bg-sky-700\/70 {
  background-color: #0369a1b3;
}
.bg-sky-700\/75 {
  background-color: #0369a1bf;
}
.bg-sky-700\/80 {
  background-color: #0369a1cc;
}
.bg-sky-700\/90 {
  background-color: #0369a1e6;
}
.bg-sky-700\/95 {
  background-color: #0369a1f2;
}
.bg-sky-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(7 89 133 / var(--tw-bg-opacity));
}
.bg-sky-800\/0 {
  background-color: #07598500;
}
.bg-sky-800\/10 {
  background-color: #0759851a;
}
.bg-sky-800\/100 {
  background-color: #075985;
}
.bg-sky-800\/20 {
  background-color: #07598533;
}
.bg-sky-800\/25 {
  background-color: #07598540;
}
.bg-sky-800\/30 {
  background-color: #0759854d;
}
.bg-sky-800\/40 {
  background-color: #07598566;
}
.bg-sky-800\/5 {
  background-color: #0759850d;
}
.bg-sky-800\/50 {
  background-color: #07598580;
}
.bg-sky-800\/60 {
  background-color: #07598599;
}
.bg-sky-800\/70 {
  background-color: #075985b3;
}
.bg-sky-800\/75 {
  background-color: #075985bf;
}
.bg-sky-800\/80 {
  background-color: #075985cc;
}
.bg-sky-800\/90 {
  background-color: #075985e6;
}
.bg-sky-800\/95 {
  background-color: #075985f2;
}
.bg-sky-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(12 74 110 / var(--tw-bg-opacity));
}
.bg-sky-900\/0 {
  background-color: #0c4a6e00;
}
.bg-sky-900\/10 {
  background-color: #0c4a6e1a;
}
.bg-sky-900\/100 {
  background-color: #0c4a6e;
}
.bg-sky-900\/20 {
  background-color: #0c4a6e33;
}
.bg-sky-900\/25 {
  background-color: #0c4a6e40;
}
.bg-sky-900\/30 {
  background-color: #0c4a6e4d;
}
.bg-sky-900\/40 {
  background-color: #0c4a6e66;
}
.bg-sky-900\/5 {
  background-color: #0c4a6e0d;
}
.bg-sky-900\/50 {
  background-color: #0c4a6e80;
}
.bg-sky-900\/60 {
  background-color: #0c4a6e99;
}
.bg-sky-900\/70 {
  background-color: #0c4a6eb3;
}
.bg-sky-900\/75 {
  background-color: #0c4a6ebf;
}
.bg-sky-900\/80 {
  background-color: #0c4a6ecc;
}
.bg-sky-900\/90 {
  background-color: #0c4a6ee6;
}
.bg-sky-900\/95 {
  background-color: #0c4a6ef2;
}
.bg-sky-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(8 47 73 / var(--tw-bg-opacity));
}
.bg-sky-950\/0 {
  background-color: #082f4900;
}
.bg-sky-950\/10 {
  background-color: #082f491a;
}
.bg-sky-950\/100 {
  background-color: #082f49;
}
.bg-sky-950\/20 {
  background-color: #082f4933;
}
.bg-sky-950\/25 {
  background-color: #082f4940;
}
.bg-sky-950\/30 {
  background-color: #082f494d;
}
.bg-sky-950\/40 {
  background-color: #082f4966;
}
.bg-sky-950\/5 {
  background-color: #082f490d;
}
.bg-sky-950\/50 {
  background-color: #082f4980;
}
.bg-sky-950\/60 {
  background-color: #082f4999;
}
.bg-sky-950\/70 {
  background-color: #082f49b3;
}
.bg-sky-950\/75 {
  background-color: #082f49bf;
}
.bg-sky-950\/80 {
  background-color: #082f49cc;
}
.bg-sky-950\/90 {
  background-color: #082f49e6;
}
.bg-sky-950\/95 {
  background-color: #082f49f2;
}
.bg-slate-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity));
}
.bg-slate-100\/0 {
  background-color: #f1f5f900;
}
.bg-slate-100\/10 {
  background-color: #f1f5f91a;
}
.bg-slate-100\/100 {
  background-color: #f1f5f9;
}
.bg-slate-100\/20 {
  background-color: #f1f5f933;
}
.bg-slate-100\/25 {
  background-color: #f1f5f940;
}
.bg-slate-100\/30 {
  background-color: #f1f5f94d;
}
.bg-slate-100\/40 {
  background-color: #f1f5f966;
}
.bg-slate-100\/5 {
  background-color: #f1f5f90d;
}
.bg-slate-100\/50 {
  background-color: #f1f5f980;
}
.bg-slate-100\/60 {
  background-color: #f1f5f999;
}
.bg-slate-100\/70 {
  background-color: #f1f5f9b3;
}
.bg-slate-100\/75 {
  background-color: #f1f5f9bf;
}
.bg-slate-100\/80 {
  background-color: #f1f5f9cc;
}
.bg-slate-100\/90 {
  background-color: #f1f5f9e6;
}
.bg-slate-100\/95 {
  background-color: #f1f5f9f2;
}
.bg-slate-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity));
}
.bg-slate-200\/0 {
  background-color: #e2e8f000;
}
.bg-slate-200\/10 {
  background-color: #e2e8f01a;
}
.bg-slate-200\/100 {
  background-color: #e2e8f0;
}
.bg-slate-200\/20 {
  background-color: #e2e8f033;
}
.bg-slate-200\/25 {
  background-color: #e2e8f040;
}
.bg-slate-200\/30 {
  background-color: #e2e8f04d;
}
.bg-slate-200\/40 {
  background-color: #e2e8f066;
}
.bg-slate-200\/5 {
  background-color: #e2e8f00d;
}
.bg-slate-200\/50 {
  background-color: #e2e8f080;
}
.bg-slate-200\/60 {
  background-color: #e2e8f099;
}
.bg-slate-200\/70 {
  background-color: #e2e8f0b3;
}
.bg-slate-200\/75 {
  background-color: #e2e8f0bf;
}
.bg-slate-200\/80 {
  background-color: #e2e8f0cc;
}
.bg-slate-200\/90 {
  background-color: #e2e8f0e6;
}
.bg-slate-200\/95 {
  background-color: #e2e8f0f2;
}
.bg-slate-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(203 213 225 / var(--tw-bg-opacity));
}
.bg-slate-300\/0 {
  background-color: #cbd5e100;
}
.bg-slate-300\/10 {
  background-color: #cbd5e11a;
}
.bg-slate-300\/100 {
  background-color: #cbd5e1;
}
.bg-slate-300\/20 {
  background-color: #cbd5e133;
}
.bg-slate-300\/25 {
  background-color: #cbd5e140;
}
.bg-slate-300\/30 {
  background-color: #cbd5e14d;
}
.bg-slate-300\/40 {
  background-color: #cbd5e166;
}
.bg-slate-300\/5 {
  background-color: #cbd5e10d;
}
.bg-slate-300\/50 {
  background-color: #cbd5e180;
}
.bg-slate-300\/60 {
  background-color: #cbd5e199;
}
.bg-slate-300\/70 {
  background-color: #cbd5e1b3;
}
.bg-slate-300\/75 {
  background-color: #cbd5e1bf;
}
.bg-slate-300\/80 {
  background-color: #cbd5e1cc;
}
.bg-slate-300\/90 {
  background-color: #cbd5e1e6;
}
.bg-slate-300\/95 {
  background-color: #cbd5e1f2;
}
.bg-slate-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(148 163 184 / var(--tw-bg-opacity));
}
.bg-slate-400\/0 {
  background-color: #94a3b800;
}
.bg-slate-400\/10 {
  background-color: #94a3b81a;
}
.bg-slate-400\/100 {
  background-color: #94a3b8;
}
.bg-slate-400\/20 {
  background-color: #94a3b833;
}
.bg-slate-400\/25 {
  background-color: #94a3b840;
}
.bg-slate-400\/30 {
  background-color: #94a3b84d;
}
.bg-slate-400\/40 {
  background-color: #94a3b866;
}
.bg-slate-400\/5 {
  background-color: #94a3b80d;
}
.bg-slate-400\/50 {
  background-color: #94a3b880;
}
.bg-slate-400\/60 {
  background-color: #94a3b899;
}
.bg-slate-400\/70 {
  background-color: #94a3b8b3;
}
.bg-slate-400\/75 {
  background-color: #94a3b8bf;
}
.bg-slate-400\/80 {
  background-color: #94a3b8cc;
}
.bg-slate-400\/90 {
  background-color: #94a3b8e6;
}
.bg-slate-400\/95 {
  background-color: #94a3b8f2;
}
.bg-slate-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity));
}
.bg-slate-50\/0 {
  background-color: #f8fafc00;
}
.bg-slate-50\/10 {
  background-color: #f8fafc1a;
}
.bg-slate-50\/100 {
  background-color: #f8fafc;
}
.bg-slate-50\/20 {
  background-color: #f8fafc33;
}
.bg-slate-50\/25 {
  background-color: #f8fafc40;
}
.bg-slate-50\/30 {
  background-color: #f8fafc4d;
}
.bg-slate-50\/40 {
  background-color: #f8fafc66;
}
.bg-slate-50\/5 {
  background-color: #f8fafc0d;
}
.bg-slate-50\/50 {
  background-color: #f8fafc80;
}
.bg-slate-50\/60 {
  background-color: #f8fafc99;
}
.bg-slate-50\/70 {
  background-color: #f8fafcb3;
}
.bg-slate-50\/75 {
  background-color: #f8fafcbf;
}
.bg-slate-50\/80 {
  background-color: #f8fafccc;
}
.bg-slate-50\/90 {
  background-color: #f8fafce6;
}
.bg-slate-50\/95 {
  background-color: #f8fafcf2;
}
.bg-slate-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(100 116 139 / var(--tw-bg-opacity));
}
.bg-slate-500\/0 {
  background-color: #64748b00;
}
.bg-slate-500\/10 {
  background-color: #64748b1a;
}
.bg-slate-500\/100 {
  background-color: #64748b;
}
.bg-slate-500\/20 {
  background-color: #64748b33;
}
.bg-slate-500\/25 {
  background-color: #64748b40;
}
.bg-slate-500\/30 {
  background-color: #64748b4d;
}
.bg-slate-500\/40 {
  background-color: #64748b66;
}
.bg-slate-500\/5 {
  background-color: #64748b0d;
}
.bg-slate-500\/50 {
  background-color: #64748b80;
}
.bg-slate-500\/60 {
  background-color: #64748b99;
}
.bg-slate-500\/70 {
  background-color: #64748bb3;
}
.bg-slate-500\/75 {
  background-color: #64748bbf;
}
.bg-slate-500\/80 {
  background-color: #64748bcc;
}
.bg-slate-500\/90 {
  background-color: #64748be6;
}
.bg-slate-500\/95 {
  background-color: #64748bf2;
}
.bg-slate-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(71 85 105 / var(--tw-bg-opacity));
}
.bg-slate-600\/0 {
  background-color: #47556900;
}
.bg-slate-600\/10 {
  background-color: #4755691a;
}
.bg-slate-600\/100 {
  background-color: #475569;
}
.bg-slate-600\/20 {
  background-color: #47556933;
}
.bg-slate-600\/25 {
  background-color: #47556940;
}
.bg-slate-600\/30 {
  background-color: #4755694d;
}
.bg-slate-600\/40 {
  background-color: #47556966;
}
.bg-slate-600\/5 {
  background-color: #4755690d;
}
.bg-slate-600\/50 {
  background-color: #47556980;
}
.bg-slate-600\/60 {
  background-color: #47556999;
}
.bg-slate-600\/70 {
  background-color: #475569b3;
}
.bg-slate-600\/75 {
  background-color: #475569bf;
}
.bg-slate-600\/80 {
  background-color: #475569cc;
}
.bg-slate-600\/90 {
  background-color: #475569e6;
}
.bg-slate-600\/95 {
  background-color: #475569f2;
}
.bg-slate-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(51 65 85 / var(--tw-bg-opacity));
}
.bg-slate-700\/0 {
  background-color: #33415500;
}
.bg-slate-700\/10 {
  background-color: #3341551a;
}
.bg-slate-700\/100 {
  background-color: #334155;
}
.bg-slate-700\/20 {
  background-color: #33415533;
}
.bg-slate-700\/25 {
  background-color: #33415540;
}
.bg-slate-700\/30 {
  background-color: #3341554d;
}
.bg-slate-700\/40 {
  background-color: #33415566;
}
.bg-slate-700\/5 {
  background-color: #3341550d;
}
.bg-slate-700\/50 {
  background-color: #33415580;
}
.bg-slate-700\/60 {
  background-color: #33415599;
}
.bg-slate-700\/70 {
  background-color: #334155b3;
}
.bg-slate-700\/75 {
  background-color: #334155bf;
}
.bg-slate-700\/80 {
  background-color: #334155cc;
}
.bg-slate-700\/90 {
  background-color: #334155e6;
}
.bg-slate-700\/95 {
  background-color: #334155f2;
}
.bg-slate-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(30 41 59 / var(--tw-bg-opacity));
}
.bg-slate-800\/0 {
  background-color: #1e293b00;
}
.bg-slate-800\/10 {
  background-color: #1e293b1a;
}
.bg-slate-800\/100 {
  background-color: #1e293b;
}
.bg-slate-800\/20 {
  background-color: #1e293b33;
}
.bg-slate-800\/25 {
  background-color: #1e293b40;
}
.bg-slate-800\/30 {
  background-color: #1e293b4d;
}
.bg-slate-800\/40 {
  background-color: #1e293b66;
}
.bg-slate-800\/5 {
  background-color: #1e293b0d;
}
.bg-slate-800\/50 {
  background-color: #1e293b80;
}
.bg-slate-800\/60 {
  background-color: #1e293b99;
}
.bg-slate-800\/70 {
  background-color: #1e293bb3;
}
.bg-slate-800\/75 {
  background-color: #1e293bbf;
}
.bg-slate-800\/80 {
  background-color: #1e293bcc;
}
.bg-slate-800\/90 {
  background-color: #1e293be6;
}
.bg-slate-800\/95 {
  background-color: #1e293bf2;
}
.bg-slate-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / var(--tw-bg-opacity));
}
.bg-slate-900\/0 {
  background-color: #0f172a00;
}
.bg-slate-900\/10 {
  background-color: #0f172a1a;
}
.bg-slate-900\/100 {
  background-color: #0f172a;
}
.bg-slate-900\/20 {
  background-color: #0f172a33;
}
.bg-slate-900\/25 {
  background-color: #0f172a40;
}
.bg-slate-900\/30 {
  background-color: #0f172a4d;
}
.bg-slate-900\/40 {
  background-color: #0f172a66;
}
.bg-slate-900\/5 {
  background-color: #0f172a0d;
}
.bg-slate-900\/50 {
  background-color: #0f172a80;
}
.bg-slate-900\/60 {
  background-color: #0f172a99;
}
.bg-slate-900\/70 {
  background-color: #0f172ab3;
}
.bg-slate-900\/75 {
  background-color: #0f172abf;
}
.bg-slate-900\/80 {
  background-color: #0f172acc;
}
.bg-slate-900\/90 {
  background-color: #0f172ae6;
}
.bg-slate-900\/95 {
  background-color: #0f172af2;
}
.bg-slate-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(2 6 23 / var(--tw-bg-opacity));
}
.bg-slate-950\/0 {
  background-color: #02061700;
}
.bg-slate-950\/10 {
  background-color: #0206171a;
}
.bg-slate-950\/100 {
  background-color: #020617;
}
.bg-slate-950\/20 {
  background-color: #02061733;
}
.bg-slate-950\/25 {
  background-color: #02061740;
}
.bg-slate-950\/30 {
  background-color: #0206174d;
}
.bg-slate-950\/40 {
  background-color: #02061766;
}
.bg-slate-950\/5 {
  background-color: #0206170d;
}
.bg-slate-950\/50 {
  background-color: #02061780;
}
.bg-slate-950\/60 {
  background-color: #02061799;
}
.bg-slate-950\/70 {
  background-color: #020617b3;
}
.bg-slate-950\/75 {
  background-color: #020617bf;
}
.bg-slate-950\/80 {
  background-color: #020617cc;
}
.bg-slate-950\/90 {
  background-color: #020617e6;
}
.bg-slate-950\/95 {
  background-color: #020617f2;
}
.bg-stone-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 245 244 / var(--tw-bg-opacity));
}
.bg-stone-100\/0 {
  background-color: #f5f5f400;
}
.bg-stone-100\/10 {
  background-color: #f5f5f41a;
}
.bg-stone-100\/100 {
  background-color: #f5f5f4;
}
.bg-stone-100\/20 {
  background-color: #f5f5f433;
}
.bg-stone-100\/25 {
  background-color: #f5f5f440;
}
.bg-stone-100\/30 {
  background-color: #f5f5f44d;
}
.bg-stone-100\/40 {
  background-color: #f5f5f466;
}
.bg-stone-100\/5 {
  background-color: #f5f5f40d;
}
.bg-stone-100\/50 {
  background-color: #f5f5f480;
}
.bg-stone-100\/60 {
  background-color: #f5f5f499;
}
.bg-stone-100\/70 {
  background-color: #f5f5f4b3;
}
.bg-stone-100\/75 {
  background-color: #f5f5f4bf;
}
.bg-stone-100\/80 {
  background-color: #f5f5f4cc;
}
.bg-stone-100\/90 {
  background-color: #f5f5f4e6;
}
.bg-stone-100\/95 {
  background-color: #f5f5f4f2;
}
.bg-stone-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(231 229 228 / var(--tw-bg-opacity));
}
.bg-stone-200\/0 {
  background-color: #e7e5e400;
}
.bg-stone-200\/10 {
  background-color: #e7e5e41a;
}
.bg-stone-200\/100 {
  background-color: #e7e5e4;
}
.bg-stone-200\/20 {
  background-color: #e7e5e433;
}
.bg-stone-200\/25 {
  background-color: #e7e5e440;
}
.bg-stone-200\/30 {
  background-color: #e7e5e44d;
}
.bg-stone-200\/40 {
  background-color: #e7e5e466;
}
.bg-stone-200\/5 {
  background-color: #e7e5e40d;
}
.bg-stone-200\/50 {
  background-color: #e7e5e480;
}
.bg-stone-200\/60 {
  background-color: #e7e5e499;
}
.bg-stone-200\/70 {
  background-color: #e7e5e4b3;
}
.bg-stone-200\/75 {
  background-color: #e7e5e4bf;
}
.bg-stone-200\/80 {
  background-color: #e7e5e4cc;
}
.bg-stone-200\/90 {
  background-color: #e7e5e4e6;
}
.bg-stone-200\/95 {
  background-color: #e7e5e4f2;
}
.bg-stone-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(214 211 209 / var(--tw-bg-opacity));
}
.bg-stone-300\/0 {
  background-color: #d6d3d100;
}
.bg-stone-300\/10 {
  background-color: #d6d3d11a;
}
.bg-stone-300\/100 {
  background-color: #d6d3d1;
}
.bg-stone-300\/20 {
  background-color: #d6d3d133;
}
.bg-stone-300\/25 {
  background-color: #d6d3d140;
}
.bg-stone-300\/30 {
  background-color: #d6d3d14d;
}
.bg-stone-300\/40 {
  background-color: #d6d3d166;
}
.bg-stone-300\/5 {
  background-color: #d6d3d10d;
}
.bg-stone-300\/50 {
  background-color: #d6d3d180;
}
.bg-stone-300\/60 {
  background-color: #d6d3d199;
}
.bg-stone-300\/70 {
  background-color: #d6d3d1b3;
}
.bg-stone-300\/75 {
  background-color: #d6d3d1bf;
}
.bg-stone-300\/80 {
  background-color: #d6d3d1cc;
}
.bg-stone-300\/90 {
  background-color: #d6d3d1e6;
}
.bg-stone-300\/95 {
  background-color: #d6d3d1f2;
}
.bg-stone-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(168 162 158 / var(--tw-bg-opacity));
}
.bg-stone-400\/0 {
  background-color: #a8a29e00;
}
.bg-stone-400\/10 {
  background-color: #a8a29e1a;
}
.bg-stone-400\/100 {
  background-color: #a8a29e;
}
.bg-stone-400\/20 {
  background-color: #a8a29e33;
}
.bg-stone-400\/25 {
  background-color: #a8a29e40;
}
.bg-stone-400\/30 {
  background-color: #a8a29e4d;
}
.bg-stone-400\/40 {
  background-color: #a8a29e66;
}
.bg-stone-400\/5 {
  background-color: #a8a29e0d;
}
.bg-stone-400\/50 {
  background-color: #a8a29e80;
}
.bg-stone-400\/60 {
  background-color: #a8a29e99;
}
.bg-stone-400\/70 {
  background-color: #a8a29eb3;
}
.bg-stone-400\/75 {
  background-color: #a8a29ebf;
}
.bg-stone-400\/80 {
  background-color: #a8a29ecc;
}
.bg-stone-400\/90 {
  background-color: #a8a29ee6;
}
.bg-stone-400\/95 {
  background-color: #a8a29ef2;
}
.bg-stone-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 249 / var(--tw-bg-opacity));
}
.bg-stone-50\/0 {
  background-color: #fafaf900;
}
.bg-stone-50\/10 {
  background-color: #fafaf91a;
}
.bg-stone-50\/100 {
  background-color: #fafaf9;
}
.bg-stone-50\/20 {
  background-color: #fafaf933;
}
.bg-stone-50\/25 {
  background-color: #fafaf940;
}
.bg-stone-50\/30 {
  background-color: #fafaf94d;
}
.bg-stone-50\/40 {
  background-color: #fafaf966;
}
.bg-stone-50\/5 {
  background-color: #fafaf90d;
}
.bg-stone-50\/50 {
  background-color: #fafaf980;
}
.bg-stone-50\/60 {
  background-color: #fafaf999;
}
.bg-stone-50\/70 {
  background-color: #fafaf9b3;
}
.bg-stone-50\/75 {
  background-color: #fafaf9bf;
}
.bg-stone-50\/80 {
  background-color: #fafaf9cc;
}
.bg-stone-50\/90 {
  background-color: #fafaf9e6;
}
.bg-stone-50\/95 {
  background-color: #fafaf9f2;
}
.bg-stone-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(120 113 108 / var(--tw-bg-opacity));
}
.bg-stone-500\/0 {
  background-color: #78716c00;
}
.bg-stone-500\/10 {
  background-color: #78716c1a;
}
.bg-stone-500\/100 {
  background-color: #78716c;
}
.bg-stone-500\/20 {
  background-color: #78716c33;
}
.bg-stone-500\/25 {
  background-color: #78716c40;
}
.bg-stone-500\/30 {
  background-color: #78716c4d;
}
.bg-stone-500\/40 {
  background-color: #78716c66;
}
.bg-stone-500\/5 {
  background-color: #78716c0d;
}
.bg-stone-500\/50 {
  background-color: #78716c80;
}
.bg-stone-500\/60 {
  background-color: #78716c99;
}
.bg-stone-500\/70 {
  background-color: #78716cb3;
}
.bg-stone-500\/75 {
  background-color: #78716cbf;
}
.bg-stone-500\/80 {
  background-color: #78716ccc;
}
.bg-stone-500\/90 {
  background-color: #78716ce6;
}
.bg-stone-500\/95 {
  background-color: #78716cf2;
}
.bg-stone-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(87 83 78 / var(--tw-bg-opacity));
}
.bg-stone-600\/0 {
  background-color: #57534e00;
}
.bg-stone-600\/10 {
  background-color: #57534e1a;
}
.bg-stone-600\/100 {
  background-color: #57534e;
}
.bg-stone-600\/20 {
  background-color: #57534e33;
}
.bg-stone-600\/25 {
  background-color: #57534e40;
}
.bg-stone-600\/30 {
  background-color: #57534e4d;
}
.bg-stone-600\/40 {
  background-color: #57534e66;
}
.bg-stone-600\/5 {
  background-color: #57534e0d;
}
.bg-stone-600\/50 {
  background-color: #57534e80;
}
.bg-stone-600\/60 {
  background-color: #57534e99;
}
.bg-stone-600\/70 {
  background-color: #57534eb3;
}
.bg-stone-600\/75 {
  background-color: #57534ebf;
}
.bg-stone-600\/80 {
  background-color: #57534ecc;
}
.bg-stone-600\/90 {
  background-color: #57534ee6;
}
.bg-stone-600\/95 {
  background-color: #57534ef2;
}
.bg-stone-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(68 64 60 / var(--tw-bg-opacity));
}
.bg-stone-700\/0 {
  background-color: #44403c00;
}
.bg-stone-700\/10 {
  background-color: #44403c1a;
}
.bg-stone-700\/100 {
  background-color: #44403c;
}
.bg-stone-700\/20 {
  background-color: #44403c33;
}
.bg-stone-700\/25 {
  background-color: #44403c40;
}
.bg-stone-700\/30 {
  background-color: #44403c4d;
}
.bg-stone-700\/40 {
  background-color: #44403c66;
}
.bg-stone-700\/5 {
  background-color: #44403c0d;
}
.bg-stone-700\/50 {
  background-color: #44403c80;
}
.bg-stone-700\/60 {
  background-color: #44403c99;
}
.bg-stone-700\/70 {
  background-color: #44403cb3;
}
.bg-stone-700\/75 {
  background-color: #44403cbf;
}
.bg-stone-700\/80 {
  background-color: #44403ccc;
}
.bg-stone-700\/90 {
  background-color: #44403ce6;
}
.bg-stone-700\/95 {
  background-color: #44403cf2;
}
.bg-stone-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(41 37 36 / var(--tw-bg-opacity));
}
.bg-stone-800\/0 {
  background-color: #29252400;
}
.bg-stone-800\/10 {
  background-color: #2925241a;
}
.bg-stone-800\/100 {
  background-color: #292524;
}
.bg-stone-800\/20 {
  background-color: #29252433;
}
.bg-stone-800\/25 {
  background-color: #29252440;
}
.bg-stone-800\/30 {
  background-color: #2925244d;
}
.bg-stone-800\/40 {
  background-color: #29252466;
}
.bg-stone-800\/5 {
  background-color: #2925240d;
}
.bg-stone-800\/50 {
  background-color: #29252480;
}
.bg-stone-800\/60 {
  background-color: #29252499;
}
.bg-stone-800\/70 {
  background-color: #292524b3;
}
.bg-stone-800\/75 {
  background-color: #292524bf;
}
.bg-stone-800\/80 {
  background-color: #292524cc;
}
.bg-stone-800\/90 {
  background-color: #292524e6;
}
.bg-stone-800\/95 {
  background-color: #292524f2;
}
.bg-stone-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(28 25 23 / var(--tw-bg-opacity));
}
.bg-stone-900\/0 {
  background-color: #1c191700;
}
.bg-stone-900\/10 {
  background-color: #1c19171a;
}
.bg-stone-900\/100 {
  background-color: #1c1917;
}
.bg-stone-900\/20 {
  background-color: #1c191733;
}
.bg-stone-900\/25 {
  background-color: #1c191740;
}
.bg-stone-900\/30 {
  background-color: #1c19174d;
}
.bg-stone-900\/40 {
  background-color: #1c191766;
}
.bg-stone-900\/5 {
  background-color: #1c19170d;
}
.bg-stone-900\/50 {
  background-color: #1c191780;
}
.bg-stone-900\/60 {
  background-color: #1c191799;
}
.bg-stone-900\/70 {
  background-color: #1c1917b3;
}
.bg-stone-900\/75 {
  background-color: #1c1917bf;
}
.bg-stone-900\/80 {
  background-color: #1c1917cc;
}
.bg-stone-900\/90 {
  background-color: #1c1917e6;
}
.bg-stone-900\/95 {
  background-color: #1c1917f2;
}
.bg-stone-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(12 10 9 / var(--tw-bg-opacity));
}
.bg-stone-950\/0 {
  background-color: #0c0a0900;
}
.bg-stone-950\/10 {
  background-color: #0c0a091a;
}
.bg-stone-950\/100 {
  background-color: #0c0a09;
}
.bg-stone-950\/20 {
  background-color: #0c0a0933;
}
.bg-stone-950\/25 {
  background-color: #0c0a0940;
}
.bg-stone-950\/30 {
  background-color: #0c0a094d;
}
.bg-stone-950\/40 {
  background-color: #0c0a0966;
}
.bg-stone-950\/5 {
  background-color: #0c0a090d;
}
.bg-stone-950\/50 {
  background-color: #0c0a0980;
}
.bg-stone-950\/60 {
  background-color: #0c0a0999;
}
.bg-stone-950\/70 {
  background-color: #0c0a09b3;
}
.bg-stone-950\/75 {
  background-color: #0c0a09bf;
}
.bg-stone-950\/80 {
  background-color: #0c0a09cc;
}
.bg-stone-950\/90 {
  background-color: #0c0a09e6;
}
.bg-stone-950\/95 {
  background-color: #0c0a09f2;
}
.bg-teal-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(204 251 241 / var(--tw-bg-opacity));
}
.bg-teal-100\/0 {
  background-color: #ccfbf100;
}
.bg-teal-100\/10 {
  background-color: #ccfbf11a;
}
.bg-teal-100\/100 {
  background-color: #ccfbf1;
}
.bg-teal-100\/20 {
  background-color: #ccfbf133;
}
.bg-teal-100\/25 {
  background-color: #ccfbf140;
}
.bg-teal-100\/30 {
  background-color: #ccfbf14d;
}
.bg-teal-100\/40 {
  background-color: #ccfbf166;
}
.bg-teal-100\/5 {
  background-color: #ccfbf10d;
}
.bg-teal-100\/50 {
  background-color: #ccfbf180;
}
.bg-teal-100\/60 {
  background-color: #ccfbf199;
}
.bg-teal-100\/70 {
  background-color: #ccfbf1b3;
}
.bg-teal-100\/75 {
  background-color: #ccfbf1bf;
}
.bg-teal-100\/80 {
  background-color: #ccfbf1cc;
}
.bg-teal-100\/90 {
  background-color: #ccfbf1e6;
}
.bg-teal-100\/95 {
  background-color: #ccfbf1f2;
}
.bg-teal-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(153 246 228 / var(--tw-bg-opacity));
}
.bg-teal-200\/0 {
  background-color: #99f6e400;
}
.bg-teal-200\/10 {
  background-color: #99f6e41a;
}
.bg-teal-200\/100 {
  background-color: #99f6e4;
}
.bg-teal-200\/20 {
  background-color: #99f6e433;
}
.bg-teal-200\/25 {
  background-color: #99f6e440;
}
.bg-teal-200\/30 {
  background-color: #99f6e44d;
}
.bg-teal-200\/40 {
  background-color: #99f6e466;
}
.bg-teal-200\/5 {
  background-color: #99f6e40d;
}
.bg-teal-200\/50 {
  background-color: #99f6e480;
}
.bg-teal-200\/60 {
  background-color: #99f6e499;
}
.bg-teal-200\/70 {
  background-color: #99f6e4b3;
}
.bg-teal-200\/75 {
  background-color: #99f6e4bf;
}
.bg-teal-200\/80 {
  background-color: #99f6e4cc;
}
.bg-teal-200\/90 {
  background-color: #99f6e4e6;
}
.bg-teal-200\/95 {
  background-color: #99f6e4f2;
}
.bg-teal-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(94 234 212 / var(--tw-bg-opacity));
}
.bg-teal-300\/0 {
  background-color: #5eead400;
}
.bg-teal-300\/10 {
  background-color: #5eead41a;
}
.bg-teal-300\/100 {
  background-color: #5eead4;
}
.bg-teal-300\/20 {
  background-color: #5eead433;
}
.bg-teal-300\/25 {
  background-color: #5eead440;
}
.bg-teal-300\/30 {
  background-color: #5eead44d;
}
.bg-teal-300\/40 {
  background-color: #5eead466;
}
.bg-teal-300\/5 {
  background-color: #5eead40d;
}
.bg-teal-300\/50 {
  background-color: #5eead480;
}
.bg-teal-300\/60 {
  background-color: #5eead499;
}
.bg-teal-300\/70 {
  background-color: #5eead4b3;
}
.bg-teal-300\/75 {
  background-color: #5eead4bf;
}
.bg-teal-300\/80 {
  background-color: #5eead4cc;
}
.bg-teal-300\/90 {
  background-color: #5eead4e6;
}
.bg-teal-300\/95 {
  background-color: #5eead4f2;
}
.bg-teal-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(45 212 191 / var(--tw-bg-opacity));
}
.bg-teal-400\/0 {
  background-color: #2dd4bf00;
}
.bg-teal-400\/10 {
  background-color: #2dd4bf1a;
}
.bg-teal-400\/100 {
  background-color: #2dd4bf;
}
.bg-teal-400\/20 {
  background-color: #2dd4bf33;
}
.bg-teal-400\/25 {
  background-color: #2dd4bf40;
}
.bg-teal-400\/30 {
  background-color: #2dd4bf4d;
}
.bg-teal-400\/40 {
  background-color: #2dd4bf66;
}
.bg-teal-400\/5 {
  background-color: #2dd4bf0d;
}
.bg-teal-400\/50 {
  background-color: #2dd4bf80;
}
.bg-teal-400\/60 {
  background-color: #2dd4bf99;
}
.bg-teal-400\/70 {
  background-color: #2dd4bfb3;
}
.bg-teal-400\/75 {
  background-color: #2dd4bfbf;
}
.bg-teal-400\/80 {
  background-color: #2dd4bfcc;
}
.bg-teal-400\/90 {
  background-color: #2dd4bfe6;
}
.bg-teal-400\/95 {
  background-color: #2dd4bff2;
}
.bg-teal-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 250 / var(--tw-bg-opacity));
}
.bg-teal-50\/0 {
  background-color: #f0fdfa00;
}
.bg-teal-50\/10 {
  background-color: #f0fdfa1a;
}
.bg-teal-50\/100 {
  background-color: #f0fdfa;
}
.bg-teal-50\/20 {
  background-color: #f0fdfa33;
}
.bg-teal-50\/25 {
  background-color: #f0fdfa40;
}
.bg-teal-50\/30 {
  background-color: #f0fdfa4d;
}
.bg-teal-50\/40 {
  background-color: #f0fdfa66;
}
.bg-teal-50\/5 {
  background-color: #f0fdfa0d;
}
.bg-teal-50\/50 {
  background-color: #f0fdfa80;
}
.bg-teal-50\/60 {
  background-color: #f0fdfa99;
}
.bg-teal-50\/70 {
  background-color: #f0fdfab3;
}
.bg-teal-50\/75 {
  background-color: #f0fdfabf;
}
.bg-teal-50\/80 {
  background-color: #f0fdfacc;
}
.bg-teal-50\/90 {
  background-color: #f0fdfae6;
}
.bg-teal-50\/95 {
  background-color: #f0fdfaf2;
}
.bg-teal-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(20 184 166 / var(--tw-bg-opacity));
}
.bg-teal-500\/0 {
  background-color: #14b8a600;
}
.bg-teal-500\/10 {
  background-color: #14b8a61a;
}
.bg-teal-500\/100 {
  background-color: #14b8a6;
}
.bg-teal-500\/20 {
  background-color: #14b8a633;
}
.bg-teal-500\/25 {
  background-color: #14b8a640;
}
.bg-teal-500\/30 {
  background-color: #14b8a64d;
}
.bg-teal-500\/40 {
  background-color: #14b8a666;
}
.bg-teal-500\/5 {
  background-color: #14b8a60d;
}
.bg-teal-500\/50 {
  background-color: #14b8a680;
}
.bg-teal-500\/60 {
  background-color: #14b8a699;
}
.bg-teal-500\/70 {
  background-color: #14b8a6b3;
}
.bg-teal-500\/75 {
  background-color: #14b8a6bf;
}
.bg-teal-500\/80 {
  background-color: #14b8a6cc;
}
.bg-teal-500\/90 {
  background-color: #14b8a6e6;
}
.bg-teal-500\/95 {
  background-color: #14b8a6f2;
}
.bg-teal-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(13 148 136 / var(--tw-bg-opacity));
}
.bg-teal-600\/0 {
  background-color: #0d948800;
}
.bg-teal-600\/10 {
  background-color: #0d94881a;
}
.bg-teal-600\/100 {
  background-color: #0d9488;
}
.bg-teal-600\/20 {
  background-color: #0d948833;
}
.bg-teal-600\/25 {
  background-color: #0d948840;
}
.bg-teal-600\/30 {
  background-color: #0d94884d;
}
.bg-teal-600\/40 {
  background-color: #0d948866;
}
.bg-teal-600\/5 {
  background-color: #0d94880d;
}
.bg-teal-600\/50 {
  background-color: #0d948880;
}
.bg-teal-600\/60 {
  background-color: #0d948899;
}
.bg-teal-600\/70 {
  background-color: #0d9488b3;
}
.bg-teal-600\/75 {
  background-color: #0d9488bf;
}
.bg-teal-600\/80 {
  background-color: #0d9488cc;
}
.bg-teal-600\/90 {
  background-color: #0d9488e6;
}
.bg-teal-600\/95 {
  background-color: #0d9488f2;
}
.bg-teal-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(15 118 110 / var(--tw-bg-opacity));
}
.bg-teal-700\/0 {
  background-color: #0f766e00;
}
.bg-teal-700\/10 {
  background-color: #0f766e1a;
}
.bg-teal-700\/100 {
  background-color: #0f766e;
}
.bg-teal-700\/20 {
  background-color: #0f766e33;
}
.bg-teal-700\/25 {
  background-color: #0f766e40;
}
.bg-teal-700\/30 {
  background-color: #0f766e4d;
}
.bg-teal-700\/40 {
  background-color: #0f766e66;
}
.bg-teal-700\/5 {
  background-color: #0f766e0d;
}
.bg-teal-700\/50 {
  background-color: #0f766e80;
}
.bg-teal-700\/60 {
  background-color: #0f766e99;
}
.bg-teal-700\/70 {
  background-color: #0f766eb3;
}
.bg-teal-700\/75 {
  background-color: #0f766ebf;
}
.bg-teal-700\/80 {
  background-color: #0f766ecc;
}
.bg-teal-700\/90 {
  background-color: #0f766ee6;
}
.bg-teal-700\/95 {
  background-color: #0f766ef2;
}
.bg-teal-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(17 94 89 / var(--tw-bg-opacity));
}
.bg-teal-800\/0 {
  background-color: #115e5900;
}
.bg-teal-800\/10 {
  background-color: #115e591a;
}
.bg-teal-800\/100 {
  background-color: #115e59;
}
.bg-teal-800\/20 {
  background-color: #115e5933;
}
.bg-teal-800\/25 {
  background-color: #115e5940;
}
.bg-teal-800\/30 {
  background-color: #115e594d;
}
.bg-teal-800\/40 {
  background-color: #115e5966;
}
.bg-teal-800\/5 {
  background-color: #115e590d;
}
.bg-teal-800\/50 {
  background-color: #115e5980;
}
.bg-teal-800\/60 {
  background-color: #115e5999;
}
.bg-teal-800\/70 {
  background-color: #115e59b3;
}
.bg-teal-800\/75 {
  background-color: #115e59bf;
}
.bg-teal-800\/80 {
  background-color: #115e59cc;
}
.bg-teal-800\/90 {
  background-color: #115e59e6;
}
.bg-teal-800\/95 {
  background-color: #115e59f2;
}
.bg-teal-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(19 78 74 / var(--tw-bg-opacity));
}
.bg-teal-900\/0 {
  background-color: #134e4a00;
}
.bg-teal-900\/10 {
  background-color: #134e4a1a;
}
.bg-teal-900\/100 {
  background-color: #134e4a;
}
.bg-teal-900\/20 {
  background-color: #134e4a33;
}
.bg-teal-900\/25 {
  background-color: #134e4a40;
}
.bg-teal-900\/30 {
  background-color: #134e4a4d;
}
.bg-teal-900\/40 {
  background-color: #134e4a66;
}
.bg-teal-900\/5 {
  background-color: #134e4a0d;
}
.bg-teal-900\/50 {
  background-color: #134e4a80;
}
.bg-teal-900\/60 {
  background-color: #134e4a99;
}
.bg-teal-900\/70 {
  background-color: #134e4ab3;
}
.bg-teal-900\/75 {
  background-color: #134e4abf;
}
.bg-teal-900\/80 {
  background-color: #134e4acc;
}
.bg-teal-900\/90 {
  background-color: #134e4ae6;
}
.bg-teal-900\/95 {
  background-color: #134e4af2;
}
.bg-teal-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(4 47 46 / var(--tw-bg-opacity));
}
.bg-teal-950\/0 {
  background-color: #042f2e00;
}
.bg-teal-950\/10 {
  background-color: #042f2e1a;
}
.bg-teal-950\/100 {
  background-color: #042f2e;
}
.bg-teal-950\/20 {
  background-color: #042f2e33;
}
.bg-teal-950\/25 {
  background-color: #042f2e40;
}
.bg-teal-950\/30 {
  background-color: #042f2e4d;
}
.bg-teal-950\/40 {
  background-color: #042f2e66;
}
.bg-teal-950\/5 {
  background-color: #042f2e0d;
}
.bg-teal-950\/50 {
  background-color: #042f2e80;
}
.bg-teal-950\/60 {
  background-color: #042f2e99;
}
.bg-teal-950\/70 {
  background-color: #042f2eb3;
}
.bg-teal-950\/75 {
  background-color: #042f2ebf;
}
.bg-teal-950\/80 {
  background-color: #042f2ecc;
}
.bg-teal-950\/90 {
  background-color: #042f2ee6;
}
.bg-teal-950\/95 {
  background-color: #042f2ef2;
}
.bg-transparent {
  background-color: initial;
}
.bg-transparent\/0 {
  background-color: #0000;
}
.bg-transparent\/10 {
  background-color: #0000001a;
}
.bg-transparent\/100 {
  background-color: #000;
}
.bg-transparent\/20 {
  background-color: #0003;
}
.bg-transparent\/25 {
  background-color: #00000040;
}
.bg-transparent\/30 {
  background-color: #0000004d;
}
.bg-transparent\/40 {
  background-color: #0006;
}
.bg-transparent\/5 {
  background-color: #0000000d;
}
.bg-transparent\/50 {
  background-color: #00000080;
}
.bg-transparent\/60 {
  background-color: #0009;
}
.bg-transparent\/70 {
  background-color: #000000b3;
}
.bg-transparent\/75 {
  background-color: #000000bf;
}
.bg-transparent\/80 {
  background-color: #000c;
}
.bg-transparent\/90 {
  background-color: #000000e6;
}
.bg-transparent\/95 {
  background-color: #000000f2;
}
.bg-violet-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(237 233 254 / var(--tw-bg-opacity));
}
.bg-violet-100\/0 {
  background-color: #ede9fe00;
}
.bg-violet-100\/10 {
  background-color: #ede9fe1a;
}
.bg-violet-100\/100 {
  background-color: #ede9fe;
}
.bg-violet-100\/20 {
  background-color: #ede9fe33;
}
.bg-violet-100\/25 {
  background-color: #ede9fe40;
}
.bg-violet-100\/30 {
  background-color: #ede9fe4d;
}
.bg-violet-100\/40 {
  background-color: #ede9fe66;
}
.bg-violet-100\/5 {
  background-color: #ede9fe0d;
}
.bg-violet-100\/50 {
  background-color: #ede9fe80;
}
.bg-violet-100\/60 {
  background-color: #ede9fe99;
}
.bg-violet-100\/70 {
  background-color: #ede9feb3;
}
.bg-violet-100\/75 {
  background-color: #ede9febf;
}
.bg-violet-100\/80 {
  background-color: #ede9fecc;
}
.bg-violet-100\/90 {
  background-color: #ede9fee6;
}
.bg-violet-100\/95 {
  background-color: #ede9fef2;
}
.bg-violet-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(221 214 254 / var(--tw-bg-opacity));
}
.bg-violet-200\/0 {
  background-color: #ddd6fe00;
}
.bg-violet-200\/10 {
  background-color: #ddd6fe1a;
}
.bg-violet-200\/100 {
  background-color: #ddd6fe;
}
.bg-violet-200\/20 {
  background-color: #ddd6fe33;
}
.bg-violet-200\/25 {
  background-color: #ddd6fe40;
}
.bg-violet-200\/30 {
  background-color: #ddd6fe4d;
}
.bg-violet-200\/40 {
  background-color: #ddd6fe66;
}
.bg-violet-200\/5 {
  background-color: #ddd6fe0d;
}
.bg-violet-200\/50 {
  background-color: #ddd6fe80;
}
.bg-violet-200\/60 {
  background-color: #ddd6fe99;
}
.bg-violet-200\/70 {
  background-color: #ddd6feb3;
}
.bg-violet-200\/75 {
  background-color: #ddd6febf;
}
.bg-violet-200\/80 {
  background-color: #ddd6fecc;
}
.bg-violet-200\/90 {
  background-color: #ddd6fee6;
}
.bg-violet-200\/95 {
  background-color: #ddd6fef2;
}
.bg-violet-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(196 181 253 / var(--tw-bg-opacity));
}
.bg-violet-300\/0 {
  background-color: #c4b5fd00;
}
.bg-violet-300\/10 {
  background-color: #c4b5fd1a;
}
.bg-violet-300\/100 {
  background-color: #c4b5fd;
}
.bg-violet-300\/20 {
  background-color: #c4b5fd33;
}
.bg-violet-300\/25 {
  background-color: #c4b5fd40;
}
.bg-violet-300\/30 {
  background-color: #c4b5fd4d;
}
.bg-violet-300\/40 {
  background-color: #c4b5fd66;
}
.bg-violet-300\/5 {
  background-color: #c4b5fd0d;
}
.bg-violet-300\/50 {
  background-color: #c4b5fd80;
}
.bg-violet-300\/60 {
  background-color: #c4b5fd99;
}
.bg-violet-300\/70 {
  background-color: #c4b5fdb3;
}
.bg-violet-300\/75 {
  background-color: #c4b5fdbf;
}
.bg-violet-300\/80 {
  background-color: #c4b5fdcc;
}
.bg-violet-300\/90 {
  background-color: #c4b5fde6;
}
.bg-violet-300\/95 {
  background-color: #c4b5fdf2;
}
.bg-violet-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(167 139 250 / var(--tw-bg-opacity));
}
.bg-violet-400\/0 {
  background-color: #a78bfa00;
}
.bg-violet-400\/10 {
  background-color: #a78bfa1a;
}
.bg-violet-400\/100 {
  background-color: #a78bfa;
}
.bg-violet-400\/20 {
  background-color: #a78bfa33;
}
.bg-violet-400\/25 {
  background-color: #a78bfa40;
}
.bg-violet-400\/30 {
  background-color: #a78bfa4d;
}
.bg-violet-400\/40 {
  background-color: #a78bfa66;
}
.bg-violet-400\/5 {
  background-color: #a78bfa0d;
}
.bg-violet-400\/50 {
  background-color: #a78bfa80;
}
.bg-violet-400\/60 {
  background-color: #a78bfa99;
}
.bg-violet-400\/70 {
  background-color: #a78bfab3;
}
.bg-violet-400\/75 {
  background-color: #a78bfabf;
}
.bg-violet-400\/80 {
  background-color: #a78bfacc;
}
.bg-violet-400\/90 {
  background-color: #a78bfae6;
}
.bg-violet-400\/95 {
  background-color: #a78bfaf2;
}
.bg-violet-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 243 255 / var(--tw-bg-opacity));
}
.bg-violet-50\/0 {
  background-color: #f5f3ff00;
}
.bg-violet-50\/10 {
  background-color: #f5f3ff1a;
}
.bg-violet-50\/100 {
  background-color: #f5f3ff;
}
.bg-violet-50\/20 {
  background-color: #f5f3ff33;
}
.bg-violet-50\/25 {
  background-color: #f5f3ff40;
}
.bg-violet-50\/30 {
  background-color: #f5f3ff4d;
}
.bg-violet-50\/40 {
  background-color: #f5f3ff66;
}
.bg-violet-50\/5 {
  background-color: #f5f3ff0d;
}
.bg-violet-50\/50 {
  background-color: #f5f3ff80;
}
.bg-violet-50\/60 {
  background-color: #f5f3ff99;
}
.bg-violet-50\/70 {
  background-color: #f5f3ffb3;
}
.bg-violet-50\/75 {
  background-color: #f5f3ffbf;
}
.bg-violet-50\/80 {
  background-color: #f5f3ffcc;
}
.bg-violet-50\/90 {
  background-color: #f5f3ffe6;
}
.bg-violet-50\/95 {
  background-color: #f5f3fff2;
}
.bg-violet-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity));
}
.bg-violet-500\/0 {
  background-color: #8b5cf600;
}
.bg-violet-500\/10 {
  background-color: #8b5cf61a;
}
.bg-violet-500\/100 {
  background-color: #8b5cf6;
}
.bg-violet-500\/20 {
  background-color: #8b5cf633;
}
.bg-violet-500\/25 {
  background-color: #8b5cf640;
}
.bg-violet-500\/30 {
  background-color: #8b5cf64d;
}
.bg-violet-500\/40 {
  background-color: #8b5cf666;
}
.bg-violet-500\/5 {
  background-color: #8b5cf60d;
}
.bg-violet-500\/50 {
  background-color: #8b5cf680;
}
.bg-violet-500\/60 {
  background-color: #8b5cf699;
}
.bg-violet-500\/70 {
  background-color: #8b5cf6b3;
}
.bg-violet-500\/75 {
  background-color: #8b5cf6bf;
}
.bg-violet-500\/80 {
  background-color: #8b5cf6cc;
}
.bg-violet-500\/90 {
  background-color: #8b5cf6e6;
}
.bg-violet-500\/95 {
  background-color: #8b5cf6f2;
}
.bg-violet-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(124 58 237 / var(--tw-bg-opacity));
}
.bg-violet-600\/0 {
  background-color: #7c3aed00;
}
.bg-violet-600\/10 {
  background-color: #7c3aed1a;
}
.bg-violet-600\/100 {
  background-color: #7c3aed;
}
.bg-violet-600\/20 {
  background-color: #7c3aed33;
}
.bg-violet-600\/25 {
  background-color: #7c3aed40;
}
.bg-violet-600\/30 {
  background-color: #7c3aed4d;
}
.bg-violet-600\/40 {
  background-color: #7c3aed66;
}
.bg-violet-600\/5 {
  background-color: #7c3aed0d;
}
.bg-violet-600\/50 {
  background-color: #7c3aed80;
}
.bg-violet-600\/60 {
  background-color: #7c3aed99;
}
.bg-violet-600\/70 {
  background-color: #7c3aedb3;
}
.bg-violet-600\/75 {
  background-color: #7c3aedbf;
}
.bg-violet-600\/80 {
  background-color: #7c3aedcc;
}
.bg-violet-600\/90 {
  background-color: #7c3aede6;
}
.bg-violet-600\/95 {
  background-color: #7c3aedf2;
}
.bg-violet-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(109 40 217 / var(--tw-bg-opacity));
}
.bg-violet-700\/0 {
  background-color: #6d28d900;
}
.bg-violet-700\/10 {
  background-color: #6d28d91a;
}
.bg-violet-700\/100 {
  background-color: #6d28d9;
}
.bg-violet-700\/20 {
  background-color: #6d28d933;
}
.bg-violet-700\/25 {
  background-color: #6d28d940;
}
.bg-violet-700\/30 {
  background-color: #6d28d94d;
}
.bg-violet-700\/40 {
  background-color: #6d28d966;
}
.bg-violet-700\/5 {
  background-color: #6d28d90d;
}
.bg-violet-700\/50 {
  background-color: #6d28d980;
}
.bg-violet-700\/60 {
  background-color: #6d28d999;
}
.bg-violet-700\/70 {
  background-color: #6d28d9b3;
}
.bg-violet-700\/75 {
  background-color: #6d28d9bf;
}
.bg-violet-700\/80 {
  background-color: #6d28d9cc;
}
.bg-violet-700\/90 {
  background-color: #6d28d9e6;
}
.bg-violet-700\/95 {
  background-color: #6d28d9f2;
}
.bg-violet-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(91 33 182 / var(--tw-bg-opacity));
}
.bg-violet-800\/0 {
  background-color: #5b21b600;
}
.bg-violet-800\/10 {
  background-color: #5b21b61a;
}
.bg-violet-800\/100 {
  background-color: #5b21b6;
}
.bg-violet-800\/20 {
  background-color: #5b21b633;
}
.bg-violet-800\/25 {
  background-color: #5b21b640;
}
.bg-violet-800\/30 {
  background-color: #5b21b64d;
}
.bg-violet-800\/40 {
  background-color: #5b21b666;
}
.bg-violet-800\/5 {
  background-color: #5b21b60d;
}
.bg-violet-800\/50 {
  background-color: #5b21b680;
}
.bg-violet-800\/60 {
  background-color: #5b21b699;
}
.bg-violet-800\/70 {
  background-color: #5b21b6b3;
}
.bg-violet-800\/75 {
  background-color: #5b21b6bf;
}
.bg-violet-800\/80 {
  background-color: #5b21b6cc;
}
.bg-violet-800\/90 {
  background-color: #5b21b6e6;
}
.bg-violet-800\/95 {
  background-color: #5b21b6f2;
}
.bg-violet-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(76 29 149 / var(--tw-bg-opacity));
}
.bg-violet-900\/0 {
  background-color: #4c1d9500;
}
.bg-violet-900\/10 {
  background-color: #4c1d951a;
}
.bg-violet-900\/100 {
  background-color: #4c1d95;
}
.bg-violet-900\/20 {
  background-color: #4c1d9533;
}
.bg-violet-900\/25 {
  background-color: #4c1d9540;
}
.bg-violet-900\/30 {
  background-color: #4c1d954d;
}
.bg-violet-900\/40 {
  background-color: #4c1d9566;
}
.bg-violet-900\/5 {
  background-color: #4c1d950d;
}
.bg-violet-900\/50 {
  background-color: #4c1d9580;
}
.bg-violet-900\/60 {
  background-color: #4c1d9599;
}
.bg-violet-900\/70 {
  background-color: #4c1d95b3;
}
.bg-violet-900\/75 {
  background-color: #4c1d95bf;
}
.bg-violet-900\/80 {
  background-color: #4c1d95cc;
}
.bg-violet-900\/90 {
  background-color: #4c1d95e6;
}
.bg-violet-900\/95 {
  background-color: #4c1d95f2;
}
.bg-violet-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(46 16 101 / var(--tw-bg-opacity));
}
.bg-violet-950\/0 {
  background-color: #2e106500;
}
.bg-violet-950\/10 {
  background-color: #2e10651a;
}
.bg-violet-950\/100 {
  background-color: #2e1065;
}
.bg-violet-950\/20 {
  background-color: #2e106533;
}
.bg-violet-950\/25 {
  background-color: #2e106540;
}
.bg-violet-950\/30 {
  background-color: #2e10654d;
}
.bg-violet-950\/40 {
  background-color: #2e106566;
}
.bg-violet-950\/5 {
  background-color: #2e10650d;
}
.bg-violet-950\/50 {
  background-color: #2e106580;
}
.bg-violet-950\/60 {
  background-color: #2e106599;
}
.bg-violet-950\/70 {
  background-color: #2e1065b3;
}
.bg-violet-950\/75 {
  background-color: #2e1065bf;
}
.bg-violet-950\/80 {
  background-color: #2e1065cc;
}
.bg-violet-950\/90 {
  background-color: #2e1065e6;
}
.bg-violet-950\/95 {
  background-color: #2e1065f2;
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
.bg-white\/0 {
  background-color: #fff0;
}
.bg-white\/10 {
  background-color: #ffffff1a;
}
.bg-white\/100 {
  background-color: #fff;
}
.bg-white\/20 {
  background-color: #fff3;
}
.bg-white\/25 {
  background-color: #ffffff40;
}
.bg-white\/30 {
  background-color: #ffffff4d;
}
.bg-white\/40 {
  background-color: #fff6;
}
.bg-white\/5 {
  background-color: #ffffff0d;
}
.bg-white\/50 {
  background-color: #ffffff80;
}
.bg-white\/60 {
  background-color: #fff9;
}
.bg-white\/70 {
  background-color: #ffffffb3;
}
.bg-white\/75 {
  background-color: #ffffffbf;
}
.bg-white\/80 {
  background-color: #fffc;
}
.bg-white\/90 {
  background-color: #ffffffe6;
}
.bg-white\/95 {
  background-color: #fffffff2;
}
.bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity));
}
.bg-yellow-100\/0 {
  background-color: #fef9c300;
}
.bg-yellow-100\/10 {
  background-color: #fef9c31a;
}
.bg-yellow-100\/100 {
  background-color: #fef9c3;
}
.bg-yellow-100\/20 {
  background-color: #fef9c333;
}
.bg-yellow-100\/25 {
  background-color: #fef9c340;
}
.bg-yellow-100\/30 {
  background-color: #fef9c34d;
}
.bg-yellow-100\/40 {
  background-color: #fef9c366;
}
.bg-yellow-100\/5 {
  background-color: #fef9c30d;
}
.bg-yellow-100\/50 {
  background-color: #fef9c380;
}
.bg-yellow-100\/60 {
  background-color: #fef9c399;
}
.bg-yellow-100\/70 {
  background-color: #fef9c3b3;
}
.bg-yellow-100\/75 {
  background-color: #fef9c3bf;
}
.bg-yellow-100\/80 {
  background-color: #fef9c3cc;
}
.bg-yellow-100\/90 {
  background-color: #fef9c3e6;
}
.bg-yellow-100\/95 {
  background-color: #fef9c3f2;
}
.bg-yellow-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 240 138 / var(--tw-bg-opacity));
}
.bg-yellow-200\/0 {
  background-color: #fef08a00;
}
.bg-yellow-200\/10 {
  background-color: #fef08a1a;
}
.bg-yellow-200\/100 {
  background-color: #fef08a;
}
.bg-yellow-200\/20 {
  background-color: #fef08a33;
}
.bg-yellow-200\/25 {
  background-color: #fef08a40;
}
.bg-yellow-200\/30 {
  background-color: #fef08a4d;
}
.bg-yellow-200\/40 {
  background-color: #fef08a66;
}
.bg-yellow-200\/5 {
  background-color: #fef08a0d;
}
.bg-yellow-200\/50 {
  background-color: #fef08a80;
}
.bg-yellow-200\/60 {
  background-color: #fef08a99;
}
.bg-yellow-200\/70 {
  background-color: #fef08ab3;
}
.bg-yellow-200\/75 {
  background-color: #fef08abf;
}
.bg-yellow-200\/80 {
  background-color: #fef08acc;
}
.bg-yellow-200\/90 {
  background-color: #fef08ae6;
}
.bg-yellow-200\/95 {
  background-color: #fef08af2;
}
.bg-yellow-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 224 71 / var(--tw-bg-opacity));
}
.bg-yellow-300\/0 {
  background-color: #fde04700;
}
.bg-yellow-300\/10 {
  background-color: #fde0471a;
}
.bg-yellow-300\/100 {
  background-color: #fde047;
}
.bg-yellow-300\/20 {
  background-color: #fde04733;
}
.bg-yellow-300\/25 {
  background-color: #fde04740;
}
.bg-yellow-300\/30 {
  background-color: #fde0474d;
}
.bg-yellow-300\/40 {
  background-color: #fde04766;
}
.bg-yellow-300\/5 {
  background-color: #fde0470d;
}
.bg-yellow-300\/50 {
  background-color: #fde04780;
}
.bg-yellow-300\/60 {
  background-color: #fde04799;
}
.bg-yellow-300\/70 {
  background-color: #fde047b3;
}
.bg-yellow-300\/75 {
  background-color: #fde047bf;
}
.bg-yellow-300\/80 {
  background-color: #fde047cc;
}
.bg-yellow-300\/90 {
  background-color: #fde047e6;
}
.bg-yellow-300\/95 {
  background-color: #fde047f2;
}
.bg-yellow-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 204 21 / var(--tw-bg-opacity));
}
.bg-yellow-400\/0 {
  background-color: #facc1500;
}
.bg-yellow-400\/10 {
  background-color: #facc151a;
}
.bg-yellow-400\/100 {
  background-color: #facc15;
}
.bg-yellow-400\/20 {
  background-color: #facc1533;
}
.bg-yellow-400\/25 {
  background-color: #facc1540;
}
.bg-yellow-400\/30 {
  background-color: #facc154d;
}
.bg-yellow-400\/40 {
  background-color: #facc1566;
}
.bg-yellow-400\/5 {
  background-color: #facc150d;
}
.bg-yellow-400\/50 {
  background-color: #facc1580;
}
.bg-yellow-400\/60 {
  background-color: #facc1599;
}
.bg-yellow-400\/70 {
  background-color: #facc15b3;
}
.bg-yellow-400\/75 {
  background-color: #facc15bf;
}
.bg-yellow-400\/80 {
  background-color: #facc15cc;
}
.bg-yellow-400\/90 {
  background-color: #facc15e6;
}
.bg-yellow-400\/95 {
  background-color: #facc15f2;
}
.bg-yellow-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}
.bg-yellow-50\/0 {
  background-color: #fefce800;
}
.bg-yellow-50\/10 {
  background-color: #fefce81a;
}
.bg-yellow-50\/100 {
  background-color: #fefce8;
}
.bg-yellow-50\/20 {
  background-color: #fefce833;
}
.bg-yellow-50\/25 {
  background-color: #fefce840;
}
.bg-yellow-50\/30 {
  background-color: #fefce84d;
}
.bg-yellow-50\/40 {
  background-color: #fefce866;
}
.bg-yellow-50\/5 {
  background-color: #fefce80d;
}
.bg-yellow-50\/50 {
  background-color: #fefce880;
}
.bg-yellow-50\/60 {
  background-color: #fefce899;
}
.bg-yellow-50\/70 {
  background-color: #fefce8b3;
}
.bg-yellow-50\/75 {
  background-color: #fefce8bf;
}
.bg-yellow-50\/80 {
  background-color: #fefce8cc;
}
.bg-yellow-50\/90 {
  background-color: #fefce8e6;
}
.bg-yellow-50\/95 {
  background-color: #fefce8f2;
}
.bg-yellow-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity));
}
.bg-yellow-500\/0 {
  background-color: #eab30800;
}
.bg-yellow-500\/10 {
  background-color: #eab3081a;
}
.bg-yellow-500\/100 {
  background-color: #eab308;
}
.bg-yellow-500\/20 {
  background-color: #eab30833;
}
.bg-yellow-500\/25 {
  background-color: #eab30840;
}
.bg-yellow-500\/30 {
  background-color: #eab3084d;
}
.bg-yellow-500\/40 {
  background-color: #eab30866;
}
.bg-yellow-500\/5 {
  background-color: #eab3080d;
}
.bg-yellow-500\/50 {
  background-color: #eab30880;
}
.bg-yellow-500\/60 {
  background-color: #eab30899;
}
.bg-yellow-500\/70 {
  background-color: #eab308b3;
}
.bg-yellow-500\/75 {
  background-color: #eab308bf;
}
.bg-yellow-500\/80 {
  background-color: #eab308cc;
}
.bg-yellow-500\/90 {
  background-color: #eab308e6;
}
.bg-yellow-500\/95 {
  background-color: #eab308f2;
}
.bg-yellow-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity));
}
.bg-yellow-600\/0 {
  background-color: #ca8a0400;
}
.bg-yellow-600\/10 {
  background-color: #ca8a041a;
}
.bg-yellow-600\/100 {
  background-color: #ca8a04;
}
.bg-yellow-600\/20 {
  background-color: #ca8a0433;
}
.bg-yellow-600\/25 {
  background-color: #ca8a0440;
}
.bg-yellow-600\/30 {
  background-color: #ca8a044d;
}
.bg-yellow-600\/40 {
  background-color: #ca8a0466;
}
.bg-yellow-600\/5 {
  background-color: #ca8a040d;
}
.bg-yellow-600\/50 {
  background-color: #ca8a0480;
}
.bg-yellow-600\/60 {
  background-color: #ca8a0499;
}
.bg-yellow-600\/70 {
  background-color: #ca8a04b3;
}
.bg-yellow-600\/75 {
  background-color: #ca8a04bf;
}
.bg-yellow-600\/80 {
  background-color: #ca8a04cc;
}
.bg-yellow-600\/90 {
  background-color: #ca8a04e6;
}
.bg-yellow-600\/95 {
  background-color: #ca8a04f2;
}
.bg-yellow-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(161 98 7 / var(--tw-bg-opacity));
}
.bg-yellow-700\/0 {
  background-color: #a1620700;
}
.bg-yellow-700\/10 {
  background-color: #a162071a;
}
.bg-yellow-700\/100 {
  background-color: #a16207;
}
.bg-yellow-700\/20 {
  background-color: #a1620733;
}
.bg-yellow-700\/25 {
  background-color: #a1620740;
}
.bg-yellow-700\/30 {
  background-color: #a162074d;
}
.bg-yellow-700\/40 {
  background-color: #a1620766;
}
.bg-yellow-700\/5 {
  background-color: #a162070d;
}
.bg-yellow-700\/50 {
  background-color: #a1620780;
}
.bg-yellow-700\/60 {
  background-color: #a1620799;
}
.bg-yellow-700\/70 {
  background-color: #a16207b3;
}
.bg-yellow-700\/75 {
  background-color: #a16207bf;
}
.bg-yellow-700\/80 {
  background-color: #a16207cc;
}
.bg-yellow-700\/90 {
  background-color: #a16207e6;
}
.bg-yellow-700\/95 {
  background-color: #a16207f2;
}
.bg-yellow-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(133 77 14 / var(--tw-bg-opacity));
}
.bg-yellow-800\/0 {
  background-color: #854d0e00;
}
.bg-yellow-800\/10 {
  background-color: #854d0e1a;
}
.bg-yellow-800\/100 {
  background-color: #854d0e;
}
.bg-yellow-800\/20 {
  background-color: #854d0e33;
}
.bg-yellow-800\/25 {
  background-color: #854d0e40;
}
.bg-yellow-800\/30 {
  background-color: #854d0e4d;
}
.bg-yellow-800\/40 {
  background-color: #854d0e66;
}
.bg-yellow-800\/5 {
  background-color: #854d0e0d;
}
.bg-yellow-800\/50 {
  background-color: #854d0e80;
}
.bg-yellow-800\/60 {
  background-color: #854d0e99;
}
.bg-yellow-800\/70 {
  background-color: #854d0eb3;
}
.bg-yellow-800\/75 {
  background-color: #854d0ebf;
}
.bg-yellow-800\/80 {
  background-color: #854d0ecc;
}
.bg-yellow-800\/90 {
  background-color: #854d0ee6;
}
.bg-yellow-800\/95 {
  background-color: #854d0ef2;
}
.bg-yellow-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(113 63 18 / var(--tw-bg-opacity));
}
.bg-yellow-900\/0 {
  background-color: #713f1200;
}
.bg-yellow-900\/10 {
  background-color: #713f121a;
}
.bg-yellow-900\/100 {
  background-color: #713f12;
}
.bg-yellow-900\/20 {
  background-color: #713f1233;
}
.bg-yellow-900\/25 {
  background-color: #713f1240;
}
.bg-yellow-900\/30 {
  background-color: #713f124d;
}
.bg-yellow-900\/40 {
  background-color: #713f1266;
}
.bg-yellow-900\/5 {
  background-color: #713f120d;
}
.bg-yellow-900\/50 {
  background-color: #713f1280;
}
.bg-yellow-900\/60 {
  background-color: #713f1299;
}
.bg-yellow-900\/70 {
  background-color: #713f12b3;
}
.bg-yellow-900\/75 {
  background-color: #713f12bf;
}
.bg-yellow-900\/80 {
  background-color: #713f12cc;
}
.bg-yellow-900\/90 {
  background-color: #713f12e6;
}
.bg-yellow-900\/95 {
  background-color: #713f12f2;
}
.bg-yellow-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(66 32 6 / var(--tw-bg-opacity));
}
.bg-yellow-950\/0 {
  background-color: #42200600;
}
.bg-yellow-950\/10 {
  background-color: #4220061a;
}
.bg-yellow-950\/100 {
  background-color: #422006;
}
.bg-yellow-950\/20 {
  background-color: #42200633;
}
.bg-yellow-950\/25 {
  background-color: #42200640;
}
.bg-yellow-950\/30 {
  background-color: #4220064d;
}
.bg-yellow-950\/40 {
  background-color: #42200666;
}
.bg-yellow-950\/5 {
  background-color: #4220060d;
}
.bg-yellow-950\/50 {
  background-color: #42200680;
}
.bg-yellow-950\/60 {
  background-color: #42200699;
}
.bg-yellow-950\/70 {
  background-color: #422006b3;
}
.bg-yellow-950\/75 {
  background-color: #422006bf;
}
.bg-yellow-950\/80 {
  background-color: #422006cc;
}
.bg-yellow-950\/90 {
  background-color: #422006e6;
}
.bg-yellow-950\/95 {
  background-color: #422006f2;
}
.bg-zinc-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 244 245 / var(--tw-bg-opacity));
}
.bg-zinc-100\/0 {
  background-color: #f4f4f500;
}
.bg-zinc-100\/10 {
  background-color: #f4f4f51a;
}
.bg-zinc-100\/100 {
  background-color: #f4f4f5;
}
.bg-zinc-100\/20 {
  background-color: #f4f4f533;
}
.bg-zinc-100\/25 {
  background-color: #f4f4f540;
}
.bg-zinc-100\/30 {
  background-color: #f4f4f54d;
}
.bg-zinc-100\/40 {
  background-color: #f4f4f566;
}
.bg-zinc-100\/5 {
  background-color: #f4f4f50d;
}
.bg-zinc-100\/50 {
  background-color: #f4f4f580;
}
.bg-zinc-100\/60 {
  background-color: #f4f4f599;
}
.bg-zinc-100\/70 {
  background-color: #f4f4f5b3;
}
.bg-zinc-100\/75 {
  background-color: #f4f4f5bf;
}
.bg-zinc-100\/80 {
  background-color: #f4f4f5cc;
}
.bg-zinc-100\/90 {
  background-color: #f4f4f5e6;
}
.bg-zinc-100\/95 {
  background-color: #f4f4f5f2;
}
.bg-zinc-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(228 228 231 / var(--tw-bg-opacity));
}
.bg-zinc-200\/0 {
  background-color: #e4e4e700;
}
.bg-zinc-200\/10 {
  background-color: #e4e4e71a;
}
.bg-zinc-200\/100 {
  background-color: #e4e4e7;
}
.bg-zinc-200\/20 {
  background-color: #e4e4e733;
}
.bg-zinc-200\/25 {
  background-color: #e4e4e740;
}
.bg-zinc-200\/30 {
  background-color: #e4e4e74d;
}
.bg-zinc-200\/40 {
  background-color: #e4e4e766;
}
.bg-zinc-200\/5 {
  background-color: #e4e4e70d;
}
.bg-zinc-200\/50 {
  background-color: #e4e4e780;
}
.bg-zinc-200\/60 {
  background-color: #e4e4e799;
}
.bg-zinc-200\/70 {
  background-color: #e4e4e7b3;
}
.bg-zinc-200\/75 {
  background-color: #e4e4e7bf;
}
.bg-zinc-200\/80 {
  background-color: #e4e4e7cc;
}
.bg-zinc-200\/90 {
  background-color: #e4e4e7e6;
}
.bg-zinc-200\/95 {
  background-color: #e4e4e7f2;
}
.bg-zinc-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(212 212 216 / var(--tw-bg-opacity));
}
.bg-zinc-300\/0 {
  background-color: #d4d4d800;
}
.bg-zinc-300\/10 {
  background-color: #d4d4d81a;
}
.bg-zinc-300\/100 {
  background-color: #d4d4d8;
}
.bg-zinc-300\/20 {
  background-color: #d4d4d833;
}
.bg-zinc-300\/25 {
  background-color: #d4d4d840;
}
.bg-zinc-300\/30 {
  background-color: #d4d4d84d;
}
.bg-zinc-300\/40 {
  background-color: #d4d4d866;
}
.bg-zinc-300\/5 {
  background-color: #d4d4d80d;
}
.bg-zinc-300\/50 {
  background-color: #d4d4d880;
}
.bg-zinc-300\/60 {
  background-color: #d4d4d899;
}
.bg-zinc-300\/70 {
  background-color: #d4d4d8b3;
}
.bg-zinc-300\/75 {
  background-color: #d4d4d8bf;
}
.bg-zinc-300\/80 {
  background-color: #d4d4d8cc;
}
.bg-zinc-300\/90 {
  background-color: #d4d4d8e6;
}
.bg-zinc-300\/95 {
  background-color: #d4d4d8f2;
}
.bg-zinc-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(161 161 170 / var(--tw-bg-opacity));
}
.bg-zinc-400\/0 {
  background-color: #a1a1aa00;
}
.bg-zinc-400\/10 {
  background-color: #a1a1aa1a;
}
.bg-zinc-400\/100 {
  background-color: #a1a1aa;
}
.bg-zinc-400\/20 {
  background-color: #a1a1aa33;
}
.bg-zinc-400\/25 {
  background-color: #a1a1aa40;
}
.bg-zinc-400\/30 {
  background-color: #a1a1aa4d;
}
.bg-zinc-400\/40 {
  background-color: #a1a1aa66;
}
.bg-zinc-400\/5 {
  background-color: #a1a1aa0d;
}
.bg-zinc-400\/50 {
  background-color: #a1a1aa80;
}
.bg-zinc-400\/60 {
  background-color: #a1a1aa99;
}
.bg-zinc-400\/70 {
  background-color: #a1a1aab3;
}
.bg-zinc-400\/75 {
  background-color: #a1a1aabf;
}
.bg-zinc-400\/80 {
  background-color: #a1a1aacc;
}
.bg-zinc-400\/90 {
  background-color: #a1a1aae6;
}
.bg-zinc-400\/95 {
  background-color: #a1a1aaf2;
}
.bg-zinc-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 250 / var(--tw-bg-opacity));
}
.bg-zinc-50\/0 {
  background-color: #fafafa00;
}
.bg-zinc-50\/10 {
  background-color: #fafafa1a;
}
.bg-zinc-50\/100 {
  background-color: #fafafa;
}
.bg-zinc-50\/20 {
  background-color: #fafafa33;
}
.bg-zinc-50\/25 {
  background-color: #fafafa40;
}
.bg-zinc-50\/30 {
  background-color: #fafafa4d;
}
.bg-zinc-50\/40 {
  background-color: #fafafa66;
}
.bg-zinc-50\/5 {
  background-color: #fafafa0d;
}
.bg-zinc-50\/50 {
  background-color: #fafafa80;
}
.bg-zinc-50\/60 {
  background-color: #fafafa99;
}
.bg-zinc-50\/70 {
  background-color: #fafafab3;
}
.bg-zinc-50\/75 {
  background-color: #fafafabf;
}
.bg-zinc-50\/80 {
  background-color: #fafafacc;
}
.bg-zinc-50\/90 {
  background-color: #fafafae6;
}
.bg-zinc-50\/95 {
  background-color: #fafafaf2;
}
.bg-zinc-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(113 113 122 / var(--tw-bg-opacity));
}
.bg-zinc-500\/0 {
  background-color: #71717a00;
}
.bg-zinc-500\/10 {
  background-color: #71717a1a;
}
.bg-zinc-500\/100 {
  background-color: #71717a;
}
.bg-zinc-500\/20 {
  background-color: #71717a33;
}
.bg-zinc-500\/25 {
  background-color: #71717a40;
}
.bg-zinc-500\/30 {
  background-color: #71717a4d;
}
.bg-zinc-500\/40 {
  background-color: #71717a66;
}
.bg-zinc-500\/5 {
  background-color: #71717a0d;
}
.bg-zinc-500\/50 {
  background-color: #71717a80;
}
.bg-zinc-500\/60 {
  background-color: #71717a99;
}
.bg-zinc-500\/70 {
  background-color: #71717ab3;
}
.bg-zinc-500\/75 {
  background-color: #71717abf;
}
.bg-zinc-500\/80 {
  background-color: #71717acc;
}
.bg-zinc-500\/90 {
  background-color: #71717ae6;
}
.bg-zinc-500\/95 {
  background-color: #71717af2;
}
.bg-zinc-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(82 82 91 / var(--tw-bg-opacity));
}
.bg-zinc-600\/0 {
  background-color: #52525b00;
}
.bg-zinc-600\/10 {
  background-color: #52525b1a;
}
.bg-zinc-600\/100 {
  background-color: #52525b;
}
.bg-zinc-600\/20 {
  background-color: #52525b33;
}
.bg-zinc-600\/25 {
  background-color: #52525b40;
}
.bg-zinc-600\/30 {
  background-color: #52525b4d;
}
.bg-zinc-600\/40 {
  background-color: #52525b66;
}
.bg-zinc-600\/5 {
  background-color: #52525b0d;
}
.bg-zinc-600\/50 {
  background-color: #52525b80;
}
.bg-zinc-600\/60 {
  background-color: #52525b99;
}
.bg-zinc-600\/70 {
  background-color: #52525bb3;
}
.bg-zinc-600\/75 {
  background-color: #52525bbf;
}
.bg-zinc-600\/80 {
  background-color: #52525bcc;
}
.bg-zinc-600\/90 {
  background-color: #52525be6;
}
.bg-zinc-600\/95 {
  background-color: #52525bf2;
}
.bg-zinc-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(63 63 70 / var(--tw-bg-opacity));
}
.bg-zinc-700\/0 {
  background-color: #3f3f4600;
}
.bg-zinc-700\/10 {
  background-color: #3f3f461a;
}
.bg-zinc-700\/100 {
  background-color: #3f3f46;
}
.bg-zinc-700\/20 {
  background-color: #3f3f4633;
}
.bg-zinc-700\/25 {
  background-color: #3f3f4640;
}
.bg-zinc-700\/30 {
  background-color: #3f3f464d;
}
.bg-zinc-700\/40 {
  background-color: #3f3f4666;
}
.bg-zinc-700\/5 {
  background-color: #3f3f460d;
}
.bg-zinc-700\/50 {
  background-color: #3f3f4680;
}
.bg-zinc-700\/60 {
  background-color: #3f3f4699;
}
.bg-zinc-700\/70 {
  background-color: #3f3f46b3;
}
.bg-zinc-700\/75 {
  background-color: #3f3f46bf;
}
.bg-zinc-700\/80 {
  background-color: #3f3f46cc;
}
.bg-zinc-700\/90 {
  background-color: #3f3f46e6;
}
.bg-zinc-700\/95 {
  background-color: #3f3f46f2;
}
.bg-zinc-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(39 39 42 / var(--tw-bg-opacity));
}
.bg-zinc-800\/0 {
  background-color: #27272a00;
}
.bg-zinc-800\/10 {
  background-color: #27272a1a;
}
.bg-zinc-800\/100 {
  background-color: #27272a;
}
.bg-zinc-800\/20 {
  background-color: #27272a33;
}
.bg-zinc-800\/25 {
  background-color: #27272a40;
}
.bg-zinc-800\/30 {
  background-color: #27272a4d;
}
.bg-zinc-800\/40 {
  background-color: #27272a66;
}
.bg-zinc-800\/5 {
  background-color: #27272a0d;
}
.bg-zinc-800\/50 {
  background-color: #27272a80;
}
.bg-zinc-800\/60 {
  background-color: #27272a99;
}
.bg-zinc-800\/70 {
  background-color: #27272ab3;
}
.bg-zinc-800\/75 {
  background-color: #27272abf;
}
.bg-zinc-800\/80 {
  background-color: #27272acc;
}
.bg-zinc-800\/90 {
  background-color: #27272ae6;
}
.bg-zinc-800\/95 {
  background-color: #27272af2;
}
.bg-zinc-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(24 24 27 / var(--tw-bg-opacity));
}
.bg-zinc-900\/0 {
  background-color: #18181b00;
}
.bg-zinc-900\/10 {
  background-color: #18181b1a;
}
.bg-zinc-900\/100 {
  background-color: #18181b;
}
.bg-zinc-900\/20 {
  background-color: #18181b33;
}
.bg-zinc-900\/25 {
  background-color: #18181b40;
}
.bg-zinc-900\/30 {
  background-color: #18181b4d;
}
.bg-zinc-900\/40 {
  background-color: #18181b66;
}
.bg-zinc-900\/5 {
  background-color: #18181b0d;
}
.bg-zinc-900\/50 {
  background-color: #18181b80;
}
.bg-zinc-900\/60 {
  background-color: #18181b99;
}
.bg-zinc-900\/70 {
  background-color: #18181bb3;
}
.bg-zinc-900\/75 {
  background-color: #18181bbf;
}
.bg-zinc-900\/80 {
  background-color: #18181bcc;
}
.bg-zinc-900\/90 {
  background-color: #18181be6;
}
.bg-zinc-900\/95 {
  background-color: #18181bf2;
}
.bg-zinc-950 {
  --tw-bg-opacity: 1;
  background-color: rgb(9 9 11 / var(--tw-bg-opacity));
}
.bg-zinc-950\/0 {
  background-color: #09090b00;
}
.bg-zinc-950\/10 {
  background-color: #09090b1a;
}
.bg-zinc-950\/100 {
  background-color: #09090b;
}
.bg-zinc-950\/20 {
  background-color: #09090b33;
}
.bg-zinc-950\/25 {
  background-color: #09090b40;
}
.bg-zinc-950\/30 {
  background-color: #09090b4d;
}
.bg-zinc-950\/40 {
  background-color: #09090b66;
}
.bg-zinc-950\/5 {
  background-color: #09090b0d;
}
.bg-zinc-950\/50 {
  background-color: #09090b80;
}
.bg-zinc-950\/60 {
  background-color: #09090b99;
}
.bg-zinc-950\/70 {
  background-color: #09090bb3;
}
.bg-zinc-950\/75 {
  background-color: #09090bbf;
}
.bg-zinc-950\/80 {
  background-color: #09090bcc;
}
.bg-zinc-950\/90 {
  background-color: #09090be6;
}
.bg-zinc-950\/95 {
  background-color: #09090bf2;
}
.bg-opacity-0 {
  --tw-bg-opacity: 0;
}
.bg-opacity-10 {
  --tw-bg-opacity: 0.1;
}
.bg-opacity-100 {
  --tw-bg-opacity: 1;
}
.bg-opacity-20 {
  --tw-bg-opacity: 0.2;
}
.bg-opacity-25 {
  --tw-bg-opacity: 0.25;
}
.bg-opacity-30 {
  --tw-bg-opacity: 0.3;
}
.bg-opacity-40 {
  --tw-bg-opacity: 0.4;
}
.bg-opacity-5 {
  --tw-bg-opacity: 0.05;
}
.bg-opacity-50 {
  --tw-bg-opacity: 0.5;
}
.bg-opacity-60 {
  --tw-bg-opacity: 0.6;
}
.bg-opacity-70 {
  --tw-bg-opacity: 0.7;
}
.bg-opacity-75 {
  --tw-bg-opacity: 0.75;
}
.bg-opacity-80 {
  --tw-bg-opacity: 0.8;
}
.bg-opacity-90 {
  --tw-bg-opacity: 0.9;
}
.bg-opacity-95 {
  --tw-bg-opacity: 0.95;
}
.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.bg-gradient-to-bl {
  background-image: linear-gradient(to bottom left, var(--tw-gradient-stops));
}
.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-l {
  background-image: linear-gradient(to left, var(--tw-gradient-stops));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}
.bg-gradient-to-tl {
  background-image: linear-gradient(to top left, var(--tw-gradient-stops));
}
.bg-gradient-to-tr {
  background-image: linear-gradient(to top right, var(--tw-gradient-stops));
}
.bg-none {
  background-image: none;
}
.decoration-slice {
  -webkit-box-decoration-break: slice;
  box-decoration-break: slice;
}
.decoration-clone {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.box-decoration-slice {
  -webkit-box-decoration-break: slice;
  box-decoration-break: slice;
}
.box-decoration-clone {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.bg-auto {
  background-size: auto;
}
.bg-contain {
  background-size: contain;
}
.bg-cover {
  background-size: cover;
}
.bg-fixed {
  background-attachment: fixed;
}
.bg-local {
  background-attachment: local;
}
.bg-scroll {
  background-attachment: scroll;
}
.bg-clip-border {
  background-clip: initial;
}
.bg-clip-padding {
  background-clip: padding-box;
}
.bg-clip-content {
  background-clip: content-box;
}
.bg-clip-text {
  -webkit-background-clip: text;
  background-clip: text;
}
.bg-bottom {
  background-position: bottom;
}
.bg-center {
  background-position: 50%;
}
.bg-left {
  background-position: 0;
}
.bg-left-bottom {
  background-position: 0 100%;
}
.bg-left-top {
  background-position: 0 0;
}
.bg-right {
  background-position: 100%;
}
.bg-right-bottom {
  background-position: 100% 100%;
}
.bg-right-top {
  background-position: 100% 0;
}
.bg-top {
  background-position: top;
}
.bg-repeat {
  background-repeat: repeat;
}
.bg-no-repeat {
  background-repeat: no-repeat;
}
.bg-repeat-x {
  background-repeat: repeat-x;
}
.bg-repeat-y {
  background-repeat: repeat-y;
}
.bg-repeat-round {
  background-repeat: round;
}
.bg-repeat-space {
  background-repeat: space;
}
.bg-origin-border {
  background-origin: border-box;
}
.bg-origin-padding {
  background-origin: initial;
}
.bg-origin-content {
  background-origin: content-box;
}
.fill-current {
  fill: currentColor;
}
.object-contain {
  -o-object-fit: contain;
  object-fit: contain;
}
.object-cover {
  -o-object-fit: cover;
  object-fit: cover;
}
.object-fill {
  -o-object-fit: fill;
  object-fit: fill;
}
.object-none {
  -o-object-fit: none;
  object-fit: none;
}
.object-scale-down {
  -o-object-fit: scale-down;
  object-fit: scale-down;
}
.p-0 {
  padding: 0;
}
.p-0\.5 {
  padding: 0.125rem;
}
.p-1 {
  padding: 0.25rem;
}
.p-1\.5 {
  padding: 0.375rem;
}
.p-10 {
  padding: 2.5rem;
}
.p-11 {
  padding: 2.75rem;
}
.p-12 {
  padding: 3rem;
}
.p-14 {
  padding: 3.5rem;
}
.p-16 {
  padding: 4rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-2\.5 {
  padding: 0.625rem;
}
.p-20 {
  padding: 5rem;
}
.p-24 {
  padding: 6rem;
}
.p-28 {
  padding: 7rem;
}
.p-3 {
  padding: 0.75rem;
}
.p-3\.5 {
  padding: 0.875rem;
}
.p-32 {
  padding: 8rem;
}
.p-36 {
  padding: 9rem;
}
.p-4 {
  padding: 1rem;
}
.p-40 {
  padding: 10rem;
}
.p-44 {
  padding: 11rem;
}
.p-48 {
  padding: 12rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-52 {
  padding: 13rem;
}
.p-56 {
  padding: 14rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-60 {
  padding: 15rem;
}
.p-64 {
  padding: 16rem;
}
.p-7 {
  padding: 1.75rem;
}
.p-72 {
  padding: 18rem;
}
.p-8 {
  padding: 2rem;
}
.p-80 {
  padding: 20rem;
}
.p-9 {
  padding: 2.25rem;
}
.p-96 {
  padding: 24rem;
}
.p-px {
  padding: 1px;
}
.px-0 {
  padding-left: 0;
  padding-right: 0;
}
.px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}
.px-11 {
  padding-left: 2.75rem;
  padding-right: 2.75rem;
}
.px-12 {
  padding-left: 3rem;
  padding-right: 3rem;
}
.px-14 {
  padding-left: 3.5rem;
  padding-right: 3.5rem;
}
.px-16 {
  padding-left: 4rem;
  padding-right: 4rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-20 {
  padding-left: 5rem;
  padding-right: 5rem;
}
.px-24 {
  padding-left: 6rem;
  padding-right: 6rem;
}
.px-28 {
  padding-left: 7rem;
  padding-right: 7rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-32 {
  padding-left: 8rem;
  padding-right: 8rem;
}
.px-36 {
  padding-left: 9rem;
  padding-right: 9rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-40 {
  padding-left: 10rem;
  padding-right: 10rem;
}
.px-44 {
  padding-left: 11rem;
  padding-right: 11rem;
}
.px-48 {
  padding-left: 12rem;
  padding-right: 12rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-52 {
  padding-left: 13rem;
  padding-right: 13rem;
}
.px-56 {
  padding-left: 14rem;
  padding-right: 14rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-60 {
  padding-left: 15rem;
  padding-right: 15rem;
}
.px-64 {
  padding-left: 16rem;
  padding-right: 16rem;
}
.px-7 {
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}
.px-72 {
  padding-left: 18rem;
  padding-right: 18rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.px-80 {
  padding-left: 20rem;
  padding-right: 20rem;
}
.px-9 {
  padding-left: 2.25rem;
  padding-right: 2.25rem;
}
.px-96 {
  padding-left: 24rem;
  padding-right: 24rem;
}
.px-px {
  padding-left: 1px;
  padding-right: 1px;
}
.py-0 {
  padding-top: 0;
  padding-bottom: 0;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-11 {
  padding-top: 2.75rem;
  padding-bottom: 2.75rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-14 {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-24 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.py-28 {
  padding-top: 7rem;
  padding-bottom: 7rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-32 {
  padding-top: 8rem;
  padding-bottom: 8rem;
}
.py-36 {
  padding-top: 9rem;
  padding-bottom: 9rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-40 {
  padding-top: 10rem;
  padding-bottom: 10rem;
}
.py-44 {
  padding-top: 11rem;
  padding-bottom: 11rem;
}
.py-48 {
  padding-top: 12rem;
  padding-bottom: 12rem;
}
.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-52 {
  padding-top: 13rem;
  padding-bottom: 13rem;
}
.py-56 {
  padding-top: 14rem;
  padding-bottom: 14rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-60 {
  padding-top: 15rem;
  padding-bottom: 15rem;
}
.py-64 {
  padding-top: 16rem;
  padding-bottom: 16rem;
}
.py-7 {
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}
.py-72 {
  padding-top: 18rem;
  padding-bottom: 18rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-80 {
  padding-top: 20rem;
  padding-bottom: 20rem;
}
.py-9 {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
}
.py-96 {
  padding-top: 24rem;
  padding-bottom: 24rem;
}
.py-px {
  padding-top: 1px;
  padding-bottom: 1px;
}
.pb-0 {
  padding-bottom: 0;
}
.pb-0\.5 {
  padding-bottom: 0.125rem;
}
.pb-1 {
  padding-bottom: 0.25rem;
}
.pb-1\.5 {
  padding-bottom: 0.375rem;
}
.pb-10 {
  padding-bottom: 2.5rem;
}
.pb-11 {
  padding-bottom: 2.75rem;
}
.pb-12 {
  padding-bottom: 3rem;
}
.pb-14 {
  padding-bottom: 3.5rem;
}
.pb-16 {
  padding-bottom: 4rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-2\.5 {
  padding-bottom: 0.625rem;
}
.pb-20 {
  padding-bottom: 5rem;
}
.pb-24 {
  padding-bottom: 6rem;
}
.pb-28 {
  padding-bottom: 7rem;
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pb-3\.5 {
  padding-bottom: 0.875rem;
}
.pb-32 {
  padding-bottom: 8rem;
}
.pb-36 {
  padding-bottom: 9rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pb-40 {
  padding-bottom: 10rem;
}
.pb-44 {
  padding-bottom: 11rem;
}
.pb-48 {
  padding-bottom: 12rem;
}
.pb-5 {
  padding-bottom: 1.25rem;
}
.pb-52 {
  padding-bottom: 13rem;
}
.pb-56 {
  padding-bottom: 14rem;
}
.pb-6 {
  padding-bottom: 1.5rem;
}
.pb-60 {
  padding-bottom: 15rem;
}
.pb-64 {
  padding-bottom: 16rem;
}
.pb-7 {
  padding-bottom: 1.75rem;
}
.pb-72 {
  padding-bottom: 18rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pb-80 {
  padding-bottom: 20rem;
}
.pb-9 {
  padding-bottom: 2.25rem;
}
.pb-96 {
  padding-bottom: 24rem;
}
.pb-px {
  padding-bottom: 1px;
}
.pl-0 {
  padding-left: 0;
}
.pl-0\.5 {
  padding-left: 0.125rem;
}
.pl-1 {
  padding-left: 0.25rem;
}
.pl-1\.5 {
  padding-left: 0.375rem;
}
.pl-10 {
  padding-left: 2.5rem;
}
.pl-11 {
  padding-left: 2.75rem;
}
.pl-12 {
  padding-left: 3rem;
}
.pl-14 {
  padding-left: 3.5rem;
}
.pl-16 {
  padding-left: 4rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-2\.5 {
  padding-left: 0.625rem;
}
.pl-20 {
  padding-left: 5rem;
}
.pl-24 {
  padding-left: 6rem;
}
.pl-28 {
  padding-left: 7rem;
}
.pl-3 {
  padding-left: 0.75rem;
}
.pl-3\.5 {
  padding-left: 0.875rem;
}
.pl-32 {
  padding-left: 8rem;
}
.pl-36 {
  padding-left: 9rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pl-40 {
  padding-left: 10rem;
}
.pl-44 {
  padding-left: 11rem;
}
.pl-48 {
  padding-left: 12rem;
}
.pl-5 {
  padding-left: 1.25rem;
}
.pl-52 {
  padding-left: 13rem;
}
.pl-56 {
  padding-left: 14rem;
}
.pl-6 {
  padding-left: 1.5rem;
}
.pl-60 {
  padding-left: 15rem;
}
.pl-64 {
  padding-left: 16rem;
}
.pl-7 {
  padding-left: 1.75rem;
}
.pl-72 {
  padding-left: 18rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pl-80 {
  padding-left: 20rem;
}
.pl-9 {
  padding-left: 2.25rem;
}
.pl-96 {
  padding-left: 24rem;
}
.pl-px {
  padding-left: 1px;
}
.pr-0 {
  padding-right: 0;
}
.pr-0\.5 {
  padding-right: 0.125rem;
}
.pr-1 {
  padding-right: 0.25rem;
}
.pr-1\.5 {
  padding-right: 0.375rem;
}
.pr-10 {
  padding-right: 2.5rem;
}
.pr-11 {
  padding-right: 2.75rem;
}
.pr-12 {
  padding-right: 3rem;
}
.pr-14 {
  padding-right: 3.5rem;
}
.pr-16 {
  padding-right: 4rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-2\.5 {
  padding-right: 0.625rem;
}
.pr-20 {
  padding-right: 5rem;
}
.pr-24 {
  padding-right: 6rem;
}
.pr-28 {
  padding-right: 7rem;
}
.pr-3 {
  padding-right: 0.75rem;
}
.pr-3\.5 {
  padding-right: 0.875rem;
}
.pr-32 {
  padding-right: 8rem;
}
.pr-36 {
  padding-right: 9rem;
}
.pr-4 {
  padding-right: 1rem;
}
.pr-40 {
  padding-right: 10rem;
}
.pr-44 {
  padding-right: 11rem;
}
.pr-48 {
  padding-right: 12rem;
}
.pr-5 {
  padding-right: 1.25rem;
}
.pr-52 {
  padding-right: 13rem;
}
.pr-56 {
  padding-right: 14rem;
}
.pr-6 {
  padding-right: 1.5rem;
}
.pr-60 {
  padding-right: 15rem;
}
.pr-64 {
  padding-right: 16rem;
}
.pr-7 {
  padding-right: 1.75rem;
}
.pr-72 {
  padding-right: 18rem;
}
.pr-8 {
  padding-right: 2rem;
}
.pr-80 {
  padding-right: 20rem;
}
.pr-9 {
  padding-right: 2.25rem;
}
.pr-96 {
  padding-right: 24rem;
}
.pr-px {
  padding-right: 1px;
}
.pt-0 {
  padding-top: 0;
}
.pt-0\.5 {
  padding-top: 0.125rem;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-1\.5 {
  padding-top: 0.375rem;
}
.pt-10 {
  padding-top: 2.5rem;
}
.pt-11 {
  padding-top: 2.75rem;
}
.pt-12 {
  padding-top: 3rem;
}
.pt-14 {
  padding-top: 3.5rem;
}
.pt-16 {
  padding-top: 4rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-2\.5 {
  padding-top: 0.625rem;
}
.pt-20 {
  padding-top: 5rem;
}
.pt-24 {
  padding-top: 6rem;
}
.pt-28 {
  padding-top: 7rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-3\.5 {
  padding-top: 0.875rem;
}
.pt-32 {
  padding-top: 8rem;
}
.pt-36 {
  padding-top: 9rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-40 {
  padding-top: 10rem;
}
.pt-44 {
  padding-top: 11rem;
}
.pt-48 {
  padding-top: 12rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.pt-52 {
  padding-top: 13rem;
}
.pt-56 {
  padding-top: 14rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-60 {
  padding-top: 15rem;
}
.pt-64 {
  padding-top: 16rem;
}
.pt-7 {
  padding-top: 1.75rem;
}
.pt-72 {
  padding-top: 18rem;
}
.pt-8 {
  padding-top: 2rem;
}
.pt-80 {
  padding-top: 20rem;
}
.pt-9 {
  padding-top: 2.25rem;
}
.pt-96 {
  padding-top: 24rem;
}
.pt-px {
  padding-top: 1px;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.text-justify {
  text-align: justify;
}
.text-start {
  text-align: start;
}
.text-end {
  text-align: end;
}
.align-baseline {
  vertical-align: initial;
}
.align-top {
  vertical-align: top;
}
.align-middle {
  vertical-align: middle;
}
.align-bottom {
  vertical-align: bottom;
}
.align-text-top {
  vertical-align: text-top;
}
.align-text-bottom {
  vertical-align: text-bottom;
}
.align-sub {
  vertical-align: sub;
}
.align-super {
  vertical-align: super;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl {
  font-size: 3rem;
  line-height: 1;
}
.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.text-7xl {
  font-size: 4.5rem;
  line-height: 1;
}
.text-8xl {
  font-size: 6rem;
  line-height: 1;
}
.text-9xl {
  font-size: 8rem;
  line-height: 1;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-medium {
  font-weight: 500;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.capitalize {
  text-transform: capitalize;
}
.normal-case {
  text-transform: none;
}
.italic {
  font-style: italic;
}
.not-italic {
  font-style: normal;
}
.normal-nums {
  font-variant-numeric: normal;
}
.ordinal {
  --tw-ordinal: ordinal;
}
.ordinal,
.slashed-zero {
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
    var(--tw-numeric-figure) var(--tw-numeric-spacing)
    var(--tw-numeric-fraction);
}
.slashed-zero {
  --tw-slashed-zero: slashed-zero;
}
.lining-nums {
  --tw-numeric-figure: lining-nums;
}
.lining-nums,
.oldstyle-nums {
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
    var(--tw-numeric-figure) var(--tw-numeric-spacing)
    var(--tw-numeric-fraction);
}
.oldstyle-nums {
  --tw-numeric-figure: oldstyle-nums;
}
.proportional-nums {
  --tw-numeric-spacing: proportional-nums;
}
.proportional-nums,
.tabular-nums {
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
    var(--tw-numeric-figure) var(--tw-numeric-spacing)
    var(--tw-numeric-fraction);
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
}
.diagonal-fractions {
  --tw-numeric-fraction: diagonal-fractions;
}
.diagonal-fractions,
.stacked-fractions {
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero)
    var(--tw-numeric-figure) var(--tw-numeric-spacing)
    var(--tw-numeric-fraction);
}
.stacked-fractions {
  --tw-numeric-fraction: stacked-fractions;
}
.leading-normal {
  line-height: 1.5;
}
.text-\[\#336699\]\/\[\.35\] {
  color: #33669959;
}
.text-amber-100 {
  --tw-text-opacity: 1;
  color: rgb(254 243 199 / var(--tw-text-opacity));
}
.text-amber-100\/0 {
  color: #fef3c700;
}
.text-amber-100\/10 {
  color: #fef3c71a;
}
.text-amber-100\/100 {
  color: #fef3c7;
}
.text-amber-100\/20 {
  color: #fef3c733;
}
.text-amber-100\/25 {
  color: #fef3c740;
}
.text-amber-100\/30 {
  color: #fef3c74d;
}
.text-amber-100\/40 {
  color: #fef3c766;
}
.text-amber-100\/5 {
  color: #fef3c70d;
}
.text-amber-100\/50 {
  color: #fef3c780;
}
.text-amber-100\/60 {
  color: #fef3c799;
}
.text-amber-100\/70 {
  color: #fef3c7b3;
}
.text-amber-100\/75 {
  color: #fef3c7bf;
}
.text-amber-100\/80 {
  color: #fef3c7cc;
}
.text-amber-100\/90 {
  color: #fef3c7e6;
}
.text-amber-100\/95 {
  color: #fef3c7f2;
}
.text-amber-200 {
  --tw-text-opacity: 1;
  color: rgb(253 230 138 / var(--tw-text-opacity));
}
.text-amber-200\/0 {
  color: #fde68a00;
}
.text-amber-200\/10 {
  color: #fde68a1a;
}
.text-amber-200\/100 {
  color: #fde68a;
}
.text-amber-200\/20 {
  color: #fde68a33;
}
.text-amber-200\/25 {
  color: #fde68a40;
}
.text-amber-200\/30 {
  color: #fde68a4d;
}
.text-amber-200\/40 {
  color: #fde68a66;
}
.text-amber-200\/5 {
  color: #fde68a0d;
}
.text-amber-200\/50 {
  color: #fde68a80;
}
.text-amber-200\/60 {
  color: #fde68a99;
}
.text-amber-200\/70 {
  color: #fde68ab3;
}
.text-amber-200\/75 {
  color: #fde68abf;
}
.text-amber-200\/80 {
  color: #fde68acc;
}
.text-amber-200\/90 {
  color: #fde68ae6;
}
.text-amber-200\/95 {
  color: #fde68af2;
}
.text-amber-300 {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity));
}
.text-amber-300\/0 {
  color: #fcd34d00;
}
.text-amber-300\/10 {
  color: #fcd34d1a;
}
.text-amber-300\/100 {
  color: #fcd34d;
}
.text-amber-300\/20 {
  color: #fcd34d33;
}
.text-amber-300\/25 {
  color: #fcd34d40;
}
.text-amber-300\/30 {
  color: #fcd34d4d;
}
.text-amber-300\/40 {
  color: #fcd34d66;
}
.text-amber-300\/5 {
  color: #fcd34d0d;
}
.text-amber-300\/50 {
  color: #fcd34d80;
}
.text-amber-300\/60 {
  color: #fcd34d99;
}
.text-amber-300\/70 {
  color: #fcd34db3;
}
.text-amber-300\/75 {
  color: #fcd34dbf;
}
.text-amber-300\/80 {
  color: #fcd34dcc;
}
.text-amber-300\/90 {
  color: #fcd34de6;
}
.text-amber-300\/95 {
  color: #fcd34df2;
}
.text-amber-400 {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity));
}
.text-amber-400\/0 {
  color: #fbbf2400;
}
.text-amber-400\/10 {
  color: #fbbf241a;
}
.text-amber-400\/100 {
  color: #fbbf24;
}
.text-amber-400\/20 {
  color: #fbbf2433;
}
.text-amber-400\/25 {
  color: #fbbf2440;
}
.text-amber-400\/30 {
  color: #fbbf244d;
}
.text-amber-400\/40 {
  color: #fbbf2466;
}
.text-amber-400\/5 {
  color: #fbbf240d;
}
.text-amber-400\/50 {
  color: #fbbf2480;
}
.text-amber-400\/60 {
  color: #fbbf2499;
}
.text-amber-400\/70 {
  color: #fbbf24b3;
}
.text-amber-400\/75 {
  color: #fbbf24bf;
}
.text-amber-400\/80 {
  color: #fbbf24cc;
}
.text-amber-400\/90 {
  color: #fbbf24e6;
}
.text-amber-400\/95 {
  color: #fbbf24f2;
}
.text-amber-50 {
  --tw-text-opacity: 1;
  color: rgb(255 251 235 / var(--tw-text-opacity));
}
.text-amber-50\/0 {
  color: #fffbeb00;
}
.text-amber-50\/10 {
  color: #fffbeb1a;
}
.text-amber-50\/100 {
  color: #fffbeb;
}
.text-amber-50\/20 {
  color: #fffbeb33;
}
.text-amber-50\/25 {
  color: #fffbeb40;
}
.text-amber-50\/30 {
  color: #fffbeb4d;
}
.text-amber-50\/40 {
  color: #fffbeb66;
}
.text-amber-50\/5 {
  color: #fffbeb0d;
}
.text-amber-50\/50 {
  color: #fffbeb80;
}
.text-amber-50\/60 {
  color: #fffbeb99;
}
.text-amber-50\/70 {
  color: #fffbebb3;
}
.text-amber-50\/75 {
  color: #fffbebbf;
}
.text-amber-50\/80 {
  color: #fffbebcc;
}
.text-amber-50\/90 {
  color: #fffbebe6;
}
.text-amber-50\/95 {
  color: #fffbebf2;
}
.text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity));
}
.text-amber-500\/0 {
  color: #f59e0b00;
}
.text-amber-500\/10 {
  color: #f59e0b1a;
}
.text-amber-500\/100 {
  color: #f59e0b;
}
.text-amber-500\/20 {
  color: #f59e0b33;
}
.text-amber-500\/25 {
  color: #f59e0b40;
}
.text-amber-500\/30 {
  color: #f59e0b4d;
}
.text-amber-500\/40 {
  color: #f59e0b66;
}
.text-amber-500\/5 {
  color: #f59e0b0d;
}
.text-amber-500\/50 {
  color: #f59e0b80;
}
.text-amber-500\/60 {
  color: #f59e0b99;
}
.text-amber-500\/70 {
  color: #f59e0bb3;
}
.text-amber-500\/75 {
  color: #f59e0bbf;
}
.text-amber-500\/80 {
  color: #f59e0bcc;
}
.text-amber-500\/90 {
  color: #f59e0be6;
}
.text-amber-500\/95 {
  color: #f59e0bf2;
}
.text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity));
}
.text-amber-600\/0 {
  color: #d9770600;
}
.text-amber-600\/10 {
  color: #d977061a;
}
.text-amber-600\/100 {
  color: #d97706;
}
.text-amber-600\/20 {
  color: #d9770633;
}
.text-amber-600\/25 {
  color: #d9770640;
}
.text-amber-600\/30 {
  color: #d977064d;
}
.text-amber-600\/40 {
  color: #d9770666;
}
.text-amber-600\/5 {
  color: #d977060d;
}
.text-amber-600\/50 {
  color: #d9770680;
}
.text-amber-600\/60 {
  color: #d9770699;
}
.text-amber-600\/70 {
  color: #d97706b3;
}
.text-amber-600\/75 {
  color: #d97706bf;
}
.text-amber-600\/80 {
  color: #d97706cc;
}
.text-amber-600\/90 {
  color: #d97706e6;
}
.text-amber-600\/95 {
  color: #d97706f2;
}
.text-amber-700 {
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity));
}
.text-amber-700\/0 {
  color: #b4530900;
}
.text-amber-700\/10 {
  color: #b453091a;
}
.text-amber-700\/100 {
  color: #b45309;
}
.text-amber-700\/20 {
  color: #b4530933;
}
.text-amber-700\/25 {
  color: #b4530940;
}
.text-amber-700\/30 {
  color: #b453094d;
}
.text-amber-700\/40 {
  color: #b4530966;
}
.text-amber-700\/5 {
  color: #b453090d;
}
.text-amber-700\/50 {
  color: #b4530980;
}
.text-amber-700\/60 {
  color: #b4530999;
}
.text-amber-700\/70 {
  color: #b45309b3;
}
.text-amber-700\/75 {
  color: #b45309bf;
}
.text-amber-700\/80 {
  color: #b45309cc;
}
.text-amber-700\/90 {
  color: #b45309e6;
}
.text-amber-700\/95 {
  color: #b45309f2;
}
.text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity));
}
.text-amber-800\/0 {
  color: #92400e00;
}
.text-amber-800\/10 {
  color: #92400e1a;
}
.text-amber-800\/100 {
  color: #92400e;
}
.text-amber-800\/20 {
  color: #92400e33;
}
.text-amber-800\/25 {
  color: #92400e40;
}
.text-amber-800\/30 {
  color: #92400e4d;
}
.text-amber-800\/40 {
  color: #92400e66;
}
.text-amber-800\/5 {
  color: #92400e0d;
}
.text-amber-800\/50 {
  color: #92400e80;
}
.text-amber-800\/60 {
  color: #92400e99;
}
.text-amber-800\/70 {
  color: #92400eb3;
}
.text-amber-800\/75 {
  color: #92400ebf;
}
.text-amber-800\/80 {
  color: #92400ecc;
}
.text-amber-800\/90 {
  color: #92400ee6;
}
.text-amber-800\/95 {
  color: #92400ef2;
}
.text-amber-900 {
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity));
}
.text-amber-900\/0 {
  color: #78350f00;
}
.text-amber-900\/10 {
  color: #78350f1a;
}
.text-amber-900\/100 {
  color: #78350f;
}
.text-amber-900\/20 {
  color: #78350f33;
}
.text-amber-900\/25 {
  color: #78350f40;
}
.text-amber-900\/30 {
  color: #78350f4d;
}
.text-amber-900\/40 {
  color: #78350f66;
}
.text-amber-900\/5 {
  color: #78350f0d;
}
.text-amber-900\/50 {
  color: #78350f80;
}
.text-amber-900\/60 {
  color: #78350f99;
}
.text-amber-900\/70 {
  color: #78350fb3;
}
.text-amber-900\/75 {
  color: #78350fbf;
}
.text-amber-900\/80 {
  color: #78350fcc;
}
.text-amber-900\/90 {
  color: #78350fe6;
}
.text-amber-900\/95 {
  color: #78350ff2;
}
.text-amber-950 {
  --tw-text-opacity: 1;
  color: rgb(69 26 3 / var(--tw-text-opacity));
}
.text-amber-950\/0 {
  color: #451a0300;
}
.text-amber-950\/10 {
  color: #451a031a;
}
.text-amber-950\/100 {
  color: #451a03;
}
.text-amber-950\/20 {
  color: #451a0333;
}
.text-amber-950\/25 {
  color: #451a0340;
}
.text-amber-950\/30 {
  color: #451a034d;
}
.text-amber-950\/40 {
  color: #451a0366;
}
.text-amber-950\/5 {
  color: #451a030d;
}
.text-amber-950\/50 {
  color: #451a0380;
}
.text-amber-950\/60 {
  color: #451a0399;
}
.text-amber-950\/70 {
  color: #451a03b3;
}
.text-amber-950\/75 {
  color: #451a03bf;
}
.text-amber-950\/80 {
  color: #451a03cc;
}
.text-amber-950\/90 {
  color: #451a03e6;
}
.text-amber-950\/95 {
  color: #451a03f2;
}
.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity));
}
.text-black\/0 {
  color: #0000;
}
.text-black\/10 {
  color: #0000001a;
}
.text-black\/100 {
  color: #000;
}
.text-black\/20 {
  color: #0003;
}
.text-black\/25 {
  color: #00000040;
}
.text-black\/30 {
  color: #0000004d;
}
.text-black\/40 {
  color: #0006;
}
.text-black\/5 {
  color: #0000000d;
}
.text-black\/50 {
  color: #00000080;
}
.text-black\/60 {
  color: #0009;
}
.text-black\/70 {
  color: #000000b3;
}
.text-black\/75 {
  color: #000000bf;
}
.text-black\/80 {
  color: #000c;
}
.text-black\/90 {
  color: #000000e6;
}
.text-black\/95 {
  color: #000000f2;
}
.text-blue-100 {
  --tw-text-opacity: 1;
  color: rgb(219 234 254 / var(--tw-text-opacity));
}
.text-blue-100\/0 {
  color: #dbeafe00;
}
.text-blue-100\/10 {
  color: #dbeafe1a;
}
.text-blue-100\/100 {
  color: #dbeafe;
}
.text-blue-100\/20 {
  color: #dbeafe33;
}
.text-blue-100\/25 {
  color: #dbeafe40;
}
.text-blue-100\/30 {
  color: #dbeafe4d;
}
.text-blue-100\/40 {
  color: #dbeafe66;
}
.text-blue-100\/5 {
  color: #dbeafe0d;
}
.text-blue-100\/50 {
  color: #dbeafe80;
}
.text-blue-100\/60 {
  color: #dbeafe99;
}
.text-blue-100\/70 {
  color: #dbeafeb3;
}
.text-blue-100\/75 {
  color: #dbeafebf;
}
.text-blue-100\/80 {
  color: #dbeafecc;
}
.text-blue-100\/90 {
  color: #dbeafee6;
}
.text-blue-100\/95 {
  color: #dbeafef2;
}
.text-blue-200 {
  --tw-text-opacity: 1;
  color: rgb(191 219 254 / var(--tw-text-opacity));
}
.text-blue-200\/0 {
  color: #bfdbfe00;
}
.text-blue-200\/10 {
  color: #bfdbfe1a;
}
.text-blue-200\/100 {
  color: #bfdbfe;
}
.text-blue-200\/20 {
  color: #bfdbfe33;
}
.text-blue-200\/25 {
  color: #bfdbfe40;
}
.text-blue-200\/30 {
  color: #bfdbfe4d;
}
.text-blue-200\/40 {
  color: #bfdbfe66;
}
.text-blue-200\/5 {
  color: #bfdbfe0d;
}
.text-blue-200\/50 {
  color: #bfdbfe80;
}
.text-blue-200\/60 {
  color: #bfdbfe99;
}
.text-blue-200\/70 {
  color: #bfdbfeb3;
}
.text-blue-200\/75 {
  color: #bfdbfebf;
}
.text-blue-200\/80 {
  color: #bfdbfecc;
}
.text-blue-200\/90 {
  color: #bfdbfee6;
}
.text-blue-200\/95 {
  color: #bfdbfef2;
}
.text-blue-300 {
  --tw-text-opacity: 1;
  color: rgb(147 197 253 / var(--tw-text-opacity));
}
.text-blue-300\/0 {
  color: #93c5fd00;
}
.text-blue-300\/10 {
  color: #93c5fd1a;
}
.text-blue-300\/100 {
  color: #93c5fd;
}
.text-blue-300\/20 {
  color: #93c5fd33;
}
.text-blue-300\/25 {
  color: #93c5fd40;
}
.text-blue-300\/30 {
  color: #93c5fd4d;
}
.text-blue-300\/40 {
  color: #93c5fd66;
}
.text-blue-300\/5 {
  color: #93c5fd0d;
}
.text-blue-300\/50 {
  color: #93c5fd80;
}
.text-blue-300\/60 {
  color: #93c5fd99;
}
.text-blue-300\/70 {
  color: #93c5fdb3;
}
.text-blue-300\/75 {
  color: #93c5fdbf;
}
.text-blue-300\/80 {
  color: #93c5fdcc;
}
.text-blue-300\/90 {
  color: #93c5fde6;
}
.text-blue-300\/95 {
  color: #93c5fdf2;
}
.text-blue-400 {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity));
}
.text-blue-400\/0 {
  color: #60a5fa00;
}
.text-blue-400\/10 {
  color: #60a5fa1a;
}
.text-blue-400\/100 {
  color: #60a5fa;
}
.text-blue-400\/20 {
  color: #60a5fa33;
}
.text-blue-400\/25 {
  color: #60a5fa40;
}
.text-blue-400\/30 {
  color: #60a5fa4d;
}
.text-blue-400\/40 {
  color: #60a5fa66;
}
.text-blue-400\/5 {
  color: #60a5fa0d;
}
.text-blue-400\/50 {
  color: #60a5fa80;
}
.text-blue-400\/60 {
  color: #60a5fa99;
}
.text-blue-400\/70 {
  color: #60a5fab3;
}
.text-blue-400\/75 {
  color: #60a5fabf;
}
.text-blue-400\/80 {
  color: #60a5facc;
}
.text-blue-400\/90 {
  color: #60a5fae6;
}
.text-blue-400\/95 {
  color: #60a5faf2;
}
.text-blue-50 {
  --tw-text-opacity: 1;
  color: rgb(239 246 255 / var(--tw-text-opacity));
}
.text-blue-50\/0 {
  color: #eff6ff00;
}
.text-blue-50\/10 {
  color: #eff6ff1a;
}
.text-blue-50\/100 {
  color: #eff6ff;
}
.text-blue-50\/20 {
  color: #eff6ff33;
}
.text-blue-50\/25 {
  color: #eff6ff40;
}
.text-blue-50\/30 {
  color: #eff6ff4d;
}
.text-blue-50\/40 {
  color: #eff6ff66;
}
.text-blue-50\/5 {
  color: #eff6ff0d;
}
.text-blue-50\/50 {
  color: #eff6ff80;
}
.text-blue-50\/60 {
  color: #eff6ff99;
}
.text-blue-50\/70 {
  color: #eff6ffb3;
}
.text-blue-50\/75 {
  color: #eff6ffbf;
}
.text-blue-50\/80 {
  color: #eff6ffcc;
}
.text-blue-50\/90 {
  color: #eff6ffe6;
}
.text-blue-50\/95 {
  color: #eff6fff2;
}
.text-blue-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity));
}
.text-blue-500\/0 {
  color: #3b82f600;
}
.text-blue-500\/10 {
  color: #3b82f61a;
}
.text-blue-500\/100 {
  color: #3b82f6;
}
.text-blue-500\/20 {
  color: #3b82f633;
}
.text-blue-500\/25 {
  color: #3b82f640;
}
.text-blue-500\/30 {
  color: #3b82f64d;
}
.text-blue-500\/40 {
  color: #3b82f666;
}
.text-blue-500\/5 {
  color: #3b82f60d;
}
.text-blue-500\/50 {
  color: #3b82f680;
}
.text-blue-500\/60 {
  color: #3b82f699;
}
.text-blue-500\/70 {
  color: #3b82f6b3;
}
.text-blue-500\/75 {
  color: #3b82f6bf;
}
.text-blue-500\/80 {
  color: #3b82f6cc;
}
.text-blue-500\/90 {
  color: #3b82f6e6;
}
.text-blue-500\/95 {
  color: #3b82f6f2;
}
.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
}
.text-blue-600\/0 {
  color: #2563eb00;
}
.text-blue-600\/10 {
  color: #2563eb1a;
}
.text-blue-600\/100 {
  color: #2563eb;
}
.text-blue-600\/20 {
  color: #2563eb33;
}
.text-blue-600\/25 {
  color: #2563eb40;
}
.text-blue-600\/30 {
  color: #2563eb4d;
}
.text-blue-600\/40 {
  color: #2563eb66;
}
.text-blue-600\/5 {
  color: #2563eb0d;
}
.text-blue-600\/50 {
  color: #2563eb80;
}
.text-blue-600\/60 {
  color: #2563eb99;
}
.text-blue-600\/70 {
  color: #2563ebb3;
}
.text-blue-600\/75 {
  color: #2563ebbf;
}
.text-blue-600\/80 {
  color: #2563ebcc;
}
.text-blue-600\/90 {
  color: #2563ebe6;
}
.text-blue-600\/95 {
  color: #2563ebf2;
}
.text-blue-700 {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity));
}
.text-blue-700\/0 {
  color: #1d4ed800;
}
.text-blue-700\/10 {
  color: #1d4ed81a;
}
.text-blue-700\/100 {
  color: #1d4ed8;
}
.text-blue-700\/20 {
  color: #1d4ed833;
}
.text-blue-700\/25 {
  color: #1d4ed840;
}
.text-blue-700\/30 {
  color: #1d4ed84d;
}
.text-blue-700\/40 {
  color: #1d4ed866;
}
.text-blue-700\/5 {
  color: #1d4ed80d;
}
.text-blue-700\/50 {
  color: #1d4ed880;
}
.text-blue-700\/60 {
  color: #1d4ed899;
}
.text-blue-700\/70 {
  color: #1d4ed8b3;
}
.text-blue-700\/75 {
  color: #1d4ed8bf;
}
.text-blue-700\/80 {
  color: #1d4ed8cc;
}
.text-blue-700\/90 {
  color: #1d4ed8e6;
}
.text-blue-700\/95 {
  color: #1d4ed8f2;
}
.text-blue-800 {
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity));
}
.text-blue-800\/0 {
  color: #1e40af00;
}
.text-blue-800\/10 {
  color: #1e40af1a;
}
.text-blue-800\/100 {
  color: #1e40af;
}
.text-blue-800\/20 {
  color: #1e40af33;
}
.text-blue-800\/25 {
  color: #1e40af40;
}
.text-blue-800\/30 {
  color: #1e40af4d;
}
.text-blue-800\/40 {
  color: #1e40af66;
}
.text-blue-800\/5 {
  color: #1e40af0d;
}
.text-blue-800\/50 {
  color: #1e40af80;
}
.text-blue-800\/60 {
  color: #1e40af99;
}
.text-blue-800\/70 {
  color: #1e40afb3;
}
.text-blue-800\/75 {
  color: #1e40afbf;
}
.text-blue-800\/80 {
  color: #1e40afcc;
}
.text-blue-800\/90 {
  color: #1e40afe6;
}
.text-blue-800\/95 {
  color: #1e40aff2;
}
.text-blue-900 {
  --tw-text-opacity: 1;
  color: rgb(30 58 138 / var(--tw-text-opacity));
}
.text-blue-900\/0 {
  color: #1e3a8a00;
}
.text-blue-900\/10 {
  color: #1e3a8a1a;
}
.text-blue-900\/100 {
  color: #1e3a8a;
}
.text-blue-900\/20 {
  color: #1e3a8a33;
}
.text-blue-900\/25 {
  color: #1e3a8a40;
}
.text-blue-900\/30 {
  color: #1e3a8a4d;
}
.text-blue-900\/40 {
  color: #1e3a8a66;
}
.text-blue-900\/5 {
  color: #1e3a8a0d;
}
.text-blue-900\/50 {
  color: #1e3a8a80;
}
.text-blue-900\/60 {
  color: #1e3a8a99;
}
.text-blue-900\/70 {
  color: #1e3a8ab3;
}
.text-blue-900\/75 {
  color: #1e3a8abf;
}
.text-blue-900\/80 {
  color: #1e3a8acc;
}
.text-blue-900\/90 {
  color: #1e3a8ae6;
}
.text-blue-900\/95 {
  color: #1e3a8af2;
}
.text-blue-950 {
  --tw-text-opacity: 1;
  color: rgb(23 37 84 / var(--tw-text-opacity));
}
.text-blue-950\/0 {
  color: #17255400;
}
.text-blue-950\/10 {
  color: #1725541a;
}
.text-blue-950\/100 {
  color: #172554;
}
.text-blue-950\/20 {
  color: #17255433;
}
.text-blue-950\/25 {
  color: #17255440;
}
.text-blue-950\/30 {
  color: #1725544d;
}
.text-blue-950\/40 {
  color: #17255466;
}
.text-blue-950\/5 {
  color: #1725540d;
}
.text-blue-950\/50 {
  color: #17255480;
}
.text-blue-950\/60 {
  color: #17255499;
}
.text-blue-950\/70 {
  color: #172554b3;
}
.text-blue-950\/75 {
  color: #172554bf;
}
.text-blue-950\/80 {
  color: #172554cc;
}
.text-blue-950\/90 {
  color: #172554e6;
}
.text-blue-950\/95 {
  color: #172554f2;
}
.text-current {
  color: currentColor;
}
.text-cyan-100 {
  --tw-text-opacity: 1;
  color: rgb(207 250 254 / var(--tw-text-opacity));
}
.text-cyan-100\/0 {
  color: #cffafe00;
}
.text-cyan-100\/10 {
  color: #cffafe1a;
}
.text-cyan-100\/100 {
  color: #cffafe;
}
.text-cyan-100\/20 {
  color: #cffafe33;
}
.text-cyan-100\/25 {
  color: #cffafe40;
}
.text-cyan-100\/30 {
  color: #cffafe4d;
}
.text-cyan-100\/40 {
  color: #cffafe66;
}
.text-cyan-100\/5 {
  color: #cffafe0d;
}
.text-cyan-100\/50 {
  color: #cffafe80;
}
.text-cyan-100\/60 {
  color: #cffafe99;
}
.text-cyan-100\/70 {
  color: #cffafeb3;
}
.text-cyan-100\/75 {
  color: #cffafebf;
}
.text-cyan-100\/80 {
  color: #cffafecc;
}
.text-cyan-100\/90 {
  color: #cffafee6;
}
.text-cyan-100\/95 {
  color: #cffafef2;
}
.text-cyan-200 {
  --tw-text-opacity: 1;
  color: rgb(165 243 252 / var(--tw-text-opacity));
}
.text-cyan-200\/0 {
  color: #a5f3fc00;
}
.text-cyan-200\/10 {
  color: #a5f3fc1a;
}
.text-cyan-200\/100 {
  color: #a5f3fc;
}
.text-cyan-200\/20 {
  color: #a5f3fc33;
}
.text-cyan-200\/25 {
  color: #a5f3fc40;
}
.text-cyan-200\/30 {
  color: #a5f3fc4d;
}
.text-cyan-200\/40 {
  color: #a5f3fc66;
}
.text-cyan-200\/5 {
  color: #a5f3fc0d;
}
.text-cyan-200\/50 {
  color: #a5f3fc80;
}
.text-cyan-200\/60 {
  color: #a5f3fc99;
}
.text-cyan-200\/70 {
  color: #a5f3fcb3;
}
.text-cyan-200\/75 {
  color: #a5f3fcbf;
}
.text-cyan-200\/80 {
  color: #a5f3fccc;
}
.text-cyan-200\/90 {
  color: #a5f3fce6;
}
.text-cyan-200\/95 {
  color: #a5f3fcf2;
}
.text-cyan-300 {
  --tw-text-opacity: 1;
  color: rgb(103 232 249 / var(--tw-text-opacity));
}
.text-cyan-300\/0 {
  color: #67e8f900;
}
.text-cyan-300\/10 {
  color: #67e8f91a;
}
.text-cyan-300\/100 {
  color: #67e8f9;
}
.text-cyan-300\/20 {
  color: #67e8f933;
}
.text-cyan-300\/25 {
  color: #67e8f940;
}
.text-cyan-300\/30 {
  color: #67e8f94d;
}
.text-cyan-300\/40 {
  color: #67e8f966;
}
.text-cyan-300\/5 {
  color: #67e8f90d;
}
.text-cyan-300\/50 {
  color: #67e8f980;
}
.text-cyan-300\/60 {
  color: #67e8f999;
}
.text-cyan-300\/70 {
  color: #67e8f9b3;
}
.text-cyan-300\/75 {
  color: #67e8f9bf;
}
.text-cyan-300\/80 {
  color: #67e8f9cc;
}
.text-cyan-300\/90 {
  color: #67e8f9e6;
}
.text-cyan-300\/95 {
  color: #67e8f9f2;
}
.text-cyan-400 {
  --tw-text-opacity: 1;
  color: rgb(34 211 238 / var(--tw-text-opacity));
}
.text-cyan-400\/0 {
  color: #22d3ee00;
}
.text-cyan-400\/10 {
  color: #22d3ee1a;
}
.text-cyan-400\/100 {
  color: #22d3ee;
}
.text-cyan-400\/20 {
  color: #22d3ee33;
}
.text-cyan-400\/25 {
  color: #22d3ee40;
}
.text-cyan-400\/30 {
  color: #22d3ee4d;
}
.text-cyan-400\/40 {
  color: #22d3ee66;
}
.text-cyan-400\/5 {
  color: #22d3ee0d;
}
.text-cyan-400\/50 {
  color: #22d3ee80;
}
.text-cyan-400\/60 {
  color: #22d3ee99;
}
.text-cyan-400\/70 {
  color: #22d3eeb3;
}
.text-cyan-400\/75 {
  color: #22d3eebf;
}
.text-cyan-400\/80 {
  color: #22d3eecc;
}
.text-cyan-400\/90 {
  color: #22d3eee6;
}
.text-cyan-400\/95 {
  color: #22d3eef2;
}
.text-cyan-50 {
  --tw-text-opacity: 1;
  color: rgb(236 254 255 / var(--tw-text-opacity));
}
.text-cyan-50\/0 {
  color: #ecfeff00;
}
.text-cyan-50\/10 {
  color: #ecfeff1a;
}
.text-cyan-50\/100 {
  color: #ecfeff;
}
.text-cyan-50\/20 {
  color: #ecfeff33;
}
.text-cyan-50\/25 {
  color: #ecfeff40;
}
.text-cyan-50\/30 {
  color: #ecfeff4d;
}
.text-cyan-50\/40 {
  color: #ecfeff66;
}
.text-cyan-50\/5 {
  color: #ecfeff0d;
}
.text-cyan-50\/50 {
  color: #ecfeff80;
}
.text-cyan-50\/60 {
  color: #ecfeff99;
}
.text-cyan-50\/70 {
  color: #ecfeffb3;
}
.text-cyan-50\/75 {
  color: #ecfeffbf;
}
.text-cyan-50\/80 {
  color: #ecfeffcc;
}
.text-cyan-50\/90 {
  color: #ecfeffe6;
}
.text-cyan-50\/95 {
  color: #ecfefff2;
}
.text-cyan-500 {
  --tw-text-opacity: 1;
  color: rgb(6 182 212 / var(--tw-text-opacity));
}
.text-cyan-500\/0 {
  color: #06b6d400;
}
.text-cyan-500\/10 {
  color: #06b6d41a;
}
.text-cyan-500\/100 {
  color: #06b6d4;
}
.text-cyan-500\/20 {
  color: #06b6d433;
}
.text-cyan-500\/25 {
  color: #06b6d440;
}
.text-cyan-500\/30 {
  color: #06b6d44d;
}
.text-cyan-500\/40 {
  color: #06b6d466;
}
.text-cyan-500\/5 {
  color: #06b6d40d;
}
.text-cyan-500\/50 {
  color: #06b6d480;
}
.text-cyan-500\/60 {
  color: #06b6d499;
}
.text-cyan-500\/70 {
  color: #06b6d4b3;
}
.text-cyan-500\/75 {
  color: #06b6d4bf;
}
.text-cyan-500\/80 {
  color: #06b6d4cc;
}
.text-cyan-500\/90 {
  color: #06b6d4e6;
}
.text-cyan-500\/95 {
  color: #06b6d4f2;
}
.text-cyan-600 {
  --tw-text-opacity: 1;
  color: rgb(8 145 178 / var(--tw-text-opacity));
}
.text-cyan-600\/0 {
  color: #0891b200;
}
.text-cyan-600\/10 {
  color: #0891b21a;
}
.text-cyan-600\/100 {
  color: #0891b2;
}
.text-cyan-600\/20 {
  color: #0891b233;
}
.text-cyan-600\/25 {
  color: #0891b240;
}
.text-cyan-600\/30 {
  color: #0891b24d;
}
.text-cyan-600\/40 {
  color: #0891b266;
}
.text-cyan-600\/5 {
  color: #0891b20d;
}
.text-cyan-600\/50 {
  color: #0891b280;
}
.text-cyan-600\/60 {
  color: #0891b299;
}
.text-cyan-600\/70 {
  color: #0891b2b3;
}
.text-cyan-600\/75 {
  color: #0891b2bf;
}
.text-cyan-600\/80 {
  color: #0891b2cc;
}
.text-cyan-600\/90 {
  color: #0891b2e6;
}
.text-cyan-600\/95 {
  color: #0891b2f2;
}
.text-cyan-700 {
  --tw-text-opacity: 1;
  color: rgb(14 116 144 / var(--tw-text-opacity));
}
.text-cyan-700\/0 {
  color: #0e749000;
}
.text-cyan-700\/10 {
  color: #0e74901a;
}
.text-cyan-700\/100 {
  color: #0e7490;
}
.text-cyan-700\/20 {
  color: #0e749033;
}
.text-cyan-700\/25 {
  color: #0e749040;
}
.text-cyan-700\/30 {
  color: #0e74904d;
}
.text-cyan-700\/40 {
  color: #0e749066;
}
.text-cyan-700\/5 {
  color: #0e74900d;
}
.text-cyan-700\/50 {
  color: #0e749080;
}
.text-cyan-700\/60 {
  color: #0e749099;
}
.text-cyan-700\/70 {
  color: #0e7490b3;
}
.text-cyan-700\/75 {
  color: #0e7490bf;
}
.text-cyan-700\/80 {
  color: #0e7490cc;
}
.text-cyan-700\/90 {
  color: #0e7490e6;
}
.text-cyan-700\/95 {
  color: #0e7490f2;
}
.text-cyan-800 {
  --tw-text-opacity: 1;
  color: rgb(21 94 117 / var(--tw-text-opacity));
}
.text-cyan-800\/0 {
  color: #155e7500;
}
.text-cyan-800\/10 {
  color: #155e751a;
}
.text-cyan-800\/100 {
  color: #155e75;
}
.text-cyan-800\/20 {
  color: #155e7533;
}
.text-cyan-800\/25 {
  color: #155e7540;
}
.text-cyan-800\/30 {
  color: #155e754d;
}
.text-cyan-800\/40 {
  color: #155e7566;
}
.text-cyan-800\/5 {
  color: #155e750d;
}
.text-cyan-800\/50 {
  color: #155e7580;
}
.text-cyan-800\/60 {
  color: #155e7599;
}
.text-cyan-800\/70 {
  color: #155e75b3;
}
.text-cyan-800\/75 {
  color: #155e75bf;
}
.text-cyan-800\/80 {
  color: #155e75cc;
}
.text-cyan-800\/90 {
  color: #155e75e6;
}
.text-cyan-800\/95 {
  color: #155e75f2;
}
.text-cyan-900 {
  --tw-text-opacity: 1;
  color: rgb(22 78 99 / var(--tw-text-opacity));
}
.text-cyan-900\/0 {
  color: #164e6300;
}
.text-cyan-900\/10 {
  color: #164e631a;
}
.text-cyan-900\/100 {
  color: #164e63;
}
.text-cyan-900\/20 {
  color: #164e6333;
}
.text-cyan-900\/25 {
  color: #164e6340;
}
.text-cyan-900\/30 {
  color: #164e634d;
}
.text-cyan-900\/40 {
  color: #164e6366;
}
.text-cyan-900\/5 {
  color: #164e630d;
}
.text-cyan-900\/50 {
  color: #164e6380;
}
.text-cyan-900\/60 {
  color: #164e6399;
}
.text-cyan-900\/70 {
  color: #164e63b3;
}
.text-cyan-900\/75 {
  color: #164e63bf;
}
.text-cyan-900\/80 {
  color: #164e63cc;
}
.text-cyan-900\/90 {
  color: #164e63e6;
}
.text-cyan-900\/95 {
  color: #164e63f2;
}
.text-cyan-950 {
  --tw-text-opacity: 1;
  color: rgb(8 51 68 / var(--tw-text-opacity));
}
.text-cyan-950\/0 {
  color: #08334400;
}
.text-cyan-950\/10 {
  color: #0833441a;
}
.text-cyan-950\/100 {
  color: #083344;
}
.text-cyan-950\/20 {
  color: #08334433;
}
.text-cyan-950\/25 {
  color: #08334440;
}
.text-cyan-950\/30 {
  color: #0833444d;
}
.text-cyan-950\/40 {
  color: #08334466;
}
.text-cyan-950\/5 {
  color: #0833440d;
}
.text-cyan-950\/50 {
  color: #08334480;
}
.text-cyan-950\/60 {
  color: #08334499;
}
.text-cyan-950\/70 {
  color: #083344b3;
}
.text-cyan-950\/75 {
  color: #083344bf;
}
.text-cyan-950\/80 {
  color: #083344cc;
}
.text-cyan-950\/90 {
  color: #083344e6;
}
.text-cyan-950\/95 {
  color: #083344f2;
}
.text-emerald-100 {
  --tw-text-opacity: 1;
  color: rgb(209 250 229 / var(--tw-text-opacity));
}
.text-emerald-100\/0 {
  color: #d1fae500;
}
.text-emerald-100\/10 {
  color: #d1fae51a;
}
.text-emerald-100\/100 {
  color: #d1fae5;
}
.text-emerald-100\/20 {
  color: #d1fae533;
}
.text-emerald-100\/25 {
  color: #d1fae540;
}
.text-emerald-100\/30 {
  color: #d1fae54d;
}
.text-emerald-100\/40 {
  color: #d1fae566;
}
.text-emerald-100\/5 {
  color: #d1fae50d;
}
.text-emerald-100\/50 {
  color: #d1fae580;
}
.text-emerald-100\/60 {
  color: #d1fae599;
}
.text-emerald-100\/70 {
  color: #d1fae5b3;
}
.text-emerald-100\/75 {
  color: #d1fae5bf;
}
.text-emerald-100\/80 {
  color: #d1fae5cc;
}
.text-emerald-100\/90 {
  color: #d1fae5e6;
}
.text-emerald-100\/95 {
  color: #d1fae5f2;
}
.text-emerald-200 {
  --tw-text-opacity: 1;
  color: rgb(167 243 208 / var(--tw-text-opacity));
}
.text-emerald-200\/0 {
  color: #a7f3d000;
}
.text-emerald-200\/10 {
  color: #a7f3d01a;
}
.text-emerald-200\/100 {
  color: #a7f3d0;
}
.text-emerald-200\/20 {
  color: #a7f3d033;
}
.text-emerald-200\/25 {
  color: #a7f3d040;
}
.text-emerald-200\/30 {
  color: #a7f3d04d;
}
.text-emerald-200\/40 {
  color: #a7f3d066;
}
.text-emerald-200\/5 {
  color: #a7f3d00d;
}
.text-emerald-200\/50 {
  color: #a7f3d080;
}
.text-emerald-200\/60 {
  color: #a7f3d099;
}
.text-emerald-200\/70 {
  color: #a7f3d0b3;
}
.text-emerald-200\/75 {
  color: #a7f3d0bf;
}
.text-emerald-200\/80 {
  color: #a7f3d0cc;
}
.text-emerald-200\/90 {
  color: #a7f3d0e6;
}
.text-emerald-200\/95 {
  color: #a7f3d0f2;
}
.text-emerald-300 {
  --tw-text-opacity: 1;
  color: rgb(110 231 183 / var(--tw-text-opacity));
}
.text-emerald-300\/0 {
  color: #6ee7b700;
}
.text-emerald-300\/10 {
  color: #6ee7b71a;
}
.text-emerald-300\/100 {
  color: #6ee7b7;
}
.text-emerald-300\/20 {
  color: #6ee7b733;
}
.text-emerald-300\/25 {
  color: #6ee7b740;
}
.text-emerald-300\/30 {
  color: #6ee7b74d;
}
.text-emerald-300\/40 {
  color: #6ee7b766;
}
.text-emerald-300\/5 {
  color: #6ee7b70d;
}
.text-emerald-300\/50 {
  color: #6ee7b780;
}
.text-emerald-300\/60 {
  color: #6ee7b799;
}
.text-emerald-300\/70 {
  color: #6ee7b7b3;
}
.text-emerald-300\/75 {
  color: #6ee7b7bf;
}
.text-emerald-300\/80 {
  color: #6ee7b7cc;
}
.text-emerald-300\/90 {
  color: #6ee7b7e6;
}
.text-emerald-300\/95 {
  color: #6ee7b7f2;
}
.text-emerald-400 {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity));
}
.text-emerald-400\/0 {
  color: #34d39900;
}
.text-emerald-400\/10 {
  color: #34d3991a;
}
.text-emerald-400\/100 {
  color: #34d399;
}
.text-emerald-400\/20 {
  color: #34d39933;
}
.text-emerald-400\/25 {
  color: #34d39940;
}
.text-emerald-400\/30 {
  color: #34d3994d;
}
.text-emerald-400\/40 {
  color: #34d39966;
}
.text-emerald-400\/5 {
  color: #34d3990d;
}
.text-emerald-400\/50 {
  color: #34d39980;
}
.text-emerald-400\/60 {
  color: #34d39999;
}
.text-emerald-400\/70 {
  color: #34d399b3;
}
.text-emerald-400\/75 {
  color: #34d399bf;
}
.text-emerald-400\/80 {
  color: #34d399cc;
}
.text-emerald-400\/90 {
  color: #34d399e6;
}
.text-emerald-400\/95 {
  color: #34d399f2;
}
.text-emerald-50 {
  --tw-text-opacity: 1;
  color: rgb(236 253 245 / var(--tw-text-opacity));
}
.text-emerald-50\/0 {
  color: #ecfdf500;
}
.text-emerald-50\/10 {
  color: #ecfdf51a;
}
.text-emerald-50\/100 {
  color: #ecfdf5;
}
.text-emerald-50\/20 {
  color: #ecfdf533;
}
.text-emerald-50\/25 {
  color: #ecfdf540;
}
.text-emerald-50\/30 {
  color: #ecfdf54d;
}
.text-emerald-50\/40 {
  color: #ecfdf566;
}
.text-emerald-50\/5 {
  color: #ecfdf50d;
}
.text-emerald-50\/50 {
  color: #ecfdf580;
}
.text-emerald-50\/60 {
  color: #ecfdf599;
}
.text-emerald-50\/70 {
  color: #ecfdf5b3;
}
.text-emerald-50\/75 {
  color: #ecfdf5bf;
}
.text-emerald-50\/80 {
  color: #ecfdf5cc;
}
.text-emerald-50\/90 {
  color: #ecfdf5e6;
}
.text-emerald-50\/95 {
  color: #ecfdf5f2;
}
.text-emerald-500 {
  --tw-text-opacity: 1;
  color: rgb(16 185 129 / var(--tw-text-opacity));
}
.text-emerald-500\/0 {
  color: #10b98100;
}
.text-emerald-500\/10 {
  color: #10b9811a;
}
.text-emerald-500\/100 {
  color: #10b981;
}
.text-emerald-500\/20 {
  color: #10b98133;
}
.text-emerald-500\/25 {
  color: #10b98140;
}
.text-emerald-500\/30 {
  color: #10b9814d;
}
.text-emerald-500\/40 {
  color: #10b98166;
}
.text-emerald-500\/5 {
  color: #10b9810d;
}
.text-emerald-500\/50 {
  color: #10b98180;
}
.text-emerald-500\/60 {
  color: #10b98199;
}
.text-emerald-500\/70 {
  color: #10b981b3;
}
.text-emerald-500\/75 {
  color: #10b981bf;
}
.text-emerald-500\/80 {
  color: #10b981cc;
}
.text-emerald-500\/90 {
  color: #10b981e6;
}
.text-emerald-500\/95 {
  color: #10b981f2;
}
.text-emerald-600 {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity));
}
.text-emerald-600\/0 {
  color: #05966900;
}
.text-emerald-600\/10 {
  color: #0596691a;
}
.text-emerald-600\/100 {
  color: #059669;
}
.text-emerald-600\/20 {
  color: #05966933;
}
.text-emerald-600\/25 {
  color: #05966940;
}
.text-emerald-600\/30 {
  color: #0596694d;
}
.text-emerald-600\/40 {
  color: #05966966;
}
.text-emerald-600\/5 {
  color: #0596690d;
}
.text-emerald-600\/50 {
  color: #05966980;
}
.text-emerald-600\/60 {
  color: #05966999;
}
.text-emerald-600\/70 {
  color: #059669b3;
}
.text-emerald-600\/75 {
  color: #059669bf;
}
.text-emerald-600\/80 {
  color: #059669cc;
}
.text-emerald-600\/90 {
  color: #059669e6;
}
.text-emerald-600\/95 {
  color: #059669f2;
}
.text-emerald-700 {
  --tw-text-opacity: 1;
  color: rgb(4 120 87 / var(--tw-text-opacity));
}
.text-emerald-700\/0 {
  color: #04785700;
}
.text-emerald-700\/10 {
  color: #0478571a;
}
.text-emerald-700\/100 {
  color: #047857;
}
.text-emerald-700\/20 {
  color: #04785733;
}
.text-emerald-700\/25 {
  color: #04785740;
}
.text-emerald-700\/30 {
  color: #0478574d;
}
.text-emerald-700\/40 {
  color: #04785766;
}
.text-emerald-700\/5 {
  color: #0478570d;
}
.text-emerald-700\/50 {
  color: #04785780;
}
.text-emerald-700\/60 {
  color: #04785799;
}
.text-emerald-700\/70 {
  color: #047857b3;
}
.text-emerald-700\/75 {
  color: #047857bf;
}
.text-emerald-700\/80 {
  color: #047857cc;
}
.text-emerald-700\/90 {
  color: #047857e6;
}
.text-emerald-700\/95 {
  color: #047857f2;
}
.text-emerald-800 {
  --tw-text-opacity: 1;
  color: rgb(6 95 70 / var(--tw-text-opacity));
}
.text-emerald-800\/0 {
  color: #065f4600;
}
.text-emerald-800\/10 {
  color: #065f461a;
}
.text-emerald-800\/100 {
  color: #065f46;
}
.text-emerald-800\/20 {
  color: #065f4633;
}
.text-emerald-800\/25 {
  color: #065f4640;
}
.text-emerald-800\/30 {
  color: #065f464d;
}
.text-emerald-800\/40 {
  color: #065f4666;
}
.text-emerald-800\/5 {
  color: #065f460d;
}
.text-emerald-800\/50 {
  color: #065f4680;
}
.text-emerald-800\/60 {
  color: #065f4699;
}
.text-emerald-800\/70 {
  color: #065f46b3;
}
.text-emerald-800\/75 {
  color: #065f46bf;
}
.text-emerald-800\/80 {
  color: #065f46cc;
}
.text-emerald-800\/90 {
  color: #065f46e6;
}
.text-emerald-800\/95 {
  color: #065f46f2;
}
.text-emerald-900 {
  --tw-text-opacity: 1;
  color: rgb(6 78 59 / var(--tw-text-opacity));
}
.text-emerald-900\/0 {
  color: #064e3b00;
}
.text-emerald-900\/10 {
  color: #064e3b1a;
}
.text-emerald-900\/100 {
  color: #064e3b;
}
.text-emerald-900\/20 {
  color: #064e3b33;
}
.text-emerald-900\/25 {
  color: #064e3b40;
}
.text-emerald-900\/30 {
  color: #064e3b4d;
}
.text-emerald-900\/40 {
  color: #064e3b66;
}
.text-emerald-900\/5 {
  color: #064e3b0d;
}
.text-emerald-900\/50 {
  color: #064e3b80;
}
.text-emerald-900\/60 {
  color: #064e3b99;
}
.text-emerald-900\/70 {
  color: #064e3bb3;
}
.text-emerald-900\/75 {
  color: #064e3bbf;
}
.text-emerald-900\/80 {
  color: #064e3bcc;
}
.text-emerald-900\/90 {
  color: #064e3be6;
}
.text-emerald-900\/95 {
  color: #064e3bf2;
}
.text-emerald-950 {
  --tw-text-opacity: 1;
  color: rgb(2 44 34 / var(--tw-text-opacity));
}
.text-emerald-950\/0 {
  color: #022c2200;
}
.text-emerald-950\/10 {
  color: #022c221a;
}
.text-emerald-950\/100 {
  color: #022c22;
}
.text-emerald-950\/20 {
  color: #022c2233;
}
.text-emerald-950\/25 {
  color: #022c2240;
}
.text-emerald-950\/30 {
  color: #022c224d;
}
.text-emerald-950\/40 {
  color: #022c2266;
}
.text-emerald-950\/5 {
  color: #022c220d;
}
.text-emerald-950\/50 {
  color: #022c2280;
}
.text-emerald-950\/60 {
  color: #022c2299;
}
.text-emerald-950\/70 {
  color: #022c22b3;
}
.text-emerald-950\/75 {
  color: #022c22bf;
}
.text-emerald-950\/80 {
  color: #022c22cc;
}
.text-emerald-950\/90 {
  color: #022c22e6;
}
.text-emerald-950\/95 {
  color: #022c22f2;
}
.text-fuchsia-100 {
  --tw-text-opacity: 1;
  color: rgb(250 232 255 / var(--tw-text-opacity));
}
.text-fuchsia-100\/0 {
  color: #fae8ff00;
}
.text-fuchsia-100\/10 {
  color: #fae8ff1a;
}
.text-fuchsia-100\/100 {
  color: #fae8ff;
}
.text-fuchsia-100\/20 {
  color: #fae8ff33;
}
.text-fuchsia-100\/25 {
  color: #fae8ff40;
}
.text-fuchsia-100\/30 {
  color: #fae8ff4d;
}
.text-fuchsia-100\/40 {
  color: #fae8ff66;
}
.text-fuchsia-100\/5 {
  color: #fae8ff0d;
}
.text-fuchsia-100\/50 {
  color: #fae8ff80;
}
.text-fuchsia-100\/60 {
  color: #fae8ff99;
}
.text-fuchsia-100\/70 {
  color: #fae8ffb3;
}
.text-fuchsia-100\/75 {
  color: #fae8ffbf;
}
.text-fuchsia-100\/80 {
  color: #fae8ffcc;
}
.text-fuchsia-100\/90 {
  color: #fae8ffe6;
}
.text-fuchsia-100\/95 {
  color: #fae8fff2;
}
.text-fuchsia-200 {
  --tw-text-opacity: 1;
  color: rgb(245 208 254 / var(--tw-text-opacity));
}
.text-fuchsia-200\/0 {
  color: #f5d0fe00;
}
.text-fuchsia-200\/10 {
  color: #f5d0fe1a;
}
.text-fuchsia-200\/100 {
  color: #f5d0fe;
}
.text-fuchsia-200\/20 {
  color: #f5d0fe33;
}
.text-fuchsia-200\/25 {
  color: #f5d0fe40;
}
.text-fuchsia-200\/30 {
  color: #f5d0fe4d;
}
.text-fuchsia-200\/40 {
  color: #f5d0fe66;
}
.text-fuchsia-200\/5 {
  color: #f5d0fe0d;
}
.text-fuchsia-200\/50 {
  color: #f5d0fe80;
}
.text-fuchsia-200\/60 {
  color: #f5d0fe99;
}
.text-fuchsia-200\/70 {
  color: #f5d0feb3;
}
.text-fuchsia-200\/75 {
  color: #f5d0febf;
}
.text-fuchsia-200\/80 {
  color: #f5d0fecc;
}
.text-fuchsia-200\/90 {
  color: #f5d0fee6;
}
.text-fuchsia-200\/95 {
  color: #f5d0fef2;
}
.text-fuchsia-300 {
  --tw-text-opacity: 1;
  color: rgb(240 171 252 / var(--tw-text-opacity));
}
.text-fuchsia-300\/0 {
  color: #f0abfc00;
}
.text-fuchsia-300\/10 {
  color: #f0abfc1a;
}
.text-fuchsia-300\/100 {
  color: #f0abfc;
}
.text-fuchsia-300\/20 {
  color: #f0abfc33;
}
.text-fuchsia-300\/25 {
  color: #f0abfc40;
}
.text-fuchsia-300\/30 {
  color: #f0abfc4d;
}
.text-fuchsia-300\/40 {
  color: #f0abfc66;
}
.text-fuchsia-300\/5 {
  color: #f0abfc0d;
}
.text-fuchsia-300\/50 {
  color: #f0abfc80;
}
.text-fuchsia-300\/60 {
  color: #f0abfc99;
}
.text-fuchsia-300\/70 {
  color: #f0abfcb3;
}
.text-fuchsia-300\/75 {
  color: #f0abfcbf;
}
.text-fuchsia-300\/80 {
  color: #f0abfccc;
}
.text-fuchsia-300\/90 {
  color: #f0abfce6;
}
.text-fuchsia-300\/95 {
  color: #f0abfcf2;
}
.text-fuchsia-400 {
  --tw-text-opacity: 1;
  color: rgb(232 121 249 / var(--tw-text-opacity));
}
.text-fuchsia-400\/0 {
  color: #e879f900;
}
.text-fuchsia-400\/10 {
  color: #e879f91a;
}
.text-fuchsia-400\/100 {
  color: #e879f9;
}
.text-fuchsia-400\/20 {
  color: #e879f933;
}
.text-fuchsia-400\/25 {
  color: #e879f940;
}
.text-fuchsia-400\/30 {
  color: #e879f94d;
}
.text-fuchsia-400\/40 {
  color: #e879f966;
}
.text-fuchsia-400\/5 {
  color: #e879f90d;
}
.text-fuchsia-400\/50 {
  color: #e879f980;
}
.text-fuchsia-400\/60 {
  color: #e879f999;
}
.text-fuchsia-400\/70 {
  color: #e879f9b3;
}
.text-fuchsia-400\/75 {
  color: #e879f9bf;
}
.text-fuchsia-400\/80 {
  color: #e879f9cc;
}
.text-fuchsia-400\/90 {
  color: #e879f9e6;
}
.text-fuchsia-400\/95 {
  color: #e879f9f2;
}
.text-fuchsia-50 {
  --tw-text-opacity: 1;
  color: rgb(253 244 255 / var(--tw-text-opacity));
}
.text-fuchsia-50\/0 {
  color: #fdf4ff00;
}
.text-fuchsia-50\/10 {
  color: #fdf4ff1a;
}
.text-fuchsia-50\/100 {
  color: #fdf4ff;
}
.text-fuchsia-50\/20 {
  color: #fdf4ff33;
}
.text-fuchsia-50\/25 {
  color: #fdf4ff40;
}
.text-fuchsia-50\/30 {
  color: #fdf4ff4d;
}
.text-fuchsia-50\/40 {
  color: #fdf4ff66;
}
.text-fuchsia-50\/5 {
  color: #fdf4ff0d;
}
.text-fuchsia-50\/50 {
  color: #fdf4ff80;
}
.text-fuchsia-50\/60 {
  color: #fdf4ff99;
}
.text-fuchsia-50\/70 {
  color: #fdf4ffb3;
}
.text-fuchsia-50\/75 {
  color: #fdf4ffbf;
}
.text-fuchsia-50\/80 {
  color: #fdf4ffcc;
}
.text-fuchsia-50\/90 {
  color: #fdf4ffe6;
}
.text-fuchsia-50\/95 {
  color: #fdf4fff2;
}
.text-fuchsia-500 {
  --tw-text-opacity: 1;
  color: rgb(217 70 239 / var(--tw-text-opacity));
}
.text-fuchsia-500\/0 {
  color: #d946ef00;
}
.text-fuchsia-500\/10 {
  color: #d946ef1a;
}
.text-fuchsia-500\/100 {
  color: #d946ef;
}
.text-fuchsia-500\/20 {
  color: #d946ef33;
}
.text-fuchsia-500\/25 {
  color: #d946ef40;
}
.text-fuchsia-500\/30 {
  color: #d946ef4d;
}
.text-fuchsia-500\/40 {
  color: #d946ef66;
}
.text-fuchsia-500\/5 {
  color: #d946ef0d;
}
.text-fuchsia-500\/50 {
  color: #d946ef80;
}
.text-fuchsia-500\/60 {
  color: #d946ef99;
}
.text-fuchsia-500\/70 {
  color: #d946efb3;
}
.text-fuchsia-500\/75 {
  color: #d946efbf;
}
.text-fuchsia-500\/80 {
  color: #d946efcc;
}
.text-fuchsia-500\/90 {
  color: #d946efe6;
}
.text-fuchsia-500\/95 {
  color: #d946eff2;
}
.text-fuchsia-600 {
  --tw-text-opacity: 1;
  color: rgb(192 38 211 / var(--tw-text-opacity));
}
.text-fuchsia-600\/0 {
  color: #c026d300;
}
.text-fuchsia-600\/10 {
  color: #c026d31a;
}
.text-fuchsia-600\/100 {
  color: #c026d3;
}
.text-fuchsia-600\/20 {
  color: #c026d333;
}
.text-fuchsia-600\/25 {
  color: #c026d340;
}
.text-fuchsia-600\/30 {
  color: #c026d34d;
}
.text-fuchsia-600\/40 {
  color: #c026d366;
}
.text-fuchsia-600\/5 {
  color: #c026d30d;
}
.text-fuchsia-600\/50 {
  color: #c026d380;
}
.text-fuchsia-600\/60 {
  color: #c026d399;
}
.text-fuchsia-600\/70 {
  color: #c026d3b3;
}
.text-fuchsia-600\/75 {
  color: #c026d3bf;
}
.text-fuchsia-600\/80 {
  color: #c026d3cc;
}
.text-fuchsia-600\/90 {
  color: #c026d3e6;
}
.text-fuchsia-600\/95 {
  color: #c026d3f2;
}
.text-fuchsia-700 {
  --tw-text-opacity: 1;
  color: rgb(162 28 175 / var(--tw-text-opacity));
}
.text-fuchsia-700\/0 {
  color: #a21caf00;
}
.text-fuchsia-700\/10 {
  color: #a21caf1a;
}
.text-fuchsia-700\/100 {
  color: #a21caf;
}
.text-fuchsia-700\/20 {
  color: #a21caf33;
}
.text-fuchsia-700\/25 {
  color: #a21caf40;
}
.text-fuchsia-700\/30 {
  color: #a21caf4d;
}
.text-fuchsia-700\/40 {
  color: #a21caf66;
}
.text-fuchsia-700\/5 {
  color: #a21caf0d;
}
.text-fuchsia-700\/50 {
  color: #a21caf80;
}
.text-fuchsia-700\/60 {
  color: #a21caf99;
}
.text-fuchsia-700\/70 {
  color: #a21cafb3;
}
.text-fuchsia-700\/75 {
  color: #a21cafbf;
}
.text-fuchsia-700\/80 {
  color: #a21cafcc;
}
.text-fuchsia-700\/90 {
  color: #a21cafe6;
}
.text-fuchsia-700\/95 {
  color: #a21caff2;
}
.text-fuchsia-800 {
  --tw-text-opacity: 1;
  color: rgb(134 25 143 / var(--tw-text-opacity));
}
.text-fuchsia-800\/0 {
  color: #86198f00;
}
.text-fuchsia-800\/10 {
  color: #86198f1a;
}
.text-fuchsia-800\/100 {
  color: #86198f;
}
.text-fuchsia-800\/20 {
  color: #86198f33;
}
.text-fuchsia-800\/25 {
  color: #86198f40;
}
.text-fuchsia-800\/30 {
  color: #86198f4d;
}
.text-fuchsia-800\/40 {
  color: #86198f66;
}
.text-fuchsia-800\/5 {
  color: #86198f0d;
}
.text-fuchsia-800\/50 {
  color: #86198f80;
}
.text-fuchsia-800\/60 {
  color: #86198f99;
}
.text-fuchsia-800\/70 {
  color: #86198fb3;
}
.text-fuchsia-800\/75 {
  color: #86198fbf;
}
.text-fuchsia-800\/80 {
  color: #86198fcc;
}
.text-fuchsia-800\/90 {
  color: #86198fe6;
}
.text-fuchsia-800\/95 {
  color: #86198ff2;
}
.text-fuchsia-900 {
  --tw-text-opacity: 1;
  color: rgb(112 26 117 / var(--tw-text-opacity));
}
.text-fuchsia-900\/0 {
  color: #701a7500;
}
.text-fuchsia-900\/10 {
  color: #701a751a;
}
.text-fuchsia-900\/100 {
  color: #701a75;
}
.text-fuchsia-900\/20 {
  color: #701a7533;
}
.text-fuchsia-900\/25 {
  color: #701a7540;
}
.text-fuchsia-900\/30 {
  color: #701a754d;
}
.text-fuchsia-900\/40 {
  color: #701a7566;
}
.text-fuchsia-900\/5 {
  color: #701a750d;
}
.text-fuchsia-900\/50 {
  color: #701a7580;
}
.text-fuchsia-900\/60 {
  color: #701a7599;
}
.text-fuchsia-900\/70 {
  color: #701a75b3;
}
.text-fuchsia-900\/75 {
  color: #701a75bf;
}
.text-fuchsia-900\/80 {
  color: #701a75cc;
}
.text-fuchsia-900\/90 {
  color: #701a75e6;
}
.text-fuchsia-900\/95 {
  color: #701a75f2;
}
.text-fuchsia-950 {
  --tw-text-opacity: 1;
  color: rgb(74 4 78 / var(--tw-text-opacity));
}
.text-fuchsia-950\/0 {
  color: #4a044e00;
}
.text-fuchsia-950\/10 {
  color: #4a044e1a;
}
.text-fuchsia-950\/100 {
  color: #4a044e;
}
.text-fuchsia-950\/20 {
  color: #4a044e33;
}
.text-fuchsia-950\/25 {
  color: #4a044e40;
}
.text-fuchsia-950\/30 {
  color: #4a044e4d;
}
.text-fuchsia-950\/40 {
  color: #4a044e66;
}
.text-fuchsia-950\/5 {
  color: #4a044e0d;
}
.text-fuchsia-950\/50 {
  color: #4a044e80;
}
.text-fuchsia-950\/60 {
  color: #4a044e99;
}
.text-fuchsia-950\/70 {
  color: #4a044eb3;
}
.text-fuchsia-950\/75 {
  color: #4a044ebf;
}
.text-fuchsia-950\/80 {
  color: #4a044ecc;
}
.text-fuchsia-950\/90 {
  color: #4a044ee6;
}
.text-fuchsia-950\/95 {
  color: #4a044ef2;
}
.text-gray-100 {
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity));
}
.text-gray-100\/0 {
  color: #f3f4f600;
}
.text-gray-100\/10 {
  color: #f3f4f61a;
}
.text-gray-100\/100 {
  color: #f3f4f6;
}
.text-gray-100\/20 {
  color: #f3f4f633;
}
.text-gray-100\/25 {
  color: #f3f4f640;
}
.text-gray-100\/30 {
  color: #f3f4f64d;
}
.text-gray-100\/40 {
  color: #f3f4f666;
}
.text-gray-100\/5 {
  color: #f3f4f60d;
}
.text-gray-100\/50 {
  color: #f3f4f680;
}
.text-gray-100\/60 {
  color: #f3f4f699;
}
.text-gray-100\/70 {
  color: #f3f4f6b3;
}
.text-gray-100\/75 {
  color: #f3f4f6bf;
}
.text-gray-100\/80 {
  color: #f3f4f6cc;
}
.text-gray-100\/90 {
  color: #f3f4f6e6;
}
.text-gray-100\/95 {
  color: #f3f4f6f2;
}
.text-gray-200 {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity));
}
.text-gray-200\/0 {
  color: #e5e7eb00;
}
.text-gray-200\/10 {
  color: #e5e7eb1a;
}
.text-gray-200\/100 {
  color: #e5e7eb;
}
.text-gray-200\/20 {
  color: #e5e7eb33;
}
.text-gray-200\/25 {
  color: #e5e7eb40;
}
.text-gray-200\/30 {
  color: #e5e7eb4d;
}
.text-gray-200\/40 {
  color: #e5e7eb66;
}
.text-gray-200\/5 {
  color: #e5e7eb0d;
}
.text-gray-200\/50 {
  color: #e5e7eb80;
}
.text-gray-200\/60 {
  color: #e5e7eb99;
}
.text-gray-200\/70 {
  color: #e5e7ebb3;
}
.text-gray-200\/75 {
  color: #e5e7ebbf;
}
.text-gray-200\/80 {
  color: #e5e7ebcc;
}
.text-gray-200\/90 {
  color: #e5e7ebe6;
}
.text-gray-200\/95 {
  color: #e5e7ebf2;
}
.text-gray-300 {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity));
}
.text-gray-300\/0 {
  color: #d1d5db00;
}
.text-gray-300\/10 {
  color: #d1d5db1a;
}
.text-gray-300\/100 {
  color: #d1d5db;
}
.text-gray-300\/20 {
  color: #d1d5db33;
}
.text-gray-300\/25 {
  color: #d1d5db40;
}
.text-gray-300\/30 {
  color: #d1d5db4d;
}
.text-gray-300\/40 {
  color: #d1d5db66;
}
.text-gray-300\/5 {
  color: #d1d5db0d;
}
.text-gray-300\/50 {
  color: #d1d5db80;
}
.text-gray-300\/60 {
  color: #d1d5db99;
}
.text-gray-300\/70 {
  color: #d1d5dbb3;
}
.text-gray-300\/75 {
  color: #d1d5dbbf;
}
.text-gray-300\/80 {
  color: #d1d5dbcc;
}
.text-gray-300\/90 {
  color: #d1d5dbe6;
}
.text-gray-300\/95 {
  color: #d1d5dbf2;
}
.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity));
}
.text-gray-400\/0 {
  color: #9ca3af00;
}
.text-gray-400\/10 {
  color: #9ca3af1a;
}
.text-gray-400\/100 {
  color: #9ca3af;
}
.text-gray-400\/20 {
  color: #9ca3af33;
}
.text-gray-400\/25 {
  color: #9ca3af40;
}
.text-gray-400\/30 {
  color: #9ca3af4d;
}
.text-gray-400\/40 {
  color: #9ca3af66;
}
.text-gray-400\/5 {
  color: #9ca3af0d;
}
.text-gray-400\/50 {
  color: #9ca3af80;
}
.text-gray-400\/60 {
  color: #9ca3af99;
}
.text-gray-400\/70 {
  color: #9ca3afb3;
}
.text-gray-400\/75 {
  color: #9ca3afbf;
}
.text-gray-400\/80 {
  color: #9ca3afcc;
}
.text-gray-400\/90 {
  color: #9ca3afe6;
}
.text-gray-400\/95 {
  color: #9ca3aff2;
}
.text-gray-50 {
  --tw-text-opacity: 1;
  color: rgb(249 250 251 / var(--tw-text-opacity));
}
.text-gray-50\/0 {
  color: #f9fafb00;
}
.text-gray-50\/10 {
  color: #f9fafb1a;
}
.text-gray-50\/100 {
  color: #f9fafb;
}
.text-gray-50\/20 {
  color: #f9fafb33;
}
.text-gray-50\/25 {
  color: #f9fafb40;
}
.text-gray-50\/30 {
  color: #f9fafb4d;
}
.text-gray-50\/40 {
  color: #f9fafb66;
}
.text-gray-50\/5 {
  color: #f9fafb0d;
}
.text-gray-50\/50 {
  color: #f9fafb80;
}
.text-gray-50\/60 {
  color: #f9fafb99;
}
.text-gray-50\/70 {
  color: #f9fafbb3;
}
.text-gray-50\/75 {
  color: #f9fafbbf;
}
.text-gray-50\/80 {
  color: #f9fafbcc;
}
.text-gray-50\/90 {
  color: #f9fafbe6;
}
.text-gray-50\/95 {
  color: #f9fafbf2;
}
.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity));
}
.text-gray-500\/0 {
  color: #6b728000;
}
.text-gray-500\/10 {
  color: #6b72801a;
}
.text-gray-500\/100 {
  color: #6b7280;
}
.text-gray-500\/20 {
  color: #6b728033;
}
.text-gray-500\/25 {
  color: #6b728040;
}
.text-gray-500\/30 {
  color: #6b72804d;
}
.text-gray-500\/40 {
  color: #6b728066;
}
.text-gray-500\/5 {
  color: #6b72800d;
}
.text-gray-500\/50 {
  color: #6b728080;
}
.text-gray-500\/60 {
  color: #6b728099;
}
.text-gray-500\/70 {
  color: #6b7280b3;
}
.text-gray-500\/75 {
  color: #6b7280bf;
}
.text-gray-500\/80 {
  color: #6b7280cc;
}
.text-gray-500\/90 {
  color: #6b7280e6;
}
.text-gray-500\/95 {
  color: #6b7280f2;
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}
.text-gray-600\/0 {
  color: #4b556300;
}
.text-gray-600\/10 {
  color: #4b55631a;
}
.text-gray-600\/100 {
  color: #4b5563;
}
.text-gray-600\/20 {
  color: #4b556333;
}
.text-gray-600\/25 {
  color: #4b556340;
}
.text-gray-600\/30 {
  color: #4b55634d;
}
.text-gray-600\/40 {
  color: #4b556366;
}
.text-gray-600\/5 {
  color: #4b55630d;
}
.text-gray-600\/50 {
  color: #4b556380;
}
.text-gray-600\/60 {
  color: #4b556399;
}
.text-gray-600\/70 {
  color: #4b5563b3;
}
.text-gray-600\/75 {
  color: #4b5563bf;
}
.text-gray-600\/80 {
  color: #4b5563cc;
}
.text-gray-600\/90 {
  color: #4b5563e6;
}
.text-gray-600\/95 {
  color: #4b5563f2;
}
.text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}
.text-gray-700\/0 {
  color: #37415100;
}
.text-gray-700\/10 {
  color: #3741511a;
}
.text-gray-700\/100 {
  color: #374151;
}
.text-gray-700\/20 {
  color: #37415133;
}
.text-gray-700\/25 {
  color: #37415140;
}
.text-gray-700\/30 {
  color: #3741514d;
}
.text-gray-700\/40 {
  color: #37415166;
}
.text-gray-700\/5 {
  color: #3741510d;
}
.text-gray-700\/50 {
  color: #37415180;
}
.text-gray-700\/60 {
  color: #37415199;
}
.text-gray-700\/70 {
  color: #374151b3;
}
.text-gray-700\/75 {
  color: #374151bf;
}
.text-gray-700\/80 {
  color: #374151cc;
}
.text-gray-700\/90 {
  color: #374151e6;
}
.text-gray-700\/95 {
  color: #374151f2;
}
.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}
.text-gray-800\/0 {
  color: #1f293700;
}
.text-gray-800\/10 {
  color: #1f29371a;
}
.text-gray-800\/100 {
  color: #1f2937;
}
.text-gray-800\/20 {
  color: #1f293733;
}
.text-gray-800\/25 {
  color: #1f293740;
}
.text-gray-800\/30 {
  color: #1f29374d;
}
.text-gray-800\/40 {
  color: #1f293766;
}
.text-gray-800\/5 {
  color: #1f29370d;
}
.text-gray-800\/50 {
  color: #1f293780;
}
.text-gray-800\/60 {
  color: #1f293799;
}
.text-gray-800\/70 {
  color: #1f2937b3;
}
.text-gray-800\/75 {
  color: #1f2937bf;
}
.text-gray-800\/80 {
  color: #1f2937cc;
}
.text-gray-800\/90 {
  color: #1f2937e6;
}
.text-gray-800\/95 {
  color: #1f2937f2;
}
.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity));
}
.text-gray-900\/0 {
  color: #11182700;
}
.text-gray-900\/10 {
  color: #1118271a;
}
.text-gray-900\/100 {
  color: #111827;
}
.text-gray-900\/20 {
  color: #11182733;
}
.text-gray-900\/25 {
  color: #11182740;
}
.text-gray-900\/30 {
  color: #1118274d;
}
.text-gray-900\/40 {
  color: #11182766;
}
.text-gray-900\/5 {
  color: #1118270d;
}
.text-gray-900\/50 {
  color: #11182780;
}
.text-gray-900\/60 {
  color: #11182799;
}
.text-gray-900\/70 {
  color: #111827b3;
}
.text-gray-900\/75 {
  color: #111827bf;
}
.text-gray-900\/80 {
  color: #111827cc;
}
.text-gray-900\/90 {
  color: #111827e6;
}
.text-gray-900\/95 {
  color: #111827f2;
}
.text-gray-950 {
  --tw-text-opacity: 1;
  color: rgb(3 7 18 / var(--tw-text-opacity));
}
.text-gray-950\/0 {
  color: #03071200;
}
.text-gray-950\/10 {
  color: #0307121a;
}
.text-gray-950\/100 {
  color: #030712;
}
.text-gray-950\/20 {
  color: #03071233;
}
.text-gray-950\/25 {
  color: #03071240;
}
.text-gray-950\/30 {
  color: #0307124d;
}
.text-gray-950\/40 {
  color: #03071266;
}
.text-gray-950\/5 {
  color: #0307120d;
}
.text-gray-950\/50 {
  color: #03071280;
}
.text-gray-950\/60 {
  color: #03071299;
}
.text-gray-950\/70 {
  color: #030712b3;
}
.text-gray-950\/75 {
  color: #030712bf;
}
.text-gray-950\/80 {
  color: #030712cc;
}
.text-gray-950\/90 {
  color: #030712e6;
}
.text-gray-950\/95 {
  color: #030712f2;
}
.text-green-100 {
  --tw-text-opacity: 1;
  color: rgb(220 252 231 / var(--tw-text-opacity));
}
.text-green-100\/0 {
  color: #dcfce700;
}
.text-green-100\/10 {
  color: #dcfce71a;
}
.text-green-100\/100 {
  color: #dcfce7;
}
.text-green-100\/20 {
  color: #dcfce733;
}
.text-green-100\/25 {
  color: #dcfce740;
}
.text-green-100\/30 {
  color: #dcfce74d;
}
.text-green-100\/40 {
  color: #dcfce766;
}
.text-green-100\/5 {
  color: #dcfce70d;
}
.text-green-100\/50 {
  color: #dcfce780;
}
.text-green-100\/60 {
  color: #dcfce799;
}
.text-green-100\/70 {
  color: #dcfce7b3;
}
.text-green-100\/75 {
  color: #dcfce7bf;
}
.text-green-100\/80 {
  color: #dcfce7cc;
}
.text-green-100\/90 {
  color: #dcfce7e6;
}
.text-green-100\/95 {
  color: #dcfce7f2;
}
.text-green-200 {
  --tw-text-opacity: 1;
  color: rgb(187 247 208 / var(--tw-text-opacity));
}
.text-green-200\/0 {
  color: #bbf7d000;
}
.text-green-200\/10 {
  color: #bbf7d01a;
}
.text-green-200\/100 {
  color: #bbf7d0;
}
.text-green-200\/20 {
  color: #bbf7d033;
}
.text-green-200\/25 {
  color: #bbf7d040;
}
.text-green-200\/30 {
  color: #bbf7d04d;
}
.text-green-200\/40 {
  color: #bbf7d066;
}
.text-green-200\/5 {
  color: #bbf7d00d;
}
.text-green-200\/50 {
  color: #bbf7d080;
}
.text-green-200\/60 {
  color: #bbf7d099;
}
.text-green-200\/70 {
  color: #bbf7d0b3;
}
.text-green-200\/75 {
  color: #bbf7d0bf;
}
.text-green-200\/80 {
  color: #bbf7d0cc;
}
.text-green-200\/90 {
  color: #bbf7d0e6;
}
.text-green-200\/95 {
  color: #bbf7d0f2;
}
.text-green-300 {
  --tw-text-opacity: 1;
  color: rgb(134 239 172 / var(--tw-text-opacity));
}
.text-green-300\/0 {
  color: #86efac00;
}
.text-green-300\/10 {
  color: #86efac1a;
}
.text-green-300\/100 {
  color: #86efac;
}
.text-green-300\/20 {
  color: #86efac33;
}
.text-green-300\/25 {
  color: #86efac40;
}
.text-green-300\/30 {
  color: #86efac4d;
}
.text-green-300\/40 {
  color: #86efac66;
}
.text-green-300\/5 {
  color: #86efac0d;
}
.text-green-300\/50 {
  color: #86efac80;
}
.text-green-300\/60 {
  color: #86efac99;
}
.text-green-300\/70 {
  color: #86efacb3;
}
.text-green-300\/75 {
  color: #86efacbf;
}
.text-green-300\/80 {
  color: #86efaccc;
}
.text-green-300\/90 {
  color: #86eface6;
}
.text-green-300\/95 {
  color: #86efacf2;
}
.text-green-400 {
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity));
}
.text-green-400\/0 {
  color: #4ade8000;
}
.text-green-400\/10 {
  color: #4ade801a;
}
.text-green-400\/100 {
  color: #4ade80;
}
.text-green-400\/20 {
  color: #4ade8033;
}
.text-green-400\/25 {
  color: #4ade8040;
}
.text-green-400\/30 {
  color: #4ade804d;
}
.text-green-400\/40 {
  color: #4ade8066;
}
.text-green-400\/5 {
  color: #4ade800d;
}
.text-green-400\/50 {
  color: #4ade8080;
}
.text-green-400\/60 {
  color: #4ade8099;
}
.text-green-400\/70 {
  color: #4ade80b3;
}
.text-green-400\/75 {
  color: #4ade80bf;
}
.text-green-400\/80 {
  color: #4ade80cc;
}
.text-green-400\/90 {
  color: #4ade80e6;
}
.text-green-400\/95 {
  color: #4ade80f2;
}
.text-green-50 {
  --tw-text-opacity: 1;
  color: rgb(240 253 244 / var(--tw-text-opacity));
}
.text-green-50\/0 {
  color: #f0fdf400;
}
.text-green-50\/10 {
  color: #f0fdf41a;
}
.text-green-50\/100 {
  color: #f0fdf4;
}
.text-green-50\/20 {
  color: #f0fdf433;
}
.text-green-50\/25 {
  color: #f0fdf440;
}
.text-green-50\/30 {
  color: #f0fdf44d;
}
.text-green-50\/40 {
  color: #f0fdf466;
}
.text-green-50\/5 {
  color: #f0fdf40d;
}
.text-green-50\/50 {
  color: #f0fdf480;
}
.text-green-50\/60 {
  color: #f0fdf499;
}
.text-green-50\/70 {
  color: #f0fdf4b3;
}
.text-green-50\/75 {
  color: #f0fdf4bf;
}
.text-green-50\/80 {
  color: #f0fdf4cc;
}
.text-green-50\/90 {
  color: #f0fdf4e6;
}
.text-green-50\/95 {
  color: #f0fdf4f2;
}
.text-green-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity));
}
.text-green-500\/0 {
  color: #22c55e00;
}
.text-green-500\/10 {
  color: #22c55e1a;
}
.text-green-500\/100 {
  color: #22c55e;
}
.text-green-500\/20 {
  color: #22c55e33;
}
.text-green-500\/25 {
  color: #22c55e40;
}
.text-green-500\/30 {
  color: #22c55e4d;
}
.text-green-500\/40 {
  color: #22c55e66;
}
.text-green-500\/5 {
  color: #22c55e0d;
}
.text-green-500\/50 {
  color: #22c55e80;
}
.text-green-500\/60 {
  color: #22c55e99;
}
.text-green-500\/70 {
  color: #22c55eb3;
}
.text-green-500\/75 {
  color: #22c55ebf;
}
.text-green-500\/80 {
  color: #22c55ecc;
}
.text-green-500\/90 {
  color: #22c55ee6;
}
.text-green-500\/95 {
  color: #22c55ef2;
}
.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity));
}
.text-green-600\/0 {
  color: #16a34a00;
}
.text-green-600\/10 {
  color: #16a34a1a;
}
.text-green-600\/100 {
  color: #16a34a;
}
.text-green-600\/20 {
  color: #16a34a33;
}
.text-green-600\/25 {
  color: #16a34a40;
}
.text-green-600\/30 {
  color: #16a34a4d;
}
.text-green-600\/40 {
  color: #16a34a66;
}
.text-green-600\/5 {
  color: #16a34a0d;
}
.text-green-600\/50 {
  color: #16a34a80;
}
.text-green-600\/60 {
  color: #16a34a99;
}
.text-green-600\/70 {
  color: #16a34ab3;
}
.text-green-600\/75 {
  color: #16a34abf;
}
.text-green-600\/80 {
  color: #16a34acc;
}
.text-green-600\/90 {
  color: #16a34ae6;
}
.text-green-600\/95 {
  color: #16a34af2;
}
.text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity));
}
.text-green-700\/0 {
  color: #15803d00;
}
.text-green-700\/10 {
  color: #15803d1a;
}
.text-green-700\/100 {
  color: #15803d;
}
.text-green-700\/20 {
  color: #15803d33;
}
.text-green-700\/25 {
  color: #15803d40;
}
.text-green-700\/30 {
  color: #15803d4d;
}
.text-green-700\/40 {
  color: #15803d66;
}
.text-green-700\/5 {
  color: #15803d0d;
}
.text-green-700\/50 {
  color: #15803d80;
}
.text-green-700\/60 {
  color: #15803d99;
}
.text-green-700\/70 {
  color: #15803db3;
}
.text-green-700\/75 {
  color: #15803dbf;
}
.text-green-700\/80 {
  color: #15803dcc;
}
.text-green-700\/90 {
  color: #15803de6;
}
.text-green-700\/95 {
  color: #15803df2;
}
.text-green-800 {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity));
}
.text-green-800\/0 {
  color: #16653400;
}
.text-green-800\/10 {
  color: #1665341a;
}
.text-green-800\/100 {
  color: #166534;
}
.text-green-800\/20 {
  color: #16653433;
}
.text-green-800\/25 {
  color: #16653440;
}
.text-green-800\/30 {
  color: #1665344d;
}
.text-green-800\/40 {
  color: #16653466;
}
.text-green-800\/5 {
  color: #1665340d;
}
.text-green-800\/50 {
  color: #16653480;
}
.text-green-800\/60 {
  color: #16653499;
}
.text-green-800\/70 {
  color: #166534b3;
}
.text-green-800\/75 {
  color: #166534bf;
}
.text-green-800\/80 {
  color: #166534cc;
}
.text-green-800\/90 {
  color: #166534e6;
}
.text-green-800\/95 {
  color: #166534f2;
}
.text-green-900 {
  --tw-text-opacity: 1;
  color: rgb(20 83 45 / var(--tw-text-opacity));
}
.text-green-900\/0 {
  color: #14532d00;
}
.text-green-900\/10 {
  color: #14532d1a;
}
.text-green-900\/100 {
  color: #14532d;
}
.text-green-900\/20 {
  color: #14532d33;
}
.text-green-900\/25 {
  color: #14532d40;
}
.text-green-900\/30 {
  color: #14532d4d;
}
.text-green-900\/40 {
  color: #14532d66;
}
.text-green-900\/5 {
  color: #14532d0d;
}
.text-green-900\/50 {
  color: #14532d80;
}
.text-green-900\/60 {
  color: #14532d99;
}
.text-green-900\/70 {
  color: #14532db3;
}
.text-green-900\/75 {
  color: #14532dbf;
}
.text-green-900\/80 {
  color: #14532dcc;
}
.text-green-900\/90 {
  color: #14532de6;
}
.text-green-900\/95 {
  color: #14532df2;
}
.text-green-950 {
  --tw-text-opacity: 1;
  color: rgb(5 46 22 / var(--tw-text-opacity));
}
.text-green-950\/0 {
  color: #052e1600;
}
.text-green-950\/10 {
  color: #052e161a;
}
.text-green-950\/100 {
  color: #052e16;
}
.text-green-950\/20 {
  color: #052e1633;
}
.text-green-950\/25 {
  color: #052e1640;
}
.text-green-950\/30 {
  color: #052e164d;
}
.text-green-950\/40 {
  color: #052e1666;
}
.text-green-950\/5 {
  color: #052e160d;
}
.text-green-950\/50 {
  color: #052e1680;
}
.text-green-950\/60 {
  color: #052e1699;
}
.text-green-950\/70 {
  color: #052e16b3;
}
.text-green-950\/75 {
  color: #052e16bf;
}
.text-green-950\/80 {
  color: #052e16cc;
}
.text-green-950\/90 {
  color: #052e16e6;
}
.text-green-950\/95 {
  color: #052e16f2;
}
.text-indigo-100 {
  --tw-text-opacity: 1;
  color: rgb(224 231 255 / var(--tw-text-opacity));
}
.text-indigo-100\/0 {
  color: #e0e7ff00;
}
.text-indigo-100\/10 {
  color: #e0e7ff1a;
}
.text-indigo-100\/100 {
  color: #e0e7ff;
}
.text-indigo-100\/20 {
  color: #e0e7ff33;
}
.text-indigo-100\/25 {
  color: #e0e7ff40;
}
.text-indigo-100\/30 {
  color: #e0e7ff4d;
}
.text-indigo-100\/40 {
  color: #e0e7ff66;
}
.text-indigo-100\/5 {
  color: #e0e7ff0d;
}
.text-indigo-100\/50 {
  color: #e0e7ff80;
}
.text-indigo-100\/60 {
  color: #e0e7ff99;
}
.text-indigo-100\/70 {
  color: #e0e7ffb3;
}
.text-indigo-100\/75 {
  color: #e0e7ffbf;
}
.text-indigo-100\/80 {
  color: #e0e7ffcc;
}
.text-indigo-100\/90 {
  color: #e0e7ffe6;
}
.text-indigo-100\/95 {
  color: #e0e7fff2;
}
.text-indigo-200 {
  --tw-text-opacity: 1;
  color: rgb(199 210 254 / var(--tw-text-opacity));
}
.text-indigo-200\/0 {
  color: #c7d2fe00;
}
.text-indigo-200\/10 {
  color: #c7d2fe1a;
}
.text-indigo-200\/100 {
  color: #c7d2fe;
}
.text-indigo-200\/20 {
  color: #c7d2fe33;
}
.text-indigo-200\/25 {
  color: #c7d2fe40;
}
.text-indigo-200\/30 {
  color: #c7d2fe4d;
}
.text-indigo-200\/40 {
  color: #c7d2fe66;
}
.text-indigo-200\/5 {
  color: #c7d2fe0d;
}
.text-indigo-200\/50 {
  color: #c7d2fe80;
}
.text-indigo-200\/60 {
  color: #c7d2fe99;
}
.text-indigo-200\/70 {
  color: #c7d2feb3;
}
.text-indigo-200\/75 {
  color: #c7d2febf;
}
.text-indigo-200\/80 {
  color: #c7d2fecc;
}
.text-indigo-200\/90 {
  color: #c7d2fee6;
}
.text-indigo-200\/95 {
  color: #c7d2fef2;
}
.text-indigo-300 {
  --tw-text-opacity: 1;
  color: rgb(165 180 252 / var(--tw-text-opacity));
}
.text-indigo-300\/0 {
  color: #a5b4fc00;
}
.text-indigo-300\/10 {
  color: #a5b4fc1a;
}
.text-indigo-300\/100 {
  color: #a5b4fc;
}
.text-indigo-300\/20 {
  color: #a5b4fc33;
}
.text-indigo-300\/25 {
  color: #a5b4fc40;
}
.text-indigo-300\/30 {
  color: #a5b4fc4d;
}
.text-indigo-300\/40 {
  color: #a5b4fc66;
}
.text-indigo-300\/5 {
  color: #a5b4fc0d;
}
.text-indigo-300\/50 {
  color: #a5b4fc80;
}
.text-indigo-300\/60 {
  color: #a5b4fc99;
}
.text-indigo-300\/70 {
  color: #a5b4fcb3;
}
.text-indigo-300\/75 {
  color: #a5b4fcbf;
}
.text-indigo-300\/80 {
  color: #a5b4fccc;
}
.text-indigo-300\/90 {
  color: #a5b4fce6;
}
.text-indigo-300\/95 {
  color: #a5b4fcf2;
}
.text-indigo-400 {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / var(--tw-text-opacity));
}
.text-indigo-400\/0 {
  color: #818cf800;
}
.text-indigo-400\/10 {
  color: #818cf81a;
}
.text-indigo-400\/100 {
  color: #818cf8;
}
.text-indigo-400\/20 {
  color: #818cf833;
}
.text-indigo-400\/25 {
  color: #818cf840;
}
.text-indigo-400\/30 {
  color: #818cf84d;
}
.text-indigo-400\/40 {
  color: #818cf866;
}
.text-indigo-400\/5 {
  color: #818cf80d;
}
.text-indigo-400\/50 {
  color: #818cf880;
}
.text-indigo-400\/60 {
  color: #818cf899;
}
.text-indigo-400\/70 {
  color: #818cf8b3;
}
.text-indigo-400\/75 {
  color: #818cf8bf;
}
.text-indigo-400\/80 {
  color: #818cf8cc;
}
.text-indigo-400\/90 {
  color: #818cf8e6;
}
.text-indigo-400\/95 {
  color: #818cf8f2;
}
.text-indigo-50 {
  --tw-text-opacity: 1;
  color: rgb(238 242 255 / var(--tw-text-opacity));
}
.text-indigo-50\/0 {
  color: #eef2ff00;
}
.text-indigo-50\/10 {
  color: #eef2ff1a;
}
.text-indigo-50\/100 {
  color: #eef2ff;
}
.text-indigo-50\/20 {
  color: #eef2ff33;
}
.text-indigo-50\/25 {
  color: #eef2ff40;
}
.text-indigo-50\/30 {
  color: #eef2ff4d;
}
.text-indigo-50\/40 {
  color: #eef2ff66;
}
.text-indigo-50\/5 {
  color: #eef2ff0d;
}
.text-indigo-50\/50 {
  color: #eef2ff80;
}
.text-indigo-50\/60 {
  color: #eef2ff99;
}
.text-indigo-50\/70 {
  color: #eef2ffb3;
}
.text-indigo-50\/75 {
  color: #eef2ffbf;
}
.text-indigo-50\/80 {
  color: #eef2ffcc;
}
.text-indigo-50\/90 {
  color: #eef2ffe6;
}
.text-indigo-50\/95 {
  color: #eef2fff2;
}
.text-indigo-500 {
  --tw-text-opacity: 1;
  color: rgb(99 102 241 / var(--tw-text-opacity));
}
.text-indigo-500\/0 {
  color: #6366f100;
}
.text-indigo-500\/10 {
  color: #6366f11a;
}
.text-indigo-500\/100 {
  color: #6366f1;
}
.text-indigo-500\/20 {
  color: #6366f133;
}
.text-indigo-500\/25 {
  color: #6366f140;
}
.text-indigo-500\/30 {
  color: #6366f14d;
}
.text-indigo-500\/40 {
  color: #6366f166;
}
.text-indigo-500\/5 {
  color: #6366f10d;
}
.text-indigo-500\/50 {
  color: #6366f180;
}
.text-indigo-500\/60 {
  color: #6366f199;
}
.text-indigo-500\/70 {
  color: #6366f1b3;
}
.text-indigo-500\/75 {
  color: #6366f1bf;
}
.text-indigo-500\/80 {
  color: #6366f1cc;
}
.text-indigo-500\/90 {
  color: #6366f1e6;
}
.text-indigo-500\/95 {
  color: #6366f1f2;
}
.text-indigo-600 {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity));
}
.text-indigo-600\/0 {
  color: #4f46e500;
}
.text-indigo-600\/10 {
  color: #4f46e51a;
}
.text-indigo-600\/100 {
  color: #4f46e5;
}
.text-indigo-600\/20 {
  color: #4f46e533;
}
.text-indigo-600\/25 {
  color: #4f46e540;
}
.text-indigo-600\/30 {
  color: #4f46e54d;
}
.text-indigo-600\/40 {
  color: #4f46e566;
}
.text-indigo-600\/5 {
  color: #4f46e50d;
}
.text-indigo-600\/50 {
  color: #4f46e580;
}
.text-indigo-600\/60 {
  color: #4f46e599;
}
.text-indigo-600\/70 {
  color: #4f46e5b3;
}
.text-indigo-600\/75 {
  color: #4f46e5bf;
}
.text-indigo-600\/80 {
  color: #4f46e5cc;
}
.text-indigo-600\/90 {
  color: #4f46e5e6;
}
.text-indigo-600\/95 {
  color: #4f46e5f2;
}
.text-indigo-700 {
  --tw-text-opacity: 1;
  color: rgb(67 56 202 / var(--tw-text-opacity));
}
.text-indigo-700\/0 {
  color: #4338ca00;
}
.text-indigo-700\/10 {
  color: #4338ca1a;
}
.text-indigo-700\/100 {
  color: #4338ca;
}
.text-indigo-700\/20 {
  color: #4338ca33;
}
.text-indigo-700\/25 {
  color: #4338ca40;
}
.text-indigo-700\/30 {
  color: #4338ca4d;
}
.text-indigo-700\/40 {
  color: #4338ca66;
}
.text-indigo-700\/5 {
  color: #4338ca0d;
}
.text-indigo-700\/50 {
  color: #4338ca80;
}
.text-indigo-700\/60 {
  color: #4338ca99;
}
.text-indigo-700\/70 {
  color: #4338cab3;
}
.text-indigo-700\/75 {
  color: #4338cabf;
}
.text-indigo-700\/80 {
  color: #4338cacc;
}
.text-indigo-700\/90 {
  color: #4338cae6;
}
.text-indigo-700\/95 {
  color: #4338caf2;
}
.text-indigo-800 {
  --tw-text-opacity: 1;
  color: rgb(55 48 163 / var(--tw-text-opacity));
}
.text-indigo-800\/0 {
  color: #3730a300;
}
.text-indigo-800\/10 {
  color: #3730a31a;
}
.text-indigo-800\/100 {
  color: #3730a3;
}
.text-indigo-800\/20 {
  color: #3730a333;
}
.text-indigo-800\/25 {
  color: #3730a340;
}
.text-indigo-800\/30 {
  color: #3730a34d;
}
.text-indigo-800\/40 {
  color: #3730a366;
}
.text-indigo-800\/5 {
  color: #3730a30d;
}
.text-indigo-800\/50 {
  color: #3730a380;
}
.text-indigo-800\/60 {
  color: #3730a399;
}
.text-indigo-800\/70 {
  color: #3730a3b3;
}
.text-indigo-800\/75 {
  color: #3730a3bf;
}
.text-indigo-800\/80 {
  color: #3730a3cc;
}
.text-indigo-800\/90 {
  color: #3730a3e6;
}
.text-indigo-800\/95 {
  color: #3730a3f2;
}
.text-indigo-900 {
  --tw-text-opacity: 1;
  color: rgb(49 46 129 / var(--tw-text-opacity));
}
.text-indigo-900\/0 {
  color: #312e8100;
}
.text-indigo-900\/10 {
  color: #312e811a;
}
.text-indigo-900\/100 {
  color: #312e81;
}
.text-indigo-900\/20 {
  color: #312e8133;
}
.text-indigo-900\/25 {
  color: #312e8140;
}
.text-indigo-900\/30 {
  color: #312e814d;
}
.text-indigo-900\/40 {
  color: #312e8166;
}
.text-indigo-900\/5 {
  color: #312e810d;
}
.text-indigo-900\/50 {
  color: #312e8180;
}
.text-indigo-900\/60 {
  color: #312e8199;
}
.text-indigo-900\/70 {
  color: #312e81b3;
}
.text-indigo-900\/75 {
  color: #312e81bf;
}
.text-indigo-900\/80 {
  color: #312e81cc;
}
.text-indigo-900\/90 {
  color: #312e81e6;
}
.text-indigo-900\/95 {
  color: #312e81f2;
}
.text-indigo-950 {
  --tw-text-opacity: 1;
  color: rgb(30 27 75 / var(--tw-text-opacity));
}
.text-indigo-950\/0 {
  color: #1e1b4b00;
}
.text-indigo-950\/10 {
  color: #1e1b4b1a;
}
.text-indigo-950\/100 {
  color: #1e1b4b;
}
.text-indigo-950\/20 {
  color: #1e1b4b33;
}
.text-indigo-950\/25 {
  color: #1e1b4b40;
}
.text-indigo-950\/30 {
  color: #1e1b4b4d;
}
.text-indigo-950\/40 {
  color: #1e1b4b66;
}
.text-indigo-950\/5 {
  color: #1e1b4b0d;
}
.text-indigo-950\/50 {
  color: #1e1b4b80;
}
.text-indigo-950\/60 {
  color: #1e1b4b99;
}
.text-indigo-950\/70 {
  color: #1e1b4bb3;
}
.text-indigo-950\/75 {
  color: #1e1b4bbf;
}
.text-indigo-950\/80 {
  color: #1e1b4bcc;
}
.text-indigo-950\/90 {
  color: #1e1b4be6;
}
.text-indigo-950\/95 {
  color: #1e1b4bf2;
}
.text-inherit {
  color: inherit;
}
.text-lime-100 {
  --tw-text-opacity: 1;
  color: rgb(236 252 203 / var(--tw-text-opacity));
}
.text-lime-100\/0 {
  color: #ecfccb00;
}
.text-lime-100\/10 {
  color: #ecfccb1a;
}
.text-lime-100\/100 {
  color: #ecfccb;
}
.text-lime-100\/20 {
  color: #ecfccb33;
}
.text-lime-100\/25 {
  color: #ecfccb40;
}
.text-lime-100\/30 {
  color: #ecfccb4d;
}
.text-lime-100\/40 {
  color: #ecfccb66;
}
.text-lime-100\/5 {
  color: #ecfccb0d;
}
.text-lime-100\/50 {
  color: #ecfccb80;
}
.text-lime-100\/60 {
  color: #ecfccb99;
}
.text-lime-100\/70 {
  color: #ecfccbb3;
}
.text-lime-100\/75 {
  color: #ecfccbbf;
}
.text-lime-100\/80 {
  color: #ecfccbcc;
}
.text-lime-100\/90 {
  color: #ecfccbe6;
}
.text-lime-100\/95 {
  color: #ecfccbf2;
}
.text-lime-200 {
  --tw-text-opacity: 1;
  color: rgb(217 249 157 / var(--tw-text-opacity));
}
.text-lime-200\/0 {
  color: #d9f99d00;
}
.text-lime-200\/10 {
  color: #d9f99d1a;
}
.text-lime-200\/100 {
  color: #d9f99d;
}
.text-lime-200\/20 {
  color: #d9f99d33;
}
.text-lime-200\/25 {
  color: #d9f99d40;
}
.text-lime-200\/30 {
  color: #d9f99d4d;
}
.text-lime-200\/40 {
  color: #d9f99d66;
}
.text-lime-200\/5 {
  color: #d9f99d0d;
}
.text-lime-200\/50 {
  color: #d9f99d80;
}
.text-lime-200\/60 {
  color: #d9f99d99;
}
.text-lime-200\/70 {
  color: #d9f99db3;
}
.text-lime-200\/75 {
  color: #d9f99dbf;
}
.text-lime-200\/80 {
  color: #d9f99dcc;
}
.text-lime-200\/90 {
  color: #d9f99de6;
}
.text-lime-200\/95 {
  color: #d9f99df2;
}
.text-lime-300 {
  --tw-text-opacity: 1;
  color: rgb(190 242 100 / var(--tw-text-opacity));
}
.text-lime-300\/0 {
  color: #bef26400;
}
.text-lime-300\/10 {
  color: #bef2641a;
}
.text-lime-300\/100 {
  color: #bef264;
}
.text-lime-300\/20 {
  color: #bef26433;
}
.text-lime-300\/25 {
  color: #bef26440;
}
.text-lime-300\/30 {
  color: #bef2644d;
}
.text-lime-300\/40 {
  color: #bef26466;
}
.text-lime-300\/5 {
  color: #bef2640d;
}
.text-lime-300\/50 {
  color: #bef26480;
}
.text-lime-300\/60 {
  color: #bef26499;
}
.text-lime-300\/70 {
  color: #bef264b3;
}
.text-lime-300\/75 {
  color: #bef264bf;
}
.text-lime-300\/80 {
  color: #bef264cc;
}
.text-lime-300\/90 {
  color: #bef264e6;
}
.text-lime-300\/95 {
  color: #bef264f2;
}
.text-lime-400 {
  --tw-text-opacity: 1;
  color: rgb(163 230 53 / var(--tw-text-opacity));
}
.text-lime-400\/0 {
  color: #a3e63500;
}
.text-lime-400\/10 {
  color: #a3e6351a;
}
.text-lime-400\/100 {
  color: #a3e635;
}
.text-lime-400\/20 {
  color: #a3e63533;
}
.text-lime-400\/25 {
  color: #a3e63540;
}
.text-lime-400\/30 {
  color: #a3e6354d;
}
.text-lime-400\/40 {
  color: #a3e63566;
}
.text-lime-400\/5 {
  color: #a3e6350d;
}
.text-lime-400\/50 {
  color: #a3e63580;
}
.text-lime-400\/60 {
  color: #a3e63599;
}
.text-lime-400\/70 {
  color: #a3e635b3;
}
.text-lime-400\/75 {
  color: #a3e635bf;
}
.text-lime-400\/80 {
  color: #a3e635cc;
}
.text-lime-400\/90 {
  color: #a3e635e6;
}
.text-lime-400\/95 {
  color: #a3e635f2;
}
.text-lime-50 {
  --tw-text-opacity: 1;
  color: rgb(247 254 231 / var(--tw-text-opacity));
}
.text-lime-50\/0 {
  color: #f7fee700;
}
.text-lime-50\/10 {
  color: #f7fee71a;
}
.text-lime-50\/100 {
  color: #f7fee7;
}
.text-lime-50\/20 {
  color: #f7fee733;
}
.text-lime-50\/25 {
  color: #f7fee740;
}
.text-lime-50\/30 {
  color: #f7fee74d;
}
.text-lime-50\/40 {
  color: #f7fee766;
}
.text-lime-50\/5 {
  color: #f7fee70d;
}
.text-lime-50\/50 {
  color: #f7fee780;
}
.text-lime-50\/60 {
  color: #f7fee799;
}
.text-lime-50\/70 {
  color: #f7fee7b3;
}
.text-lime-50\/75 {
  color: #f7fee7bf;
}
.text-lime-50\/80 {
  color: #f7fee7cc;
}
.text-lime-50\/90 {
  color: #f7fee7e6;
}
.text-lime-50\/95 {
  color: #f7fee7f2;
}
.text-lime-500 {
  --tw-text-opacity: 1;
  color: rgb(132 204 22 / var(--tw-text-opacity));
}
.text-lime-500\/0 {
  color: #84cc1600;
}
.text-lime-500\/10 {
  color: #84cc161a;
}
.text-lime-500\/100 {
  color: #84cc16;
}
.text-lime-500\/20 {
  color: #84cc1633;
}
.text-lime-500\/25 {
  color: #84cc1640;
}
.text-lime-500\/30 {
  color: #84cc164d;
}
.text-lime-500\/40 {
  color: #84cc1666;
}
.text-lime-500\/5 {
  color: #84cc160d;
}
.text-lime-500\/50 {
  color: #84cc1680;
}
.text-lime-500\/60 {
  color: #84cc1699;
}
.text-lime-500\/70 {
  color: #84cc16b3;
}
.text-lime-500\/75 {
  color: #84cc16bf;
}
.text-lime-500\/80 {
  color: #84cc16cc;
}
.text-lime-500\/90 {
  color: #84cc16e6;
}
.text-lime-500\/95 {
  color: #84cc16f2;
}
.text-lime-600 {
  --tw-text-opacity: 1;
  color: rgb(101 163 13 / var(--tw-text-opacity));
}
.text-lime-600\/0 {
  color: #65a30d00;
}
.text-lime-600\/10 {
  color: #65a30d1a;
}
.text-lime-600\/100 {
  color: #65a30d;
}
.text-lime-600\/20 {
  color: #65a30d33;
}
.text-lime-600\/25 {
  color: #65a30d40;
}
.text-lime-600\/30 {
  color: #65a30d4d;
}
.text-lime-600\/40 {
  color: #65a30d66;
}
.text-lime-600\/5 {
  color: #65a30d0d;
}
.text-lime-600\/50 {
  color: #65a30d80;
}
.text-lime-600\/60 {
  color: #65a30d99;
}
.text-lime-600\/70 {
  color: #65a30db3;
}
.text-lime-600\/75 {
  color: #65a30dbf;
}
.text-lime-600\/80 {
  color: #65a30dcc;
}
.text-lime-600\/90 {
  color: #65a30de6;
}
.text-lime-600\/95 {
  color: #65a30df2;
}
.text-lime-700 {
  --tw-text-opacity: 1;
  color: rgb(77 124 15 / var(--tw-text-opacity));
}
.text-lime-700\/0 {
  color: #4d7c0f00;
}
.text-lime-700\/10 {
  color: #4d7c0f1a;
}
.text-lime-700\/100 {
  color: #4d7c0f;
}
.text-lime-700\/20 {
  color: #4d7c0f33;
}
.text-lime-700\/25 {
  color: #4d7c0f40;
}
.text-lime-700\/30 {
  color: #4d7c0f4d;
}
.text-lime-700\/40 {
  color: #4d7c0f66;
}
.text-lime-700\/5 {
  color: #4d7c0f0d;
}
.text-lime-700\/50 {
  color: #4d7c0f80;
}
.text-lime-700\/60 {
  color: #4d7c0f99;
}
.text-lime-700\/70 {
  color: #4d7c0fb3;
}
.text-lime-700\/75 {
  color: #4d7c0fbf;
}
.text-lime-700\/80 {
  color: #4d7c0fcc;
}
.text-lime-700\/90 {
  color: #4d7c0fe6;
}
.text-lime-700\/95 {
  color: #4d7c0ff2;
}
.text-lime-800 {
  --tw-text-opacity: 1;
  color: rgb(63 98 18 / var(--tw-text-opacity));
}
.text-lime-800\/0 {
  color: #3f621200;
}
.text-lime-800\/10 {
  color: #3f62121a;
}
.text-lime-800\/100 {
  color: #3f6212;
}
.text-lime-800\/20 {
  color: #3f621233;
}
.text-lime-800\/25 {
  color: #3f621240;
}
.text-lime-800\/30 {
  color: #3f62124d;
}
.text-lime-800\/40 {
  color: #3f621266;
}
.text-lime-800\/5 {
  color: #3f62120d;
}
.text-lime-800\/50 {
  color: #3f621280;
}
.text-lime-800\/60 {
  color: #3f621299;
}
.text-lime-800\/70 {
  color: #3f6212b3;
}
.text-lime-800\/75 {
  color: #3f6212bf;
}
.text-lime-800\/80 {
  color: #3f6212cc;
}
.text-lime-800\/90 {
  color: #3f6212e6;
}
.text-lime-800\/95 {
  color: #3f6212f2;
}
.text-lime-900 {
  --tw-text-opacity: 1;
  color: rgb(54 83 20 / var(--tw-text-opacity));
}
.text-lime-900\/0 {
  color: #36531400;
}
.text-lime-900\/10 {
  color: #3653141a;
}
.text-lime-900\/100 {
  color: #365314;
}
.text-lime-900\/20 {
  color: #36531433;
}
.text-lime-900\/25 {
  color: #36531440;
}
.text-lime-900\/30 {
  color: #3653144d;
}
.text-lime-900\/40 {
  color: #36531466;
}
.text-lime-900\/5 {
  color: #3653140d;
}
.text-lime-900\/50 {
  color: #36531480;
}
.text-lime-900\/60 {
  color: #36531499;
}
.text-lime-900\/70 {
  color: #365314b3;
}
.text-lime-900\/75 {
  color: #365314bf;
}
.text-lime-900\/80 {
  color: #365314cc;
}
.text-lime-900\/90 {
  color: #365314e6;
}
.text-lime-900\/95 {
  color: #365314f2;
}
.text-lime-950 {
  --tw-text-opacity: 1;
  color: rgb(26 46 5 / var(--tw-text-opacity));
}
.text-lime-950\/0 {
  color: #1a2e0500;
}
.text-lime-950\/10 {
  color: #1a2e051a;
}
.text-lime-950\/100 {
  color: #1a2e05;
}
.text-lime-950\/20 {
  color: #1a2e0533;
}
.text-lime-950\/25 {
  color: #1a2e0540;
}
.text-lime-950\/30 {
  color: #1a2e054d;
}
.text-lime-950\/40 {
  color: #1a2e0566;
}
.text-lime-950\/5 {
  color: #1a2e050d;
}
.text-lime-950\/50 {
  color: #1a2e0580;
}
.text-lime-950\/60 {
  color: #1a2e0599;
}
.text-lime-950\/70 {
  color: #1a2e05b3;
}
.text-lime-950\/75 {
  color: #1a2e05bf;
}
.text-lime-950\/80 {
  color: #1a2e05cc;
}
.text-lime-950\/90 {
  color: #1a2e05e6;
}
.text-lime-950\/95 {
  color: #1a2e05f2;
}
.text-neutral-100 {
  --tw-text-opacity: 1;
  color: rgb(245 245 245 / var(--tw-text-opacity));
}
.text-neutral-100\/0 {
  color: #f5f5f500;
}
.text-neutral-100\/10 {
  color: #f5f5f51a;
}
.text-neutral-100\/100 {
  color: #f5f5f5;
}
.text-neutral-100\/20 {
  color: #f5f5f533;
}
.text-neutral-100\/25 {
  color: #f5f5f540;
}
.text-neutral-100\/30 {
  color: #f5f5f54d;
}
.text-neutral-100\/40 {
  color: #f5f5f566;
}
.text-neutral-100\/5 {
  color: #f5f5f50d;
}
.text-neutral-100\/50 {
  color: #f5f5f580;
}
.text-neutral-100\/60 {
  color: #f5f5f599;
}
.text-neutral-100\/70 {
  color: #f5f5f5b3;
}
.text-neutral-100\/75 {
  color: #f5f5f5bf;
}
.text-neutral-100\/80 {
  color: #f5f5f5cc;
}
.text-neutral-100\/90 {
  color: #f5f5f5e6;
}
.text-neutral-100\/95 {
  color: #f5f5f5f2;
}
.text-neutral-200 {
  --tw-text-opacity: 1;
  color: rgb(229 229 229 / var(--tw-text-opacity));
}
.text-neutral-200\/0 {
  color: #e5e5e500;
}
.text-neutral-200\/10 {
  color: #e5e5e51a;
}
.text-neutral-200\/100 {
  color: #e5e5e5;
}
.text-neutral-200\/20 {
  color: #e5e5e533;
}
.text-neutral-200\/25 {
  color: #e5e5e540;
}
.text-neutral-200\/30 {
  color: #e5e5e54d;
}
.text-neutral-200\/40 {
  color: #e5e5e566;
}
.text-neutral-200\/5 {
  color: #e5e5e50d;
}
.text-neutral-200\/50 {
  color: #e5e5e580;
}
.text-neutral-200\/60 {
  color: #e5e5e599;
}
.text-neutral-200\/70 {
  color: #e5e5e5b3;
}
.text-neutral-200\/75 {
  color: #e5e5e5bf;
}
.text-neutral-200\/80 {
  color: #e5e5e5cc;
}
.text-neutral-200\/90 {
  color: #e5e5e5e6;
}
.text-neutral-200\/95 {
  color: #e5e5e5f2;
}
.text-neutral-300 {
  --tw-text-opacity: 1;
  color: rgb(212 212 212 / var(--tw-text-opacity));
}
.text-neutral-300\/0 {
  color: #d4d4d400;
}
.text-neutral-300\/10 {
  color: #d4d4d41a;
}
.text-neutral-300\/100 {
  color: #d4d4d4;
}
.text-neutral-300\/20 {
  color: #d4d4d433;
}
.text-neutral-300\/25 {
  color: #d4d4d440;
}
.text-neutral-300\/30 {
  color: #d4d4d44d;
}
.text-neutral-300\/40 {
  color: #d4d4d466;
}
.text-neutral-300\/5 {
  color: #d4d4d40d;
}
.text-neutral-300\/50 {
  color: #d4d4d480;
}
.text-neutral-300\/60 {
  color: #d4d4d499;
}
.text-neutral-300\/70 {
  color: #d4d4d4b3;
}
.text-neutral-300\/75 {
  color: #d4d4d4bf;
}
.text-neutral-300\/80 {
  color: #d4d4d4cc;
}
.text-neutral-300\/90 {
  color: #d4d4d4e6;
}
.text-neutral-300\/95 {
  color: #d4d4d4f2;
}
.text-neutral-400 {
  --tw-text-opacity: 1;
  color: rgb(163 163 163 / var(--tw-text-opacity));
}
.text-neutral-400\/0 {
  color: #a3a3a300;
}
.text-neutral-400\/10 {
  color: #a3a3a31a;
}
.text-neutral-400\/100 {
  color: #a3a3a3;
}
.text-neutral-400\/20 {
  color: #a3a3a333;
}
.text-neutral-400\/25 {
  color: #a3a3a340;
}
.text-neutral-400\/30 {
  color: #a3a3a34d;
}
.text-neutral-400\/40 {
  color: #a3a3a366;
}
.text-neutral-400\/5 {
  color: #a3a3a30d;
}
.text-neutral-400\/50 {
  color: #a3a3a380;
}
.text-neutral-400\/60 {
  color: #a3a3a399;
}
.text-neutral-400\/70 {
  color: #a3a3a3b3;
}
.text-neutral-400\/75 {
  color: #a3a3a3bf;
}
.text-neutral-400\/80 {
  color: #a3a3a3cc;
}
.text-neutral-400\/90 {
  color: #a3a3a3e6;
}
.text-neutral-400\/95 {
  color: #a3a3a3f2;
}
.text-neutral-50 {
  --tw-text-opacity: 1;
  color: rgb(250 250 250 / var(--tw-text-opacity));
}
.text-neutral-50\/0 {
  color: #fafafa00;
}
.text-neutral-50\/10 {
  color: #fafafa1a;
}
.text-neutral-50\/100 {
  color: #fafafa;
}
.text-neutral-50\/20 {
  color: #fafafa33;
}
.text-neutral-50\/25 {
  color: #fafafa40;
}
.text-neutral-50\/30 {
  color: #fafafa4d;
}
.text-neutral-50\/40 {
  color: #fafafa66;
}
.text-neutral-50\/5 {
  color: #fafafa0d;
}
.text-neutral-50\/50 {
  color: #fafafa80;
}
.text-neutral-50\/60 {
  color: #fafafa99;
}
.text-neutral-50\/70 {
  color: #fafafab3;
}
.text-neutral-50\/75 {
  color: #fafafabf;
}
.text-neutral-50\/80 {
  color: #fafafacc;
}
.text-neutral-50\/90 {
  color: #fafafae6;
}
.text-neutral-50\/95 {
  color: #fafafaf2;
}
.text-neutral-500 {
  --tw-text-opacity: 1;
  color: rgb(115 115 115 / var(--tw-text-opacity));
}
.text-neutral-500\/0 {
  color: #73737300;
}
.text-neutral-500\/10 {
  color: #7373731a;
}
.text-neutral-500\/100 {
  color: #737373;
}
.text-neutral-500\/20 {
  color: #73737333;
}
.text-neutral-500\/25 {
  color: #73737340;
}
.text-neutral-500\/30 {
  color: #7373734d;
}
.text-neutral-500\/40 {
  color: #73737366;
}
.text-neutral-500\/5 {
  color: #7373730d;
}
.text-neutral-500\/50 {
  color: #73737380;
}
.text-neutral-500\/60 {
  color: #73737399;
}
.text-neutral-500\/70 {
  color: #737373b3;
}
.text-neutral-500\/75 {
  color: #737373bf;
}
.text-neutral-500\/80 {
  color: #737373cc;
}
.text-neutral-500\/90 {
  color: #737373e6;
}
.text-neutral-500\/95 {
  color: #737373f2;
}
.text-neutral-600 {
  --tw-text-opacity: 1;
  color: rgb(82 82 82 / var(--tw-text-opacity));
}
.text-neutral-600\/0 {
  color: #52525200;
}
.text-neutral-600\/10 {
  color: #5252521a;
}
.text-neutral-600\/100 {
  color: #525252;
}
.text-neutral-600\/20 {
  color: #52525233;
}
.text-neutral-600\/25 {
  color: #52525240;
}
.text-neutral-600\/30 {
  color: #5252524d;
}
.text-neutral-600\/40 {
  color: #52525266;
}
.text-neutral-600\/5 {
  color: #5252520d;
}
.text-neutral-600\/50 {
  color: #52525280;
}
.text-neutral-600\/60 {
  color: #52525299;
}
.text-neutral-600\/70 {
  color: #525252b3;
}
.text-neutral-600\/75 {
  color: #525252bf;
}
.text-neutral-600\/80 {
  color: #525252cc;
}
.text-neutral-600\/90 {
  color: #525252e6;
}
.text-neutral-600\/95 {
  color: #525252f2;
}
.text-neutral-700 {
  --tw-text-opacity: 1;
  color: rgb(64 64 64 / var(--tw-text-opacity));
}
.text-neutral-700\/0 {
  color: #40404000;
}
.text-neutral-700\/10 {
  color: #4040401a;
}
.text-neutral-700\/100 {
  color: #404040;
}
.text-neutral-700\/20 {
  color: #40404033;
}
.text-neutral-700\/25 {
  color: #40404040;
}
.text-neutral-700\/30 {
  color: #4040404d;
}
.text-neutral-700\/40 {
  color: #40404066;
}
.text-neutral-700\/5 {
  color: #4040400d;
}
.text-neutral-700\/50 {
  color: #40404080;
}
.text-neutral-700\/60 {
  color: #40404099;
}
.text-neutral-700\/70 {
  color: #404040b3;
}
.text-neutral-700\/75 {
  color: #404040bf;
}
.text-neutral-700\/80 {
  color: #404040cc;
}
.text-neutral-700\/90 {
  color: #404040e6;
}
.text-neutral-700\/95 {
  color: #404040f2;
}
.text-neutral-800 {
  --tw-text-opacity: 1;
  color: rgb(38 38 38 / var(--tw-text-opacity));
}
.text-neutral-800\/0 {
  color: #26262600;
}
.text-neutral-800\/10 {
  color: #2626261a;
}
.text-neutral-800\/100 {
  color: #262626;
}
.text-neutral-800\/20 {
  color: #26262633;
}
.text-neutral-800\/25 {
  color: #26262640;
}
.text-neutral-800\/30 {
  color: #2626264d;
}
.text-neutral-800\/40 {
  color: #26262666;
}
.text-neutral-800\/5 {
  color: #2626260d;
}
.text-neutral-800\/50 {
  color: #26262680;
}
.text-neutral-800\/60 {
  color: #26262699;
}
.text-neutral-800\/70 {
  color: #262626b3;
}
.text-neutral-800\/75 {
  color: #262626bf;
}
.text-neutral-800\/80 {
  color: #262626cc;
}
.text-neutral-800\/90 {
  color: #262626e6;
}
.text-neutral-800\/95 {
  color: #262626f2;
}
.text-neutral-900 {
  --tw-text-opacity: 1;
  color: rgb(23 23 23 / var(--tw-text-opacity));
}
.text-neutral-900\/0 {
  color: #17171700;
}
.text-neutral-900\/10 {
  color: #1717171a;
}
.text-neutral-900\/100 {
  color: #171717;
}
.text-neutral-900\/20 {
  color: #17171733;
}
.text-neutral-900\/25 {
  color: #17171740;
}
.text-neutral-900\/30 {
  color: #1717174d;
}
.text-neutral-900\/40 {
  color: #17171766;
}
.text-neutral-900\/5 {
  color: #1717170d;
}
.text-neutral-900\/50 {
  color: #17171780;
}
.text-neutral-900\/60 {
  color: #17171799;
}
.text-neutral-900\/70 {
  color: #171717b3;
}
.text-neutral-900\/75 {
  color: #171717bf;
}
.text-neutral-900\/80 {
  color: #171717cc;
}
.text-neutral-900\/90 {
  color: #171717e6;
}
.text-neutral-900\/95 {
  color: #171717f2;
}
.text-neutral-950 {
  --tw-text-opacity: 1;
  color: rgb(10 10 10 / var(--tw-text-opacity));
}
.text-neutral-950\/0 {
  color: #0a0a0a00;
}
.text-neutral-950\/10 {
  color: #0a0a0a1a;
}
.text-neutral-950\/100 {
  color: #0a0a0a;
}
.text-neutral-950\/20 {
  color: #0a0a0a33;
}
.text-neutral-950\/25 {
  color: #0a0a0a40;
}
.text-neutral-950\/30 {
  color: #0a0a0a4d;
}
.text-neutral-950\/40 {
  color: #0a0a0a66;
}
.text-neutral-950\/5 {
  color: #0a0a0a0d;
}
.text-neutral-950\/50 {
  color: #0a0a0a80;
}
.text-neutral-950\/60 {
  color: #0a0a0a99;
}
.text-neutral-950\/70 {
  color: #0a0a0ab3;
}
.text-neutral-950\/75 {
  color: #0a0a0abf;
}
.text-neutral-950\/80 {
  color: #0a0a0acc;
}
.text-neutral-950\/90 {
  color: #0a0a0ae6;
}
.text-neutral-950\/95 {
  color: #0a0a0af2;
}
.text-orange-100 {
  --tw-text-opacity: 1;
  color: rgb(255 237 213 / var(--tw-text-opacity));
}
.text-orange-100\/0 {
  color: #ffedd500;
}
.text-orange-100\/10 {
  color: #ffedd51a;
}
.text-orange-100\/100 {
  color: #ffedd5;
}
.text-orange-100\/20 {
  color: #ffedd533;
}
.text-orange-100\/25 {
  color: #ffedd540;
}
.text-orange-100\/30 {
  color: #ffedd54d;
}
.text-orange-100\/40 {
  color: #ffedd566;
}
.text-orange-100\/5 {
  color: #ffedd50d;
}
.text-orange-100\/50 {
  color: #ffedd580;
}
.text-orange-100\/60 {
  color: #ffedd599;
}
.text-orange-100\/70 {
  color: #ffedd5b3;
}
.text-orange-100\/75 {
  color: #ffedd5bf;
}
.text-orange-100\/80 {
  color: #ffedd5cc;
}
.text-orange-100\/90 {
  color: #ffedd5e6;
}
.text-orange-100\/95 {
  color: #ffedd5f2;
}
.text-orange-200 {
  --tw-text-opacity: 1;
  color: rgb(254 215 170 / var(--tw-text-opacity));
}
.text-orange-200\/0 {
  color: #fed7aa00;
}
.text-orange-200\/10 {
  color: #fed7aa1a;
}
.text-orange-200\/100 {
  color: #fed7aa;
}
.text-orange-200\/20 {
  color: #fed7aa33;
}
.text-orange-200\/25 {
  color: #fed7aa40;
}
.text-orange-200\/30 {
  color: #fed7aa4d;
}
.text-orange-200\/40 {
  color: #fed7aa66;
}
.text-orange-200\/5 {
  color: #fed7aa0d;
}
.text-orange-200\/50 {
  color: #fed7aa80;
}
.text-orange-200\/60 {
  color: #fed7aa99;
}
.text-orange-200\/70 {
  color: #fed7aab3;
}
.text-orange-200\/75 {
  color: #fed7aabf;
}
.text-orange-200\/80 {
  color: #fed7aacc;
}
.text-orange-200\/90 {
  color: #fed7aae6;
}
.text-orange-200\/95 {
  color: #fed7aaf2;
}
.text-orange-300 {
  --tw-text-opacity: 1;
  color: rgb(253 186 116 / var(--tw-text-opacity));
}
.text-orange-300\/0 {
  color: #fdba7400;
}
.text-orange-300\/10 {
  color: #fdba741a;
}
.text-orange-300\/100 {
  color: #fdba74;
}
.text-orange-300\/20 {
  color: #fdba7433;
}
.text-orange-300\/25 {
  color: #fdba7440;
}
.text-orange-300\/30 {
  color: #fdba744d;
}
.text-orange-300\/40 {
  color: #fdba7466;
}
.text-orange-300\/5 {
  color: #fdba740d;
}
.text-orange-300\/50 {
  color: #fdba7480;
}
.text-orange-300\/60 {
  color: #fdba7499;
}
.text-orange-300\/70 {
  color: #fdba74b3;
}
.text-orange-300\/75 {
  color: #fdba74bf;
}
.text-orange-300\/80 {
  color: #fdba74cc;
}
.text-orange-300\/90 {
  color: #fdba74e6;
}
.text-orange-300\/95 {
  color: #fdba74f2;
}
.text-orange-400 {
  --tw-text-opacity: 1;
  color: rgb(251 146 60 / var(--tw-text-opacity));
}
.text-orange-400\/0 {
  color: #fb923c00;
}
.text-orange-400\/10 {
  color: #fb923c1a;
}
.text-orange-400\/100 {
  color: #fb923c;
}
.text-orange-400\/20 {
  color: #fb923c33;
}
.text-orange-400\/25 {
  color: #fb923c40;
}
.text-orange-400\/30 {
  color: #fb923c4d;
}
.text-orange-400\/40 {
  color: #fb923c66;
}
.text-orange-400\/5 {
  color: #fb923c0d;
}
.text-orange-400\/50 {
  color: #fb923c80;
}
.text-orange-400\/60 {
  color: #fb923c99;
}
.text-orange-400\/70 {
  color: #fb923cb3;
}
.text-orange-400\/75 {
  color: #fb923cbf;
}
.text-orange-400\/80 {
  color: #fb923ccc;
}
.text-orange-400\/90 {
  color: #fb923ce6;
}
.text-orange-400\/95 {
  color: #fb923cf2;
}
.text-orange-50 {
  --tw-text-opacity: 1;
  color: rgb(255 247 237 / var(--tw-text-opacity));
}
.text-orange-50\/0 {
  color: #fff7ed00;
}
.text-orange-50\/10 {
  color: #fff7ed1a;
}
.text-orange-50\/100 {
  color: #fff7ed;
}
.text-orange-50\/20 {
  color: #fff7ed33;
}
.text-orange-50\/25 {
  color: #fff7ed40;
}
.text-orange-50\/30 {
  color: #fff7ed4d;
}
.text-orange-50\/40 {
  color: #fff7ed66;
}
.text-orange-50\/5 {
  color: #fff7ed0d;
}
.text-orange-50\/50 {
  color: #fff7ed80;
}
.text-orange-50\/60 {
  color: #fff7ed99;
}
.text-orange-50\/70 {
  color: #fff7edb3;
}
.text-orange-50\/75 {
  color: #fff7edbf;
}
.text-orange-50\/80 {
  color: #fff7edcc;
}
.text-orange-50\/90 {
  color: #fff7ede6;
}
.text-orange-50\/95 {
  color: #fff7edf2;
}
.text-orange-500 {
  --tw-text-opacity: 1;
  color: rgb(249 115 22 / var(--tw-text-opacity));
}
.text-orange-500\/0 {
  color: #f9731600;
}
.text-orange-500\/10 {
  color: #f973161a;
}
.text-orange-500\/100 {
  color: #f97316;
}
.text-orange-500\/20 {
  color: #f9731633;
}
.text-orange-500\/25 {
  color: #f9731640;
}
.text-orange-500\/30 {
  color: #f973164d;
}
.text-orange-500\/40 {
  color: #f9731666;
}
.text-orange-500\/5 {
  color: #f973160d;
}
.text-orange-500\/50 {
  color: #f9731680;
}
.text-orange-500\/60 {
  color: #f9731699;
}
.text-orange-500\/70 {
  color: #f97316b3;
}
.text-orange-500\/75 {
  color: #f97316bf;
}
.text-orange-500\/80 {
  color: #f97316cc;
}
.text-orange-500\/90 {
  color: #f97316e6;
}
.text-orange-500\/95 {
  color: #f97316f2;
}
.text-orange-600 {
  --tw-text-opacity: 1;
  color: rgb(234 88 12 / var(--tw-text-opacity));
}
.text-orange-600\/0 {
  color: #ea580c00;
}
.text-orange-600\/10 {
  color: #ea580c1a;
}
.text-orange-600\/100 {
  color: #ea580c;
}
.text-orange-600\/20 {
  color: #ea580c33;
}
.text-orange-600\/25 {
  color: #ea580c40;
}
.text-orange-600\/30 {
  color: #ea580c4d;
}
.text-orange-600\/40 {
  color: #ea580c66;
}
.text-orange-600\/5 {
  color: #ea580c0d;
}
.text-orange-600\/50 {
  color: #ea580c80;
}
.text-orange-600\/60 {
  color: #ea580c99;
}
.text-orange-600\/70 {
  color: #ea580cb3;
}
.text-orange-600\/75 {
  color: #ea580cbf;
}
.text-orange-600\/80 {
  color: #ea580ccc;
}
.text-orange-600\/90 {
  color: #ea580ce6;
}
.text-orange-600\/95 {
  color: #ea580cf2;
}
.text-orange-700 {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity));
}
.text-orange-700\/0 {
  color: #c2410c00;
}
.text-orange-700\/10 {
  color: #c2410c1a;
}
.text-orange-700\/100 {
  color: #c2410c;
}
.text-orange-700\/20 {
  color: #c2410c33;
}
.text-orange-700\/25 {
  color: #c2410c40;
}
.text-orange-700\/30 {
  color: #c2410c4d;
}
.text-orange-700\/40 {
  color: #c2410c66;
}
.text-orange-700\/5 {
  color: #c2410c0d;
}
.text-orange-700\/50 {
  color: #c2410c80;
}
.text-orange-700\/60 {
  color: #c2410c99;
}
.text-orange-700\/70 {
  color: #c2410cb3;
}
.text-orange-700\/75 {
  color: #c2410cbf;
}
.text-orange-700\/80 {
  color: #c2410ccc;
}
.text-orange-700\/90 {
  color: #c2410ce6;
}
.text-orange-700\/95 {
  color: #c2410cf2;
}
.text-orange-800 {
  --tw-text-opacity: 1;
  color: rgb(154 52 18 / var(--tw-text-opacity));
}
.text-orange-800\/0 {
  color: #9a341200;
}
.text-orange-800\/10 {
  color: #9a34121a;
}
.text-orange-800\/100 {
  color: #9a3412;
}
.text-orange-800\/20 {
  color: #9a341233;
}
.text-orange-800\/25 {
  color: #9a341240;
}
.text-orange-800\/30 {
  color: #9a34124d;
}
.text-orange-800\/40 {
  color: #9a341266;
}
.text-orange-800\/5 {
  color: #9a34120d;
}
.text-orange-800\/50 {
  color: #9a341280;
}
.text-orange-800\/60 {
  color: #9a341299;
}
.text-orange-800\/70 {
  color: #9a3412b3;
}
.text-orange-800\/75 {
  color: #9a3412bf;
}
.text-orange-800\/80 {
  color: #9a3412cc;
}
.text-orange-800\/90 {
  color: #9a3412e6;
}
.text-orange-800\/95 {
  color: #9a3412f2;
}
.text-orange-900 {
  --tw-text-opacity: 1;
  color: rgb(124 45 18 / var(--tw-text-opacity));
}
.text-orange-900\/0 {
  color: #7c2d1200;
}
.text-orange-900\/10 {
  color: #7c2d121a;
}
.text-orange-900\/100 {
  color: #7c2d12;
}
.text-orange-900\/20 {
  color: #7c2d1233;
}
.text-orange-900\/25 {
  color: #7c2d1240;
}
.text-orange-900\/30 {
  color: #7c2d124d;
}
.text-orange-900\/40 {
  color: #7c2d1266;
}
.text-orange-900\/5 {
  color: #7c2d120d;
}
.text-orange-900\/50 {
  color: #7c2d1280;
}
.text-orange-900\/60 {
  color: #7c2d1299;
}
.text-orange-900\/70 {
  color: #7c2d12b3;
}
.text-orange-900\/75 {
  color: #7c2d12bf;
}
.text-orange-900\/80 {
  color: #7c2d12cc;
}
.text-orange-900\/90 {
  color: #7c2d12e6;
}
.text-orange-900\/95 {
  color: #7c2d12f2;
}
.text-orange-950 {
  --tw-text-opacity: 1;
  color: rgb(67 20 7 / var(--tw-text-opacity));
}
.text-orange-950\/0 {
  color: #43140700;
}
.text-orange-950\/10 {
  color: #4314071a;
}
.text-orange-950\/100 {
  color: #431407;
}
.text-orange-950\/20 {
  color: #43140733;
}
.text-orange-950\/25 {
  color: #43140740;
}
.text-orange-950\/30 {
  color: #4314074d;
}
.text-orange-950\/40 {
  color: #43140766;
}
.text-orange-950\/5 {
  color: #4314070d;
}
.text-orange-950\/50 {
  color: #43140780;
}
.text-orange-950\/60 {
  color: #43140799;
}
.text-orange-950\/70 {
  color: #431407b3;
}
.text-orange-950\/75 {
  color: #431407bf;
}
.text-orange-950\/80 {
  color: #431407cc;
}
.text-orange-950\/90 {
  color: #431407e6;
}
.text-orange-950\/95 {
  color: #431407f2;
}
.text-pink-100 {
  --tw-text-opacity: 1;
  color: rgb(252 231 243 / var(--tw-text-opacity));
}
.text-pink-100\/0 {
  color: #fce7f300;
}
.text-pink-100\/10 {
  color: #fce7f31a;
}
.text-pink-100\/100 {
  color: #fce7f3;
}
.text-pink-100\/20 {
  color: #fce7f333;
}
.text-pink-100\/25 {
  color: #fce7f340;
}
.text-pink-100\/30 {
  color: #fce7f34d;
}
.text-pink-100\/40 {
  color: #fce7f366;
}
.text-pink-100\/5 {
  color: #fce7f30d;
}
.text-pink-100\/50 {
  color: #fce7f380;
}
.text-pink-100\/60 {
  color: #fce7f399;
}
.text-pink-100\/70 {
  color: #fce7f3b3;
}
.text-pink-100\/75 {
  color: #fce7f3bf;
}
.text-pink-100\/80 {
  color: #fce7f3cc;
}
.text-pink-100\/90 {
  color: #fce7f3e6;
}
.text-pink-100\/95 {
  color: #fce7f3f2;
}
.text-pink-200 {
  --tw-text-opacity: 1;
  color: rgb(251 207 232 / var(--tw-text-opacity));
}
.text-pink-200\/0 {
  color: #fbcfe800;
}
.text-pink-200\/10 {
  color: #fbcfe81a;
}
.text-pink-200\/100 {
  color: #fbcfe8;
}
.text-pink-200\/20 {
  color: #fbcfe833;
}
.text-pink-200\/25 {
  color: #fbcfe840;
}
.text-pink-200\/30 {
  color: #fbcfe84d;
}
.text-pink-200\/40 {
  color: #fbcfe866;
}
.text-pink-200\/5 {
  color: #fbcfe80d;
}
.text-pink-200\/50 {
  color: #fbcfe880;
}
.text-pink-200\/60 {
  color: #fbcfe899;
}
.text-pink-200\/70 {
  color: #fbcfe8b3;
}
.text-pink-200\/75 {
  color: #fbcfe8bf;
}
.text-pink-200\/80 {
  color: #fbcfe8cc;
}
.text-pink-200\/90 {
  color: #fbcfe8e6;
}
.text-pink-200\/95 {
  color: #fbcfe8f2;
}
.text-pink-300 {
  --tw-text-opacity: 1;
  color: rgb(249 168 212 / var(--tw-text-opacity));
}
.text-pink-300\/0 {
  color: #f9a8d400;
}
.text-pink-300\/10 {
  color: #f9a8d41a;
}
.text-pink-300\/100 {
  color: #f9a8d4;
}
.text-pink-300\/20 {
  color: #f9a8d433;
}
.text-pink-300\/25 {
  color: #f9a8d440;
}
.text-pink-300\/30 {
  color: #f9a8d44d;
}
.text-pink-300\/40 {
  color: #f9a8d466;
}
.text-pink-300\/5 {
  color: #f9a8d40d;
}
.text-pink-300\/50 {
  color: #f9a8d480;
}
.text-pink-300\/60 {
  color: #f9a8d499;
}
.text-pink-300\/70 {
  color: #f9a8d4b3;
}
.text-pink-300\/75 {
  color: #f9a8d4bf;
}
.text-pink-300\/80 {
  color: #f9a8d4cc;
}
.text-pink-300\/90 {
  color: #f9a8d4e6;
}
.text-pink-300\/95 {
  color: #f9a8d4f2;
}
.text-pink-400 {
  --tw-text-opacity: 1;
  color: rgb(244 114 182 / var(--tw-text-opacity));
}
.text-pink-400\/0 {
  color: #f472b600;
}
.text-pink-400\/10 {
  color: #f472b61a;
}
.text-pink-400\/100 {
  color: #f472b6;
}
.text-pink-400\/20 {
  color: #f472b633;
}
.text-pink-400\/25 {
  color: #f472b640;
}
.text-pink-400\/30 {
  color: #f472b64d;
}
.text-pink-400\/40 {
  color: #f472b666;
}
.text-pink-400\/5 {
  color: #f472b60d;
}
.text-pink-400\/50 {
  color: #f472b680;
}
.text-pink-400\/60 {
  color: #f472b699;
}
.text-pink-400\/70 {
  color: #f472b6b3;
}
.text-pink-400\/75 {
  color: #f472b6bf;
}
.text-pink-400\/80 {
  color: #f472b6cc;
}
.text-pink-400\/90 {
  color: #f472b6e6;
}
.text-pink-400\/95 {
  color: #f472b6f2;
}
.text-pink-50 {
  --tw-text-opacity: 1;
  color: rgb(253 242 248 / var(--tw-text-opacity));
}
.text-pink-50\/0 {
  color: #fdf2f800;
}
.text-pink-50\/10 {
  color: #fdf2f81a;
}
.text-pink-50\/100 {
  color: #fdf2f8;
}
.text-pink-50\/20 {
  color: #fdf2f833;
}
.text-pink-50\/25 {
  color: #fdf2f840;
}
.text-pink-50\/30 {
  color: #fdf2f84d;
}
.text-pink-50\/40 {
  color: #fdf2f866;
}
.text-pink-50\/5 {
  color: #fdf2f80d;
}
.text-pink-50\/50 {
  color: #fdf2f880;
}
.text-pink-50\/60 {
  color: #fdf2f899;
}
.text-pink-50\/70 {
  color: #fdf2f8b3;
}
.text-pink-50\/75 {
  color: #fdf2f8bf;
}
.text-pink-50\/80 {
  color: #fdf2f8cc;
}
.text-pink-50\/90 {
  color: #fdf2f8e6;
}
.text-pink-50\/95 {
  color: #fdf2f8f2;
}
.text-pink-500 {
  --tw-text-opacity: 1;
  color: rgb(236 72 153 / var(--tw-text-opacity));
}
.text-pink-500\/0 {
  color: #ec489900;
}
.text-pink-500\/10 {
  color: #ec48991a;
}
.text-pink-500\/100 {
  color: #ec4899;
}
.text-pink-500\/20 {
  color: #ec489933;
}
.text-pink-500\/25 {
  color: #ec489940;
}
.text-pink-500\/30 {
  color: #ec48994d;
}
.text-pink-500\/40 {
  color: #ec489966;
}
.text-pink-500\/5 {
  color: #ec48990d;
}
.text-pink-500\/50 {
  color: #ec489980;
}
.text-pink-500\/60 {
  color: #ec489999;
}
.text-pink-500\/70 {
  color: #ec4899b3;
}
.text-pink-500\/75 {
  color: #ec4899bf;
}
.text-pink-500\/80 {
  color: #ec4899cc;
}
.text-pink-500\/90 {
  color: #ec4899e6;
}
.text-pink-500\/95 {
  color: #ec4899f2;
}
.text-pink-600 {
  --tw-text-opacity: 1;
  color: rgb(219 39 119 / var(--tw-text-opacity));
}
.text-pink-600\/0 {
  color: #db277700;
}
.text-pink-600\/10 {
  color: #db27771a;
}
.text-pink-600\/100 {
  color: #db2777;
}
.text-pink-600\/20 {
  color: #db277733;
}
.text-pink-600\/25 {
  color: #db277740;
}
.text-pink-600\/30 {
  color: #db27774d;
}
.text-pink-600\/40 {
  color: #db277766;
}
.text-pink-600\/5 {
  color: #db27770d;
}
.text-pink-600\/50 {
  color: #db277780;
}
.text-pink-600\/60 {
  color: #db277799;
}
.text-pink-600\/70 {
  color: #db2777b3;
}
.text-pink-600\/75 {
  color: #db2777bf;
}
.text-pink-600\/80 {
  color: #db2777cc;
}
.text-pink-600\/90 {
  color: #db2777e6;
}
.text-pink-600\/95 {
  color: #db2777f2;
}
.text-pink-700 {
  --tw-text-opacity: 1;
  color: rgb(190 24 93 / var(--tw-text-opacity));
}
.text-pink-700\/0 {
  color: #be185d00;
}
.text-pink-700\/10 {
  color: #be185d1a;
}
.text-pink-700\/100 {
  color: #be185d;
}
.text-pink-700\/20 {
  color: #be185d33;
}
.text-pink-700\/25 {
  color: #be185d40;
}
.text-pink-700\/30 {
  color: #be185d4d;
}
.text-pink-700\/40 {
  color: #be185d66;
}
.text-pink-700\/5 {
  color: #be185d0d;
}
.text-pink-700\/50 {
  color: #be185d80;
}
.text-pink-700\/60 {
  color: #be185d99;
}
.text-pink-700\/70 {
  color: #be185db3;
}
.text-pink-700\/75 {
  color: #be185dbf;
}
.text-pink-700\/80 {
  color: #be185dcc;
}
.text-pink-700\/90 {
  color: #be185de6;
}
.text-pink-700\/95 {
  color: #be185df2;
}
.text-pink-800 {
  --tw-text-opacity: 1;
  color: rgb(157 23 77 / var(--tw-text-opacity));
}
.text-pink-800\/0 {
  color: #9d174d00;
}
.text-pink-800\/10 {
  color: #9d174d1a;
}
.text-pink-800\/100 {
  color: #9d174d;
}
.text-pink-800\/20 {
  color: #9d174d33;
}
.text-pink-800\/25 {
  color: #9d174d40;
}
.text-pink-800\/30 {
  color: #9d174d4d;
}
.text-pink-800\/40 {
  color: #9d174d66;
}
.text-pink-800\/5 {
  color: #9d174d0d;
}
.text-pink-800\/50 {
  color: #9d174d80;
}
.text-pink-800\/60 {
  color: #9d174d99;
}
.text-pink-800\/70 {
  color: #9d174db3;
}
.text-pink-800\/75 {
  color: #9d174dbf;
}
.text-pink-800\/80 {
  color: #9d174dcc;
}
.text-pink-800\/90 {
  color: #9d174de6;
}
.text-pink-800\/95 {
  color: #9d174df2;
}
.text-pink-900 {
  --tw-text-opacity: 1;
  color: rgb(131 24 67 / var(--tw-text-opacity));
}
.text-pink-900\/0 {
  color: #83184300;
}
.text-pink-900\/10 {
  color: #8318431a;
}
.text-pink-900\/100 {
  color: #831843;
}
.text-pink-900\/20 {
  color: #83184333;
}
.text-pink-900\/25 {
  color: #83184340;
}
.text-pink-900\/30 {
  color: #8318434d;
}
.text-pink-900\/40 {
  color: #83184366;
}
.text-pink-900\/5 {
  color: #8318430d;
}
.text-pink-900\/50 {
  color: #83184380;
}
.text-pink-900\/60 {
  color: #83184399;
}
.text-pink-900\/70 {
  color: #831843b3;
}
.text-pink-900\/75 {
  color: #831843bf;
}
.text-pink-900\/80 {
  color: #831843cc;
}
.text-pink-900\/90 {
  color: #831843e6;
}
.text-pink-900\/95 {
  color: #831843f2;
}
.text-pink-950 {
  --tw-text-opacity: 1;
  color: rgb(80 7 36 / var(--tw-text-opacity));
}
.text-pink-950\/0 {
  color: #50072400;
}
.text-pink-950\/10 {
  color: #5007241a;
}
.text-pink-950\/100 {
  color: #500724;
}
.text-pink-950\/20 {
  color: #50072433;
}
.text-pink-950\/25 {
  color: #50072440;
}
.text-pink-950\/30 {
  color: #5007244d;
}
.text-pink-950\/40 {
  color: #50072466;
}
.text-pink-950\/5 {
  color: #5007240d;
}
.text-pink-950\/50 {
  color: #50072480;
}
.text-pink-950\/60 {
  color: #50072499;
}
.text-pink-950\/70 {
  color: #500724b3;
}
.text-pink-950\/75 {
  color: #500724bf;
}
.text-pink-950\/80 {
  color: #500724cc;
}
.text-pink-950\/90 {
  color: #500724e6;
}
.text-pink-950\/95 {
  color: #500724f2;
}
.text-purple-100 {
  --tw-text-opacity: 1;
  color: rgb(243 232 255 / var(--tw-text-opacity));
}
.text-purple-100\/0 {
  color: #f3e8ff00;
}
.text-purple-100\/10 {
  color: #f3e8ff1a;
}
.text-purple-100\/100 {
  color: #f3e8ff;
}
.text-purple-100\/20 {
  color: #f3e8ff33;
}
.text-purple-100\/25 {
  color: #f3e8ff40;
}
.text-purple-100\/30 {
  color: #f3e8ff4d;
}
.text-purple-100\/40 {
  color: #f3e8ff66;
}
.text-purple-100\/5 {
  color: #f3e8ff0d;
}
.text-purple-100\/50 {
  color: #f3e8ff80;
}
.text-purple-100\/60 {
  color: #f3e8ff99;
}
.text-purple-100\/70 {
  color: #f3e8ffb3;
}
.text-purple-100\/75 {
  color: #f3e8ffbf;
}
.text-purple-100\/80 {
  color: #f3e8ffcc;
}
.text-purple-100\/90 {
  color: #f3e8ffe6;
}
.text-purple-100\/95 {
  color: #f3e8fff2;
}
.text-purple-200 {
  --tw-text-opacity: 1;
  color: rgb(233 213 255 / var(--tw-text-opacity));
}
.text-purple-200\/0 {
  color: #e9d5ff00;
}
.text-purple-200\/10 {
  color: #e9d5ff1a;
}
.text-purple-200\/100 {
  color: #e9d5ff;
}
.text-purple-200\/20 {
  color: #e9d5ff33;
}
.text-purple-200\/25 {
  color: #e9d5ff40;
}
.text-purple-200\/30 {
  color: #e9d5ff4d;
}
.text-purple-200\/40 {
  color: #e9d5ff66;
}
.text-purple-200\/5 {
  color: #e9d5ff0d;
}
.text-purple-200\/50 {
  color: #e9d5ff80;
}
.text-purple-200\/60 {
  color: #e9d5ff99;
}
.text-purple-200\/70 {
  color: #e9d5ffb3;
}
.text-purple-200\/75 {
  color: #e9d5ffbf;
}
.text-purple-200\/80 {
  color: #e9d5ffcc;
}
.text-purple-200\/90 {
  color: #e9d5ffe6;
}
.text-purple-200\/95 {
  color: #e9d5fff2;
}
.text-purple-300 {
  --tw-text-opacity: 1;
  color: rgb(216 180 254 / var(--tw-text-opacity));
}
.text-purple-300\/0 {
  color: #d8b4fe00;
}
.text-purple-300\/10 {
  color: #d8b4fe1a;
}
.text-purple-300\/100 {
  color: #d8b4fe;
}
.text-purple-300\/20 {
  color: #d8b4fe33;
}
.text-purple-300\/25 {
  color: #d8b4fe40;
}
.text-purple-300\/30 {
  color: #d8b4fe4d;
}
.text-purple-300\/40 {
  color: #d8b4fe66;
}
.text-purple-300\/5 {
  color: #d8b4fe0d;
}
.text-purple-300\/50 {
  color: #d8b4fe80;
}
.text-purple-300\/60 {
  color: #d8b4fe99;
}
.text-purple-300\/70 {
  color: #d8b4feb3;
}
.text-purple-300\/75 {
  color: #d8b4febf;
}
.text-purple-300\/80 {
  color: #d8b4fecc;
}
.text-purple-300\/90 {
  color: #d8b4fee6;
}
.text-purple-300\/95 {
  color: #d8b4fef2;
}
.text-purple-400 {
  --tw-text-opacity: 1;
  color: rgb(192 132 252 / var(--tw-text-opacity));
}
.text-purple-400\/0 {
  color: #c084fc00;
}
.text-purple-400\/10 {
  color: #c084fc1a;
}
.text-purple-400\/100 {
  color: #c084fc;
}
.text-purple-400\/20 {
  color: #c084fc33;
}
.text-purple-400\/25 {
  color: #c084fc40;
}
.text-purple-400\/30 {
  color: #c084fc4d;
}
.text-purple-400\/40 {
  color: #c084fc66;
}
.text-purple-400\/5 {
  color: #c084fc0d;
}
.text-purple-400\/50 {
  color: #c084fc80;
}
.text-purple-400\/60 {
  color: #c084fc99;
}
.text-purple-400\/70 {
  color: #c084fcb3;
}
.text-purple-400\/75 {
  color: #c084fcbf;
}
.text-purple-400\/80 {
  color: #c084fccc;
}
.text-purple-400\/90 {
  color: #c084fce6;
}
.text-purple-400\/95 {
  color: #c084fcf2;
}
.text-purple-50 {
  --tw-text-opacity: 1;
  color: rgb(250 245 255 / var(--tw-text-opacity));
}
.text-purple-50\/0 {
  color: #faf5ff00;
}
.text-purple-50\/10 {
  color: #faf5ff1a;
}
.text-purple-50\/100 {
  color: #faf5ff;
}
.text-purple-50\/20 {
  color: #faf5ff33;
}
.text-purple-50\/25 {
  color: #faf5ff40;
}
.text-purple-50\/30 {
  color: #faf5ff4d;
}
.text-purple-50\/40 {
  color: #faf5ff66;
}
.text-purple-50\/5 {
  color: #faf5ff0d;
}
.text-purple-50\/50 {
  color: #faf5ff80;
}
.text-purple-50\/60 {
  color: #faf5ff99;
}
.text-purple-50\/70 {
  color: #faf5ffb3;
}
.text-purple-50\/75 {
  color: #faf5ffbf;
}
.text-purple-50\/80 {
  color: #faf5ffcc;
}
.text-purple-50\/90 {
  color: #faf5ffe6;
}
.text-purple-50\/95 {
  color: #faf5fff2;
}
.text-purple-500 {
  --tw-text-opacity: 1;
  color: rgb(168 85 247 / var(--tw-text-opacity));
}
.text-purple-500\/0 {
  color: #a855f700;
}
.text-purple-500\/10 {
  color: #a855f71a;
}
.text-purple-500\/100 {
  color: #a855f7;
}
.text-purple-500\/20 {
  color: #a855f733;
}
.text-purple-500\/25 {
  color: #a855f740;
}
.text-purple-500\/30 {
  color: #a855f74d;
}
.text-purple-500\/40 {
  color: #a855f766;
}
.text-purple-500\/5 {
  color: #a855f70d;
}
.text-purple-500\/50 {
  color: #a855f780;
}
.text-purple-500\/60 {
  color: #a855f799;
}
.text-purple-500\/70 {
  color: #a855f7b3;
}
.text-purple-500\/75 {
  color: #a855f7bf;
}
.text-purple-500\/80 {
  color: #a855f7cc;
}
.text-purple-500\/90 {
  color: #a855f7e6;
}
.text-purple-500\/95 {
  color: #a855f7f2;
}
.text-purple-600 {
  --tw-text-opacity: 1;
  color: rgb(147 51 234 / var(--tw-text-opacity));
}
.text-purple-600\/0 {
  color: #9333ea00;
}
.text-purple-600\/10 {
  color: #9333ea1a;
}
.text-purple-600\/100 {
  color: #9333ea;
}
.text-purple-600\/20 {
  color: #9333ea33;
}
.text-purple-600\/25 {
  color: #9333ea40;
}
.text-purple-600\/30 {
  color: #9333ea4d;
}
.text-purple-600\/40 {
  color: #9333ea66;
}
.text-purple-600\/5 {
  color: #9333ea0d;
}
.text-purple-600\/50 {
  color: #9333ea80;
}
.text-purple-600\/60 {
  color: #9333ea99;
}
.text-purple-600\/70 {
  color: #9333eab3;
}
.text-purple-600\/75 {
  color: #9333eabf;
}
.text-purple-600\/80 {
  color: #9333eacc;
}
.text-purple-600\/90 {
  color: #9333eae6;
}
.text-purple-600\/95 {
  color: #9333eaf2;
}
.text-purple-700 {
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity));
}
.text-purple-700\/0 {
  color: #7e22ce00;
}
.text-purple-700\/10 {
  color: #7e22ce1a;
}
.text-purple-700\/100 {
  color: #7e22ce;
}
.text-purple-700\/20 {
  color: #7e22ce33;
}
.text-purple-700\/25 {
  color: #7e22ce40;
}
.text-purple-700\/30 {
  color: #7e22ce4d;
}
.text-purple-700\/40 {
  color: #7e22ce66;
}
.text-purple-700\/5 {
  color: #7e22ce0d;
}
.text-purple-700\/50 {
  color: #7e22ce80;
}
.text-purple-700\/60 {
  color: #7e22ce99;
}
.text-purple-700\/70 {
  color: #7e22ceb3;
}
.text-purple-700\/75 {
  color: #7e22cebf;
}
.text-purple-700\/80 {
  color: #7e22cecc;
}
.text-purple-700\/90 {
  color: #7e22cee6;
}
.text-purple-700\/95 {
  color: #7e22cef2;
}
.text-purple-800 {
  --tw-text-opacity: 1;
  color: rgb(107 33 168 / var(--tw-text-opacity));
}
.text-purple-800\/0 {
  color: #6b21a800;
}
.text-purple-800\/10 {
  color: #6b21a81a;
}
.text-purple-800\/100 {
  color: #6b21a8;
}
.text-purple-800\/20 {
  color: #6b21a833;
}
.text-purple-800\/25 {
  color: #6b21a840;
}
.text-purple-800\/30 {
  color: #6b21a84d;
}
.text-purple-800\/40 {
  color: #6b21a866;
}
.text-purple-800\/5 {
  color: #6b21a80d;
}
.text-purple-800\/50 {
  color: #6b21a880;
}
.text-purple-800\/60 {
  color: #6b21a899;
}
.text-purple-800\/70 {
  color: #6b21a8b3;
}
.text-purple-800\/75 {
  color: #6b21a8bf;
}
.text-purple-800\/80 {
  color: #6b21a8cc;
}
.text-purple-800\/90 {
  color: #6b21a8e6;
}
.text-purple-800\/95 {
  color: #6b21a8f2;
}
.text-purple-900 {
  --tw-text-opacity: 1;
  color: rgb(88 28 135 / var(--tw-text-opacity));
}
.text-purple-900\/0 {
  color: #581c8700;
}
.text-purple-900\/10 {
  color: #581c871a;
}
.text-purple-900\/100 {
  color: #581c87;
}
.text-purple-900\/20 {
  color: #581c8733;
}
.text-purple-900\/25 {
  color: #581c8740;
}
.text-purple-900\/30 {
  color: #581c874d;
}
.text-purple-900\/40 {
  color: #581c8766;
}
.text-purple-900\/5 {
  color: #581c870d;
}
.text-purple-900\/50 {
  color: #581c8780;
}
.text-purple-900\/60 {
  color: #581c8799;
}
.text-purple-900\/70 {
  color: #581c87b3;
}
.text-purple-900\/75 {
  color: #581c87bf;
}
.text-purple-900\/80 {
  color: #581c87cc;
}
.text-purple-900\/90 {
  color: #581c87e6;
}
.text-purple-900\/95 {
  color: #581c87f2;
}
.text-purple-950 {
  --tw-text-opacity: 1;
  color: rgb(59 7 100 / var(--tw-text-opacity));
}
.text-purple-950\/0 {
  color: #3b076400;
}
.text-purple-950\/10 {
  color: #3b07641a;
}
.text-purple-950\/100 {
  color: #3b0764;
}
.text-purple-950\/20 {
  color: #3b076433;
}
.text-purple-950\/25 {
  color: #3b076440;
}
.text-purple-950\/30 {
  color: #3b07644d;
}
.text-purple-950\/40 {
  color: #3b076466;
}
.text-purple-950\/5 {
  color: #3b07640d;
}
.text-purple-950\/50 {
  color: #3b076480;
}
.text-purple-950\/60 {
  color: #3b076499;
}
.text-purple-950\/70 {
  color: #3b0764b3;
}
.text-purple-950\/75 {
  color: #3b0764bf;
}
.text-purple-950\/80 {
  color: #3b0764cc;
}
.text-purple-950\/90 {
  color: #3b0764e6;
}
.text-purple-950\/95 {
  color: #3b0764f2;
}
.text-red-100 {
  --tw-text-opacity: 1;
  color: rgb(254 226 226 / var(--tw-text-opacity));
}
.text-red-100\/0 {
  color: #fee2e200;
}
.text-red-100\/10 {
  color: #fee2e21a;
}
.text-red-100\/100 {
  color: #fee2e2;
}
.text-red-100\/20 {
  color: #fee2e233;
}
.text-red-100\/25 {
  color: #fee2e240;
}
.text-red-100\/30 {
  color: #fee2e24d;
}
.text-red-100\/40 {
  color: #fee2e266;
}
.text-red-100\/5 {
  color: #fee2e20d;
}
.text-red-100\/50 {
  color: #fee2e280;
}
.text-red-100\/60 {
  color: #fee2e299;
}
.text-red-100\/70 {
  color: #fee2e2b3;
}
.text-red-100\/75 {
  color: #fee2e2bf;
}
.text-red-100\/80 {
  color: #fee2e2cc;
}
.text-red-100\/90 {
  color: #fee2e2e6;
}
.text-red-100\/95 {
  color: #fee2e2f2;
}
.text-red-200 {
  --tw-text-opacity: 1;
  color: rgb(254 202 202 / var(--tw-text-opacity));
}
.text-red-200\/0 {
  color: #fecaca00;
}
.text-red-200\/10 {
  color: #fecaca1a;
}
.text-red-200\/100 {
  color: #fecaca;
}
.text-red-200\/20 {
  color: #fecaca33;
}
.text-red-200\/25 {
  color: #fecaca40;
}
.text-red-200\/30 {
  color: #fecaca4d;
}
.text-red-200\/40 {
  color: #fecaca66;
}
.text-red-200\/5 {
  color: #fecaca0d;
}
.text-red-200\/50 {
  color: #fecaca80;
}
.text-red-200\/60 {
  color: #fecaca99;
}
.text-red-200\/70 {
  color: #fecacab3;
}
.text-red-200\/75 {
  color: #fecacabf;
}
.text-red-200\/80 {
  color: #fecacacc;
}
.text-red-200\/90 {
  color: #fecacae6;
}
.text-red-200\/95 {
  color: #fecacaf2;
}
.text-red-300 {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity));
}
.text-red-300\/0 {
  color: #fca5a500;
}
.text-red-300\/10 {
  color: #fca5a51a;
}
.text-red-300\/100 {
  color: #fca5a5;
}
.text-red-300\/20 {
  color: #fca5a533;
}
.text-red-300\/25 {
  color: #fca5a540;
}
.text-red-300\/30 {
  color: #fca5a54d;
}
.text-red-300\/40 {
  color: #fca5a566;
}
.text-red-300\/5 {
  color: #fca5a50d;
}
.text-red-300\/50 {
  color: #fca5a580;
}
.text-red-300\/60 {
  color: #fca5a599;
}
.text-red-300\/70 {
  color: #fca5a5b3;
}
.text-red-300\/75 {
  color: #fca5a5bf;
}
.text-red-300\/80 {
  color: #fca5a5cc;
}
.text-red-300\/90 {
  color: #fca5a5e6;
}
.text-red-300\/95 {
  color: #fca5a5f2;
}
.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity));
}
.text-red-400\/0 {
  color: #f8717100;
}
.text-red-400\/10 {
  color: #f871711a;
}
.text-red-400\/100 {
  color: #f87171;
}
.text-red-400\/20 {
  color: #f8717133;
}
.text-red-400\/25 {
  color: #f8717140;
}
.text-red-400\/30 {
  color: #f871714d;
}
.text-red-400\/40 {
  color: #f8717166;
}
.text-red-400\/5 {
  color: #f871710d;
}
.text-red-400\/50 {
  color: #f8717180;
}
.text-red-400\/60 {
  color: #f8717199;
}
.text-red-400\/70 {
  color: #f87171b3;
}
.text-red-400\/75 {
  color: #f87171bf;
}
.text-red-400\/80 {
  color: #f87171cc;
}
.text-red-400\/90 {
  color: #f87171e6;
}
.text-red-400\/95 {
  color: #f87171f2;
}
.text-red-50 {
  --tw-text-opacity: 1;
  color: rgb(254 242 242 / var(--tw-text-opacity));
}
.text-red-50\/0 {
  color: #fef2f200;
}
.text-red-50\/10 {
  color: #fef2f21a;
}
.text-red-50\/100 {
  color: #fef2f2;
}
.text-red-50\/20 {
  color: #fef2f233;
}
.text-red-50\/25 {
  color: #fef2f240;
}
.text-red-50\/30 {
  color: #fef2f24d;
}
.text-red-50\/40 {
  color: #fef2f266;
}
.text-red-50\/5 {
  color: #fef2f20d;
}
.text-red-50\/50 {
  color: #fef2f280;
}
.text-red-50\/60 {
  color: #fef2f299;
}
.text-red-50\/70 {
  color: #fef2f2b3;
}
.text-red-50\/75 {
  color: #fef2f2bf;
}
.text-red-50\/80 {
  color: #fef2f2cc;
}
.text-red-50\/90 {
  color: #fef2f2e6;
}
.text-red-50\/95 {
  color: #fef2f2f2;
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity));
}
.text-red-500\/0 {
  color: #ef444400;
}
.text-red-500\/10 {
  color: #ef44441a;
}
.text-red-500\/100 {
  color: #ef4444;
}
.text-red-500\/20 {
  color: #ef444433;
}
.text-red-500\/25 {
  color: #ef444440;
}
.text-red-500\/30 {
  color: #ef44444d;
}
.text-red-500\/40 {
  color: #ef444466;
}
.text-red-500\/5 {
  color: #ef44440d;
}
.text-red-500\/50 {
  color: #ef444480;
}
.text-red-500\/60 {
  color: #ef444499;
}
.text-red-500\/70 {
  color: #ef4444b3;
}
.text-red-500\/75 {
  color: #ef4444bf;
}
.text-red-500\/80 {
  color: #ef4444cc;
}
.text-red-500\/90 {
  color: #ef4444e6;
}
.text-red-500\/95 {
  color: #ef4444f2;
}
.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity));
}
.text-red-600\/0 {
  color: #dc262600;
}
.text-red-600\/10 {
  color: #dc26261a;
}
.text-red-600\/100 {
  color: #dc2626;
}
.text-red-600\/20 {
  color: #dc262633;
}
.text-red-600\/25 {
  color: #dc262640;
}
.text-red-600\/30 {
  color: #dc26264d;
}
.text-red-600\/40 {
  color: #dc262666;
}
.text-red-600\/5 {
  color: #dc26260d;
}
.text-red-600\/50 {
  color: #dc262680;
}
.text-red-600\/60 {
  color: #dc262699;
}
.text-red-600\/70 {
  color: #dc2626b3;
}
.text-red-600\/75 {
  color: #dc2626bf;
}
.text-red-600\/80 {
  color: #dc2626cc;
}
.text-red-600\/90 {
  color: #dc2626e6;
}
.text-red-600\/95 {
  color: #dc2626f2;
}
.text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity));
}
.text-red-700\/0 {
  color: #b91c1c00;
}
.text-red-700\/10 {
  color: #b91c1c1a;
}
.text-red-700\/100 {
  color: #b91c1c;
}
.text-red-700\/20 {
  color: #b91c1c33;
}
.text-red-700\/25 {
  color: #b91c1c40;
}
.text-red-700\/30 {
  color: #b91c1c4d;
}
.text-red-700\/40 {
  color: #b91c1c66;
}
.text-red-700\/5 {
  color: #b91c1c0d;
}
.text-red-700\/50 {
  color: #b91c1c80;
}
.text-red-700\/60 {
  color: #b91c1c99;
}
.text-red-700\/70 {
  color: #b91c1cb3;
}
.text-red-700\/75 {
  color: #b91c1cbf;
}
.text-red-700\/80 {
  color: #b91c1ccc;
}
.text-red-700\/90 {
  color: #b91c1ce6;
}
.text-red-700\/95 {
  color: #b91c1cf2;
}
.text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity));
}
.text-red-800\/0 {
  color: #991b1b00;
}
.text-red-800\/10 {
  color: #991b1b1a;
}
.text-red-800\/100 {
  color: #991b1b;
}
.text-red-800\/20 {
  color: #991b1b33;
}
.text-red-800\/25 {
  color: #991b1b40;
}
.text-red-800\/30 {
  color: #991b1b4d;
}
.text-red-800\/40 {
  color: #991b1b66;
}
.text-red-800\/5 {
  color: #991b1b0d;
}
.text-red-800\/50 {
  color: #991b1b80;
}
.text-red-800\/60 {
  color: #991b1b99;
}
.text-red-800\/70 {
  color: #991b1bb3;
}
.text-red-800\/75 {
  color: #991b1bbf;
}
.text-red-800\/80 {
  color: #991b1bcc;
}
.text-red-800\/90 {
  color: #991b1be6;
}
.text-red-800\/95 {
  color: #991b1bf2;
}
.text-red-900 {
  --tw-text-opacity: 1;
  color: rgb(127 29 29 / var(--tw-text-opacity));
}
.text-red-900\/0 {
  color: #7f1d1d00;
}
.text-red-900\/10 {
  color: #7f1d1d1a;
}
.text-red-900\/100 {
  color: #7f1d1d;
}
.text-red-900\/20 {
  color: #7f1d1d33;
}
.text-red-900\/25 {
  color: #7f1d1d40;
}
.text-red-900\/30 {
  color: #7f1d1d4d;
}
.text-red-900\/40 {
  color: #7f1d1d66;
}
.text-red-900\/5 {
  color: #7f1d1d0d;
}
.text-red-900\/50 {
  color: #7f1d1d80;
}
.text-red-900\/60 {
  color: #7f1d1d99;
}
.text-red-900\/70 {
  color: #7f1d1db3;
}
.text-red-900\/75 {
  color: #7f1d1dbf;
}
.text-red-900\/80 {
  color: #7f1d1dcc;
}
.text-red-900\/90 {
  color: #7f1d1de6;
}
.text-red-900\/95 {
  color: #7f1d1df2;
}
.text-red-950 {
  --tw-text-opacity: 1;
  color: rgb(69 10 10 / var(--tw-text-opacity));
}
.text-red-950\/0 {
  color: #450a0a00;
}
.text-red-950\/10 {
  color: #450a0a1a;
}
.text-red-950\/100 {
  color: #450a0a;
}
.text-red-950\/20 {
  color: #450a0a33;
}
.text-red-950\/25 {
  color: #450a0a40;
}
.text-red-950\/30 {
  color: #450a0a4d;
}
.text-red-950\/40 {
  color: #450a0a66;
}
.text-red-950\/5 {
  color: #450a0a0d;
}
.text-red-950\/50 {
  color: #450a0a80;
}
.text-red-950\/60 {
  color: #450a0a99;
}
.text-red-950\/70 {
  color: #450a0ab3;
}
.text-red-950\/75 {
  color: #450a0abf;
}
.text-red-950\/80 {
  color: #450a0acc;
}
.text-red-950\/90 {
  color: #450a0ae6;
}
.text-red-950\/95 {
  color: #450a0af2;
}
.text-rose-100 {
  --tw-text-opacity: 1;
  color: rgb(255 228 230 / var(--tw-text-opacity));
}
.text-rose-100\/0 {
  color: #ffe4e600;
}
.text-rose-100\/10 {
  color: #ffe4e61a;
}
.text-rose-100\/100 {
  color: #ffe4e6;
}
.text-rose-100\/20 {
  color: #ffe4e633;
}
.text-rose-100\/25 {
  color: #ffe4e640;
}
.text-rose-100\/30 {
  color: #ffe4e64d;
}
.text-rose-100\/40 {
  color: #ffe4e666;
}
.text-rose-100\/5 {
  color: #ffe4e60d;
}
.text-rose-100\/50 {
  color: #ffe4e680;
}
.text-rose-100\/60 {
  color: #ffe4e699;
}
.text-rose-100\/70 {
  color: #ffe4e6b3;
}
.text-rose-100\/75 {
  color: #ffe4e6bf;
}
.text-rose-100\/80 {
  color: #ffe4e6cc;
}
.text-rose-100\/90 {
  color: #ffe4e6e6;
}
.text-rose-100\/95 {
  color: #ffe4e6f2;
}
.text-rose-200 {
  --tw-text-opacity: 1;
  color: rgb(254 205 211 / var(--tw-text-opacity));
}
.text-rose-200\/0 {
  color: #fecdd300;
}
.text-rose-200\/10 {
  color: #fecdd31a;
}
.text-rose-200\/100 {
  color: #fecdd3;
}
.text-rose-200\/20 {
  color: #fecdd333;
}
.text-rose-200\/25 {
  color: #fecdd340;
}
.text-rose-200\/30 {
  color: #fecdd34d;
}
.text-rose-200\/40 {
  color: #fecdd366;
}
.text-rose-200\/5 {
  color: #fecdd30d;
}
.text-rose-200\/50 {
  color: #fecdd380;
}
.text-rose-200\/60 {
  color: #fecdd399;
}
.text-rose-200\/70 {
  color: #fecdd3b3;
}
.text-rose-200\/75 {
  color: #fecdd3bf;
}
.text-rose-200\/80 {
  color: #fecdd3cc;
}
.text-rose-200\/90 {
  color: #fecdd3e6;
}
.text-rose-200\/95 {
  color: #fecdd3f2;
}
.text-rose-300 {
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity));
}
.text-rose-300\/0 {
  color: #fda4af00;
}
.text-rose-300\/10 {
  color: #fda4af1a;
}
.text-rose-300\/100 {
  color: #fda4af;
}
.text-rose-300\/20 {
  color: #fda4af33;
}
.text-rose-300\/25 {
  color: #fda4af40;
}
.text-rose-300\/30 {
  color: #fda4af4d;
}
.text-rose-300\/40 {
  color: #fda4af66;
}
.text-rose-300\/5 {
  color: #fda4af0d;
}
.text-rose-300\/50 {
  color: #fda4af80;
}
.text-rose-300\/60 {
  color: #fda4af99;
}
.text-rose-300\/70 {
  color: #fda4afb3;
}
.text-rose-300\/75 {
  color: #fda4afbf;
}
.text-rose-300\/80 {
  color: #fda4afcc;
}
.text-rose-300\/90 {
  color: #fda4afe6;
}
.text-rose-300\/95 {
  color: #fda4aff2;
}
.text-rose-400 {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity));
}
.text-rose-400\/0 {
  color: #fb718500;
}
.text-rose-400\/10 {
  color: #fb71851a;
}
.text-rose-400\/100 {
  color: #fb7185;
}
.text-rose-400\/20 {
  color: #fb718533;
}
.text-rose-400\/25 {
  color: #fb718540;
}
.text-rose-400\/30 {
  color: #fb71854d;
}
.text-rose-400\/40 {
  color: #fb718566;
}
.text-rose-400\/5 {
  color: #fb71850d;
}
.text-rose-400\/50 {
  color: #fb718580;
}
.text-rose-400\/60 {
  color: #fb718599;
}
.text-rose-400\/70 {
  color: #fb7185b3;
}
.text-rose-400\/75 {
  color: #fb7185bf;
}
.text-rose-400\/80 {
  color: #fb7185cc;
}
.text-rose-400\/90 {
  color: #fb7185e6;
}
.text-rose-400\/95 {
  color: #fb7185f2;
}
.text-rose-50 {
  --tw-text-opacity: 1;
  color: rgb(255 241 242 / var(--tw-text-opacity));
}
.text-rose-50\/0 {
  color: #fff1f200;
}
.text-rose-50\/10 {
  color: #fff1f21a;
}
.text-rose-50\/100 {
  color: #fff1f2;
}
.text-rose-50\/20 {
  color: #fff1f233;
}
.text-rose-50\/25 {
  color: #fff1f240;
}
.text-rose-50\/30 {
  color: #fff1f24d;
}
.text-rose-50\/40 {
  color: #fff1f266;
}
.text-rose-50\/5 {
  color: #fff1f20d;
}
.text-rose-50\/50 {
  color: #fff1f280;
}
.text-rose-50\/60 {
  color: #fff1f299;
}
.text-rose-50\/70 {
  color: #fff1f2b3;
}
.text-rose-50\/75 {
  color: #fff1f2bf;
}
.text-rose-50\/80 {
  color: #fff1f2cc;
}
.text-rose-50\/90 {
  color: #fff1f2e6;
}
.text-rose-50\/95 {
  color: #fff1f2f2;
}
.text-rose-500 {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity));
}
.text-rose-500\/0 {
  color: #f43f5e00;
}
.text-rose-500\/10 {
  color: #f43f5e1a;
}
.text-rose-500\/100 {
  color: #f43f5e;
}
.text-rose-500\/20 {
  color: #f43f5e33;
}
.text-rose-500\/25 {
  color: #f43f5e40;
}
.text-rose-500\/30 {
  color: #f43f5e4d;
}
.text-rose-500\/40 {
  color: #f43f5e66;
}
.text-rose-500\/5 {
  color: #f43f5e0d;
}
.text-rose-500\/50 {
  color: #f43f5e80;
}
.text-rose-500\/60 {
  color: #f43f5e99;
}
.text-rose-500\/70 {
  color: #f43f5eb3;
}
.text-rose-500\/75 {
  color: #f43f5ebf;
}
.text-rose-500\/80 {
  color: #f43f5ecc;
}
.text-rose-500\/90 {
  color: #f43f5ee6;
}
.text-rose-500\/95 {
  color: #f43f5ef2;
}
.text-rose-600 {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity));
}
.text-rose-600\/0 {
  color: #e11d4800;
}
.text-rose-600\/10 {
  color: #e11d481a;
}
.text-rose-600\/100 {
  color: #e11d48;
}
.text-rose-600\/20 {
  color: #e11d4833;
}
.text-rose-600\/25 {
  color: #e11d4840;
}
.text-rose-600\/30 {
  color: #e11d484d;
}
.text-rose-600\/40 {
  color: #e11d4866;
}
.text-rose-600\/5 {
  color: #e11d480d;
}
.text-rose-600\/50 {
  color: #e11d4880;
}
.text-rose-600\/60 {
  color: #e11d4899;
}
.text-rose-600\/70 {
  color: #e11d48b3;
}
.text-rose-600\/75 {
  color: #e11d48bf;
}
.text-rose-600\/80 {
  color: #e11d48cc;
}
.text-rose-600\/90 {
  color: #e11d48e6;
}
.text-rose-600\/95 {
  color: #e11d48f2;
}
.text-rose-700 {
  --tw-text-opacity: 1;
  color: rgb(190 18 60 / var(--tw-text-opacity));
}
.text-rose-700\/0 {
  color: #be123c00;
}
.text-rose-700\/10 {
  color: #be123c1a;
}
.text-rose-700\/100 {
  color: #be123c;
}
.text-rose-700\/20 {
  color: #be123c33;
}
.text-rose-700\/25 {
  color: #be123c40;
}
.text-rose-700\/30 {
  color: #be123c4d;
}
.text-rose-700\/40 {
  color: #be123c66;
}
.text-rose-700\/5 {
  color: #be123c0d;
}
.text-rose-700\/50 {
  color: #be123c80;
}
.text-rose-700\/60 {
  color: #be123c99;
}
.text-rose-700\/70 {
  color: #be123cb3;
}
.text-rose-700\/75 {
  color: #be123cbf;
}
.text-rose-700\/80 {
  color: #be123ccc;
}
.text-rose-700\/90 {
  color: #be123ce6;
}
.text-rose-700\/95 {
  color: #be123cf2;
}
.text-rose-800 {
  --tw-text-opacity: 1;
  color: rgb(159 18 57 / var(--tw-text-opacity));
}
.text-rose-800\/0 {
  color: #9f123900;
}
.text-rose-800\/10 {
  color: #9f12391a;
}
.text-rose-800\/100 {
  color: #9f1239;
}
.text-rose-800\/20 {
  color: #9f123933;
}
.text-rose-800\/25 {
  color: #9f123940;
}
.text-rose-800\/30 {
  color: #9f12394d;
}
.text-rose-800\/40 {
  color: #9f123966;
}
.text-rose-800\/5 {
  color: #9f12390d;
}
.text-rose-800\/50 {
  color: #9f123980;
}
.text-rose-800\/60 {
  color: #9f123999;
}
.text-rose-800\/70 {
  color: #9f1239b3;
}
.text-rose-800\/75 {
  color: #9f1239bf;
}
.text-rose-800\/80 {
  color: #9f1239cc;
}
.text-rose-800\/90 {
  color: #9f1239e6;
}
.text-rose-800\/95 {
  color: #9f1239f2;
}
.text-rose-900 {
  --tw-text-opacity: 1;
  color: rgb(136 19 55 / var(--tw-text-opacity));
}
.text-rose-900\/0 {
  color: #88133700;
}
.text-rose-900\/10 {
  color: #8813371a;
}
.text-rose-900\/100 {
  color: #881337;
}
.text-rose-900\/20 {
  color: #88133733;
}
.text-rose-900\/25 {
  color: #88133740;
}
.text-rose-900\/30 {
  color: #8813374d;
}
.text-rose-900\/40 {
  color: #88133766;
}
.text-rose-900\/5 {
  color: #8813370d;
}
.text-rose-900\/50 {
  color: #88133780;
}
.text-rose-900\/60 {
  color: #88133799;
}
.text-rose-900\/70 {
  color: #881337b3;
}
.text-rose-900\/75 {
  color: #881337bf;
}
.text-rose-900\/80 {
  color: #881337cc;
}
.text-rose-900\/90 {
  color: #881337e6;
}
.text-rose-900\/95 {
  color: #881337f2;
}
.text-rose-950 {
  --tw-text-opacity: 1;
  color: rgb(76 5 25 / var(--tw-text-opacity));
}
.text-rose-950\/0 {
  color: #4c051900;
}
.text-rose-950\/10 {
  color: #4c05191a;
}
.text-rose-950\/100 {
  color: #4c0519;
}
.text-rose-950\/20 {
  color: #4c051933;
}
.text-rose-950\/25 {
  color: #4c051940;
}
.text-rose-950\/30 {
  color: #4c05194d;
}
.text-rose-950\/40 {
  color: #4c051966;
}
.text-rose-950\/5 {
  color: #4c05190d;
}
.text-rose-950\/50 {
  color: #4c051980;
}
.text-rose-950\/60 {
  color: #4c051999;
}
.text-rose-950\/70 {
  color: #4c0519b3;
}
.text-rose-950\/75 {
  color: #4c0519bf;
}
.text-rose-950\/80 {
  color: #4c0519cc;
}
.text-rose-950\/90 {
  color: #4c0519e6;
}
.text-rose-950\/95 {
  color: #4c0519f2;
}
.text-sky-100 {
  --tw-text-opacity: 1;
  color: rgb(224 242 254 / var(--tw-text-opacity));
}
.text-sky-100\/0 {
  color: #e0f2fe00;
}
.text-sky-100\/10 {
  color: #e0f2fe1a;
}
.text-sky-100\/100 {
  color: #e0f2fe;
}
.text-sky-100\/20 {
  color: #e0f2fe33;
}
.text-sky-100\/25 {
  color: #e0f2fe40;
}
.text-sky-100\/30 {
  color: #e0f2fe4d;
}
.text-sky-100\/40 {
  color: #e0f2fe66;
}
.text-sky-100\/5 {
  color: #e0f2fe0d;
}
.text-sky-100\/50 {
  color: #e0f2fe80;
}
.text-sky-100\/60 {
  color: #e0f2fe99;
}
.text-sky-100\/70 {
  color: #e0f2feb3;
}
.text-sky-100\/75 {
  color: #e0f2febf;
}
.text-sky-100\/80 {
  color: #e0f2fecc;
}
.text-sky-100\/90 {
  color: #e0f2fee6;
}
.text-sky-100\/95 {
  color: #e0f2fef2;
}
.text-sky-200 {
  --tw-text-opacity: 1;
  color: rgb(186 230 253 / var(--tw-text-opacity));
}
.text-sky-200\/0 {
  color: #bae6fd00;
}
.text-sky-200\/10 {
  color: #bae6fd1a;
}
.text-sky-200\/100 {
  color: #bae6fd;
}
.text-sky-200\/20 {
  color: #bae6fd33;
}
.text-sky-200\/25 {
  color: #bae6fd40;
}
.text-sky-200\/30 {
  color: #bae6fd4d;
}
.text-sky-200\/40 {
  color: #bae6fd66;
}
.text-sky-200\/5 {
  color: #bae6fd0d;
}
.text-sky-200\/50 {
  color: #bae6fd80;
}
.text-sky-200\/60 {
  color: #bae6fd99;
}
.text-sky-200\/70 {
  color: #bae6fdb3;
}
.text-sky-200\/75 {
  color: #bae6fdbf;
}
.text-sky-200\/80 {
  color: #bae6fdcc;
}
.text-sky-200\/90 {
  color: #bae6fde6;
}
.text-sky-200\/95 {
  color: #bae6fdf2;
}
.text-sky-300 {
  --tw-text-opacity: 1;
  color: rgb(125 211 252 / var(--tw-text-opacity));
}
.text-sky-300\/0 {
  color: #7dd3fc00;
}
.text-sky-300\/10 {
  color: #7dd3fc1a;
}
.text-sky-300\/100 {
  color: #7dd3fc;
}
.text-sky-300\/20 {
  color: #7dd3fc33;
}
.text-sky-300\/25 {
  color: #7dd3fc40;
}
.text-sky-300\/30 {
  color: #7dd3fc4d;
}
.text-sky-300\/40 {
  color: #7dd3fc66;
}
.text-sky-300\/5 {
  color: #7dd3fc0d;
}
.text-sky-300\/50 {
  color: #7dd3fc80;
}
.text-sky-300\/60 {
  color: #7dd3fc99;
}
.text-sky-300\/70 {
  color: #7dd3fcb3;
}
.text-sky-300\/75 {
  color: #7dd3fcbf;
}
.text-sky-300\/80 {
  color: #7dd3fccc;
}
.text-sky-300\/90 {
  color: #7dd3fce6;
}
.text-sky-300\/95 {
  color: #7dd3fcf2;
}
.text-sky-400 {
  --tw-text-opacity: 1;
  color: rgb(56 189 248 / var(--tw-text-opacity));
}
.text-sky-400\/0 {
  color: #38bdf800;
}
.text-sky-400\/10 {
  color: #38bdf81a;
}
.text-sky-400\/100 {
  color: #38bdf8;
}
.text-sky-400\/20 {
  color: #38bdf833;
}
.text-sky-400\/25 {
  color: #38bdf840;
}
.text-sky-400\/30 {
  color: #38bdf84d;
}
.text-sky-400\/40 {
  color: #38bdf866;
}
.text-sky-400\/5 {
  color: #38bdf80d;
}
.text-sky-400\/50 {
  color: #38bdf880;
}
.text-sky-400\/60 {
  color: #38bdf899;
}
.text-sky-400\/70 {
  color: #38bdf8b3;
}
.text-sky-400\/75 {
  color: #38bdf8bf;
}
.text-sky-400\/80 {
  color: #38bdf8cc;
}
.text-sky-400\/90 {
  color: #38bdf8e6;
}
.text-sky-400\/95 {
  color: #38bdf8f2;
}
.text-sky-50 {
  --tw-text-opacity: 1;
  color: rgb(240 249 255 / var(--tw-text-opacity));
}
.text-sky-50\/0 {
  color: #f0f9ff00;
}
.text-sky-50\/10 {
  color: #f0f9ff1a;
}
.text-sky-50\/100 {
  color: #f0f9ff;
}
.text-sky-50\/20 {
  color: #f0f9ff33;
}
.text-sky-50\/25 {
  color: #f0f9ff40;
}
.text-sky-50\/30 {
  color: #f0f9ff4d;
}
.text-sky-50\/40 {
  color: #f0f9ff66;
}
.text-sky-50\/5 {
  color: #f0f9ff0d;
}
.text-sky-50\/50 {
  color: #f0f9ff80;
}
.text-sky-50\/60 {
  color: #f0f9ff99;
}
.text-sky-50\/70 {
  color: #f0f9ffb3;
}
.text-sky-50\/75 {
  color: #f0f9ffbf;
}
.text-sky-50\/80 {
  color: #f0f9ffcc;
}
.text-sky-50\/90 {
  color: #f0f9ffe6;
}
.text-sky-50\/95 {
  color: #f0f9fff2;
}
.text-sky-500 {
  --tw-text-opacity: 1;
  color: rgb(14 165 233 / var(--tw-text-opacity));
}
.text-sky-500\/0 {
  color: #0ea5e900;
}
.text-sky-500\/10 {
  color: #0ea5e91a;
}
.text-sky-500\/100 {
  color: #0ea5e9;
}
.text-sky-500\/20 {
  color: #0ea5e933;
}
.text-sky-500\/25 {
  color: #0ea5e940;
}
.text-sky-500\/30 {
  color: #0ea5e94d;
}
.text-sky-500\/40 {
  color: #0ea5e966;
}
.text-sky-500\/5 {
  color: #0ea5e90d;
}
.text-sky-500\/50 {
  color: #0ea5e980;
}
.text-sky-500\/60 {
  color: #0ea5e999;
}
.text-sky-500\/70 {
  color: #0ea5e9b3;
}
.text-sky-500\/75 {
  color: #0ea5e9bf;
}
.text-sky-500\/80 {
  color: #0ea5e9cc;
}
.text-sky-500\/90 {
  color: #0ea5e9e6;
}
.text-sky-500\/95 {
  color: #0ea5e9f2;
}
.text-sky-600 {
  --tw-text-opacity: 1;
  color: rgb(2 132 199 / var(--tw-text-opacity));
}
.text-sky-600\/0 {
  color: #0284c700;
}
.text-sky-600\/10 {
  color: #0284c71a;
}
.text-sky-600\/100 {
  color: #0284c7;
}
.text-sky-600\/20 {
  color: #0284c733;
}
.text-sky-600\/25 {
  color: #0284c740;
}
.text-sky-600\/30 {
  color: #0284c74d;
}
.text-sky-600\/40 {
  color: #0284c766;
}
.text-sky-600\/5 {
  color: #0284c70d;
}
.text-sky-600\/50 {
  color: #0284c780;
}
.text-sky-600\/60 {
  color: #0284c799;
}
.text-sky-600\/70 {
  color: #0284c7b3;
}
.text-sky-600\/75 {
  color: #0284c7bf;
}
.text-sky-600\/80 {
  color: #0284c7cc;
}
.text-sky-600\/90 {
  color: #0284c7e6;
}
.text-sky-600\/95 {
  color: #0284c7f2;
}
.text-sky-700 {
  --tw-text-opacity: 1;
  color: rgb(3 105 161 / var(--tw-text-opacity));
}
.text-sky-700\/0 {
  color: #0369a100;
}
.text-sky-700\/10 {
  color: #0369a11a;
}
.text-sky-700\/100 {
  color: #0369a1;
}
.text-sky-700\/20 {
  color: #0369a133;
}
.text-sky-700\/25 {
  color: #0369a140;
}
.text-sky-700\/30 {
  color: #0369a14d;
}
.text-sky-700\/40 {
  color: #0369a166;
}
.text-sky-700\/5 {
  color: #0369a10d;
}
.text-sky-700\/50 {
  color: #0369a180;
}
.text-sky-700\/60 {
  color: #0369a199;
}
.text-sky-700\/70 {
  color: #0369a1b3;
}
.text-sky-700\/75 {
  color: #0369a1bf;
}
.text-sky-700\/80 {
  color: #0369a1cc;
}
.text-sky-700\/90 {
  color: #0369a1e6;
}
.text-sky-700\/95 {
  color: #0369a1f2;
}
.text-sky-800 {
  --tw-text-opacity: 1;
  color: rgb(7 89 133 / var(--tw-text-opacity));
}
.text-sky-800\/0 {
  color: #07598500;
}
.text-sky-800\/10 {
  color: #0759851a;
}
.text-sky-800\/100 {
  color: #075985;
}
.text-sky-800\/20 {
  color: #07598533;
}
.text-sky-800\/25 {
  color: #07598540;
}
.text-sky-800\/30 {
  color: #0759854d;
}
.text-sky-800\/40 {
  color: #07598566;
}
.text-sky-800\/5 {
  color: #0759850d;
}
.text-sky-800\/50 {
  color: #07598580;
}
.text-sky-800\/60 {
  color: #07598599;
}
.text-sky-800\/70 {
  color: #075985b3;
}
.text-sky-800\/75 {
  color: #075985bf;
}
.text-sky-800\/80 {
  color: #075985cc;
}
.text-sky-800\/90 {
  color: #075985e6;
}
.text-sky-800\/95 {
  color: #075985f2;
}
.text-sky-900 {
  --tw-text-opacity: 1;
  color: rgb(12 74 110 / var(--tw-text-opacity));
}
.text-sky-900\/0 {
  color: #0c4a6e00;
}
.text-sky-900\/10 {
  color: #0c4a6e1a;
}
.text-sky-900\/100 {
  color: #0c4a6e;
}
.text-sky-900\/20 {
  color: #0c4a6e33;
}
.text-sky-900\/25 {
  color: #0c4a6e40;
}
.text-sky-900\/30 {
  color: #0c4a6e4d;
}
.text-sky-900\/40 {
  color: #0c4a6e66;
}
.text-sky-900\/5 {
  color: #0c4a6e0d;
}
.text-sky-900\/50 {
  color: #0c4a6e80;
}
.text-sky-900\/60 {
  color: #0c4a6e99;
}
.text-sky-900\/70 {
  color: #0c4a6eb3;
}
.text-sky-900\/75 {
  color: #0c4a6ebf;
}
.text-sky-900\/80 {
  color: #0c4a6ecc;
}
.text-sky-900\/90 {
  color: #0c4a6ee6;
}
.text-sky-900\/95 {
  color: #0c4a6ef2;
}
.text-sky-950 {
  --tw-text-opacity: 1;
  color: rgb(8 47 73 / var(--tw-text-opacity));
}
.text-sky-950\/0 {
  color: #082f4900;
}
.text-sky-950\/10 {
  color: #082f491a;
}
.text-sky-950\/100 {
  color: #082f49;
}
.text-sky-950\/20 {
  color: #082f4933;
}
.text-sky-950\/25 {
  color: #082f4940;
}
.text-sky-950\/30 {
  color: #082f494d;
}
.text-sky-950\/40 {
  color: #082f4966;
}
.text-sky-950\/5 {
  color: #082f490d;
}
.text-sky-950\/50 {
  color: #082f4980;
}
.text-sky-950\/60 {
  color: #082f4999;
}
.text-sky-950\/70 {
  color: #082f49b3;
}
.text-sky-950\/75 {
  color: #082f49bf;
}
.text-sky-950\/80 {
  color: #082f49cc;
}
.text-sky-950\/90 {
  color: #082f49e6;
}
.text-sky-950\/95 {
  color: #082f49f2;
}
.text-slate-100 {
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / var(--tw-text-opacity));
}
.text-slate-100\/0 {
  color: #f1f5f900;
}
.text-slate-100\/10 {
  color: #f1f5f91a;
}
.text-slate-100\/100 {
  color: #f1f5f9;
}
.text-slate-100\/20 {
  color: #f1f5f933;
}
.text-slate-100\/25 {
  color: #f1f5f940;
}
.text-slate-100\/30 {
  color: #f1f5f94d;
}
.text-slate-100\/40 {
  color: #f1f5f966;
}
.text-slate-100\/5 {
  color: #f1f5f90d;
}
.text-slate-100\/50 {
  color: #f1f5f980;
}
.text-slate-100\/60 {
  color: #f1f5f999;
}
.text-slate-100\/70 {
  color: #f1f5f9b3;
}
.text-slate-100\/75 {
  color: #f1f5f9bf;
}
.text-slate-100\/80 {
  color: #f1f5f9cc;
}
.text-slate-100\/90 {
  color: #f1f5f9e6;
}
.text-slate-100\/95 {
  color: #f1f5f9f2;
}
.text-slate-200 {
  --tw-text-opacity: 1;
  color: rgb(226 232 240 / var(--tw-text-opacity));
}
.text-slate-200\/0 {
  color: #e2e8f000;
}
.text-slate-200\/10 {
  color: #e2e8f01a;
}
.text-slate-200\/100 {
  color: #e2e8f0;
}
.text-slate-200\/20 {
  color: #e2e8f033;
}
.text-slate-200\/25 {
  color: #e2e8f040;
}
.text-slate-200\/30 {
  color: #e2e8f04d;
}
.text-slate-200\/40 {
  color: #e2e8f066;
}
.text-slate-200\/5 {
  color: #e2e8f00d;
}
.text-slate-200\/50 {
  color: #e2e8f080;
}
.text-slate-200\/60 {
  color: #e2e8f099;
}
.text-slate-200\/70 {
  color: #e2e8f0b3;
}
.text-slate-200\/75 {
  color: #e2e8f0bf;
}
.text-slate-200\/80 {
  color: #e2e8f0cc;
}
.text-slate-200\/90 {
  color: #e2e8f0e6;
}
.text-slate-200\/95 {
  color: #e2e8f0f2;
}
.text-slate-300 {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity));
}
.text-slate-300\/0 {
  color: #cbd5e100;
}
.text-slate-300\/10 {
  color: #cbd5e11a;
}
.text-slate-300\/100 {
  color: #cbd5e1;
}
.text-slate-300\/20 {
  color: #cbd5e133;
}
.text-slate-300\/25 {
  color: #cbd5e140;
}
.text-slate-300\/30 {
  color: #cbd5e14d;
}
.text-slate-300\/40 {
  color: #cbd5e166;
}
.text-slate-300\/5 {
  color: #cbd5e10d;
}
.text-slate-300\/50 {
  color: #cbd5e180;
}
.text-slate-300\/60 {
  color: #cbd5e199;
}
.text-slate-300\/70 {
  color: #cbd5e1b3;
}
.text-slate-300\/75 {
  color: #cbd5e1bf;
}
.text-slate-300\/80 {
  color: #cbd5e1cc;
}
.text-slate-300\/90 {
  color: #cbd5e1e6;
}
.text-slate-300\/95 {
  color: #cbd5e1f2;
}
.text-slate-400 {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity));
}
.text-slate-400\/0 {
  color: #94a3b800;
}
.text-slate-400\/10 {
  color: #94a3b81a;
}
.text-slate-400\/100 {
  color: #94a3b8;
}
.text-slate-400\/20 {
  color: #94a3b833;
}
.text-slate-400\/25 {
  color: #94a3b840;
}
.text-slate-400\/30 {
  color: #94a3b84d;
}
.text-slate-400\/40 {
  color: #94a3b866;
}
.text-slate-400\/5 {
  color: #94a3b80d;
}
.text-slate-400\/50 {
  color: #94a3b880;
}
.text-slate-400\/60 {
  color: #94a3b899;
}
.text-slate-400\/70 {
  color: #94a3b8b3;
}
.text-slate-400\/75 {
  color: #94a3b8bf;
}
.text-slate-400\/80 {
  color: #94a3b8cc;
}
.text-slate-400\/90 {
  color: #94a3b8e6;
}
.text-slate-400\/95 {
  color: #94a3b8f2;
}
.text-slate-50 {
  --tw-text-opacity: 1;
  color: rgb(248 250 252 / var(--tw-text-opacity));
}
.text-slate-50\/0 {
  color: #f8fafc00;
}
.text-slate-50\/10 {
  color: #f8fafc1a;
}
.text-slate-50\/100 {
  color: #f8fafc;
}
.text-slate-50\/20 {
  color: #f8fafc33;
}
.text-slate-50\/25 {
  color: #f8fafc40;
}
.text-slate-50\/30 {
  color: #f8fafc4d;
}
.text-slate-50\/40 {
  color: #f8fafc66;
}
.text-slate-50\/5 {
  color: #f8fafc0d;
}
.text-slate-50\/50 {
  color: #f8fafc80;
}
.text-slate-50\/60 {
  color: #f8fafc99;
}
.text-slate-50\/70 {
  color: #f8fafcb3;
}
.text-slate-50\/75 {
  color: #f8fafcbf;
}
.text-slate-50\/80 {
  color: #f8fafccc;
}
.text-slate-50\/90 {
  color: #f8fafce6;
}
.text-slate-50\/95 {
  color: #f8fafcf2;
}
.text-slate-500 {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity));
}
.text-slate-500\/0 {
  color: #64748b00;
}
.text-slate-500\/10 {
  color: #64748b1a;
}
.text-slate-500\/100 {
  color: #64748b;
}
.text-slate-500\/20 {
  color: #64748b33;
}
.text-slate-500\/25 {
  color: #64748b40;
}
.text-slate-500\/30 {
  color: #64748b4d;
}
.text-slate-500\/40 {
  color: #64748b66;
}
.text-slate-500\/5 {
  color: #64748b0d;
}
.text-slate-500\/50 {
  color: #64748b80;
}
.text-slate-500\/60 {
  color: #64748b99;
}
.text-slate-500\/70 {
  color: #64748bb3;
}
.text-slate-500\/75 {
  color: #64748bbf;
}
.text-slate-500\/80 {
  color: #64748bcc;
}
.text-slate-500\/90 {
  color: #64748be6;
}
.text-slate-500\/95 {
  color: #64748bf2;
}
.text-slate-600 {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity));
}
.text-slate-600\/0 {
  color: #47556900;
}
.text-slate-600\/10 {
  color: #4755691a;
}
.text-slate-600\/100 {
  color: #475569;
}
.text-slate-600\/20 {
  color: #47556933;
}
.text-slate-600\/25 {
  color: #47556940;
}
.text-slate-600\/30 {
  color: #4755694d;
}
.text-slate-600\/40 {
  color: #47556966;
}
.text-slate-600\/5 {
  color: #4755690d;
}
.text-slate-600\/50 {
  color: #47556980;
}
.text-slate-600\/60 {
  color: #47556999;
}
.text-slate-600\/70 {
  color: #475569b3;
}
.text-slate-600\/75 {
  color: #475569bf;
}
.text-slate-600\/80 {
  color: #475569cc;
}
.text-slate-600\/90 {
  color: #475569e6;
}
.text-slate-600\/95 {
  color: #475569f2;
}
.text-slate-700 {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity));
}
.text-slate-700\/0 {
  color: #33415500;
}
.text-slate-700\/10 {
  color: #3341551a;
}
.text-slate-700\/100 {
  color: #334155;
}
.text-slate-700\/20 {
  color: #33415533;
}
.text-slate-700\/25 {
  color: #33415540;
}
.text-slate-700\/30 {
  color: #3341554d;
}
.text-slate-700\/40 {
  color: #33415566;
}
.text-slate-700\/5 {
  color: #3341550d;
}
.text-slate-700\/50 {
  color: #33415580;
}
.text-slate-700\/60 {
  color: #33415599;
}
.text-slate-700\/70 {
  color: #334155b3;
}
.text-slate-700\/75 {
  color: #334155bf;
}
.text-slate-700\/80 {
  color: #334155cc;
}
.text-slate-700\/90 {
  color: #334155e6;
}
.text-slate-700\/95 {
  color: #334155f2;
}
.text-slate-800 {
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity));
}
.text-slate-800\/0 {
  color: #1e293b00;
}
.text-slate-800\/10 {
  color: #1e293b1a;
}
.text-slate-800\/100 {
  color: #1e293b;
}
.text-slate-800\/20 {
  color: #1e293b33;
}
.text-slate-800\/25 {
  color: #1e293b40;
}
.text-slate-800\/30 {
  color: #1e293b4d;
}
.text-slate-800\/40 {
  color: #1e293b66;
}
.text-slate-800\/5 {
  color: #1e293b0d;
}
.text-slate-800\/50 {
  color: #1e293b80;
}
.text-slate-800\/60 {
  color: #1e293b99;
}
.text-slate-800\/70 {
  color: #1e293bb3;
}
.text-slate-800\/75 {
  color: #1e293bbf;
}
.text-slate-800\/80 {
  color: #1e293bcc;
}
.text-slate-800\/90 {
  color: #1e293be6;
}
.text-slate-800\/95 {
  color: #1e293bf2;
}
.text-slate-900 {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity));
}
.text-slate-900\/0 {
  color: #0f172a00;
}
.text-slate-900\/10 {
  color: #0f172a1a;
}
.text-slate-900\/100 {
  color: #0f172a;
}
.text-slate-900\/20 {
  color: #0f172a33;
}
.text-slate-900\/25 {
  color: #0f172a40;
}
.text-slate-900\/30 {
  color: #0f172a4d;
}
.text-slate-900\/40 {
  color: #0f172a66;
}
.text-slate-900\/5 {
  color: #0f172a0d;
}
.text-slate-900\/50 {
  color: #0f172a80;
}
.text-slate-900\/60 {
  color: #0f172a99;
}
.text-slate-900\/70 {
  color: #0f172ab3;
}
.text-slate-900\/75 {
  color: #0f172abf;
}
.text-slate-900\/80 {
  color: #0f172acc;
}
.text-slate-900\/90 {
  color: #0f172ae6;
}
.text-slate-900\/95 {
  color: #0f172af2;
}
.text-slate-950 {
  --tw-text-opacity: 1;
  color: rgb(2 6 23 / var(--tw-text-opacity));
}
.text-slate-950\/0 {
  color: #02061700;
}
.text-slate-950\/10 {
  color: #0206171a;
}
.text-slate-950\/100 {
  color: #020617;
}
.text-slate-950\/20 {
  color: #02061733;
}
.text-slate-950\/25 {
  color: #02061740;
}
.text-slate-950\/30 {
  color: #0206174d;
}
.text-slate-950\/40 {
  color: #02061766;
}
.text-slate-950\/5 {
  color: #0206170d;
}
.text-slate-950\/50 {
  color: #02061780;
}
.text-slate-950\/60 {
  color: #02061799;
}
.text-slate-950\/70 {
  color: #020617b3;
}
.text-slate-950\/75 {
  color: #020617bf;
}
.text-slate-950\/80 {
  color: #020617cc;
}
.text-slate-950\/90 {
  color: #020617e6;
}
.text-slate-950\/95 {
  color: #020617f2;
}
.text-stone-100 {
  --tw-text-opacity: 1;
  color: rgb(245 245 244 / var(--tw-text-opacity));
}
.text-stone-100\/0 {
  color: #f5f5f400;
}
.text-stone-100\/10 {
  color: #f5f5f41a;
}
.text-stone-100\/100 {
  color: #f5f5f4;
}
.text-stone-100\/20 {
  color: #f5f5f433;
}
.text-stone-100\/25 {
  color: #f5f5f440;
}
.text-stone-100\/30 {
  color: #f5f5f44d;
}
.text-stone-100\/40 {
  color: #f5f5f466;
}
.text-stone-100\/5 {
  color: #f5f5f40d;
}
.text-stone-100\/50 {
  color: #f5f5f480;
}
.text-stone-100\/60 {
  color: #f5f5f499;
}
.text-stone-100\/70 {
  color: #f5f5f4b3;
}
.text-stone-100\/75 {
  color: #f5f5f4bf;
}
.text-stone-100\/80 {
  color: #f5f5f4cc;
}
.text-stone-100\/90 {
  color: #f5f5f4e6;
}
.text-stone-100\/95 {
  color: #f5f5f4f2;
}
.text-stone-200 {
  --tw-text-opacity: 1;
  color: rgb(231 229 228 / var(--tw-text-opacity));
}
.text-stone-200\/0 {
  color: #e7e5e400;
}
.text-stone-200\/10 {
  color: #e7e5e41a;
}
.text-stone-200\/100 {
  color: #e7e5e4;
}
.text-stone-200\/20 {
  color: #e7e5e433;
}
.text-stone-200\/25 {
  color: #e7e5e440;
}
.text-stone-200\/30 {
  color: #e7e5e44d;
}
.text-stone-200\/40 {
  color: #e7e5e466;
}
.text-stone-200\/5 {
  color: #e7e5e40d;
}
.text-stone-200\/50 {
  color: #e7e5e480;
}
.text-stone-200\/60 {
  color: #e7e5e499;
}
.text-stone-200\/70 {
  color: #e7e5e4b3;
}
.text-stone-200\/75 {
  color: #e7e5e4bf;
}
.text-stone-200\/80 {
  color: #e7e5e4cc;
}
.text-stone-200\/90 {
  color: #e7e5e4e6;
}
.text-stone-200\/95 {
  color: #e7e5e4f2;
}
.text-stone-300 {
  --tw-text-opacity: 1;
  color: rgb(214 211 209 / var(--tw-text-opacity));
}
.text-stone-300\/0 {
  color: #d6d3d100;
}
.text-stone-300\/10 {
  color: #d6d3d11a;
}
.text-stone-300\/100 {
  color: #d6d3d1;
}
.text-stone-300\/20 {
  color: #d6d3d133;
}
.text-stone-300\/25 {
  color: #d6d3d140;
}
.text-stone-300\/30 {
  color: #d6d3d14d;
}
.text-stone-300\/40 {
  color: #d6d3d166;
}
.text-stone-300\/5 {
  color: #d6d3d10d;
}
.text-stone-300\/50 {
  color: #d6d3d180;
}
.text-stone-300\/60 {
  color: #d6d3d199;
}
.text-stone-300\/70 {
  color: #d6d3d1b3;
}
.text-stone-300\/75 {
  color: #d6d3d1bf;
}
.text-stone-300\/80 {
  color: #d6d3d1cc;
}
.text-stone-300\/90 {
  color: #d6d3d1e6;
}
.text-stone-300\/95 {
  color: #d6d3d1f2;
}
.text-stone-400 {
  --tw-text-opacity: 1;
  color: rgb(168 162 158 / var(--tw-text-opacity));
}
.text-stone-400\/0 {
  color: #a8a29e00;
}
.text-stone-400\/10 {
  color: #a8a29e1a;
}
.text-stone-400\/100 {
  color: #a8a29e;
}
.text-stone-400\/20 {
  color: #a8a29e33;
}
.text-stone-400\/25 {
  color: #a8a29e40;
}
.text-stone-400\/30 {
  color: #a8a29e4d;
}
.text-stone-400\/40 {
  color: #a8a29e66;
}
.text-stone-400\/5 {
  color: #a8a29e0d;
}
.text-stone-400\/50 {
  color: #a8a29e80;
}
.text-stone-400\/60 {
  color: #a8a29e99;
}
.text-stone-400\/70 {
  color: #a8a29eb3;
}
.text-stone-400\/75 {
  color: #a8a29ebf;
}
.text-stone-400\/80 {
  color: #a8a29ecc;
}
.text-stone-400\/90 {
  color: #a8a29ee6;
}
.text-stone-400\/95 {
  color: #a8a29ef2;
}
.text-stone-50 {
  --tw-text-opacity: 1;
  color: rgb(250 250 249 / var(--tw-text-opacity));
}
.text-stone-50\/0 {
  color: #fafaf900;
}
.text-stone-50\/10 {
  color: #fafaf91a;
}
.text-stone-50\/100 {
  color: #fafaf9;
}
.text-stone-50\/20 {
  color: #fafaf933;
}
.text-stone-50\/25 {
  color: #fafaf940;
}
.text-stone-50\/30 {
  color: #fafaf94d;
}
.text-stone-50\/40 {
  color: #fafaf966;
}
.text-stone-50\/5 {
  color: #fafaf90d;
}
.text-stone-50\/50 {
  color: #fafaf980;
}
.text-stone-50\/60 {
  color: #fafaf999;
}
.text-stone-50\/70 {
  color: #fafaf9b3;
}
.text-stone-50\/75 {
  color: #fafaf9bf;
}
.text-stone-50\/80 {
  color: #fafaf9cc;
}
.text-stone-50\/90 {
  color: #fafaf9e6;
}
.text-stone-50\/95 {
  color: #fafaf9f2;
}
.text-stone-500 {
  --tw-text-opacity: 1;
  color: rgb(120 113 108 / var(--tw-text-opacity));
}
.text-stone-500\/0 {
  color: #78716c00;
}
.text-stone-500\/10 {
  color: #78716c1a;
}
.text-stone-500\/100 {
  color: #78716c;
}
.text-stone-500\/20 {
  color: #78716c33;
}
.text-stone-500\/25 {
  color: #78716c40;
}
.text-stone-500\/30 {
  color: #78716c4d;
}
.text-stone-500\/40 {
  color: #78716c66;
}
.text-stone-500\/5 {
  color: #78716c0d;
}
.text-stone-500\/50 {
  color: #78716c80;
}
.text-stone-500\/60 {
  color: #78716c99;
}
.text-stone-500\/70 {
  color: #78716cb3;
}
.text-stone-500\/75 {
  color: #78716cbf;
}
.text-stone-500\/80 {
  color: #78716ccc;
}
.text-stone-500\/90 {
  color: #78716ce6;
}
.text-stone-500\/95 {
  color: #78716cf2;
}
.text-stone-600 {
  --tw-text-opacity: 1;
  color: rgb(87 83 78 / var(--tw-text-opacity));
}
.text-stone-600\/0 {
  color: #57534e00;
}
.text-stone-600\/10 {
  color: #57534e1a;
}
.text-stone-600\/100 {
  color: #57534e;
}
.text-stone-600\/20 {
  color: #57534e33;
}
.text-stone-600\/25 {
  color: #57534e40;
}
.text-stone-600\/30 {
  color: #57534e4d;
}
.text-stone-600\/40 {
  color: #57534e66;
}
.text-stone-600\/5 {
  color: #57534e0d;
}
.text-stone-600\/50 {
  color: #57534e80;
}
.text-stone-600\/60 {
  color: #57534e99;
}
.text-stone-600\/70 {
  color: #57534eb3;
}
.text-stone-600\/75 {
  color: #57534ebf;
}
.text-stone-600\/80 {
  color: #57534ecc;
}
.text-stone-600\/90 {
  color: #57534ee6;
}
.text-stone-600\/95 {
  color: #57534ef2;
}
.text-stone-700 {
  --tw-text-opacity: 1;
  color: rgb(68 64 60 / var(--tw-text-opacity));
}
.text-stone-700\/0 {
  color: #44403c00;
}
.text-stone-700\/10 {
  color: #44403c1a;
}
.text-stone-700\/100 {
  color: #44403c;
}
.text-stone-700\/20 {
  color: #44403c33;
}
.text-stone-700\/25 {
  color: #44403c40;
}
.text-stone-700\/30 {
  color: #44403c4d;
}
.text-stone-700\/40 {
  color: #44403c66;
}
.text-stone-700\/5 {
  color: #44403c0d;
}
.text-stone-700\/50 {
  color: #44403c80;
}
.text-stone-700\/60 {
  color: #44403c99;
}
.text-stone-700\/70 {
  color: #44403cb3;
}
.text-stone-700\/75 {
  color: #44403cbf;
}
.text-stone-700\/80 {
  color: #44403ccc;
}
.text-stone-700\/90 {
  color: #44403ce6;
}
.text-stone-700\/95 {
  color: #44403cf2;
}
.text-stone-800 {
  --tw-text-opacity: 1;
  color: rgb(41 37 36 / var(--tw-text-opacity));
}
.text-stone-800\/0 {
  color: #29252400;
}
.text-stone-800\/10 {
  color: #2925241a;
}
.text-stone-800\/100 {
  color: #292524;
}
.text-stone-800\/20 {
  color: #29252433;
}
.text-stone-800\/25 {
  color: #29252440;
}
.text-stone-800\/30 {
  color: #2925244d;
}
.text-stone-800\/40 {
  color: #29252466;
}
.text-stone-800\/5 {
  color: #2925240d;
}
.text-stone-800\/50 {
  color: #29252480;
}
.text-stone-800\/60 {
  color: #29252499;
}
.text-stone-800\/70 {
  color: #292524b3;
}
.text-stone-800\/75 {
  color: #292524bf;
}
.text-stone-800\/80 {
  color: #292524cc;
}
.text-stone-800\/90 {
  color: #292524e6;
}
.text-stone-800\/95 {
  color: #292524f2;
}
.text-stone-900 {
  --tw-text-opacity: 1;
  color: rgb(28 25 23 / var(--tw-text-opacity));
}
.text-stone-900\/0 {
  color: #1c191700;
}
.text-stone-900\/10 {
  color: #1c19171a;
}
.text-stone-900\/100 {
  color: #1c1917;
}
.text-stone-900\/20 {
  color: #1c191733;
}
.text-stone-900\/25 {
  color: #1c191740;
}
.text-stone-900\/30 {
  color: #1c19174d;
}
.text-stone-900\/40 {
  color: #1c191766;
}
.text-stone-900\/5 {
  color: #1c19170d;
}
.text-stone-900\/50 {
  color: #1c191780;
}
.text-stone-900\/60 {
  color: #1c191799;
}
.text-stone-900\/70 {
  color: #1c1917b3;
}
.text-stone-900\/75 {
  color: #1c1917bf;
}
.text-stone-900\/80 {
  color: #1c1917cc;
}
.text-stone-900\/90 {
  color: #1c1917e6;
}
.text-stone-900\/95 {
  color: #1c1917f2;
}
.text-stone-950 {
  --tw-text-opacity: 1;
  color: rgb(12 10 9 / var(--tw-text-opacity));
}
.text-stone-950\/0 {
  color: #0c0a0900;
}
.text-stone-950\/10 {
  color: #0c0a091a;
}
.text-stone-950\/100 {
  color: #0c0a09;
}
.text-stone-950\/20 {
  color: #0c0a0933;
}
.text-stone-950\/25 {
  color: #0c0a0940;
}
.text-stone-950\/30 {
  color: #0c0a094d;
}
.text-stone-950\/40 {
  color: #0c0a0966;
}
.text-stone-950\/5 {
  color: #0c0a090d;
}
.text-stone-950\/50 {
  color: #0c0a0980;
}
.text-stone-950\/60 {
  color: #0c0a0999;
}
.text-stone-950\/70 {
  color: #0c0a09b3;
}
.text-stone-950\/75 {
  color: #0c0a09bf;
}
.text-stone-950\/80 {
  color: #0c0a09cc;
}
.text-stone-950\/90 {
  color: #0c0a09e6;
}
.text-stone-950\/95 {
  color: #0c0a09f2;
}
.text-teal-100 {
  --tw-text-opacity: 1;
  color: rgb(204 251 241 / var(--tw-text-opacity));
}
.text-teal-100\/0 {
  color: #ccfbf100;
}
.text-teal-100\/10 {
  color: #ccfbf11a;
}
.text-teal-100\/100 {
  color: #ccfbf1;
}
.text-teal-100\/20 {
  color: #ccfbf133;
}
.text-teal-100\/25 {
  color: #ccfbf140;
}
.text-teal-100\/30 {
  color: #ccfbf14d;
}
.text-teal-100\/40 {
  color: #ccfbf166;
}
.text-teal-100\/5 {
  color: #ccfbf10d;
}
.text-teal-100\/50 {
  color: #ccfbf180;
}
.text-teal-100\/60 {
  color: #ccfbf199;
}
.text-teal-100\/70 {
  color: #ccfbf1b3;
}
.text-teal-100\/75 {
  color: #ccfbf1bf;
}
.text-teal-100\/80 {
  color: #ccfbf1cc;
}
.text-teal-100\/90 {
  color: #ccfbf1e6;
}
.text-teal-100\/95 {
  color: #ccfbf1f2;
}
.text-teal-200 {
  --tw-text-opacity: 1;
  color: rgb(153 246 228 / var(--tw-text-opacity));
}
.text-teal-200\/0 {
  color: #99f6e400;
}
.text-teal-200\/10 {
  color: #99f6e41a;
}
.text-teal-200\/100 {
  color: #99f6e4;
}
.text-teal-200\/20 {
  color: #99f6e433;
}
.text-teal-200\/25 {
  color: #99f6e440;
}
.text-teal-200\/30 {
  color: #99f6e44d;
}
.text-teal-200\/40 {
  color: #99f6e466;
}
.text-teal-200\/5 {
  color: #99f6e40d;
}
.text-teal-200\/50 {
  color: #99f6e480;
}
.text-teal-200\/60 {
  color: #99f6e499;
}
.text-teal-200\/70 {
  color: #99f6e4b3;
}
.text-teal-200\/75 {
  color: #99f6e4bf;
}
.text-teal-200\/80 {
  color: #99f6e4cc;
}
.text-teal-200\/90 {
  color: #99f6e4e6;
}
.text-teal-200\/95 {
  color: #99f6e4f2;
}
.text-teal-300 {
  --tw-text-opacity: 1;
  color: rgb(94 234 212 / var(--tw-text-opacity));
}
.text-teal-300\/0 {
  color: #5eead400;
}
.text-teal-300\/10 {
  color: #5eead41a;
}
.text-teal-300\/100 {
  color: #5eead4;
}
.text-teal-300\/20 {
  color: #5eead433;
}
.text-teal-300\/25 {
  color: #5eead440;
}
.text-teal-300\/30 {
  color: #5eead44d;
}
.text-teal-300\/40 {
  color: #5eead466;
}
.text-teal-300\/5 {
  color: #5eead40d;
}
.text-teal-300\/50 {
  color: #5eead480;
}
.text-teal-300\/60 {
  color: #5eead499;
}
.text-teal-300\/70 {
  color: #5eead4b3;
}
.text-teal-300\/75 {
  color: #5eead4bf;
}
.text-teal-300\/80 {
  color: #5eead4cc;
}
.text-teal-300\/90 {
  color: #5eead4e6;
}
.text-teal-300\/95 {
  color: #5eead4f2;
}
.text-teal-400 {
  --tw-text-opacity: 1;
  color: rgb(45 212 191 / var(--tw-text-opacity));
}
.text-teal-400\/0 {
  color: #2dd4bf00;
}
.text-teal-400\/10 {
  color: #2dd4bf1a;
}
.text-teal-400\/100 {
  color: #2dd4bf;
}
.text-teal-400\/20 {
  color: #2dd4bf33;
}
.text-teal-400\/25 {
  color: #2dd4bf40;
}
.text-teal-400\/30 {
  color: #2dd4bf4d;
}
.text-teal-400\/40 {
  color: #2dd4bf66;
}
.text-teal-400\/5 {
  color: #2dd4bf0d;
}
.text-teal-400\/50 {
  color: #2dd4bf80;
}
.text-teal-400\/60 {
  color: #2dd4bf99;
}
.text-teal-400\/70 {
  color: #2dd4bfb3;
}
.text-teal-400\/75 {
  color: #2dd4bfbf;
}
.text-teal-400\/80 {
  color: #2dd4bfcc;
}
.text-teal-400\/90 {
  color: #2dd4bfe6;
}
.text-teal-400\/95 {
  color: #2dd4bff2;
}
.text-teal-50 {
  --tw-text-opacity: 1;
  color: rgb(240 253 250 / var(--tw-text-opacity));
}
.text-teal-50\/0 {
  color: #f0fdfa00;
}
.text-teal-50\/10 {
  color: #f0fdfa1a;
}
.text-teal-50\/100 {
  color: #f0fdfa;
}
.text-teal-50\/20 {
  color: #f0fdfa33;
}
.text-teal-50\/25 {
  color: #f0fdfa40;
}
.text-teal-50\/30 {
  color: #f0fdfa4d;
}
.text-teal-50\/40 {
  color: #f0fdfa66;
}
.text-teal-50\/5 {
  color: #f0fdfa0d;
}
.text-teal-50\/50 {
  color: #f0fdfa80;
}
.text-teal-50\/60 {
  color: #f0fdfa99;
}
.text-teal-50\/70 {
  color: #f0fdfab3;
}
.text-teal-50\/75 {
  color: #f0fdfabf;
}
.text-teal-50\/80 {
  color: #f0fdfacc;
}
.text-teal-50\/90 {
  color: #f0fdfae6;
}
.text-teal-50\/95 {
  color: #f0fdfaf2;
}
.text-teal-500 {
  --tw-text-opacity: 1;
  color: rgb(20 184 166 / var(--tw-text-opacity));
}
.text-teal-500\/0 {
  color: #14b8a600;
}
.text-teal-500\/10 {
  color: #14b8a61a;
}
.text-teal-500\/100 {
  color: #14b8a6;
}
.text-teal-500\/20 {
  color: #14b8a633;
}
.text-teal-500\/25 {
  color: #14b8a640;
}
.text-teal-500\/30 {
  color: #14b8a64d;
}
.text-teal-500\/40 {
  color: #14b8a666;
}
.text-teal-500\/5 {
  color: #14b8a60d;
}
.text-teal-500\/50 {
  color: #14b8a680;
}
.text-teal-500\/60 {
  color: #14b8a699;
}
.text-teal-500\/70 {
  color: #14b8a6b3;
}
.text-teal-500\/75 {
  color: #14b8a6bf;
}
.text-teal-500\/80 {
  color: #14b8a6cc;
}
.text-teal-500\/90 {
  color: #14b8a6e6;
}
.text-teal-500\/95 {
  color: #14b8a6f2;
}
.text-teal-600 {
  --tw-text-opacity: 1;
  color: rgb(13 148 136 / var(--tw-text-opacity));
}
.text-teal-600\/0 {
  color: #0d948800;
}
.text-teal-600\/10 {
  color: #0d94881a;
}
.text-teal-600\/100 {
  color: #0d9488;
}
.text-teal-600\/20 {
  color: #0d948833;
}
.text-teal-600\/25 {
  color: #0d948840;
}
.text-teal-600\/30 {
  color: #0d94884d;
}
.text-teal-600\/40 {
  color: #0d948866;
}
.text-teal-600\/5 {
  color: #0d94880d;
}
.text-teal-600\/50 {
  color: #0d948880;
}
.text-teal-600\/60 {
  color: #0d948899;
}
.text-teal-600\/70 {
  color: #0d9488b3;
}
.text-teal-600\/75 {
  color: #0d9488bf;
}
.text-teal-600\/80 {
  color: #0d9488cc;
}
.text-teal-600\/90 {
  color: #0d9488e6;
}
.text-teal-600\/95 {
  color: #0d9488f2;
}
.text-teal-700 {
  --tw-text-opacity: 1;
  color: rgb(15 118 110 / var(--tw-text-opacity));
}
.text-teal-700\/0 {
  color: #0f766e00;
}
.text-teal-700\/10 {
  color: #0f766e1a;
}
.text-teal-700\/100 {
  color: #0f766e;
}
.text-teal-700\/20 {
  color: #0f766e33;
}
.text-teal-700\/25 {
  color: #0f766e40;
}
.text-teal-700\/30 {
  color: #0f766e4d;
}
.text-teal-700\/40 {
  color: #0f766e66;
}
.text-teal-700\/5 {
  color: #0f766e0d;
}
.text-teal-700\/50 {
  color: #0f766e80;
}
.text-teal-700\/60 {
  color: #0f766e99;
}
.text-teal-700\/70 {
  color: #0f766eb3;
}
.text-teal-700\/75 {
  color: #0f766ebf;
}
.text-teal-700\/80 {
  color: #0f766ecc;
}
.text-teal-700\/90 {
  color: #0f766ee6;
}
.text-teal-700\/95 {
  color: #0f766ef2;
}
.text-teal-800 {
  --tw-text-opacity: 1;
  color: rgb(17 94 89 / var(--tw-text-opacity));
}
.text-teal-800\/0 {
  color: #115e5900;
}
.text-teal-800\/10 {
  color: #115e591a;
}
.text-teal-800\/100 {
  color: #115e59;
}
.text-teal-800\/20 {
  color: #115e5933;
}
.text-teal-800\/25 {
  color: #115e5940;
}
.text-teal-800\/30 {
  color: #115e594d;
}
.text-teal-800\/40 {
  color: #115e5966;
}
.text-teal-800\/5 {
  color: #115e590d;
}
.text-teal-800\/50 {
  color: #115e5980;
}
.text-teal-800\/60 {
  color: #115e5999;
}
.text-teal-800\/70 {
  color: #115e59b3;
}
.text-teal-800\/75 {
  color: #115e59bf;
}
.text-teal-800\/80 {
  color: #115e59cc;
}
.text-teal-800\/90 {
  color: #115e59e6;
}
.text-teal-800\/95 {
  color: #115e59f2;
}
.text-teal-900 {
  --tw-text-opacity: 1;
  color: rgb(19 78 74 / var(--tw-text-opacity));
}
.text-teal-900\/0 {
  color: #134e4a00;
}
.text-teal-900\/10 {
  color: #134e4a1a;
}
.text-teal-900\/100 {
  color: #134e4a;
}
.text-teal-900\/20 {
  color: #134e4a33;
}
.text-teal-900\/25 {
  color: #134e4a40;
}
.text-teal-900\/30 {
  color: #134e4a4d;
}
.text-teal-900\/40 {
  color: #134e4a66;
}
.text-teal-900\/5 {
  color: #134e4a0d;
}
.text-teal-900\/50 {
  color: #134e4a80;
}
.text-teal-900\/60 {
  color: #134e4a99;
}
.text-teal-900\/70 {
  color: #134e4ab3;
}
.text-teal-900\/75 {
  color: #134e4abf;
}
.text-teal-900\/80 {
  color: #134e4acc;
}
.text-teal-900\/90 {
  color: #134e4ae6;
}
.text-teal-900\/95 {
  color: #134e4af2;
}
.text-teal-950 {
  --tw-text-opacity: 1;
  color: rgb(4 47 46 / var(--tw-text-opacity));
}
.text-teal-950\/0 {
  color: #042f2e00;
}
.text-teal-950\/10 {
  color: #042f2e1a;
}
.text-teal-950\/100 {
  color: #042f2e;
}
.text-teal-950\/20 {
  color: #042f2e33;
}
.text-teal-950\/25 {
  color: #042f2e40;
}
.text-teal-950\/30 {
  color: #042f2e4d;
}
.text-teal-950\/40 {
  color: #042f2e66;
}
.text-teal-950\/5 {
  color: #042f2e0d;
}
.text-teal-950\/50 {
  color: #042f2e80;
}
.text-teal-950\/60 {
  color: #042f2e99;
}
.text-teal-950\/70 {
  color: #042f2eb3;
}
.text-teal-950\/75 {
  color: #042f2ebf;
}
.text-teal-950\/80 {
  color: #042f2ecc;
}
.text-teal-950\/90 {
  color: #042f2ee6;
}
.text-teal-950\/95 {
  color: #042f2ef2;
}
.text-transparent,
.text-transparent\/0 {
  color: #0000;
}
.text-transparent\/10 {
  color: #0000001a;
}
.text-transparent\/100 {
  color: #000;
}
.text-transparent\/20 {
  color: #0003;
}
.text-transparent\/25 {
  color: #00000040;
}
.text-transparent\/30 {
  color: #0000004d;
}
.text-transparent\/40 {
  color: #0006;
}
.text-transparent\/5 {
  color: #0000000d;
}
.text-transparent\/50 {
  color: #00000080;
}
.text-transparent\/60 {
  color: #0009;
}
.text-transparent\/70 {
  color: #000000b3;
}
.text-transparent\/75 {
  color: #000000bf;
}
.text-transparent\/80 {
  color: #000c;
}
.text-transparent\/90 {
  color: #000000e6;
}
.text-transparent\/95 {
  color: #000000f2;
}
.text-violet-100 {
  --tw-text-opacity: 1;
  color: rgb(237 233 254 / var(--tw-text-opacity));
}
.text-violet-100\/0 {
  color: #ede9fe00;
}
.text-violet-100\/10 {
  color: #ede9fe1a;
}
.text-violet-100\/100 {
  color: #ede9fe;
}
.text-violet-100\/20 {
  color: #ede9fe33;
}
.text-violet-100\/25 {
  color: #ede9fe40;
}
.text-violet-100\/30 {
  color: #ede9fe4d;
}
.text-violet-100\/40 {
  color: #ede9fe66;
}
.text-violet-100\/5 {
  color: #ede9fe0d;
}
.text-violet-100\/50 {
  color: #ede9fe80;
}
.text-violet-100\/60 {
  color: #ede9fe99;
}
.text-violet-100\/70 {
  color: #ede9feb3;
}
.text-violet-100\/75 {
  color: #ede9febf;
}
.text-violet-100\/80 {
  color: #ede9fecc;
}
.text-violet-100\/90 {
  color: #ede9fee6;
}
.text-violet-100\/95 {
  color: #ede9fef2;
}
.text-violet-200 {
  --tw-text-opacity: 1;
  color: rgb(221 214 254 / var(--tw-text-opacity));
}
.text-violet-200\/0 {
  color: #ddd6fe00;
}
.text-violet-200\/10 {
  color: #ddd6fe1a;
}
.text-violet-200\/100 {
  color: #ddd6fe;
}
.text-violet-200\/20 {
  color: #ddd6fe33;
}
.text-violet-200\/25 {
  color: #ddd6fe40;
}
.text-violet-200\/30 {
  color: #ddd6fe4d;
}
.text-violet-200\/40 {
  color: #ddd6fe66;
}
.text-violet-200\/5 {
  color: #ddd6fe0d;
}
.text-violet-200\/50 {
  color: #ddd6fe80;
}
.text-violet-200\/60 {
  color: #ddd6fe99;
}
.text-violet-200\/70 {
  color: #ddd6feb3;
}
.text-violet-200\/75 {
  color: #ddd6febf;
}
.text-violet-200\/80 {
  color: #ddd6fecc;
}
.text-violet-200\/90 {
  color: #ddd6fee6;
}
.text-violet-200\/95 {
  color: #ddd6fef2;
}
.text-violet-300 {
  --tw-text-opacity: 1;
  color: rgb(196 181 253 / var(--tw-text-opacity));
}
.text-violet-300\/0 {
  color: #c4b5fd00;
}
.text-violet-300\/10 {
  color: #c4b5fd1a;
}
.text-violet-300\/100 {
  color: #c4b5fd;
}
.text-violet-300\/20 {
  color: #c4b5fd33;
}
.text-violet-300\/25 {
  color: #c4b5fd40;
}
.text-violet-300\/30 {
  color: #c4b5fd4d;
}
.text-violet-300\/40 {
  color: #c4b5fd66;
}
.text-violet-300\/5 {
  color: #c4b5fd0d;
}
.text-violet-300\/50 {
  color: #c4b5fd80;
}
.text-violet-300\/60 {
  color: #c4b5fd99;
}
.text-violet-300\/70 {
  color: #c4b5fdb3;
}
.text-violet-300\/75 {
  color: #c4b5fdbf;
}
.text-violet-300\/80 {
  color: #c4b5fdcc;
}
.text-violet-300\/90 {
  color: #c4b5fde6;
}
.text-violet-300\/95 {
  color: #c4b5fdf2;
}
.text-violet-400 {
  --tw-text-opacity: 1;
  color: rgb(167 139 250 / var(--tw-text-opacity));
}
.text-violet-400\/0 {
  color: #a78bfa00;
}
.text-violet-400\/10 {
  color: #a78bfa1a;
}
.text-violet-400\/100 {
  color: #a78bfa;
}
.text-violet-400\/20 {
  color: #a78bfa33;
}
.text-violet-400\/25 {
  color: #a78bfa40;
}
.text-violet-400\/30 {
  color: #a78bfa4d;
}
.text-violet-400\/40 {
  color: #a78bfa66;
}
.text-violet-400\/5 {
  color: #a78bfa0d;
}
.text-violet-400\/50 {
  color: #a78bfa80;
}
.text-violet-400\/60 {
  color: #a78bfa99;
}
.text-violet-400\/70 {
  color: #a78bfab3;
}
.text-violet-400\/75 {
  color: #a78bfabf;
}
.text-violet-400\/80 {
  color: #a78bfacc;
}
.text-violet-400\/90 {
  color: #a78bfae6;
}
.text-violet-400\/95 {
  color: #a78bfaf2;
}
.text-violet-50 {
  --tw-text-opacity: 1;
  color: rgb(245 243 255 / var(--tw-text-opacity));
}
.text-violet-50\/0 {
  color: #f5f3ff00;
}
.text-violet-50\/10 {
  color: #f5f3ff1a;
}
.text-violet-50\/100 {
  color: #f5f3ff;
}
.text-violet-50\/20 {
  color: #f5f3ff33;
}
.text-violet-50\/25 {
  color: #f5f3ff40;
}
.text-violet-50\/30 {
  color: #f5f3ff4d;
}
.text-violet-50\/40 {
  color: #f5f3ff66;
}
.text-violet-50\/5 {
  color: #f5f3ff0d;
}
.text-violet-50\/50 {
  color: #f5f3ff80;
}
.text-violet-50\/60 {
  color: #f5f3ff99;
}
.text-violet-50\/70 {
  color: #f5f3ffb3;
}
.text-violet-50\/75 {
  color: #f5f3ffbf;
}
.text-violet-50\/80 {
  color: #f5f3ffcc;
}
.text-violet-50\/90 {
  color: #f5f3ffe6;
}
.text-violet-50\/95 {
  color: #f5f3fff2;
}
.text-violet-500 {
  --tw-text-opacity: 1;
  color: rgb(139 92 246 / var(--tw-text-opacity));
}
.text-violet-500\/0 {
  color: #8b5cf600;
}
.text-violet-500\/10 {
  color: #8b5cf61a;
}
.text-violet-500\/100 {
  color: #8b5cf6;
}
.text-violet-500\/20 {
  color: #8b5cf633;
}
.text-violet-500\/25 {
  color: #8b5cf640;
}
.text-violet-500\/30 {
  color: #8b5cf64d;
}
.text-violet-500\/40 {
  color: #8b5cf666;
}
.text-violet-500\/5 {
  color: #8b5cf60d;
}
.text-violet-500\/50 {
  color: #8b5cf680;
}
.text-violet-500\/60 {
  color: #8b5cf699;
}
.text-violet-500\/70 {
  color: #8b5cf6b3;
}
.text-violet-500\/75 {
  color: #8b5cf6bf;
}
.text-violet-500\/80 {
  color: #8b5cf6cc;
}
.text-violet-500\/90 {
  color: #8b5cf6e6;
}
.text-violet-500\/95 {
  color: #8b5cf6f2;
}
.text-violet-600 {
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / var(--tw-text-opacity));
}
.text-violet-600\/0 {
  color: #7c3aed00;
}
.text-violet-600\/10 {
  color: #7c3aed1a;
}
.text-violet-600\/100 {
  color: #7c3aed;
}
.text-violet-600\/20 {
  color: #7c3aed33;
}
.text-violet-600\/25 {
  color: #7c3aed40;
}
.text-violet-600\/30 {
  color: #7c3aed4d;
}
.text-violet-600\/40 {
  color: #7c3aed66;
}
.text-violet-600\/5 {
  color: #7c3aed0d;
}
.text-violet-600\/50 {
  color: #7c3aed80;
}
.text-violet-600\/60 {
  color: #7c3aed99;
}
.text-violet-600\/70 {
  color: #7c3aedb3;
}
.text-violet-600\/75 {
  color: #7c3aedbf;
}
.text-violet-600\/80 {
  color: #7c3aedcc;
}
.text-violet-600\/90 {
  color: #7c3aede6;
}
.text-violet-600\/95 {
  color: #7c3aedf2;
}
.text-violet-700 {
  --tw-text-opacity: 1;
  color: rgb(109 40 217 / var(--tw-text-opacity));
}
.text-violet-700\/0 {
  color: #6d28d900;
}
.text-violet-700\/10 {
  color: #6d28d91a;
}
.text-violet-700\/100 {
  color: #6d28d9;
}
.text-violet-700\/20 {
  color: #6d28d933;
}
.text-violet-700\/25 {
  color: #6d28d940;
}
.text-violet-700\/30 {
  color: #6d28d94d;
}
.text-violet-700\/40 {
  color: #6d28d966;
}
.text-violet-700\/5 {
  color: #6d28d90d;
}
.text-violet-700\/50 {
  color: #6d28d980;
}
.text-violet-700\/60 {
  color: #6d28d999;
}
.text-violet-700\/70 {
  color: #6d28d9b3;
}
.text-violet-700\/75 {
  color: #6d28d9bf;
}
.text-violet-700\/80 {
  color: #6d28d9cc;
}
.text-violet-700\/90 {
  color: #6d28d9e6;
}
.text-violet-700\/95 {
  color: #6d28d9f2;
}
.text-violet-800 {
  --tw-text-opacity: 1;
  color: rgb(91 33 182 / var(--tw-text-opacity));
}
.text-violet-800\/0 {
  color: #5b21b600;
}
.text-violet-800\/10 {
  color: #5b21b61a;
}
.text-violet-800\/100 {
  color: #5b21b6;
}
.text-violet-800\/20 {
  color: #5b21b633;
}
.text-violet-800\/25 {
  color: #5b21b640;
}
.text-violet-800\/30 {
  color: #5b21b64d;
}
.text-violet-800\/40 {
  color: #5b21b666;
}
.text-violet-800\/5 {
  color: #5b21b60d;
}
.text-violet-800\/50 {
  color: #5b21b680;
}
.text-violet-800\/60 {
  color: #5b21b699;
}
.text-violet-800\/70 {
  color: #5b21b6b3;
}
.text-violet-800\/75 {
  color: #5b21b6bf;
}
.text-violet-800\/80 {
  color: #5b21b6cc;
}
.text-violet-800\/90 {
  color: #5b21b6e6;
}
.text-violet-800\/95 {
  color: #5b21b6f2;
}
.text-violet-900 {
  --tw-text-opacity: 1;
  color: rgb(76 29 149 / var(--tw-text-opacity));
}
.text-violet-900\/0 {
  color: #4c1d9500;
}
.text-violet-900\/10 {
  color: #4c1d951a;
}
.text-violet-900\/100 {
  color: #4c1d95;
}
.text-violet-900\/20 {
  color: #4c1d9533;
}
.text-violet-900\/25 {
  color: #4c1d9540;
}
.text-violet-900\/30 {
  color: #4c1d954d;
}
.text-violet-900\/40 {
  color: #4c1d9566;
}
.text-violet-900\/5 {
  color: #4c1d950d;
}
.text-violet-900\/50 {
  color: #4c1d9580;
}
.text-violet-900\/60 {
  color: #4c1d9599;
}
.text-violet-900\/70 {
  color: #4c1d95b3;
}
.text-violet-900\/75 {
  color: #4c1d95bf;
}
.text-violet-900\/80 {
  color: #4c1d95cc;
}
.text-violet-900\/90 {
  color: #4c1d95e6;
}
.text-violet-900\/95 {
  color: #4c1d95f2;
}
.text-violet-950 {
  --tw-text-opacity: 1;
  color: rgb(46 16 101 / var(--tw-text-opacity));
}
.text-violet-950\/0 {
  color: #2e106500;
}
.text-violet-950\/10 {
  color: #2e10651a;
}
.text-violet-950\/100 {
  color: #2e1065;
}
.text-violet-950\/20 {
  color: #2e106533;
}
.text-violet-950\/25 {
  color: #2e106540;
}
.text-violet-950\/30 {
  color: #2e10654d;
}
.text-violet-950\/40 {
  color: #2e106566;
}
.text-violet-950\/5 {
  color: #2e10650d;
}
.text-violet-950\/50 {
  color: #2e106580;
}
.text-violet-950\/60 {
  color: #2e106599;
}
.text-violet-950\/70 {
  color: #2e1065b3;
}
.text-violet-950\/75 {
  color: #2e1065bf;
}
.text-violet-950\/80 {
  color: #2e1065cc;
}
.text-violet-950\/90 {
  color: #2e1065e6;
}
.text-violet-950\/95 {
  color: #2e1065f2;
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}
.text-white\/0 {
  color: #fff0;
}
.text-white\/10 {
  color: #ffffff1a;
}
.text-white\/100 {
  color: #fff;
}
.text-white\/20 {
  color: #fff3;
}
.text-white\/25 {
  color: #ffffff40;
}
.text-white\/30 {
  color: #ffffff4d;
}
.text-white\/40 {
  color: #fff6;
}
.text-white\/5 {
  color: #ffffff0d;
}
.text-white\/50 {
  color: #ffffff80;
}
.text-white\/60 {
  color: #fff9;
}
.text-white\/70 {
  color: #ffffffb3;
}
.text-white\/75 {
  color: #ffffffbf;
}
.text-white\/80 {
  color: #fffc;
}
.text-white\/90 {
  color: #ffffffe6;
}
.text-white\/95 {
  color: #fffffff2;
}
.text-yellow-100 {
  --tw-text-opacity: 1;
  color: rgb(254 249 195 / var(--tw-text-opacity));
}
.text-yellow-100\/0 {
  color: #fef9c300;
}
.text-yellow-100\/10 {
  color: #fef9c31a;
}
.text-yellow-100\/100 {
  color: #fef9c3;
}
.text-yellow-100\/20 {
  color: #fef9c333;
}
.text-yellow-100\/25 {
  color: #fef9c340;
}
.text-yellow-100\/30 {
  color: #fef9c34d;
}
.text-yellow-100\/40 {
  color: #fef9c366;
}
.text-yellow-100\/5 {
  color: #fef9c30d;
}
.text-yellow-100\/50 {
  color: #fef9c380;
}
.text-yellow-100\/60 {
  color: #fef9c399;
}
.text-yellow-100\/70 {
  color: #fef9c3b3;
}
.text-yellow-100\/75 {
  color: #fef9c3bf;
}
.text-yellow-100\/80 {
  color: #fef9c3cc;
}
.text-yellow-100\/90 {
  color: #fef9c3e6;
}
.text-yellow-100\/95 {
  color: #fef9c3f2;
}
.text-yellow-200 {
  --tw-text-opacity: 1;
  color: rgb(254 240 138 / var(--tw-text-opacity));
}
.text-yellow-200\/0 {
  color: #fef08a00;
}
.text-yellow-200\/10 {
  color: #fef08a1a;
}
.text-yellow-200\/100 {
  color: #fef08a;
}
.text-yellow-200\/20 {
  color: #fef08a33;
}
.text-yellow-200\/25 {
  color: #fef08a40;
}
.text-yellow-200\/30 {
  color: #fef08a4d;
}
.text-yellow-200\/40 {
  color: #fef08a66;
}
.text-yellow-200\/5 {
  color: #fef08a0d;
}
.text-yellow-200\/50 {
  color: #fef08a80;
}
.text-yellow-200\/60 {
  color: #fef08a99;
}
.text-yellow-200\/70 {
  color: #fef08ab3;
}
.text-yellow-200\/75 {
  color: #fef08abf;
}
.text-yellow-200\/80 {
  color: #fef08acc;
}
.text-yellow-200\/90 {
  color: #fef08ae6;
}
.text-yellow-200\/95 {
  color: #fef08af2;
}
.text-yellow-300 {
  --tw-text-opacity: 1;
  color: rgb(253 224 71 / var(--tw-text-opacity));
}
.text-yellow-300\/0 {
  color: #fde04700;
}
.text-yellow-300\/10 {
  color: #fde0471a;
}
.text-yellow-300\/100 {
  color: #fde047;
}
.text-yellow-300\/20 {
  color: #fde04733;
}
.text-yellow-300\/25 {
  color: #fde04740;
}
.text-yellow-300\/30 {
  color: #fde0474d;
}
.text-yellow-300\/40 {
  color: #fde04766;
}
.text-yellow-300\/5 {
  color: #fde0470d;
}
.text-yellow-300\/50 {
  color: #fde04780;
}
.text-yellow-300\/60 {
  color: #fde04799;
}
.text-yellow-300\/70 {
  color: #fde047b3;
}
.text-yellow-300\/75 {
  color: #fde047bf;
}
.text-yellow-300\/80 {
  color: #fde047cc;
}
.text-yellow-300\/90 {
  color: #fde047e6;
}
.text-yellow-300\/95 {
  color: #fde047f2;
}
.text-yellow-400 {
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / var(--tw-text-opacity));
}
.text-yellow-400\/0 {
  color: #facc1500;
}
.text-yellow-400\/10 {
  color: #facc151a;
}
.text-yellow-400\/100 {
  color: #facc15;
}
.text-yellow-400\/20 {
  color: #facc1533;
}
.text-yellow-400\/25 {
  color: #facc1540;
}
.text-yellow-400\/30 {
  color: #facc154d;
}
.text-yellow-400\/40 {
  color: #facc1566;
}
.text-yellow-400\/5 {
  color: #facc150d;
}
.text-yellow-400\/50 {
  color: #facc1580;
}
.text-yellow-400\/60 {
  color: #facc1599;
}
.text-yellow-400\/70 {
  color: #facc15b3;
}
.text-yellow-400\/75 {
  color: #facc15bf;
}
.text-yellow-400\/80 {
  color: #facc15cc;
}
.text-yellow-400\/90 {
  color: #facc15e6;
}
.text-yellow-400\/95 {
  color: #facc15f2;
}
.text-yellow-50 {
  --tw-text-opacity: 1;
  color: rgb(254 252 232 / var(--tw-text-opacity));
}
.text-yellow-50\/0 {
  color: #fefce800;
}
.text-yellow-50\/10 {
  color: #fefce81a;
}
.text-yellow-50\/100 {
  color: #fefce8;
}
.text-yellow-50\/20 {
  color: #fefce833;
}
.text-yellow-50\/25 {
  color: #fefce840;
}
.text-yellow-50\/30 {
  color: #fefce84d;
}
.text-yellow-50\/40 {
  color: #fefce866;
}
.text-yellow-50\/5 {
  color: #fefce80d;
}
.text-yellow-50\/50 {
  color: #fefce880;
}
.text-yellow-50\/60 {
  color: #fefce899;
}
.text-yellow-50\/70 {
  color: #fefce8b3;
}
.text-yellow-50\/75 {
  color: #fefce8bf;
}
.text-yellow-50\/80 {
  color: #fefce8cc;
}
.text-yellow-50\/90 {
  color: #fefce8e6;
}
.text-yellow-50\/95 {
  color: #fefce8f2;
}
.text-yellow-500 {
  --tw-text-opacity: 1;
  color: rgb(234 179 8 / var(--tw-text-opacity));
}
.text-yellow-500\/0 {
  color: #eab30800;
}
.text-yellow-500\/10 {
  color: #eab3081a;
}
.text-yellow-500\/100 {
  color: #eab308;
}
.text-yellow-500\/20 {
  color: #eab30833;
}
.text-yellow-500\/25 {
  color: #eab30840;
}
.text-yellow-500\/30 {
  color: #eab3084d;
}
.text-yellow-500\/40 {
  color: #eab30866;
}
.text-yellow-500\/5 {
  color: #eab3080d;
}
.text-yellow-500\/50 {
  color: #eab30880;
}
.text-yellow-500\/60 {
  color: #eab30899;
}
.text-yellow-500\/70 {
  color: #eab308b3;
}
.text-yellow-500\/75 {
  color: #eab308bf;
}
.text-yellow-500\/80 {
  color: #eab308cc;
}
.text-yellow-500\/90 {
  color: #eab308e6;
}
.text-yellow-500\/95 {
  color: #eab308f2;
}
.text-yellow-600 {
  --tw-text-opacity: 1;
  color: rgb(202 138 4 / var(--tw-text-opacity));
}
.text-yellow-600\/0 {
  color: #ca8a0400;
}
.text-yellow-600\/10 {
  color: #ca8a041a;
}
.text-yellow-600\/100 {
  color: #ca8a04;
}
.text-yellow-600\/20 {
  color: #ca8a0433;
}
.text-yellow-600\/25 {
  color: #ca8a0440;
}
.text-yellow-600\/30 {
  color: #ca8a044d;
}
.text-yellow-600\/40 {
  color: #ca8a0466;
}
.text-yellow-600\/5 {
  color: #ca8a040d;
}
.text-yellow-600\/50 {
  color: #ca8a0480;
}
.text-yellow-600\/60 {
  color: #ca8a0499;
}
.text-yellow-600\/70 {
  color: #ca8a04b3;
}
.text-yellow-600\/75 {
  color: #ca8a04bf;
}
.text-yellow-600\/80 {
  color: #ca8a04cc;
}
.text-yellow-600\/90 {
  color: #ca8a04e6;
}
.text-yellow-600\/95 {
  color: #ca8a04f2;
}
.text-yellow-700 {
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity));
}
.text-yellow-700\/0 {
  color: #a1620700;
}
.text-yellow-700\/10 {
  color: #a162071a;
}
.text-yellow-700\/100 {
  color: #a16207;
}
.text-yellow-700\/20 {
  color: #a1620733;
}
.text-yellow-700\/25 {
  color: #a1620740;
}
.text-yellow-700\/30 {
  color: #a162074d;
}
.text-yellow-700\/40 {
  color: #a1620766;
}
.text-yellow-700\/5 {
  color: #a162070d;
}
.text-yellow-700\/50 {
  color: #a1620780;
}
.text-yellow-700\/60 {
  color: #a1620799;
}
.text-yellow-700\/70 {
  color: #a16207b3;
}
.text-yellow-700\/75 {
  color: #a16207bf;
}
.text-yellow-700\/80 {
  color: #a16207cc;
}
.text-yellow-700\/90 {
  color: #a16207e6;
}
.text-yellow-700\/95 {
  color: #a16207f2;
}
.text-yellow-800 {
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity));
}
.text-yellow-800\/0 {
  color: #854d0e00;
}
.text-yellow-800\/10 {
  color: #854d0e1a;
}
.text-yellow-800\/100 {
  color: #854d0e;
}
.text-yellow-800\/20 {
  color: #854d0e33;
}
.text-yellow-800\/25 {
  color: #854d0e40;
}
.text-yellow-800\/30 {
  color: #854d0e4d;
}
.text-yellow-800\/40 {
  color: #854d0e66;
}
.text-yellow-800\/5 {
  color: #854d0e0d;
}
.text-yellow-800\/50 {
  color: #854d0e80;
}
.text-yellow-800\/60 {
  color: #854d0e99;
}
.text-yellow-800\/70 {
  color: #854d0eb3;
}
.text-yellow-800\/75 {
  color: #854d0ebf;
}
.text-yellow-800\/80 {
  color: #854d0ecc;
}
.text-yellow-800\/90 {
  color: #854d0ee6;
}
.text-yellow-800\/95 {
  color: #854d0ef2;
}
.text-yellow-900 {
  --tw-text-opacity: 1;
  color: rgb(113 63 18 / var(--tw-text-opacity));
}
.text-yellow-900\/0 {
  color: #713f1200;
}
.text-yellow-900\/10 {
  color: #713f121a;
}
.text-yellow-900\/100 {
  color: #713f12;
}
.text-yellow-900\/20 {
  color: #713f1233;
}
.text-yellow-900\/25 {
  color: #713f1240;
}
.text-yellow-900\/30 {
  color: #713f124d;
}
.text-yellow-900\/40 {
  color: #713f1266;
}
.text-yellow-900\/5 {
  color: #713f120d;
}
.text-yellow-900\/50 {
  color: #713f1280;
}
.text-yellow-900\/60 {
  color: #713f1299;
}
.text-yellow-900\/70 {
  color: #713f12b3;
}
.text-yellow-900\/75 {
  color: #713f12bf;
}
.text-yellow-900\/80 {
  color: #713f12cc;
}
.text-yellow-900\/90 {
  color: #713f12e6;
}
.text-yellow-900\/95 {
  color: #713f12f2;
}
.text-yellow-950 {
  --tw-text-opacity: 1;
  color: rgb(66 32 6 / var(--tw-text-opacity));
}
.text-yellow-950\/0 {
  color: #42200600;
}
.text-yellow-950\/10 {
  color: #4220061a;
}
.text-yellow-950\/100 {
  color: #422006;
}
.text-yellow-950\/20 {
  color: #42200633;
}
.text-yellow-950\/25 {
  color: #42200640;
}
.text-yellow-950\/30 {
  color: #4220064d;
}
.text-yellow-950\/40 {
  color: #42200666;
}
.text-yellow-950\/5 {
  color: #4220060d;
}
.text-yellow-950\/50 {
  color: #42200680;
}
.text-yellow-950\/60 {
  color: #42200699;
}
.text-yellow-950\/70 {
  color: #422006b3;
}
.text-yellow-950\/75 {
  color: #422006bf;
}
.text-yellow-950\/80 {
  color: #422006cc;
}
.text-yellow-950\/90 {
  color: #422006e6;
}
.text-yellow-950\/95 {
  color: #422006f2;
}
.text-zinc-100 {
  --tw-text-opacity: 1;
  color: rgb(244 244 245 / var(--tw-text-opacity));
}
.text-zinc-100\/0 {
  color: #f4f4f500;
}
.text-zinc-100\/10 {
  color: #f4f4f51a;
}
.text-zinc-100\/100 {
  color: #f4f4f5;
}
.text-zinc-100\/20 {
  color: #f4f4f533;
}
.text-zinc-100\/25 {
  color: #f4f4f540;
}
.text-zinc-100\/30 {
  color: #f4f4f54d;
}
.text-zinc-100\/40 {
  color: #f4f4f566;
}
.text-zinc-100\/5 {
  color: #f4f4f50d;
}
.text-zinc-100\/50 {
  color: #f4f4f580;
}
.text-zinc-100\/60 {
  color: #f4f4f599;
}
.text-zinc-100\/70 {
  color: #f4f4f5b3;
}
.text-zinc-100\/75 {
  color: #f4f4f5bf;
}
.text-zinc-100\/80 {
  color: #f4f4f5cc;
}
.text-zinc-100\/90 {
  color: #f4f4f5e6;
}
.text-zinc-100\/95 {
  color: #f4f4f5f2;
}
.text-zinc-200 {
  --tw-text-opacity: 1;
  color: rgb(228 228 231 / var(--tw-text-opacity));
}
.text-zinc-200\/0 {
  color: #e4e4e700;
}
.text-zinc-200\/10 {
  color: #e4e4e71a;
}
.text-zinc-200\/100 {
  color: #e4e4e7;
}
.text-zinc-200\/20 {
  color: #e4e4e733;
}
.text-zinc-200\/25 {
  color: #e4e4e740;
}
.text-zinc-200\/30 {
  color: #e4e4e74d;
}
.text-zinc-200\/40 {
  color: #e4e4e766;
}
.text-zinc-200\/5 {
  color: #e4e4e70d;
}
.text-zinc-200\/50 {
  color: #e4e4e780;
}
.text-zinc-200\/60 {
  color: #e4e4e799;
}
.text-zinc-200\/70 {
  color: #e4e4e7b3;
}
.text-zinc-200\/75 {
  color: #e4e4e7bf;
}
.text-zinc-200\/80 {
  color: #e4e4e7cc;
}
.text-zinc-200\/90 {
  color: #e4e4e7e6;
}
.text-zinc-200\/95 {
  color: #e4e4e7f2;
}
.text-zinc-300 {
  --tw-text-opacity: 1;
  color: rgb(212 212 216 / var(--tw-text-opacity));
}
.text-zinc-300\/0 {
  color: #d4d4d800;
}
.text-zinc-300\/10 {
  color: #d4d4d81a;
}
.text-zinc-300\/100 {
  color: #d4d4d8;
}
.text-zinc-300\/20 {
  color: #d4d4d833;
}
.text-zinc-300\/25 {
  color: #d4d4d840;
}
.text-zinc-300\/30 {
  color: #d4d4d84d;
}
.text-zinc-300\/40 {
  color: #d4d4d866;
}
.text-zinc-300\/5 {
  color: #d4d4d80d;
}
.text-zinc-300\/50 {
  color: #d4d4d880;
}
.text-zinc-300\/60 {
  color: #d4d4d899;
}
.text-zinc-300\/70 {
  color: #d4d4d8b3;
}
.text-zinc-300\/75 {
  color: #d4d4d8bf;
}
.text-zinc-300\/80 {
  color: #d4d4d8cc;
}
.text-zinc-300\/90 {
  color: #d4d4d8e6;
}
.text-zinc-300\/95 {
  color: #d4d4d8f2;
}
.text-zinc-400 {
  --tw-text-opacity: 1;
  color: rgb(161 161 170 / var(--tw-text-opacity));
}
.text-zinc-400\/0 {
  color: #a1a1aa00;
}
.text-zinc-400\/10 {
  color: #a1a1aa1a;
}
.text-zinc-400\/100 {
  color: #a1a1aa;
}
.text-zinc-400\/20 {
  color: #a1a1aa33;
}
.text-zinc-400\/25 {
  color: #a1a1aa40;
}
.text-zinc-400\/30 {
  color: #a1a1aa4d;
}
.text-zinc-400\/40 {
  color: #a1a1aa66;
}
.text-zinc-400\/5 {
  color: #a1a1aa0d;
}
.text-zinc-400\/50 {
  color: #a1a1aa80;
}
.text-zinc-400\/60 {
  color: #a1a1aa99;
}
.text-zinc-400\/70 {
  color: #a1a1aab3;
}
.text-zinc-400\/75 {
  color: #a1a1aabf;
}
.text-zinc-400\/80 {
  color: #a1a1aacc;
}
.text-zinc-400\/90 {
  color: #a1a1aae6;
}
.text-zinc-400\/95 {
  color: #a1a1aaf2;
}
.text-zinc-50 {
  --tw-text-opacity: 1;
  color: rgb(250 250 250 / var(--tw-text-opacity));
}
.text-zinc-50\/0 {
  color: #fafafa00;
}
.text-zinc-50\/10 {
  color: #fafafa1a;
}
.text-zinc-50\/100 {
  color: #fafafa;
}
.text-zinc-50\/20 {
  color: #fafafa33;
}
.text-zinc-50\/25 {
  color: #fafafa40;
}
.text-zinc-50\/30 {
  color: #fafafa4d;
}
.text-zinc-50\/40 {
  color: #fafafa66;
}
.text-zinc-50\/5 {
  color: #fafafa0d;
}
.text-zinc-50\/50 {
  color: #fafafa80;
}
.text-zinc-50\/60 {
  color: #fafafa99;
}
.text-zinc-50\/70 {
  color: #fafafab3;
}
.text-zinc-50\/75 {
  color: #fafafabf;
}
.text-zinc-50\/80 {
  color: #fafafacc;
}
.text-zinc-50\/90 {
  color: #fafafae6;
}
.text-zinc-50\/95 {
  color: #fafafaf2;
}
.text-zinc-500 {
  --tw-text-opacity: 1;
  color: rgb(113 113 122 / var(--tw-text-opacity));
}
.text-zinc-500\/0 {
  color: #71717a00;
}
.text-zinc-500\/10 {
  color: #71717a1a;
}
.text-zinc-500\/100 {
  color: #71717a;
}
.text-zinc-500\/20 {
  color: #71717a33;
}
.text-zinc-500\/25 {
  color: #71717a40;
}
.text-zinc-500\/30 {
  color: #71717a4d;
}
.text-zinc-500\/40 {
  color: #71717a66;
}
.text-zinc-500\/5 {
  color: #71717a0d;
}
.text-zinc-500\/50 {
  color: #71717a80;
}
.text-zinc-500\/60 {
  color: #71717a99;
}
.text-zinc-500\/70 {
  color: #71717ab3;
}
.text-zinc-500\/75 {
  color: #71717abf;
}
.text-zinc-500\/80 {
  color: #71717acc;
}
.text-zinc-500\/90 {
  color: #71717ae6;
}
.text-zinc-500\/95 {
  color: #71717af2;
}
.text-zinc-600 {
  --tw-text-opacity: 1;
  color: rgb(82 82 91 / var(--tw-text-opacity));
}
.text-zinc-600\/0 {
  color: #52525b00;
}
.text-zinc-600\/10 {
  color: #52525b1a;
}
.text-zinc-600\/100 {
  color: #52525b;
}
.text-zinc-600\/20 {
  color: #52525b33;
}
.text-zinc-600\/25 {
  color: #52525b40;
}
.text-zinc-600\/30 {
  color: #52525b4d;
}
.text-zinc-600\/40 {
  color: #52525b66;
}
.text-zinc-600\/5 {
  color: #52525b0d;
}
.text-zinc-600\/50 {
  color: #52525b80;
}
.text-zinc-600\/60 {
  color: #52525b99;
}
.text-zinc-600\/70 {
  color: #52525bb3;
}
.text-zinc-600\/75 {
  color: #52525bbf;
}
.text-zinc-600\/80 {
  color: #52525bcc;
}
.text-zinc-600\/90 {
  color: #52525be6;
}
.text-zinc-600\/95 {
  color: #52525bf2;
}
.text-zinc-700 {
  --tw-text-opacity: 1;
  color: rgb(63 63 70 / var(--tw-text-opacity));
}
.text-zinc-700\/0 {
  color: #3f3f4600;
}
.text-zinc-700\/10 {
  color: #3f3f461a;
}
.text-zinc-700\/100 {
  color: #3f3f46;
}
.text-zinc-700\/20 {
  color: #3f3f4633;
}
.text-zinc-700\/25 {
  color: #3f3f4640;
}
.text-zinc-700\/30 {
  color: #3f3f464d;
}
.text-zinc-700\/40 {
  color: #3f3f4666;
}
.text-zinc-700\/5 {
  color: #3f3f460d;
}
.text-zinc-700\/50 {
  color: #3f3f4680;
}
.text-zinc-700\/60 {
  color: #3f3f4699;
}
.text-zinc-700\/70 {
  color: #3f3f46b3;
}
.text-zinc-700\/75 {
  color: #3f3f46bf;
}
.text-zinc-700\/80 {
  color: #3f3f46cc;
}
.text-zinc-700\/90 {
  color: #3f3f46e6;
}
.text-zinc-700\/95 {
  color: #3f3f46f2;
}
.text-zinc-800 {
  --tw-text-opacity: 1;
  color: rgb(39 39 42 / var(--tw-text-opacity));
}
.text-zinc-800\/0 {
  color: #27272a00;
}
.text-zinc-800\/10 {
  color: #27272a1a;
}
.text-zinc-800\/100 {
  color: #27272a;
}
.text-zinc-800\/20 {
  color: #27272a33;
}
.text-zinc-800\/25 {
  color: #27272a40;
}
.text-zinc-800\/30 {
  color: #27272a4d;
}
.text-zinc-800\/40 {
  color: #27272a66;
}
.text-zinc-800\/5 {
  color: #27272a0d;
}
.text-zinc-800\/50 {
  color: #27272a80;
}
.text-zinc-800\/60 {
  color: #27272a99;
}
.text-zinc-800\/70 {
  color: #27272ab3;
}
.text-zinc-800\/75 {
  color: #27272abf;
}
.text-zinc-800\/80 {
  color: #27272acc;
}
.text-zinc-800\/90 {
  color: #27272ae6;
}
.text-zinc-800\/95 {
  color: #27272af2;
}
.text-zinc-900 {
  --tw-text-opacity: 1;
  color: rgb(24 24 27 / var(--tw-text-opacity));
}
.text-zinc-900\/0 {
  color: #18181b00;
}
.text-zinc-900\/10 {
  color: #18181b1a;
}
.text-zinc-900\/100 {
  color: #18181b;
}
.text-zinc-900\/20 {
  color: #18181b33;
}
.text-zinc-900\/25 {
  color: #18181b40;
}
.text-zinc-900\/30 {
  color: #18181b4d;
}
.text-zinc-900\/40 {
  color: #18181b66;
}
.text-zinc-900\/5 {
  color: #18181b0d;
}
.text-zinc-900\/50 {
  color: #18181b80;
}
.text-zinc-900\/60 {
  color: #18181b99;
}
.text-zinc-900\/70 {
  color: #18181bb3;
}
.text-zinc-900\/75 {
  color: #18181bbf;
}
.text-zinc-900\/80 {
  color: #18181bcc;
}
.text-zinc-900\/90 {
  color: #18181be6;
}
.text-zinc-900\/95 {
  color: #18181bf2;
}
.text-zinc-950 {
  --tw-text-opacity: 1;
  color: rgb(9 9 11 / var(--tw-text-opacity));
}
.text-zinc-950\/0 {
  color: #09090b00;
}
.text-zinc-950\/10 {
  color: #09090b1a;
}
.text-zinc-950\/100 {
  color: #09090b;
}
.text-zinc-950\/20 {
  color: #09090b33;
}
.text-zinc-950\/25 {
  color: #09090b40;
}
.text-zinc-950\/30 {
  color: #09090b4d;
}
.text-zinc-950\/40 {
  color: #09090b66;
}
.text-zinc-950\/5 {
  color: #09090b0d;
}
.text-zinc-950\/50 {
  color: #09090b80;
}
.text-zinc-950\/60 {
  color: #09090b99;
}
.text-zinc-950\/70 {
  color: #09090bb3;
}
.text-zinc-950\/75 {
  color: #09090bbf;
}
.text-zinc-950\/80 {
  color: #09090bcc;
}
.text-zinc-950\/90 {
  color: #09090be6;
}
.text-zinc-950\/95 {
  color: #09090bf2;
}
.text-opacity-0 {
  --tw-text-opacity: 0;
}
.text-opacity-10 {
  --tw-text-opacity: 0.1;
}
.text-opacity-100 {
  --tw-text-opacity: 1;
}
.text-opacity-20 {
  --tw-text-opacity: 0.2;
}
.text-opacity-25 {
  --tw-text-opacity: 0.25;
}
.text-opacity-30 {
  --tw-text-opacity: 0.3;
}
.text-opacity-40 {
  --tw-text-opacity: 0.4;
}
.text-opacity-5 {
  --tw-text-opacity: 0.05;
}
.text-opacity-50 {
  --tw-text-opacity: 0.5;
}
.text-opacity-60 {
  --tw-text-opacity: 0.6;
}
.text-opacity-70 {
  --tw-text-opacity: 0.7;
}
.text-opacity-75 {
  --tw-text-opacity: 0.75;
}
.text-opacity-80 {
  --tw-text-opacity: 0.8;
}
.text-opacity-90 {
  --tw-text-opacity: 0.9;
}
.text-opacity-95 {
  --tw-text-opacity: 0.95;
}
.underline {
  text-decoration-line: underline;
}
.overline {
  text-decoration-line: overline;
}
.line-through {
  text-decoration-line: line-through;
}
.no-underline {
  text-decoration-line: none;
}
.decoration-solid {
  text-decoration-style: solid;
}
.decoration-double {
  text-decoration-style: double;
}
.decoration-dotted {
  text-decoration-style: dotted;
}
.decoration-dashed {
  text-decoration-style: dashed;
}
.decoration-wavy {
  text-decoration-style: wavy;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.subpixel-antialiased {
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}
.opacity-75 {
  opacity: 0.75;
}
.bg-blend-normal {
  background-blend-mode: normal;
}
.bg-blend-multiply {
  background-blend-mode: multiply;
}
.bg-blend-screen {
  background-blend-mode: screen;
}
.bg-blend-overlay {
  background-blend-mode: overlay;
}
.bg-blend-darken {
  background-blend-mode: darken;
}
.bg-blend-lighten {
  background-blend-mode: lighten;
}
.bg-blend-color-dodge {
  background-blend-mode: color-dodge;
}
.bg-blend-color-burn {
  background-blend-mode: color-burn;
}
.bg-blend-hard-light {
  background-blend-mode: hard-light;
}
.bg-blend-soft-light {
  background-blend-mode: soft-light;
}
.bg-blend-difference {
  background-blend-mode: difference;
}
.bg-blend-exclusion {
  background-blend-mode: exclusion;
}
.bg-blend-hue {
  background-blend-mode: hue;
}
.bg-blend-saturation {
  background-blend-mode: saturation;
}
.bg-blend-color {
  background-blend-mode: color;
}
.bg-blend-luminosity {
  background-blend-mode: luminosity;
}
.mix-blend-normal {
  mix-blend-mode: normal;
}
.mix-blend-multiply {
  mix-blend-mode: multiply;
}
.mix-blend-screen {
  mix-blend-mode: screen;
}
.mix-blend-overlay {
  mix-blend-mode: overlay;
}
.mix-blend-darken {
  mix-blend-mode: darken;
}
.mix-blend-lighten {
  mix-blend-mode: lighten;
}
.mix-blend-color-dodge {
  mix-blend-mode: color-dodge;
}
.mix-blend-color-burn {
  mix-blend-mode: color-burn;
}
.mix-blend-hard-light {
  mix-blend-mode: hard-light;
}
.mix-blend-soft-light {
  mix-blend-mode: soft-light;
}
.mix-blend-difference {
  mix-blend-mode: difference;
}
.mix-blend-exclusion {
  mix-blend-mode: exclusion;
}
.mix-blend-hue {
  mix-blend-mode: hue;
}
.mix-blend-saturation {
  mix-blend-mode: saturation;
}
.mix-blend-color {
  mix-blend-mode: color;
}
.mix-blend-luminosity {
  mix-blend-mode: luminosity;
}
.mix-blend-plus-lighter {
  mix-blend-mode: plus-lighter;
}
.\!shadow {
  --tw-shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a !important;
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color),
    0 1px 2px -1px var(--tw-shadow-color) !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color),
    0 1px 2px -1px var(--tw-shadow-color);
}
.shadow,
.shadow-lg {
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
    0 4px 6px -4px var(--tw-shadow-color);
}
.shadow-md {
  --tw-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),
    0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none {
  outline: 2px solid #0000;
  outline-offset: 2px;
}
.outline {
  outline-style: solid;
}
.outline-dashed {
  outline-style: dashed;
}
.outline-dotted {
  outline-style: dotted;
}
.outline-double {
  outline-style: double;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
    var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
    calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}
.ring-inset {
  --tw-ring-inset: inset;
}
.blur {
  --tw-blur: blur(8px);
}
.blur,
.drop-shadow {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
    var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
    var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px #0000001a)
    drop-shadow(0 1px 1px #0000000f);
}
.grayscale {
  --tw-grayscale: grayscale(100%);
}
.grayscale,
.invert {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
    var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
    var(--tw-sepia) var(--tw-drop-shadow);
}
.invert {
  --tw-invert: invert(100%);
}
.sepia {
  --tw-sepia: sepia(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
    var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
    var(--tw-sepia) var(--tw-drop-shadow);
}
.\!filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
    var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
    var(--tw-sepia) var(--tw-drop-shadow) !important;
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast)
    var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)
    var(--tw-sepia) var(--tw-drop-shadow);
}
.filter-none {
  filter: none;
}
.backdrop-blur {
  --tw-backdrop-blur: blur(8px);
}
.backdrop-blur,
.backdrop-grayscale {
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
    var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
    var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
    var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
    var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
    var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
    var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
    var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
    var(--tw-backdrop-sepia);
}
.backdrop-grayscale {
  --tw-backdrop-grayscale: grayscale(100%);
}
.backdrop-invert {
  --tw-backdrop-invert: invert(100%);
}
.backdrop-invert,
.backdrop-sepia {
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
    var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
    var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
    var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
    var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
    var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
    var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
    var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
    var(--tw-backdrop-sepia);
}
.backdrop-sepia {
  --tw-backdrop-sepia: sepia(100%);
}
.backdrop-filter {
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
    var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
    var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
    var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
    var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
    var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale)
    var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
    var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
    var(--tw-backdrop-sepia);
}
.backdrop-filter-none {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.transition {
  transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,
    -webkit-backdrop-filter;
  transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,
    backdrop-filter;
  transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,
    backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.15s;
}
.duration-300 {
  transition-duration: 0.3s;
}
.ease-in {
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.content-\[\'this-is-also-valid\]-weirdly-enough\'\] {
  --tw-content: 'this-is-also-valid]-weirdly-enough';
  content: var(--tw-content);
}
.ps-0 {
  -webkit-padding-start: 0;
  padding-inline-start: 0;
}
.pe-0 {
  -webkit-padding-end: 0;
  padding-inline-end: 0;
}
.ps-1 {
  -webkit-padding-start: 0.25rem;
  padding-inline-start: 0.25rem;
}
.pe-1 {
  -webkit-padding-end: 0.25rem;
  padding-inline-end: 0.25rem;
}
.ps-2 {
  -webkit-padding-start: 0.5rem;
  padding-inline-start: 0.5rem;
}
.pe-2 {
  -webkit-padding-end: 0.5rem;
  padding-inline-end: 0.5rem;
}
.ps-3 {
  -webkit-padding-start: 0.75rem;
  padding-inline-start: 0.75rem;
}
.pe-3 {
  -webkit-padding-end: 0.75rem;
  padding-inline-end: 0.75rem;
}
.ps-4 {
  -webkit-padding-start: 1rem;
  padding-inline-start: 1rem;
}
.pe-4 {
  -webkit-padding-end: 1rem;
  padding-inline-end: 1rem;
}
.ps-5 {
  -webkit-padding-start: 1.25rem;
  padding-inline-start: 1.25rem;
}
.pe-5 {
  -webkit-padding-end: 1.25rem;
  padding-inline-end: 1.25rem;
}
.ps-6 {
  -webkit-padding-start: 1.5rem;
  padding-inline-start: 1.5rem;
}
.pe-6 {
  -webkit-padding-end: 1.5rem;
  padding-inline-end: 1.5rem;
}
.ps-7 {
  -webkit-padding-start: 1.75rem;
  padding-inline-start: 1.75rem;
}
.pe-7 {
  -webkit-padding-end: 1.75rem;
  padding-inline-end: 1.75rem;
}
.ps-8 {
  -webkit-padding-start: 2rem;
  padding-inline-start: 2rem;
}
.pe-8 {
  -webkit-padding-end: 2rem;
  padding-inline-end: 2rem;
}
.ps-9 {
  -webkit-padding-start: 2.25rem;
  padding-inline-start: 2.25rem;
}
.pe-9 {
  -webkit-padding-end: 2.25rem;
  padding-inline-end: 2.25rem;
}
.ps-10 {
  -webkit-padding-start: 2.5rem;
  padding-inline-start: 2.5rem;
}
.pe-10 {
  -webkit-padding-end: 2.5rem;
  padding-inline-end: 2.5rem;
}
.ps-11 {
  -webkit-padding-start: 2.75rem;
  padding-inline-start: 2.75rem;
}
.pe-11 {
  -webkit-padding-end: 2.75rem;
  padding-inline-end: 2.75rem;
}
.ps-12 {
  -webkit-padding-start: 3rem;
  padding-inline-start: 3rem;
}
.pe-12 {
  -webkit-padding-end: 3rem;
  padding-inline-end: 3rem;
}
.ps-14 {
  -webkit-padding-start: 3.5rem;
  padding-inline-start: 3.5rem;
}
.pe-14 {
  -webkit-padding-end: 3.5rem;
  padding-inline-end: 3.5rem;
}
.ps-16 {
  -webkit-padding-start: 4rem;
  padding-inline-start: 4rem;
}
.pe-16 {
  -webkit-padding-end: 4rem;
  padding-inline-end: 4rem;
}
.ps-20 {
  -webkit-padding-start: 5rem;
  padding-inline-start: 5rem;
}
.pe-20 {
  -webkit-padding-end: 5rem;
  padding-inline-end: 5rem;
}
.ps-24 {
  -webkit-padding-start: 6rem;
  padding-inline-start: 6rem;
}
.pe-24 {
  -webkit-padding-end: 6rem;
  padding-inline-end: 6rem;
}
.ps-28 {
  -webkit-padding-start: 7rem;
  padding-inline-start: 7rem;
}
.pe-28 {
  -webkit-padding-end: 7rem;
  padding-inline-end: 7rem;
}
.ps-32 {
  -webkit-padding-start: 8rem;
  padding-inline-start: 8rem;
}
.pe-32 {
  -webkit-padding-end: 8rem;
  padding-inline-end: 8rem;
}
.ps-36 {
  -webkit-padding-start: 9rem;
  padding-inline-start: 9rem;
}
.pe-36 {
  -webkit-padding-end: 9rem;
  padding-inline-end: 9rem;
}
.ps-40 {
  -webkit-padding-start: 10rem;
  padding-inline-start: 10rem;
}
.pe-40 {
  -webkit-padding-end: 10rem;
  padding-inline-end: 10rem;
}
.ps-44 {
  -webkit-padding-start: 11rem;
  padding-inline-start: 11rem;
}
.pe-44 {
  -webkit-padding-end: 11rem;
  padding-inline-end: 11rem;
}
.ps-48 {
  -webkit-padding-start: 12rem;
  padding-inline-start: 12rem;
}
.pe-48 {
  -webkit-padding-end: 12rem;
  padding-inline-end: 12rem;
}
.ps-52 {
  -webkit-padding-start: 13rem;
  padding-inline-start: 13rem;
}
.pe-52 {
  -webkit-padding-end: 13rem;
  padding-inline-end: 13rem;
}
.ps-56 {
  -webkit-padding-start: 14rem;
  padding-inline-start: 14rem;
}
.pe-56 {
  -webkit-padding-end: 14rem;
  padding-inline-end: 14rem;
}
.ps-60 {
  -webkit-padding-start: 15rem;
  padding-inline-start: 15rem;
}
.pe-60 {
  -webkit-padding-end: 15rem;
  padding-inline-end: 15rem;
}
.ps-64 {
  -webkit-padding-start: 16rem;
  padding-inline-start: 16rem;
}
.pe-64 {
  -webkit-padding-end: 16rem;
  padding-inline-end: 16rem;
}
.ps-72 {
  -webkit-padding-start: 18rem;
  padding-inline-start: 18rem;
}
.pe-72 {
  -webkit-padding-end: 18rem;
  padding-inline-end: 18rem;
}
.ps-80 {
  -webkit-padding-start: 20rem;
  padding-inline-start: 20rem;
}
.pe-80 {
  -webkit-padding-end: 20rem;
  padding-inline-end: 20rem;
}
.ps-96 {
  -webkit-padding-start: 24rem;
  padding-inline-start: 24rem;
}
.pe-96 {
  -webkit-padding-end: 24rem;
  padding-inline-end: 24rem;
}
.ps-px {
  -webkit-padding-start: 1px;
  padding-inline-start: 1px;
}
.pe-px {
  -webkit-padding-end: 1px;
  padding-inline-end: 1px;
}
.ps-0\.5 {
  -webkit-padding-start: 0.125rem;
  padding-inline-start: 0.125rem;
}
.pe-0\.5 {
  -webkit-padding-end: 0.125rem;
  padding-inline-end: 0.125rem;
}
.ps-1\.5 {
  -webkit-padding-start: 0.375rem;
  padding-inline-start: 0.375rem;
}
.pe-1\.5 {
  -webkit-padding-end: 0.375rem;
  padding-inline-end: 0.375rem;
}
.ps-2\.5 {
  -webkit-padding-start: 0.625rem;
  padding-inline-start: 0.625rem;
}
.pe-2\.5 {
  -webkit-padding-end: 0.625rem;
  padding-inline-end: 0.625rem;
}
.ps-3\.5 {
  -webkit-padding-start: 0.875rem;
  padding-inline-start: 0.875rem;
}
.pe-3\.5 {
  -webkit-padding-end: 0.875rem;
  padding-inline-end: 0.875rem;
}
.ms-0 {
  -webkit-margin-start: 0;
  margin-inline-start: 0;
}
.me-0 {
  -webkit-margin-end: 0;
  margin-inline-end: 0;
}
.ms-1 {
  -webkit-margin-start: 0.25rem;
  margin-inline-start: 0.25rem;
}
.me-1 {
  -webkit-margin-end: 0.25rem;
  margin-inline-end: 0.25rem;
}
.ms-2 {
  -webkit-margin-start: 0.5rem;
  margin-inline-start: 0.5rem;
}
.me-2 {
  -webkit-margin-end: 0.5rem;
  margin-inline-end: 0.5rem;
}
.ms-3 {
  -webkit-margin-start: 0.75rem;
  margin-inline-start: 0.75rem;
}
.me-3 {
  -webkit-margin-end: 0.75rem;
  margin-inline-end: 0.75rem;
}
.ms-4 {
  -webkit-margin-start: 1rem;
  margin-inline-start: 1rem;
}
.me-4 {
  -webkit-margin-end: 1rem;
  margin-inline-end: 1rem;
}
.ms-5 {
  -webkit-margin-start: 1.25rem;
  margin-inline-start: 1.25rem;
}
.me-5 {
  -webkit-margin-end: 1.25rem;
  margin-inline-end: 1.25rem;
}
.ms-6 {
  -webkit-margin-start: 1.5rem;
  margin-inline-start: 1.5rem;
}
.me-6 {
  -webkit-margin-end: 1.5rem;
  margin-inline-end: 1.5rem;
}
.ms-7 {
  -webkit-margin-start: 1.75rem;
  margin-inline-start: 1.75rem;
}
.me-7 {
  -webkit-margin-end: 1.75rem;
  margin-inline-end: 1.75rem;
}
.ms-8 {
  -webkit-margin-start: 2rem;
  margin-inline-start: 2rem;
}
.me-8 {
  -webkit-margin-end: 2rem;
  margin-inline-end: 2rem;
}
.ms-9 {
  -webkit-margin-start: 2.25rem;
  margin-inline-start: 2.25rem;
}
.me-9 {
  -webkit-margin-end: 2.25rem;
  margin-inline-end: 2.25rem;
}
.ms-10 {
  -webkit-margin-start: 2.5rem;
  margin-inline-start: 2.5rem;
}
.me-10 {
  -webkit-margin-end: 2.5rem;
  margin-inline-end: 2.5rem;
}
.ms-11 {
  -webkit-margin-start: 2.75rem;
  margin-inline-start: 2.75rem;
}
.me-11 {
  -webkit-margin-end: 2.75rem;
  margin-inline-end: 2.75rem;
}
.ms-12 {
  -webkit-margin-start: 3rem;
  margin-inline-start: 3rem;
}
.me-12 {
  -webkit-margin-end: 3rem;
  margin-inline-end: 3rem;
}
.ms-14 {
  -webkit-margin-start: 3.5rem;
  margin-inline-start: 3.5rem;
}
.me-14 {
  -webkit-margin-end: 3.5rem;
  margin-inline-end: 3.5rem;
}
.ms-16 {
  -webkit-margin-start: 4rem;
  margin-inline-start: 4rem;
}
.me-16 {
  -webkit-margin-end: 4rem;
  margin-inline-end: 4rem;
}
.ms-20 {
  -webkit-margin-start: 5rem;
  margin-inline-start: 5rem;
}
.me-20 {
  -webkit-margin-end: 5rem;
  margin-inline-end: 5rem;
}
.ms-24 {
  -webkit-margin-start: 6rem;
  margin-inline-start: 6rem;
}
.me-24 {
  -webkit-margin-end: 6rem;
  margin-inline-end: 6rem;
}
.ms-28 {
  -webkit-margin-start: 7rem;
  margin-inline-start: 7rem;
}
.me-28 {
  -webkit-margin-end: 7rem;
  margin-inline-end: 7rem;
}
.ms-32 {
  -webkit-margin-start: 8rem;
  margin-inline-start: 8rem;
}
.me-32 {
  -webkit-margin-end: 8rem;
  margin-inline-end: 8rem;
}
.ms-36 {
  -webkit-margin-start: 9rem;
  margin-inline-start: 9rem;
}
.me-36 {
  -webkit-margin-end: 9rem;
  margin-inline-end: 9rem;
}
.ms-40 {
  -webkit-margin-start: 10rem;
  margin-inline-start: 10rem;
}
.me-40 {
  -webkit-margin-end: 10rem;
  margin-inline-end: 10rem;
}
.ms-44 {
  -webkit-margin-start: 11rem;
  margin-inline-start: 11rem;
}
.me-44 {
  -webkit-margin-end: 11rem;
  margin-inline-end: 11rem;
}
.ms-48 {
  -webkit-margin-start: 12rem;
  margin-inline-start: 12rem;
}
.me-48 {
  -webkit-margin-end: 12rem;
  margin-inline-end: 12rem;
}
.ms-52 {
  -webkit-margin-start: 13rem;
  margin-inline-start: 13rem;
}
.me-52 {
  -webkit-margin-end: 13rem;
  margin-inline-end: 13rem;
}
.ms-56 {
  -webkit-margin-start: 14rem;
  margin-inline-start: 14rem;
}
.me-56 {
  -webkit-margin-end: 14rem;
  margin-inline-end: 14rem;
}
.ms-60 {
  -webkit-margin-start: 15rem;
  margin-inline-start: 15rem;
}
.me-60 {
  -webkit-margin-end: 15rem;
  margin-inline-end: 15rem;
}
.ms-64 {
  -webkit-margin-start: 16rem;
  margin-inline-start: 16rem;
}
.me-64 {
  -webkit-margin-end: 16rem;
  margin-inline-end: 16rem;
}
.ms-72 {
  -webkit-margin-start: 18rem;
  margin-inline-start: 18rem;
}
.me-72 {
  -webkit-margin-end: 18rem;
  margin-inline-end: 18rem;
}
.ms-80 {
  -webkit-margin-start: 20rem;
  margin-inline-start: 20rem;
}
.me-80 {
  -webkit-margin-end: 20rem;
  margin-inline-end: 20rem;
}
.ms-96 {
  -webkit-margin-start: 24rem;
  margin-inline-start: 24rem;
}
.me-96 {
  -webkit-margin-end: 24rem;
  margin-inline-end: 24rem;
}
.ms-auto {
  -webkit-margin-start: auto;
  margin-inline-start: auto;
}
.me-auto {
  -webkit-margin-end: auto;
  margin-inline-end: auto;
}
.ms-px {
  -webkit-margin-start: 1px;
  margin-inline-start: 1px;
}
.me-px {
  -webkit-margin-end: 1px;
  margin-inline-end: 1px;
}
.ms-0\.5 {
  -webkit-margin-start: 0.125rem;
  margin-inline-start: 0.125rem;
}
.me-0\.5 {
  -webkit-margin-end: 0.125rem;
  margin-inline-end: 0.125rem;
}
.ms-1\.5 {
  -webkit-margin-start: 0.375rem;
  margin-inline-start: 0.375rem;
}
.me-1\.5 {
  -webkit-margin-end: 0.375rem;
  margin-inline-end: 0.375rem;
}
.ms-2\.5 {
  -webkit-margin-start: 0.625rem;
  margin-inline-start: 0.625rem;
}
.me-2\.5 {
  -webkit-margin-end: 0.625rem;
  margin-inline-end: 0.625rem;
}
.ms-3\.5 {
  -webkit-margin-start: 0.875rem;
  margin-inline-start: 0.875rem;
}
.me-3\.5 {
  -webkit-margin-end: 0.875rem;
  margin-inline-end: 0.875rem;
}
[dir='ltr'] .rounded-e {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
[dir='ltr'] .rounded-s,
[dir='rtl'] .rounded-e {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
[dir='rtl'] .rounded-s {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
[dir='ltr'] .rounded-ts {
  border-top-left-radius: 0.25rem;
}
[dir='ltr'] .rounded-te {
  border-top-right-radius: 0.25rem;
}
[dir='ltr'] .rounded-be {
  border-bottom-right-radius: 0.25rem;
}
[dir='ltr'] .rounded-bs {
  border-bottom-left-radius: 0.25rem;
}
[dir='rtl'] .rounded-te {
  border-top-left-radius: 0.25rem;
}
[dir='rtl'] .rounded-ts {
  border-top-right-radius: 0.25rem;
}
[dir='rtl'] .rounded-bs {
  border-bottom-right-radius: 0.25rem;
}
[dir='rtl'] .rounded-be {
  border-bottom-left-radius: 0.25rem;
}
[dir='ltr'] .clear-start {
  clear: left;
}
[dir='ltr'] .clear-end,
[dir='rtl'] .clear-start {
  clear: right;
}
[dir='rtl'] .clear-end {
  clear: left;
}
[dir='rtl'] .float-start {
  float: right;
}
[dir='rtl'] .float-end {
  float: left;
}
[dir='ltr'] .float-end {
  float: right;
}
[dir='ltr'] .float-start {
  float: left;
}
.border-e {
  border-inline-end-width: 1px;
}
.border-s {
  border-inline-start-width: 1px;
}
[dir='rtl'] .text-start {
  text-align: right;
}
[dir='rtl'] .text-end {
  text-align: left;
}
[dir='ltr'] .text-end {
  text-align: right;
}
[dir='ltr'] .text-start {
  text-align: left;
}
[dir='ltr'] .origin-top-start {
  transform-origin: top left;
}
[dir='ltr'] .origin-top-end {
  transform-origin: top right;
}
[dir='ltr'] .origin-bottom-start {
  transform-origin: bottom left;
}
[dir='ltr'] .origin-bottom-end {
  transform-origin: bottom right;
}
[dir='ltr'] .origin-start {
  transform-origin: left;
}
[dir='ltr'] .origin-end {
  transform-origin: right;
}
[dir='rtl'] .origin-top-start {
  transform-origin: top right;
}
[dir='rtl'] .origin-top-end {
  transform-origin: top left;
}
[dir='rtl'] .origin-bottom-start {
  transform-origin: bottom right;
}
[dir='rtl'] .origin-bottom-end {
  transform-origin: bottom left;
}
[dir='rtl'] .origin-start {
  transform-origin: right;
}
[dir='rtl'] .origin-end {
  transform-origin: left;
}
.space-s-reverse > :not([hidden]) ~ :not([hidden]) {
  --tw-space-s-reverse: 1;
}
.divide-s > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-s-reverse: 0;
  border-inline-end-width: calc(1px * var(--tw-divide-s-reverse));
  border-inline-start-width: calc(1px * (1 - var(--tw-divide-s-reverse)));
}
.divide-s-reverse > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-s-reverse: 1;
}
.scopus_logo {
  background: url(../images/scopus_logo.svg) no-repeat;
  background-size: 55px;
  padding-left: 75px;
}
.google_scholar_logo {
  background: url(../images/google_scholar_logo.svg) no-repeat;
  background-size: 15px;
  padding-left: 25px;
}
.prose {
  color: #374151;
  max-width: none;
}
.hover\:prose-lg:hover {
  font-size: 1.125rem;
  line-height: 1.7777778;
}
.hover\:prose-lg:hover :where(p):not(:where([class~='not-prose'] *)) {
  margin-top: 1.3333333em;
  margin-bottom: 1.3333333em;
}
.hover\:prose-lg:hover
  :where([class~='lead']):not(:where([class~='not-prose'] *)) {
  font-size: 1.2222222em;
  line-height: 1.4545455;
  margin-top: 1.0909091em;
  margin-bottom: 1.0909091em;
}
.hover\:prose-lg:hover :where(blockquote):not(:where([class~='not-prose'] *)) {
  margin-top: 1.6666667em;
  margin-bottom: 1.6666667em;
  padding-left: 1em;
}
.hover\:prose-lg:hover :where(h1):not(:where([class~='not-prose'] *)) {
  font-size: 2.6666667em;
  margin-top: 0;
  margin-bottom: 0.8333333em;
  line-height: 1;
}
.hover\:prose-lg:hover :where(h2):not(:where([class~='not-prose'] *)) {
  font-size: 1.6666667em;
  margin-top: 1.8666667em;
  margin-bottom: 1.0666667em;
  line-height: 1.3333333;
}
.hover\:prose-lg:hover :where(h3):not(:where([class~='not-prose'] *)) {
  font-size: 1.3333333em;
  margin-top: 1.6666667em;
  margin-bottom: 0.6666667em;
  line-height: 1.5;
}
.hover\:prose-lg:hover :where(h4):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 0.4444444em;
  line-height: 1.5555556;
}
.hover\:prose-lg:hover :where(img):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 1.7777778em;
}
.hover\:prose-lg:hover :where(video):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 1.7777778em;
}
.hover\:prose-lg:hover :where(figure):not(:where([class~='not-prose'] *)) {
  margin-top: 1.7777778em;
  margin-bottom: 1.7777778em;
}
.hover\:prose-lg:hover :where(figure > *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
  margin-bottom: 0;
}
.hover\:prose-lg:hover :where(figcaption):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
  line-height: 1.5;
  margin-top: 1em;
}
.hover\:prose-lg:hover :where(code):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
}
.hover\:prose-lg:hover :where(h2 code):not(:where([class~='not-prose'] *)) {
  font-size: 0.8666667em;
}
.hover\:prose-lg:hover :where(h3 code):not(:where([class~='not-prose'] *)) {
  font-size: 0.875em;
}
.hover\:prose-lg:hover :where(pre):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
  line-height: 1.75;
  margin-top: 2em;
  margin-bottom: 2em;
  border-radius: 0.375rem;
  padding: 1em 1.5em;
}
.hover\:prose-lg:hover :where(ol):not(:where([class~='not-prose'] *)) {
  margin-top: 1.3333333em;
  margin-bottom: 1.3333333em;
  padding-left: 1.5555556em;
}
.hover\:prose-lg:hover :where(ul):not(:where([class~='not-prose'] *)) {
  margin-top: 1.3333333em;
  margin-bottom: 1.3333333em;
  padding-left: 1.5555556em;
}
.hover\:prose-lg:hover :where(li):not(:where([class~='not-prose'] *)) {
  margin-top: 0.6666667em;
  margin-bottom: 0.6666667em;
}
.hover\:prose-lg:hover :where(ol > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.4444444em;
}
.hover\:prose-lg:hover :where(ul > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.4444444em;
}
.hover\:prose-lg:hover
  :where(.hover\:prose-lg:hover > ul > li p):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 0.8888889em;
  margin-bottom: 0.8888889em;
}
.hover\:prose-lg:hover
  :where(.hover\:prose-lg:hover > ul > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.3333333em;
}
.hover\:prose-lg:hover
  :where(.hover\:prose-lg:hover > ul > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.3333333em;
}
.hover\:prose-lg:hover
  :where(.hover\:prose-lg:hover > ol > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.3333333em;
}
.hover\:prose-lg:hover
  :where(.hover\:prose-lg:hover > ol > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.3333333em;
}
.hover\:prose-lg:hover
  :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) {
  margin-top: 0.8888889em;
  margin-bottom: 0.8888889em;
}
.hover\:prose-lg:hover :where(hr):not(:where([class~='not-prose'] *)) {
  margin-top: 3.1111111em;
  margin-bottom: 3.1111111em;
}
.hover\:prose-lg:hover :where(hr + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.hover\:prose-lg:hover :where(h2 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.hover\:prose-lg:hover :where(h3 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.hover\:prose-lg:hover :where(h4 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
.hover\:prose-lg:hover :where(table):not(:where([class~='not-prose'] *)) {
  font-size: 0.8888889em;
  line-height: 1.5;
}
.hover\:prose-lg:hover :where(thead th):not(:where([class~='not-prose'] *)) {
  padding-right: 0.75em;
  padding-bottom: 0.75em;
  padding-left: 0.75em;
}
.hover\:prose-lg:hover
  :where(thead th:first-child):not(:where([class~='not-prose'] *)) {
  padding-left: 0;
}
.hover\:prose-lg:hover
  :where(thead th:last-child):not(:where([class~='not-prose'] *)) {
  padding-right: 0;
}
.hover\:prose-lg:hover
  :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) {
  padding: 0.75em;
}
.hover\:prose-lg:hover
  :where(tbody td:first-child, tfoot td:first-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-left: 0;
}
.hover\:prose-lg:hover
  :where(tbody td:last-child, tfoot td:last-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-right: 0;
}
.hover\:prose-lg:hover
  :where(.hover\:prose-lg:hover > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 0;
}
.hover\:prose-lg:hover
  :where(.hover\:prose-lg:hover > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 0;
}
:is(.dark .dark\:prose) {
  color: var(--tw-prose-body);
  max-width: 65ch;
}
:is(.dark .dark\:prose) :where(p):not(:where([class~='not-prose'] *)) {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
}
:is(.dark .dark\:prose)
  :where([class~='lead']):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-lead);
  font-size: 1.25em;
  line-height: 1.6;
  margin-top: 1.2em;
  margin-bottom: 1.2em;
}
:is(.dark .dark\:prose) :where(a):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-links);
  text-decoration: underline;
  font-weight: 500;
}
:is(.dark .dark\:prose) :where(strong):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-bold);
  font-weight: 600;
}
:is(.dark .dark\:prose) :where(a strong):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose)
  :where(blockquote strong):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose)
  :where(thead th strong):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose) :where(ol):not(:where([class~='not-prose'] *)) {
  list-style-type: decimal;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  padding-left: 1.625em;
}
:is(.dark .dark\:prose)
  :where(ol[type='A']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-alpha;
}
:is(.dark .dark\:prose)
  :where(ol[type='a']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-alpha;
}
:is(.dark .dark\:prose)
  :where(ol[type='A s']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-alpha;
}
:is(.dark .dark\:prose)
  :where(ol[type='a s']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-alpha;
}
:is(.dark .dark\:prose)
  :where(ol[type='I']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-roman;
}
:is(.dark .dark\:prose)
  :where(ol[type='i']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-roman;
}
:is(.dark .dark\:prose)
  :where(ol[type='I s']):not(:where([class~='not-prose'] *)) {
  list-style-type: upper-roman;
}
:is(.dark .dark\:prose)
  :where(ol[type='i s']):not(:where([class~='not-prose'] *)) {
  list-style-type: lower-roman;
}
:is(.dark .dark\:prose)
  :where(ol[type='1']):not(:where([class~='not-prose'] *)) {
  list-style-type: decimal;
}
:is(.dark .dark\:prose) :where(ul):not(:where([class~='not-prose'] *)) {
  list-style-type: disc;
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  padding-left: 1.625em;
}
:is(.dark .dark\:prose)
  :where(ol > li):not(:where([class~='not-prose'] *))::marker {
  font-weight: 400;
  color: var(--tw-prose-counters);
}
:is(.dark .dark\:prose)
  :where(ul > li):not(:where([class~='not-prose'] *))::marker {
  color: var(--tw-prose-bullets);
}
:is(.dark .dark\:prose) :where(hr):not(:where([class~='not-prose'] *)) {
  border-color: var(--tw-prose-hr);
  border-top-width: 1px;
  margin-top: 3em;
  margin-bottom: 3em;
}
:is(.dark .dark\:prose) :where(blockquote):not(:where([class~='not-prose'] *)) {
  font-weight: 500;
  font-style: italic;
  color: var(--tw-prose-quotes);
  border-left-width: 0.25rem;
  border-left-color: var(--tw-prose-quote-borders);
  quotes: '\201C''\201D''\2018''\2019';
  margin-top: 1.6em;
  margin-bottom: 1.6em;
  padding-left: 1em;
}
:is(.dark .dark\:prose)
  :where(blockquote p:first-of-type):not(
    :where([class~='not-prose'] *)
  ):before {
  content: open-quote;
}
:is(.dark .dark\:prose)
  :where(blockquote p:last-of-type):not(:where([class~='not-prose'] *)):after {
  content: close-quote;
}
:is(.dark .dark\:prose) :where(h1):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 800;
  font-size: 2.25em;
  margin-top: 0;
  margin-bottom: 0.8888889em;
  line-height: 1.1111111;
}
:is(.dark .dark\:prose) :where(h1 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 900;
  color: inherit;
}
:is(.dark .dark\:prose) :where(h2):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 700;
  font-size: 1.5em;
  margin-top: 2em;
  margin-bottom: 1em;
  line-height: 1.3333333;
}
:is(.dark .dark\:prose) :where(h2 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 800;
  color: inherit;
}
:is(.dark .dark\:prose) :where(h3):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 600;
  font-size: 1.25em;
  margin-top: 1.6em;
  margin-bottom: 0.6em;
  line-height: 1.6;
}
:is(.dark .dark\:prose) :where(h3 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 700;
  color: inherit;
}
:is(.dark .dark\:prose) :where(h4):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 600;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  line-height: 1.5;
}
:is(.dark .dark\:prose) :where(h4 strong):not(:where([class~='not-prose'] *)) {
  font-weight: 700;
  color: inherit;
}
:is(.dark .dark\:prose) :where(img):not(:where([class~='not-prose'] *)) {
  margin-top: 2em;
  margin-bottom: 2em;
}
:is(.dark .dark\:prose) :where(figure > *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
  margin-bottom: 0;
}
:is(.dark .dark\:prose) :where(figcaption):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-captions);
  font-size: 0.875em;
  line-height: 1.4285714;
  margin-top: 0.8571429em;
}
:is(.dark .dark\:prose) :where(code):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-code);
  font-weight: 600;
  font-size: 0.875em;
}
:is(.dark .dark\:prose)
  :where(code):not(:where([class~='not-prose'] *)):before {
  content: '`';
}
:is(.dark .dark\:prose) :where(code):not(:where([class~='not-prose'] *)):after {
  content: '`';
}
:is(.dark .dark\:prose) :where(a code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose) :where(h1 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose) :where(h2 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
  font-size: 0.875em;
}
:is(.dark .dark\:prose) :where(h3 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
  font-size: 0.9em;
}
:is(.dark .dark\:prose) :where(h4 code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose)
  :where(blockquote code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose)
  :where(thead th code):not(:where([class~='not-prose'] *)) {
  color: inherit;
}
:is(.dark .dark\:prose) :where(pre):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-pre-code);
  background-color: var(--tw-prose-pre-bg);
  overflow-x: auto;
  font-weight: 400;
  font-size: 0.875em;
  line-height: 1.7142857;
  margin-top: 1.7142857em;
  margin-bottom: 1.7142857em;
  border-radius: 0.375rem;
  padding: 0.8571429em 1.1428571em;
}
:is(.dark .dark\:prose) :where(pre code):not(:where([class~='not-prose'] *)) {
  background-color: initial;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-weight: inherit;
  color: inherit;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}
:is(.dark .dark\:prose)
  :where(pre code):not(:where([class~='not-prose'] *)):before {
  content: none;
}
:is(.dark .dark\:prose)
  :where(pre code):not(:where([class~='not-prose'] *)):after {
  content: none;
}
:is(.dark .dark\:prose) :where(table):not(:where([class~='not-prose'] *)) {
  width: 100%;
  table-layout: auto;
  text-align: left;
  margin-top: 2em;
  margin-bottom: 2em;
  font-size: 0.875em;
  line-height: 1.7142857;
}
:is(.dark .dark\:prose) :where(thead):not(:where([class~='not-prose'] *)) {
  border-bottom-width: 1px;
  border-bottom-color: var(--tw-prose-th-borders);
}
:is(.dark .dark\:prose) :where(thead th):not(:where([class~='not-prose'] *)) {
  color: var(--tw-prose-headings);
  font-weight: 600;
  vertical-align: bottom;
  padding-right: 0.5714286em;
  padding-bottom: 0.5714286em;
  padding-left: 0.5714286em;
}
:is(.dark .dark\:prose) :where(tbody tr):not(:where([class~='not-prose'] *)) {
  border-bottom-width: 1px;
  border-bottom-color: var(--tw-prose-td-borders);
}
:is(.dark .dark\:prose)
  :where(tbody tr:last-child):not(:where([class~='not-prose'] *)) {
  border-bottom-width: 0;
}
:is(.dark .dark\:prose) :where(tbody td):not(:where([class~='not-prose'] *)) {
  vertical-align: initial;
}
:is(.dark .dark\:prose) :where(tfoot):not(:where([class~='not-prose'] *)) {
  border-top-width: 1px;
  border-top-color: var(--tw-prose-th-borders);
}
:is(.dark .dark\:prose) :where(tfoot td):not(:where([class~='not-prose'] *)) {
  vertical-align: top;
}
:is(.dark .dark\:prose) {
  --tw-prose-body: #374151;
  --tw-prose-headings: #111827;
  --tw-prose-lead: #4b5563;
  --tw-prose-links: #111827;
  --tw-prose-bold: #111827;
  --tw-prose-counters: #6b7280;
  --tw-prose-bullets: #d1d5db;
  --tw-prose-hr: #e5e7eb;
  --tw-prose-quotes: #111827;
  --tw-prose-quote-borders: #e5e7eb;
  --tw-prose-captions: #6b7280;
  --tw-prose-code: #111827;
  --tw-prose-pre-code: #e5e7eb;
  --tw-prose-pre-bg: #1f2937;
  --tw-prose-th-borders: #d1d5db;
  --tw-prose-td-borders: #e5e7eb;
  --tw-prose-invert-body: #d1d5db;
  --tw-prose-invert-headings: #fff;
  --tw-prose-invert-lead: #9ca3af;
  --tw-prose-invert-links: #fff;
  --tw-prose-invert-bold: #fff;
  --tw-prose-invert-counters: #9ca3af;
  --tw-prose-invert-bullets: #4b5563;
  --tw-prose-invert-hr: #374151;
  --tw-prose-invert-quotes: #f3f4f6;
  --tw-prose-invert-quote-borders: #374151;
  --tw-prose-invert-captions: #9ca3af;
  --tw-prose-invert-code: #fff;
  --tw-prose-invert-pre-code: #d1d5db;
  --tw-prose-invert-pre-bg: #00000080;
  --tw-prose-invert-th-borders: #4b5563;
  --tw-prose-invert-td-borders: #374151;
  font-size: 1rem;
  line-height: 1.75;
}
:is(.dark .dark\:prose) :where(video):not(:where([class~='not-prose'] *)) {
  margin-top: 2em;
  margin-bottom: 2em;
}
:is(.dark .dark\:prose) :where(figure):not(:where([class~='not-prose'] *)) {
  margin-top: 2em;
  margin-bottom: 2em;
}
:is(.dark .dark\:prose) :where(li):not(:where([class~='not-prose'] *)) {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
:is(.dark .dark\:prose) :where(ol > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.375em;
}
:is(.dark .dark\:prose) :where(ul > li):not(:where([class~='not-prose'] *)) {
  padding-left: 0.375em;
}
:is(.dark .dark\:prose)
  :where(:is(.dark .dark\:prose) > ul > li p):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 0.75em;
  margin-bottom: 0.75em;
}
:is(.dark .dark\:prose)
  :where(:is(.dark .dark\:prose) > ul > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.25em;
}
:is(.dark .dark\:prose)
  :where(:is(.dark .dark\:prose) > ul > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.25em;
}
:is(.dark .dark\:prose)
  :where(:is(.dark .dark\:prose) > ol > li > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 1.25em;
}
:is(.dark .dark\:prose)
  :where(:is(.dark .dark\:prose) > ol > li > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 1.25em;
}
:is(.dark .dark\:prose)
  :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) {
  margin-top: 0.75em;
  margin-bottom: 0.75em;
}
:is(.dark .dark\:prose) :where(hr + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
:is(.dark .dark\:prose) :where(h2 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
:is(.dark .dark\:prose) :where(h3 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
:is(.dark .dark\:prose) :where(h4 + *):not(:where([class~='not-prose'] *)) {
  margin-top: 0;
}
:is(.dark .dark\:prose)
  :where(thead th:first-child):not(:where([class~='not-prose'] *)) {
  padding-left: 0;
}
:is(.dark .dark\:prose)
  :where(thead th:last-child):not(:where([class~='not-prose'] *)) {
  padding-right: 0;
}
:is(.dark .dark\:prose)
  :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) {
  padding: 0.5714286em;
}
:is(.dark .dark\:prose)
  :where(tbody td:first-child, tfoot td:first-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-left: 0;
}
:is(.dark .dark\:prose)
  :where(tbody td:last-child, tfoot td:last-child):not(
    :where([class~='not-prose'] *)
  ) {
  padding-right: 0;
}
:is(.dark .dark\:prose)
  :where(:is(.dark .dark\:prose) > :first-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-top: 0;
}
:is(.dark .dark\:prose)
  :where(:is(.dark .dark\:prose) > :last-child):not(
    :where([class~='not-prose'] *)
  ) {
  margin-bottom: 0;
}
@media (min-width: 640px) {
  .sm\:container {
    width: 100%;
  }
  @media (min-width: 640px) {
    .sm\:container {
      max-width: 640px;
    }
  }
  @media (min-width: 768px) {
    .sm\:container {
      max-width: 768px;
    }
  }
  @media (min-width: 1024px) {
    .sm\:container {
      max-width: 1024px;
    }
  }
  @media (min-width: 1280px) {
    .sm\:container {
      max-width: 1280px;
    }
  }
  @media (min-width: 1536px) {
    .sm\:container {
      max-width: 1536px;
    }
  }
  .sm\:prose {
    color: var(--tw-prose-body);
    max-width: 65ch;
  }
  .sm\:prose :where(p):not(:where([class~='not-prose'] *)) {
    margin-top: 1.25em;
    margin-bottom: 1.25em;
  }
  .sm\:prose :where([class~='lead']):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-lead);
    font-size: 1.25em;
    line-height: 1.6;
    margin-top: 1.2em;
    margin-bottom: 1.2em;
  }
  .sm\:prose :where(a):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-links);
    text-decoration: underline;
    font-weight: 500;
  }
  .sm\:prose :where(strong):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-bold);
    font-weight: 600;
  }
  .sm\:prose :where(a strong):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(blockquote strong):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(thead th strong):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(ol):not(:where([class~='not-prose'] *)) {
    list-style-type: decimal;
    margin-top: 1.25em;
    margin-bottom: 1.25em;
    padding-left: 1.625em;
  }
  .sm\:prose :where(ol[type='A']):not(:where([class~='not-prose'] *)) {
    list-style-type: upper-alpha;
  }
  .sm\:prose :where(ol[type='a']):not(:where([class~='not-prose'] *)) {
    list-style-type: lower-alpha;
  }
  .sm\:prose :where(ol[type='A s']):not(:where([class~='not-prose'] *)) {
    list-style-type: upper-alpha;
  }
  .sm\:prose :where(ol[type='a s']):not(:where([class~='not-prose'] *)) {
    list-style-type: lower-alpha;
  }
  .sm\:prose :where(ol[type='I']):not(:where([class~='not-prose'] *)) {
    list-style-type: upper-roman;
  }
  .sm\:prose :where(ol[type='i']):not(:where([class~='not-prose'] *)) {
    list-style-type: lower-roman;
  }
  .sm\:prose :where(ol[type='I s']):not(:where([class~='not-prose'] *)) {
    list-style-type: upper-roman;
  }
  .sm\:prose :where(ol[type='i s']):not(:where([class~='not-prose'] *)) {
    list-style-type: lower-roman;
  }
  .sm\:prose :where(ol[type='1']):not(:where([class~='not-prose'] *)) {
    list-style-type: decimal;
  }
  .sm\:prose :where(ul):not(:where([class~='not-prose'] *)) {
    list-style-type: disc;
    margin-top: 1.25em;
    margin-bottom: 1.25em;
    padding-left: 1.625em;
  }
  .sm\:prose :where(ol > li):not(:where([class~='not-prose'] *))::marker {
    font-weight: 400;
    color: var(--tw-prose-counters);
  }
  .sm\:prose :where(ul > li):not(:where([class~='not-prose'] *))::marker {
    color: var(--tw-prose-bullets);
  }
  .sm\:prose :where(hr):not(:where([class~='not-prose'] *)) {
    border-color: var(--tw-prose-hr);
    border-top-width: 1px;
    margin-top: 3em;
    margin-bottom: 3em;
  }
  .sm\:prose :where(blockquote):not(:where([class~='not-prose'] *)) {
    font-weight: 500;
    font-style: italic;
    color: var(--tw-prose-quotes);
    border-left-width: 0.25rem;
    border-left-color: var(--tw-prose-quote-borders);
    quotes: '\201C''\201D''\2018''\2019';
    margin-top: 1.6em;
    margin-bottom: 1.6em;
    padding-left: 1em;
  }
  .sm\:prose
    :where(blockquote p:first-of-type):not(
      :where([class~='not-prose'] *)
    ):before {
    content: open-quote;
  }
  .sm\:prose
    :where(blockquote p:last-of-type):not(
      :where([class~='not-prose'] *)
    ):after {
    content: close-quote;
  }
  .sm\:prose :where(h1):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-headings);
    font-weight: 800;
    font-size: 2.25em;
    margin-top: 0;
    margin-bottom: 0.8888889em;
    line-height: 1.1111111;
  }
  .sm\:prose :where(h1 strong):not(:where([class~='not-prose'] *)) {
    font-weight: 900;
    color: inherit;
  }
  .sm\:prose :where(h2):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-headings);
    font-weight: 700;
    font-size: 1.5em;
    margin-top: 2em;
    margin-bottom: 1em;
    line-height: 1.3333333;
  }
  .sm\:prose :where(h2 strong):not(:where([class~='not-prose'] *)) {
    font-weight: 800;
    color: inherit;
  }
  .sm\:prose :where(h3):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-headings);
    font-weight: 600;
    font-size: 1.25em;
    margin-top: 1.6em;
    margin-bottom: 0.6em;
    line-height: 1.6;
  }
  .sm\:prose :where(h3 strong):not(:where([class~='not-prose'] *)) {
    font-weight: 700;
    color: inherit;
  }
  .sm\:prose :where(h4):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-headings);
    font-weight: 600;
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    line-height: 1.5;
  }
  .sm\:prose :where(h4 strong):not(:where([class~='not-prose'] *)) {
    font-weight: 700;
    color: inherit;
  }
  .sm\:prose :where(img):not(:where([class~='not-prose'] *)) {
    margin-top: 2em;
    margin-bottom: 2em;
  }
  .sm\:prose :where(figure > *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
    margin-bottom: 0;
  }
  .sm\:prose :where(figcaption):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-captions);
    font-size: 0.875em;
    line-height: 1.4285714;
    margin-top: 0.8571429em;
  }
  .sm\:prose :where(code):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-code);
    font-weight: 600;
    font-size: 0.875em;
  }
  .sm\:prose :where(code):not(:where([class~='not-prose'] *)):before {
    content: '`';
  }
  .sm\:prose :where(code):not(:where([class~='not-prose'] *)):after {
    content: '`';
  }
  .sm\:prose :where(a code):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(h1 code):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(h2 code):not(:where([class~='not-prose'] *)) {
    color: inherit;
    font-size: 0.875em;
  }
  .sm\:prose :where(h3 code):not(:where([class~='not-prose'] *)) {
    color: inherit;
    font-size: 0.9em;
  }
  .sm\:prose :where(h4 code):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(blockquote code):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(thead th code):not(:where([class~='not-prose'] *)) {
    color: inherit;
  }
  .sm\:prose :where(pre):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-pre-code);
    background-color: var(--tw-prose-pre-bg);
    overflow-x: auto;
    font-weight: 400;
    font-size: 0.875em;
    line-height: 1.7142857;
    margin-top: 1.7142857em;
    margin-bottom: 1.7142857em;
    border-radius: 0.375rem;
    padding: 0.8571429em 1.1428571em;
  }
  .sm\:prose :where(pre code):not(:where([class~='not-prose'] *)) {
    background-color: initial;
    border-width: 0;
    border-radius: 0;
    padding: 0;
    font-weight: inherit;
    color: inherit;
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
  }
  .sm\:prose :where(pre code):not(:where([class~='not-prose'] *)):before {
    content: none;
  }
  .sm\:prose :where(pre code):not(:where([class~='not-prose'] *)):after {
    content: none;
  }
  .sm\:prose :where(table):not(:where([class~='not-prose'] *)) {
    width: 100%;
    table-layout: auto;
    text-align: left;
    margin-top: 2em;
    margin-bottom: 2em;
    font-size: 0.875em;
    line-height: 1.7142857;
  }
  .sm\:prose :where(thead):not(:where([class~='not-prose'] *)) {
    border-bottom-width: 1px;
    border-bottom-color: var(--tw-prose-th-borders);
  }
  .sm\:prose :where(thead th):not(:where([class~='not-prose'] *)) {
    color: var(--tw-prose-headings);
    font-weight: 600;
    vertical-align: bottom;
    padding-right: 0.5714286em;
    padding-bottom: 0.5714286em;
    padding-left: 0.5714286em;
  }
  .sm\:prose :where(tbody tr):not(:where([class~='not-prose'] *)) {
    border-bottom-width: 1px;
    border-bottom-color: var(--tw-prose-td-borders);
  }
  .sm\:prose :where(tbody tr:last-child):not(:where([class~='not-prose'] *)) {
    border-bottom-width: 0;
  }
  .sm\:prose :where(tbody td):not(:where([class~='not-prose'] *)) {
    vertical-align: initial;
  }
  .sm\:prose :where(tfoot):not(:where([class~='not-prose'] *)) {
    border-top-width: 1px;
    border-top-color: var(--tw-prose-th-borders);
  }
  .sm\:prose :where(tfoot td):not(:where([class~='not-prose'] *)) {
    vertical-align: top;
  }
  .sm\:prose {
    --tw-prose-body: #374151;
    --tw-prose-headings: #111827;
    --tw-prose-lead: #4b5563;
    --tw-prose-links: #111827;
    --tw-prose-bold: #111827;
    --tw-prose-counters: #6b7280;
    --tw-prose-bullets: #d1d5db;
    --tw-prose-hr: #e5e7eb;
    --tw-prose-quotes: #111827;
    --tw-prose-quote-borders: #e5e7eb;
    --tw-prose-captions: #6b7280;
    --tw-prose-code: #111827;
    --tw-prose-pre-code: #e5e7eb;
    --tw-prose-pre-bg: #1f2937;
    --tw-prose-th-borders: #d1d5db;
    --tw-prose-td-borders: #e5e7eb;
    --tw-prose-invert-body: #d1d5db;
    --tw-prose-invert-headings: #fff;
    --tw-prose-invert-lead: #9ca3af;
    --tw-prose-invert-links: #fff;
    --tw-prose-invert-bold: #fff;
    --tw-prose-invert-counters: #9ca3af;
    --tw-prose-invert-bullets: #4b5563;
    --tw-prose-invert-hr: #374151;
    --tw-prose-invert-quotes: #f3f4f6;
    --tw-prose-invert-quote-borders: #374151;
    --tw-prose-invert-captions: #9ca3af;
    --tw-prose-invert-code: #fff;
    --tw-prose-invert-pre-code: #d1d5db;
    --tw-prose-invert-pre-bg: #00000080;
    --tw-prose-invert-th-borders: #4b5563;
    --tw-prose-invert-td-borders: #374151;
    font-size: 1rem;
    line-height: 1.75;
  }
  .sm\:prose :where(video):not(:where([class~='not-prose'] *)) {
    margin-top: 2em;
    margin-bottom: 2em;
  }
  .sm\:prose :where(figure):not(:where([class~='not-prose'] *)) {
    margin-top: 2em;
    margin-bottom: 2em;
  }
  .sm\:prose :where(li):not(:where([class~='not-prose'] *)) {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
  }
  .sm\:prose :where(ol > li):not(:where([class~='not-prose'] *)) {
    padding-left: 0.375em;
  }
  .sm\:prose :where(ul > li):not(:where([class~='not-prose'] *)) {
    padding-left: 0.375em;
  }
  .sm\:prose
    :where(.sm\:prose > ul > li p):not(:where([class~='not-prose'] *)) {
    margin-top: 0.75em;
    margin-bottom: 0.75em;
  }
  .sm\:prose
    :where(.sm\:prose > ul > li > :first-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-top: 1.25em;
  }
  .sm\:prose
    :where(.sm\:prose > ul > li > :last-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-bottom: 1.25em;
  }
  .sm\:prose
    :where(.sm\:prose > ol > li > :first-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-top: 1.25em;
  }
  .sm\:prose
    :where(.sm\:prose > ol > li > :last-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-bottom: 1.25em;
  }
  .sm\:prose
    :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) {
    margin-top: 0.75em;
    margin-bottom: 0.75em;
  }
  .sm\:prose :where(hr + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .sm\:prose :where(h2 + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .sm\:prose :where(h3 + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .sm\:prose :where(h4 + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .sm\:prose :where(thead th:first-child):not(:where([class~='not-prose'] *)) {
    padding-left: 0;
  }
  .sm\:prose :where(thead th:last-child):not(:where([class~='not-prose'] *)) {
    padding-right: 0;
  }
  .sm\:prose :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) {
    padding: 0.5714286em;
  }
  .sm\:prose
    :where(tbody td:first-child, tfoot td:first-child):not(
      :where([class~='not-prose'] *)
    ) {
    padding-left: 0;
  }
  .sm\:prose
    :where(tbody td:last-child, tfoot td:last-child):not(
      :where([class~='not-prose'] *)
    ) {
    padding-right: 0;
  }
  .sm\:prose
    :where(.sm\:prose > :first-child):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .sm\:prose
    :where(.sm\:prose > :last-child):not(:where([class~='not-prose'] *)) {
    margin-bottom: 0;
  }
}
@media (min-width: 1024px) {
  .lg\:prose-lg {
    font-size: 1.125rem;
    line-height: 1.7777778;
  }
  .lg\:prose-lg :where(p):not(:where([class~='not-prose'] *)) {
    margin-top: 1.3333333em;
    margin-bottom: 1.3333333em;
  }
  .lg\:prose-lg :where([class~='lead']):not(:where([class~='not-prose'] *)) {
    font-size: 1.2222222em;
    line-height: 1.4545455;
    margin-top: 1.0909091em;
    margin-bottom: 1.0909091em;
  }
  .lg\:prose-lg :where(blockquote):not(:where([class~='not-prose'] *)) {
    margin-top: 1.6666667em;
    margin-bottom: 1.6666667em;
    padding-left: 1em;
  }
  .lg\:prose-lg :where(h1):not(:where([class~='not-prose'] *)) {
    font-size: 2.6666667em;
    margin-top: 0;
    margin-bottom: 0.8333333em;
    line-height: 1;
  }
  .lg\:prose-lg :where(h2):not(:where([class~='not-prose'] *)) {
    font-size: 1.6666667em;
    margin-top: 1.8666667em;
    margin-bottom: 1.0666667em;
    line-height: 1.3333333;
  }
  .lg\:prose-lg :where(h3):not(:where([class~='not-prose'] *)) {
    font-size: 1.3333333em;
    margin-top: 1.6666667em;
    margin-bottom: 0.6666667em;
    line-height: 1.5;
  }
  .lg\:prose-lg :where(h4):not(:where([class~='not-prose'] *)) {
    margin-top: 1.7777778em;
    margin-bottom: 0.4444444em;
    line-height: 1.5555556;
  }
  .lg\:prose-lg :where(img):not(:where([class~='not-prose'] *)) {
    margin-top: 1.7777778em;
    margin-bottom: 1.7777778em;
  }
  .lg\:prose-lg :where(video):not(:where([class~='not-prose'] *)) {
    margin-top: 1.7777778em;
    margin-bottom: 1.7777778em;
  }
  .lg\:prose-lg :where(figure):not(:where([class~='not-prose'] *)) {
    margin-top: 1.7777778em;
    margin-bottom: 1.7777778em;
  }
  .lg\:prose-lg :where(figure > *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
    margin-bottom: 0;
  }
  .lg\:prose-lg :where(figcaption):not(:where([class~='not-prose'] *)) {
    font-size: 0.8888889em;
    line-height: 1.5;
    margin-top: 1em;
  }
  .lg\:prose-lg :where(code):not(:where([class~='not-prose'] *)) {
    font-size: 0.8888889em;
  }
  .lg\:prose-lg :where(h2 code):not(:where([class~='not-prose'] *)) {
    font-size: 0.8666667em;
  }
  .lg\:prose-lg :where(h3 code):not(:where([class~='not-prose'] *)) {
    font-size: 0.875em;
  }
  .lg\:prose-lg :where(pre):not(:where([class~='not-prose'] *)) {
    font-size: 0.8888889em;
    line-height: 1.75;
    margin-top: 2em;
    margin-bottom: 2em;
    border-radius: 0.375rem;
    padding: 1em 1.5em;
  }
  .lg\:prose-lg :where(ol):not(:where([class~='not-prose'] *)) {
    margin-top: 1.3333333em;
    margin-bottom: 1.3333333em;
    padding-left: 1.5555556em;
  }
  .lg\:prose-lg :where(ul):not(:where([class~='not-prose'] *)) {
    margin-top: 1.3333333em;
    margin-bottom: 1.3333333em;
    padding-left: 1.5555556em;
  }
  .lg\:prose-lg :where(li):not(:where([class~='not-prose'] *)) {
    margin-top: 0.6666667em;
    margin-bottom: 0.6666667em;
  }
  .lg\:prose-lg :where(ol > li):not(:where([class~='not-prose'] *)) {
    padding-left: 0.4444444em;
  }
  .lg\:prose-lg :where(ul > li):not(:where([class~='not-prose'] *)) {
    padding-left: 0.4444444em;
  }
  .lg\:prose-lg
    :where(.lg\:prose-lg > ul > li p):not(:where([class~='not-prose'] *)) {
    margin-top: 0.8888889em;
    margin-bottom: 0.8888889em;
  }
  .lg\:prose-lg
    :where(.lg\:prose-lg > ul > li > :first-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-top: 1.3333333em;
  }
  .lg\:prose-lg
    :where(.lg\:prose-lg > ul > li > :last-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-bottom: 1.3333333em;
  }
  .lg\:prose-lg
    :where(.lg\:prose-lg > ol > li > :first-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-top: 1.3333333em;
  }
  .lg\:prose-lg
    :where(.lg\:prose-lg > ol > li > :last-child):not(
      :where([class~='not-prose'] *)
    ) {
    margin-bottom: 1.3333333em;
  }
  .lg\:prose-lg
    :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) {
    margin-top: 0.8888889em;
    margin-bottom: 0.8888889em;
  }
  .lg\:prose-lg :where(hr):not(:where([class~='not-prose'] *)) {
    margin-top: 3.1111111em;
    margin-bottom: 3.1111111em;
  }
  .lg\:prose-lg :where(hr + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .lg\:prose-lg :where(h2 + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .lg\:prose-lg :where(h3 + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .lg\:prose-lg :where(h4 + *):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .lg\:prose-lg :where(table):not(:where([class~='not-prose'] *)) {
    font-size: 0.8888889em;
    line-height: 1.5;
  }
  .lg\:prose-lg :where(thead th):not(:where([class~='not-prose'] *)) {
    padding-right: 0.75em;
    padding-bottom: 0.75em;
    padding-left: 0.75em;
  }
  .lg\:prose-lg
    :where(thead th:first-child):not(:where([class~='not-prose'] *)) {
    padding-left: 0;
  }
  .lg\:prose-lg
    :where(thead th:last-child):not(:where([class~='not-prose'] *)) {
    padding-right: 0;
  }
  .lg\:prose-lg :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) {
    padding: 0.75em;
  }
  .lg\:prose-lg
    :where(tbody td:first-child, tfoot td:first-child):not(
      :where([class~='not-prose'] *)
    ) {
    padding-left: 0;
  }
  .lg\:prose-lg
    :where(tbody td:last-child, tfoot td:last-child):not(
      :where([class~='not-prose'] *)
    ) {
    padding-right: 0;
  }
  .lg\:prose-lg
    :where(.lg\:prose-lg > :first-child):not(:where([class~='not-prose'] *)) {
    margin-top: 0;
  }
  .lg\:prose-lg
    :where(.lg\:prose-lg > :last-child):not(:where([class~='not-prose'] *)) {
    margin-bottom: 0;
  }
}
.last\:me-0:last-child {
  -webkit-margin-end: 0;
  margin-inline-end: 0;
}
.hover\:font-bold:hover {
  font-weight: 700;
}
.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}
.hover\:shadow-lg:hover {
  --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
    0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.before\:hover\:text-center:hover:before,
.hover\:before\:text-center:hover:before {
  content: var(--tw-content);
  text-align: center;
}
.focus\:outline-none:focus {
  outline: 2px solid #0000;
  outline-offset: 2px;
}
.focus\:hover\:text-center:hover:focus,
.hover\:focus\:text-center:focus:hover {
  text-align: center;
}
.prose-headings\:text-ellipsis
  :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~='not-prose'] *))) {
  text-overflow: ellipsis;
}
.prose-headings\:underline
  :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~='not-prose'] *))) {
  text-decoration-line: underline;
}
.prose-h1\:text-center :is(:where(h1):not(:where([class~='not-prose'] *))) {
  text-align: center;
}
.prose-h1\:text-3xl :is(:where(h1):not(:where([class~='not-prose'] *))) {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.prose-h2\:text-2xl :is(:where(h2):not(:where([class~='not-prose'] *))) {
  font-size: 1.5rem;
  line-height: 2rem;
}
.prose-h3\:text-xl :is(:where(h3):not(:where([class~='not-prose'] *))) {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.prose-h4\:text-lg :is(:where(h4):not(:where([class~='not-prose'] *))) {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.prose-h5\:text-sm :is(:where(h5):not(:where([class~='not-prose'] *))) {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.prose-h6\:text-xl :is(:where(h6):not(:where([class~='not-prose'] *))) {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.prose-p\:text-gray-700 :is(:where(p):not(:where([class~='not-prose'] *))) {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}
.prose-a\:font-bold :is(:where(a):not(:where([class~='not-prose'] *))) {
  font-weight: 700;
}
.prose-blockquote\:italic
  :is(:where(blockquote):not(:where([class~='not-prose'] *))) {
  font-style: italic;
}
.prose-figure\:mx-auto :is(:where(figure):not(:where([class~='not-prose'] *))) {
  margin-left: auto;
  margin-right: auto;
}
.prose-figcaption\:opacity-75
  :is(:where(figcaption):not(:where([class~='not-prose'] *))) {
  opacity: 0.75;
}
.prose-strong\:font-medium
  :is(:where(strong):not(:where([class~='not-prose'] *))) {
  font-weight: 500;
}
.prose-em\:italic :is(:where(em):not(:where([class~='not-prose'] *))) {
  font-style: italic;
}
.prose-ol\:pl-6 :is(:where(ol):not(:where([class~='not-prose'] *))) {
  padding-left: 1.5rem;
}
.prose-ul\:pl-8 :is(:where(ul):not(:where([class~='not-prose'] *))) {
  padding-left: 2rem;
}
.prose-li\:my-4 :is(:where(li):not(:where([class~='not-prose'] *))) {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.prose-table\:my-8 :is(:where(table):not(:where([class~='not-prose'] *))) {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.prose-thead\:border-red-300
  :is(:where(thead):not(:where([class~='not-prose'] *))) {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity));
}
.prose-tr\:border-red-200 :is(:where(tr):not(:where([class~='not-prose'] *))) {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity));
}
.prose-th\:text-left :is(:where(th):not(:where([class~='not-prose'] *))) {
  text-align: left;
}
.prose-img\:rounded-lg :is(:where(img):not(:where([class~='not-prose'] *))) {
  border-radius: 0.5rem;
}
.prose-video\:my-12 :is(:where(video):not(:where([class~='not-prose'] *))) {
  margin-top: 3rem;
  margin-bottom: 3rem;
}
.prose-hr\:border-t-2 :is(:where(hr):not(:where([class~='not-prose'] *))) {
  border-top-width: 2px;
}
.prose-lead\:italic
  :is(:where([class~='lead']):not(:where([class~='not-prose'] *))) {
  font-style: italic;
}
:is(.dark .dark\:bg-gray-600) {
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity));
}
:is(.dark .dark\:bg-gray-800) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity));
}
:is(.dark .dark\:text-white) {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}
@media (min-width: 640px) {
  .sm\:col-span-10 {
    grid-column: span 10 / span 10;
  }
  .sm\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .sm\:col-span-3 {
    grid-column: span 3 / span 3;
  }
  .sm\:mb-2 {
    margin-bottom: 0.5rem;
  }
  .sm\:flex {
    display: flex;
  }
  .sm\:grid {
    display: grid;
  }
  .sm\:hidden {
    display: none;
  }
  .sm\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .sm\:flex-row {
    flex-direction: row;
  }
  .sm\:items-center {
    align-items: center;
  }
  .sm\:justify-between {
    justify-content: space-between;
  }
  .sm\:gap-4 {
    gap: 1rem;
  }
  .sm\:underline {
    text-decoration-line: underline;
  }
  .sm\:ms-1 {
    -webkit-margin-start: 0.25rem;
    margin-inline-start: 0.25rem;
  }
}
@media (min-width: 768px) {
  .md\:min-h-96 {
    min-height: 24rem;
  }
}
@media (min-width: 1024px) {
  .lg\:sticky {
    position: sticky;
  }
  .lg\:col-span-4 {
    grid-column: span 4 / span 4;
  }
  .lg\:col-span-8 {
    grid-column: span 8 / span 8;
  }
  .lg\:my-4 {
    margin-top: 1rem;
  }
  .lg\:mb-4,
  .lg\:my-4 {
    margin-bottom: 1rem;
  }
  .lg\:block {
    display: block;
  }
  .lg\:flex {
    display: flex;
  }
  .lg\:hidden {
    display: none;
  }
  .lg\:flex-none {
    flex: none;
  }
  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:items-center {
    align-items: center;
  }
  .lg\:justify-start {
    justify-content: flex-start;
  }
  .lg\:border-r {
    border-right-width: 1px;
  }
  .lg\:pl-3 {
    padding-left: 0.75rem;
  }
  .lg\:pr-3 {
    padding-right: 0.75rem;
  }
  .lg\:pt-3 {
    padding-top: 0.75rem;
  }
  .lg\:pt-3\.5 {
    padding-top: 0.875rem;
  }
  .lg\:shadow-lg {
    --tw-shadow: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
      0 4px 6px -4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
      var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  .lg\:ps-2 {
    -webkit-padding-start: 0.5rem;
    padding-inline-start: 0.5rem;
  }
  .lg\:me-0 {
    -webkit-margin-end: 0;
    margin-inline-end: 0;
  }
  .lg\:ms-2 {
    -webkit-margin-start: 0.5rem;
    margin-inline-start: 0.5rem;
  }
  .lg\:me-2 {
    -webkit-margin-end: 0.5rem;
    margin-inline-end: 0.5rem;
  }
  .lg\:ms-4 {
    -webkit-margin-start: 1rem;
    margin-inline-start: 1rem;
  }
  .lg\:ms-auto {
    -webkit-margin-start: auto;
    margin-inline-start: auto;
  }
  .lg\:border-s {
    border-inline-start-width: 1px;
  }
  :is(.dark .dark\:lg\:hover\:\[paint-order\:markers\]:hover) {
    paint-order: markers;
  }
}

.tmla-mask,.touch-menu-la,.touch-menu-la .tmla-handle {
    height: 100%;
    position: absolute;
    top: 0
}

.touch-menu-la {
    width: 280px;
    left: -280px;
    background-color: #fff
}

.touch-menu-la.opened {
    transition: all .3s ease!important;
    -webkit-transition: all .3s ease!important;
    -moz-transition: all .3s ease!important
}

.touch-menu-la.closed {
    transition: all .3s ease!important;
    -webkit-transition: all .3s ease!important;
    -moz-transition: all .3s ease!important;
    transform: translate3d(0,0,0)!important;
    -webkit-transform: translate3d(0,0,0)!important;
    -moz-transform: translate3d(0,0,0)!important
}

.tmla-mask {
    width: 100%;
    left: 0;
    background-color: #000;
    opacity: 0;
    z-index: -1
}

/*!
 * Chart.js v2.9.4
 * https://www.chartjs.org
 * (c) 2020 Chart.js Contributors
 * Released under the MIT License
 */
!function(t, e) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = e(function() {
        try {
            return require("moment")
        } catch (t) {}
    }()) : "function" == typeof define && define.amd ? define(["require"], (function(t) {
        return e(function() {
            try {
                return t("moment")
            } catch (t) {}
        }())
    }
    )) : (t = t || self).Chart = e(t.moment)
}(this, (function(t) {
    "use strict";
    t = t && t.hasOwnProperty("default") ? t.default : t;
    var e = {
        aliceblue: [240, 248, 255],
        antiquewhite: [250, 235, 215],
        aqua: [0, 255, 255],
        aquamarine: [127, 255, 212],
        azure: [240, 255, 255],
        beige: [245, 245, 220],
        bisque: [255, 228, 196],
        black: [0, 0, 0],
        blanchedalmond: [255, 235, 205],
        blue: [0, 0, 255],
        blueviolet: [138, 43, 226],
        brown: [165, 42, 42],
        burlywood: [222, 184, 135],
        cadetblue: [95, 158, 160],
        chartreuse: [127, 255, 0],
        chocolate: [210, 105, 30],
        coral: [255, 127, 80],
        cornflowerblue: [100, 149, 237],
        cornsilk: [255, 248, 220],
        crimson: [220, 20, 60],
        cyan: [0, 255, 255],
        darkblue: [0, 0, 139],
        darkcyan: [0, 139, 139],
        darkgoldenrod: [184, 134, 11],
        darkgray: [169, 169, 169],
        darkgreen: [0, 100, 0],
        darkgrey: [169, 169, 169],
        darkkhaki: [189, 183, 107],
        darkmagenta: [139, 0, 139],
        darkolivegreen: [85, 107, 47],
        darkorange: [255, 140, 0],
        darkorchid: [153, 50, 204],
        darkred: [139, 0, 0],
        darksalmon: [233, 150, 122],
        darkseagreen: [143, 188, 143],
        darkslateblue: [72, 61, 139],
        darkslategray: [47, 79, 79],
        darkslategrey: [47, 79, 79],
        darkturquoise: [0, 206, 209],
        darkviolet: [148, 0, 211],
        deeppink: [255, 20, 147],
        deepskyblue: [0, 191, 255],
        dimgray: [105, 105, 105],
        dimgrey: [105, 105, 105],
        dodgerblue: [30, 144, 255],
        firebrick: [178, 34, 34],
        floralwhite: [255, 250, 240],
        forestgreen: [34, 139, 34],
        fuchsia: [255, 0, 255],
        gainsboro: [220, 220, 220],
        ghostwhite: [248, 248, 255],
        gold: [255, 215, 0],
        goldenrod: [218, 165, 32],
        gray: [128, 128, 128],
        green: [0, 128, 0],
        greenyellow: [173, 255, 47],
        grey: [128, 128, 128],
        honeydew: [240, 255, 240],
        hotpink: [255, 105, 180],
        indianred: [205, 92, 92],
        indigo: [75, 0, 130],
        ivory: [255, 255, 240],
        khaki: [240, 230, 140],
        lavender: [230, 230, 250],
        lavenderblush: [255, 240, 245],
        lawngreen: [124, 252, 0],
        lemonchiffon: [255, 250, 205],
        lightblue: [173, 216, 230],
        lightcoral: [240, 128, 128],
        lightcyan: [224, 255, 255],
        lightgoldenrodyellow: [250, 250, 210],
        lightgray: [211, 211, 211],
        lightgreen: [144, 238, 144],
        lightgrey: [211, 211, 211],
        lightpink: [255, 182, 193],
        lightsalmon: [255, 160, 122],
        lightseagreen: [32, 178, 170],
        lightskyblue: [135, 206, 250],
        lightslategray: [119, 136, 153],
        lightslategrey: [119, 136, 153],
        lightsteelblue: [176, 196, 222],
        lightyellow: [255, 255, 224],
        lime: [0, 255, 0],
        limegreen: [50, 205, 50],
        linen: [250, 240, 230],
        magenta: [255, 0, 255],
        maroon: [128, 0, 0],
        mediumaquamarine: [102, 205, 170],
        mediumblue: [0, 0, 205],
        mediumorchid: [186, 85, 211],
        mediumpurple: [147, 112, 219],
        mediumseagreen: [60, 179, 113],
        mediumslateblue: [123, 104, 238],
        mediumspringgreen: [0, 250, 154],
        mediumturquoise: [72, 209, 204],
        mediumvioletred: [199, 21, 133],
        midnightblue: [25, 25, 112],
        mintcream: [245, 255, 250],
        mistyrose: [255, 228, 225],
        moccasin: [255, 228, 181],
        navajowhite: [255, 222, 173],
        navy: [0, 0, 128],
        oldlace: [253, 245, 230],
        olive: [128, 128, 0],
        olivedrab: [107, 142, 35],
        orange: [255, 165, 0],
        orangered: [255, 69, 0],
        orchid: [218, 112, 214],
        palegoldenrod: [238, 232, 170],
        palegreen: [152, 251, 152],
        paleturquoise: [175, 238, 238],
        palevioletred: [219, 112, 147],
        papayawhip: [255, 239, 213],
        peachpuff: [255, 218, 185],
        peru: [205, 133, 63],
        pink: [255, 192, 203],
        plum: [221, 160, 221],
        powderblue: [176, 224, 230],
        purple: [128, 0, 128],
        rebeccapurple: [102, 51, 153],
        red: [255, 0, 0],
        rosybrown: [188, 143, 143],
        royalblue: [65, 105, 225],
        saddlebrown: [139, 69, 19],
        salmon: [250, 128, 114],
        sandybrown: [244, 164, 96],
        seagreen: [46, 139, 87],
        seashell: [255, 245, 238],
        sienna: [160, 82, 45],
        silver: [192, 192, 192],
        skyblue: [135, 206, 235],
        slateblue: [106, 90, 205],
        slategray: [112, 128, 144],
        slategrey: [112, 128, 144],
        snow: [255, 250, 250],
        springgreen: [0, 255, 127],
        steelblue: [70, 130, 180],
        tan: [210, 180, 140],
        teal: [0, 128, 128],
        thistle: [216, 191, 216],
        tomato: [255, 99, 71],
        turquoise: [64, 224, 208],
        violet: [238, 130, 238],
        wheat: [245, 222, 179],
        white: [255, 255, 255],
        whitesmoke: [245, 245, 245],
        yellow: [255, 255, 0],
        yellowgreen: [154, 205, 50]
    }
      , n = function(t, e) {
        return t(e = {
            exports: {}
        }, e.exports),
        e.exports
    }((function(t) {
        var n = {};
        for (var i in e)
            e.hasOwnProperty(i) && (n[e[i]] = i);
        var a = t.exports = {
            rgb: {
                channels: 3,
                labels: "rgb"
            },
            hsl: {
                channels: 3,
                labels: "hsl"
            },
            hsv: {
                channels: 3,
                labels: "hsv"
            },
            hwb: {
                channels: 3,
                labels: "hwb"
            },
            cmyk: {
                channels: 4,
                labels: "cmyk"
            },
            xyz: {
                channels: 3,
                labels: "xyz"
            },
            lab: {
                channels: 3,
                labels: "lab"
            },
            lch: {
                channels: 3,
                labels: "lch"
            },
            hex: {
                channels: 1,
                labels: ["hex"]
            },
            keyword: {
                channels: 1,
                labels: ["keyword"]
            },
            ansi16: {
                channels: 1,
                labels: ["ansi16"]
            },
            ansi256: {
                channels: 1,
                labels: ["ansi256"]
            },
            hcg: {
                channels: 3,
                labels: ["h", "c", "g"]
            },
            apple: {
                channels: 3,
                labels: ["r16", "g16", "b16"]
            },
            gray: {
                channels: 1,
                labels: ["gray"]
            }
        };
        for (var r in a)
            if (a.hasOwnProperty(r)) {
                if (!("channels"in a[r]))
                    throw new Error("missing channels property: " + r);
                if (!("labels"in a[r]))
                    throw new Error("missing channel labels property: " + r);
                if (a[r].labels.length !== a[r].channels)
                    throw new Error("channel and label counts mismatch: " + r);
                var o = a[r].channels
                  , s = a[r].labels;
                delete a[r].channels,
                delete a[r].labels,
                Object.defineProperty(a[r], "channels", {
                    value: o
                }),
                Object.defineProperty(a[r], "labels", {
                    value: s
                })
            }
        a.rgb.hsl = function(t) {
            var e, n, i = t[0] / 255, a = t[1] / 255, r = t[2] / 255, o = Math.min(i, a, r), s = Math.max(i, a, r), l = s - o;
            return s === o ? e = 0 : i === s ? e = (a - r) / l : a === s ? e = 2 + (r - i) / l : r === s && (e = 4 + (i - a) / l),
            (e = Math.min(60 * e, 360)) < 0 && (e += 360),
            n = (o + s) / 2,
            [e, 100 * (s === o ? 0 : n <= .5 ? l / (s + o) : l / (2 - s - o)), 100 * n]
        }
        ,
        a.rgb.hsv = function(t) {
            var e, n, i, a, r, o = t[0] / 255, s = t[1] / 255, l = t[2] / 255, u = Math.max(o, s, l), d = u - Math.min(o, s, l), h = function(t) {
                return (u - t) / 6 / d + .5
            };
            return 0 === d ? a = r = 0 : (r = d / u,
            e = h(o),
            n = h(s),
            i = h(l),
            o === u ? a = i - n : s === u ? a = 1 / 3 + e - i : l === u && (a = 2 / 3 + n - e),
            a < 0 ? a += 1 : a > 1 && (a -= 1)),
            [360 * a, 100 * r, 100 * u]
        }
        ,
        a.rgb.hwb = function(t) {
            var e = t[0]
              , n = t[1]
              , i = t[2];
            return [a.rgb.hsl(t)[0], 100 * (1 / 255 * Math.min(e, Math.min(n, i))), 100 * (i = 1 - 1 / 255 * Math.max(e, Math.max(n, i)))]
        }
        ,
        a.rgb.cmyk = function(t) {
            var e, n = t[0] / 255, i = t[1] / 255, a = t[2] / 255;
            return [100 * ((1 - n - (e = Math.min(1 - n, 1 - i, 1 - a))) / (1 - e) || 0), 100 * ((1 - i - e) / (1 - e) || 0), 100 * ((1 - a - e) / (1 - e) || 0), 100 * e]
        }
        ,
        a.rgb.keyword = function(t) {
            var i = n[t];
            if (i)
                return i;
            var a, r, o, s = 1 / 0;
            for (var l in e)
                if (e.hasOwnProperty(l)) {
                    var u = e[l]
                      , d = (r = t,
                    o = u,
                    Math.pow(r[0] - o[0], 2) + Math.pow(r[1] - o[1], 2) + Math.pow(r[2] - o[2], 2));
                    d < s && (s = d,
                    a = l)
                }
            return a
        }
        ,
        a.keyword.rgb = function(t) {
            return e[t]
        }
        ,
        a.rgb.xyz = function(t) {
            var e = t[0] / 255
              , n = t[1] / 255
              , i = t[2] / 255;
            return [100 * (.4124 * (e = e > .04045 ? Math.pow((e + .055) / 1.055, 2.4) : e / 12.92) + .3576 * (n = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92) + .1805 * (i = i > .04045 ? Math.pow((i + .055) / 1.055, 2.4) : i / 12.92)), 100 * (.2126 * e + .7152 * n + .0722 * i), 100 * (.0193 * e + .1192 * n + .9505 * i)]
        }
        ,
        a.rgb.lab = function(t) {
            var e = a.rgb.xyz(t)
              , n = e[0]
              , i = e[1]
              , r = e[2];
            return i /= 100,
            r /= 108.883,
            n = (n /= 95.047) > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116,
            [116 * (i = i > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116) - 16, 500 * (n - i), 200 * (i - (r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116))]
        }
        ,
        a.hsl.rgb = function(t) {
            var e, n, i, a, r, o = t[0] / 360, s = t[1] / 100, l = t[2] / 100;
            if (0 === s)
                return [r = 255 * l, r, r];
            e = 2 * l - (n = l < .5 ? l * (1 + s) : l + s - l * s),
            a = [0, 0, 0];
            for (var u = 0; u < 3; u++)
                (i = o + 1 / 3 * -(u - 1)) < 0 && i++,
                i > 1 && i--,
                r = 6 * i < 1 ? e + 6 * (n - e) * i : 2 * i < 1 ? n : 3 * i < 2 ? e + (n - e) * (2 / 3 - i) * 6 : e,
                a[u] = 255 * r;
            return a
        }
        ,
        a.hsl.hsv = function(t) {
            var e = t[0]
              , n = t[1] / 100
              , i = t[2] / 100
              , a = n
              , r = Math.max(i, .01);
            return n *= (i *= 2) <= 1 ? i : 2 - i,
            a *= r <= 1 ? r : 2 - r,
            [e, 100 * (0 === i ? 2 * a / (r + a) : 2 * n / (i + n)), 100 * ((i + n) / 2)]
        }
        ,
        a.hsv.rgb = function(t) {
            var e = t[0] / 60
              , n = t[1] / 100
              , i = t[2] / 100
              , a = Math.floor(e) % 6
              , r = e - Math.floor(e)
              , o = 255 * i * (1 - n)
              , s = 255 * i * (1 - n * r)
              , l = 255 * i * (1 - n * (1 - r));
            switch (i *= 255,
            a) {
            case 0:
                return [i, l, o];
            case 1:
                return [s, i, o];
            case 2:
                return [o, i, l];
            case 3:
                return [o, s, i];
            case 4:
                return [l, o, i];
            case 5:
                return [i, o, s]
            }
        }
        ,
        a.hsv.hsl = function(t) {
            var e, n, i, a = t[0], r = t[1] / 100, o = t[2] / 100, s = Math.max(o, .01);
            return i = (2 - r) * o,
            n = r * s,
            [a, 100 * (n = (n /= (e = (2 - r) * s) <= 1 ? e : 2 - e) || 0), 100 * (i /= 2)]
        }
        ,
        a.hwb.rgb = function(t) {
            var e, n, i, a, r, o, s, l = t[0] / 360, u = t[1] / 100, d = t[2] / 100, h = u + d;
            switch (h > 1 && (u /= h,
            d /= h),
            i = 6 * l - (e = Math.floor(6 * l)),
            0 != (1 & e) && (i = 1 - i),
            a = u + i * ((n = 1 - d) - u),
            e) {
            default:
            case 6:
            case 0:
                r = n,
                o = a,
                s = u;
                break;
            case 1:
                r = a,
                o = n,
                s = u;
                break;
            case 2:
                r = u,
                o = n,
                s = a;
                break;
            case 3:
                r = u,
                o = a,
                s = n;
                break;
            case 4:
                r = a,
                o = u,
                s = n;
                break;
            case 5:
                r = n,
                o = u,
                s = a
            }
            return [255 * r, 255 * o, 255 * s]
        }
        ,
        a.cmyk.rgb = function(t) {
            var e = t[0] / 100
              , n = t[1] / 100
              , i = t[2] / 100
              , a = t[3] / 100;
            return [255 * (1 - Math.min(1, e * (1 - a) + a)), 255 * (1 - Math.min(1, n * (1 - a) + a)), 255 * (1 - Math.min(1, i * (1 - a) + a))]
        }
        ,
        a.xyz.rgb = function(t) {
            var e, n, i, a = t[0] / 100, r = t[1] / 100, o = t[2] / 100;
            return n = -.9689 * a + 1.8758 * r + .0415 * o,
            i = .0557 * a + -.204 * r + 1.057 * o,
            e = (e = 3.2406 * a + -1.5372 * r + -.4986 * o) > .0031308 ? 1.055 * Math.pow(e, 1 / 2.4) - .055 : 12.92 * e,
            n = n > .0031308 ? 1.055 * Math.pow(n, 1 / 2.4) - .055 : 12.92 * n,
            i = i > .0031308 ? 1.055 * Math.pow(i, 1 / 2.4) - .055 : 12.92 * i,
            [255 * (e = Math.min(Math.max(0, e), 1)), 255 * (n = Math.min(Math.max(0, n), 1)), 255 * (i = Math.min(Math.max(0, i), 1))]
        }
        ,
        a.xyz.lab = function(t) {
            var e = t[0]
              , n = t[1]
              , i = t[2];
            return n /= 100,
            i /= 108.883,
            e = (e /= 95.047) > .008856 ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116,
            [116 * (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116) - 16, 500 * (e - n), 200 * (n - (i = i > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116))]
        }
        ,
        a.lab.xyz = function(t) {
            var e, n, i, a = t[0];
            e = t[1] / 500 + (n = (a + 16) / 116),
            i = n - t[2] / 200;
            var r = Math.pow(n, 3)
              , o = Math.pow(e, 3)
              , s = Math.pow(i, 3);
            return n = r > .008856 ? r : (n - 16 / 116) / 7.787,
            e = o > .008856 ? o : (e - 16 / 116) / 7.787,
            i = s > .008856 ? s : (i - 16 / 116) / 7.787,
            [e *= 95.047, n *= 100, i *= 108.883]
        }
        ,
        a.lab.lch = function(t) {
            var e, n = t[0], i = t[1], a = t[2];
            return (e = 360 * Math.atan2(a, i) / 2 / Math.PI) < 0 && (e += 360),
            [n, Math.sqrt(i * i + a * a), e]
        }
        ,
        a.lch.lab = function(t) {
            var e, n = t[0], i = t[1];
            return e = t[2] / 360 * 2 * Math.PI,
            [n, i * Math.cos(e), i * Math.sin(e)]
        }
        ,
        a.rgb.ansi16 = function(t) {
            var e = t[0]
              , n = t[1]
              , i = t[2]
              , r = 1 in arguments ? arguments[1] : a.rgb.hsv(t)[2];
            if (0 === (r = Math.round(r / 50)))
                return 30;
            var o = 30 + (Math.round(i / 255) << 2 | Math.round(n / 255) << 1 | Math.round(e / 255));
            return 2 === r && (o += 60),
            o
        }
        ,
        a.hsv.ansi16 = function(t) {
            return a.rgb.ansi16(a.hsv.rgb(t), t[2])
        }
        ,
        a.rgb.ansi256 = function(t) {
            var e = t[0]
              , n = t[1]
              , i = t[2];
            return e === n && n === i ? e < 8 ? 16 : e > 248 ? 231 : Math.round((e - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(e / 255 * 5) + 6 * Math.round(n / 255 * 5) + Math.round(i / 255 * 5)
        }
        ,
        a.ansi16.rgb = function(t) {
            var e = t % 10;
            if (0 === e || 7 === e)
                return t > 50 && (e += 3.5),
                [e = e / 10.5 * 255, e, e];
            var n = .5 * (1 + ~~(t > 50));
            return [(1 & e) * n * 255, (e >> 1 & 1) * n * 255, (e >> 2 & 1) * n * 255]
        }
        ,
        a.ansi256.rgb = function(t) {
            if (t >= 232) {
                var e = 10 * (t - 232) + 8;
                return [e, e, e]
            }
            var n;
            return t -= 16,
            [Math.floor(t / 36) / 5 * 255, Math.floor((n = t % 36) / 6) / 5 * 255, n % 6 / 5 * 255]
        }
        ,
        a.rgb.hex = function(t) {
            var e = (((255 & Math.round(t[0])) << 16) + ((255 & Math.round(t[1])) << 8) + (255 & Math.round(t[2]))).toString(16).toUpperCase();
            return "000000".substring(e.length) + e
        }
        ,
        a.hex.rgb = function(t) {
            var e = t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
            if (!e)
                return [0, 0, 0];
            var n = e[0];
            3 === e[0].length && (n = n.split("").map((function(t) {
                return t + t
            }
            )).join(""));
            var i = parseInt(n, 16);
            return [i >> 16 & 255, i >> 8 & 255, 255 & i]
        }
        ,
        a.rgb.hcg = function(t) {
            var e, n = t[0] / 255, i = t[1] / 255, a = t[2] / 255, r = Math.max(Math.max(n, i), a), o = Math.min(Math.min(n, i), a), s = r - o;
            return e = s <= 0 ? 0 : r === n ? (i - a) / s % 6 : r === i ? 2 + (a - n) / s : 4 + (n - i) / s + 4,
            e /= 6,
            [360 * (e %= 1), 100 * s, 100 * (s < 1 ? o / (1 - s) : 0)]
        }
        ,
        a.hsl.hcg = function(t) {
            var e = t[1] / 100
              , n = t[2] / 100
              , i = 1
              , a = 0;
            return (i = n < .5 ? 2 * e * n : 2 * e * (1 - n)) < 1 && (a = (n - .5 * i) / (1 - i)),
            [t[0], 100 * i, 100 * a]
        }
        ,
        a.hsv.hcg = function(t) {
            var e = t[1] / 100
              , n = t[2] / 100
              , i = e * n
              , a = 0;
            return i < 1 && (a = (n - i) / (1 - i)),
            [t[0], 100 * i, 100 * a]
        }
        ,
        a.hcg.rgb = function(t) {
            var e = t[0] / 360
              , n = t[1] / 100
              , i = t[2] / 100;
            if (0 === n)
                return [255 * i, 255 * i, 255 * i];
            var a, r = [0, 0, 0], o = e % 1 * 6, s = o % 1, l = 1 - s;
            switch (Math.floor(o)) {
            case 0:
                r[0] = 1,
                r[1] = s,
                r[2] = 0;
                break;
            case 1:
                r[0] = l,
                r[1] = 1,
                r[2] = 0;
                break;
            case 2:
                r[0] = 0,
                r[1] = 1,
                r[2] = s;
                break;
            case 3:
                r[0] = 0,
                r[1] = l,
                r[2] = 1;
                break;
            case 4:
                r[0] = s,
                r[1] = 0,
                r[2] = 1;
                break;
            default:
                r[0] = 1,
                r[1] = 0,
                r[2] = l
            }
            return a = (1 - n) * i,
            [255 * (n * r[0] + a), 255 * (n * r[1] + a), 255 * (n * r[2] + a)]
        }
        ,
        a.hcg.hsv = function(t) {
            var e = t[1] / 100
              , n = e + t[2] / 100 * (1 - e)
              , i = 0;
            return n > 0 && (i = e / n),
            [t[0], 100 * i, 100 * n]
        }
        ,
        a.hcg.hsl = function(t) {
            var e = t[1] / 100
              , n = t[2] / 100 * (1 - e) + .5 * e
              , i = 0;
            return n > 0 && n < .5 ? i = e / (2 * n) : n >= .5 && n < 1 && (i = e / (2 * (1 - n))),
            [t[0], 100 * i, 100 * n]
        }
        ,
        a.hcg.hwb = function(t) {
            var e = t[1] / 100
              , n = e + t[2] / 100 * (1 - e);
            return [t[0], 100 * (n - e), 100 * (1 - n)]
        }
        ,
        a.hwb.hcg = function(t) {
            var e = t[1] / 100
              , n = 1 - t[2] / 100
              , i = n - e
              , a = 0;
            return i < 1 && (a = (n - i) / (1 - i)),
            [t[0], 100 * i, 100 * a]
        }
        ,
        a.apple.rgb = function(t) {
            return [t[0] / 65535 * 255, t[1] / 65535 * 255, t[2] / 65535 * 255]
        }
        ,
        a.rgb.apple = function(t) {
            return [t[0] / 255 * 65535, t[1] / 255 * 65535, t[2] / 255 * 65535]
        }
        ,
        a.gray.rgb = function(t) {
            return [t[0] / 100 * 255, t[0] / 100 * 255, t[0] / 100 * 255]
        }
        ,
        a.gray.hsl = a.gray.hsv = function(t) {
            return [0, 0, t[0]]
        }
        ,
        a.gray.hwb = function(t) {
            return [0, 100, t[0]]
        }
        ,
        a.gray.cmyk = function(t) {
            return [0, 0, 0, t[0]]
        }
        ,
        a.gray.lab = function(t) {
            return [t[0], 0, 0]
        }
        ,
        a.gray.hex = function(t) {
            var e = 255 & Math.round(t[0] / 100 * 255)
              , n = ((e << 16) + (e << 8) + e).toString(16).toUpperCase();
            return "000000".substring(n.length) + n
        }
        ,
        a.rgb.gray = function(t) {
            return [(t[0] + t[1] + t[2]) / 3 / 255 * 100]
        }
    }
    ));
    n.rgb,
    n.hsl,
    n.hsv,
    n.hwb,
    n.cmyk,
    n.xyz,
    n.lab,
    n.lch,
    n.hex,
    n.keyword,
    n.ansi16,
    n.ansi256,
    n.hcg,
    n.apple,
    n.gray;
    function i(t) {
        var e = function() {
            for (var t = {}, e = Object.keys(n), i = e.length, a = 0; a < i; a++)
                t[e[a]] = {
                    distance: -1,
                    parent: null
                };
            return t
        }()
          , i = [t];
        for (e[t].distance = 0; i.length; )
            for (var a = i.pop(), r = Object.keys(n[a]), o = r.length, s = 0; s < o; s++) {
                var l = r[s]
                  , u = e[l];
                -1 === u.distance && (u.distance = e[a].distance + 1,
                u.parent = a,
                i.unshift(l))
            }
        return e
    }
    function a(t, e) {
        return function(n) {
            return e(t(n))
        }
    }
    function r(t, e) {
        for (var i = [e[t].parent, t], r = n[e[t].parent][t], o = e[t].parent; e[o].parent; )
            i.unshift(e[o].parent),
            r = a(n[e[o].parent][o], r),
            o = e[o].parent;
        return r.conversion = i,
        r
    }
    var o = {};
    Object.keys(n).forEach((function(t) {
        o[t] = {},
        Object.defineProperty(o[t], "channels", {
            value: n[t].channels
        }),
        Object.defineProperty(o[t], "labels", {
            value: n[t].labels
        });
        var e = function(t) {
            for (var e = i(t), n = {}, a = Object.keys(e), o = a.length, s = 0; s < o; s++) {
                var l = a[s];
                null !== e[l].parent && (n[l] = r(l, e))
            }
            return n
        }(t);
        Object.keys(e).forEach((function(n) {
            var i = e[n];
            o[t][n] = function(t) {
                var e = function(e) {
                    if (null == e)
                        return e;
                    arguments.length > 1 && (e = Array.prototype.slice.call(arguments));
                    var n = t(e);
                    if ("object" == typeof n)
                        for (var i = n.length, a = 0; a < i; a++)
                            n[a] = Math.round(n[a]);
                    return n
                };
                return "conversion"in t && (e.conversion = t.conversion),
                e
            }(i),
            o[t][n].raw = function(t) {
                var e = function(e) {
                    return null == e ? e : (arguments.length > 1 && (e = Array.prototype.slice.call(arguments)),
                    t(e))
                };
                return "conversion"in t && (e.conversion = t.conversion),
                e
            }(i)
        }
        ))
    }
    ));
    var s = o
      , l = {
        aliceblue: [240, 248, 255],
        antiquewhite: [250, 235, 215],
        aqua: [0, 255, 255],
        aquamarine: [127, 255, 212],
        azure: [240, 255, 255],
        beige: [245, 245, 220],
        bisque: [255, 228, 196],
        black: [0, 0, 0],
        blanchedalmond: [255, 235, 205],
        blue: [0, 0, 255],
        blueviolet: [138, 43, 226],
        brown: [165, 42, 42],
        burlywood: [222, 184, 135],
        cadetblue: [95, 158, 160],
        chartreuse: [127, 255, 0],
        chocolate: [210, 105, 30],
        coral: [255, 127, 80],
        cornflowerblue: [100, 149, 237],
        cornsilk: [255, 248, 220],
        crimson: [220, 20, 60],
        cyan: [0, 255, 255],
        darkblue: [0, 0, 139],
        darkcyan: [0, 139, 139],
        darkgoldenrod: [184, 134, 11],
        darkgray: [169, 169, 169],
        darkgreen: [0, 100, 0],
        darkgrey: [169, 169, 169],
        darkkhaki: [189, 183, 107],
        darkmagenta: [139, 0, 139],
        darkolivegreen: [85, 107, 47],
        darkorange: [255, 140, 0],
        darkorchid: [153, 50, 204],
        darkred: [139, 0, 0],
        darksalmon: [233, 150, 122],
        darkseagreen: [143, 188, 143],
        darkslateblue: [72, 61, 139],
        darkslategray: [47, 79, 79],
        darkslategrey: [47, 79, 79],
        darkturquoise: [0, 206, 209],
        darkviolet: [148, 0, 211],
        deeppink: [255, 20, 147],
        deepskyblue: [0, 191, 255],
        dimgray: [105, 105, 105],
        dimgrey: [105, 105, 105],
        dodgerblue: [30, 144, 255],
        firebrick: [178, 34, 34],
        floralwhite: [255, 250, 240],
        forestgreen: [34, 139, 34],
        fuchsia: [255, 0, 255],
        gainsboro: [220, 220, 220],
        ghostwhite: [248, 248, 255],
        gold: [255, 215, 0],
        goldenrod: [218, 165, 32],
        gray: [128, 128, 128],
        green: [0, 128, 0],
        greenyellow: [173, 255, 47],
        grey: [128, 128, 128],
        honeydew: [240, 255, 240],
        hotpink: [255, 105, 180],
        indianred: [205, 92, 92],
        indigo: [75, 0, 130],
        ivory: [255, 255, 240],
        khaki: [240, 230, 140],
        lavender: [230, 230, 250],
        lavenderblush: [255, 240, 245],
        lawngreen: [124, 252, 0],
        lemonchiffon: [255, 250, 205],
        lightblue: [173, 216, 230],
        lightcoral: [240, 128, 128],
        lightcyan: [224, 255, 255],
        lightgoldenrodyellow: [250, 250, 210],
        lightgray: [211, 211, 211],
        lightgreen: [144, 238, 144],
        lightgrey: [211, 211, 211],
        lightpink: [255, 182, 193],
        lightsalmon: [255, 160, 122],
        lightseagreen: [32, 178, 170],
        lightskyblue: [135, 206, 250],
        lightslategray: [119, 136, 153],
        lightslategrey: [119, 136, 153],
        lightsteelblue: [176, 196, 222],
        lightyellow: [255, 255, 224],
        lime: [0, 255, 0],
        limegreen: [50, 205, 50],
        linen: [250, 240, 230],
        magenta: [255, 0, 255],
        maroon: [128, 0, 0],
        mediumaquamarine: [102, 205, 170],
        mediumblue: [0, 0, 205],
        mediumorchid: [186, 85, 211],
        mediumpurple: [147, 112, 219],
        mediumseagreen: [60, 179, 113],
        mediumslateblue: [123, 104, 238],
        mediumspringgreen: [0, 250, 154],
        mediumturquoise: [72, 209, 204],
        mediumvioletred: [199, 21, 133],
        midnightblue: [25, 25, 112],
        mintcream: [245, 255, 250],
        mistyrose: [255, 228, 225],
        moccasin: [255, 228, 181],
        navajowhite: [255, 222, 173],
        navy: [0, 0, 128],
        oldlace: [253, 245, 230],
        olive: [128, 128, 0],
        olivedrab: [107, 142, 35],
        orange: [255, 165, 0],
        orangered: [255, 69, 0],
        orchid: [218, 112, 214],
        palegoldenrod: [238, 232, 170],
        palegreen: [152, 251, 152],
        paleturquoise: [175, 238, 238],
        palevioletred: [219, 112, 147],
        papayawhip: [255, 239, 213],
        peachpuff: [255, 218, 185],
        peru: [205, 133, 63],
        pink: [255, 192, 203],
        plum: [221, 160, 221],
        powderblue: [176, 224, 230],
        purple: [128, 0, 128],
        rebeccapurple: [102, 51, 153],
        red: [255, 0, 0],
        rosybrown: [188, 143, 143],
        royalblue: [65, 105, 225],
        saddlebrown: [139, 69, 19],
        salmon: [250, 128, 114],
        sandybrown: [244, 164, 96],
        seagreen: [46, 139, 87],
        seashell: [255, 245, 238],
        sienna: [160, 82, 45],
        silver: [192, 192, 192],
        skyblue: [135, 206, 235],
        slateblue: [106, 90, 205],
        slategray: [112, 128, 144],
        slategrey: [112, 128, 144],
        snow: [255, 250, 250],
        springgreen: [0, 255, 127],
        steelblue: [70, 130, 180],
        tan: [210, 180, 140],
        teal: [0, 128, 128],
        thistle: [216, 191, 216],
        tomato: [255, 99, 71],
        turquoise: [64, 224, 208],
        violet: [238, 130, 238],
        wheat: [245, 222, 179],
        white: [255, 255, 255],
        whitesmoke: [245, 245, 245],
        yellow: [255, 255, 0],
        yellowgreen: [154, 205, 50]
    }
      , u = {
        getRgba: d,
        getHsla: h,
        getRgb: function(t) {
            var e = d(t);
            return e && e.slice(0, 3)
        },
        getHsl: function(t) {
            var e = h(t);
            return e && e.slice(0, 3)
        },
        getHwb: c,
        getAlpha: function(t) {
            var e = d(t);
            if (e)
                return e[3];
            if (e = h(t))
                return e[3];
            if (e = c(t))
                return e[3]
        },
        hexString: function(t, e) {
            e = void 0 !== e && 3 === t.length ? e : t[3];
            return "#" + v(t[0]) + v(t[1]) + v(t[2]) + (e >= 0 && e < 1 ? v(Math.round(255 * e)) : "")
        },
        rgbString: function(t, e) {
            if (e < 1 || t[3] && t[3] < 1)
                return f(t, e);
            return "rgb(" + t[0] + ", " + t[1] + ", " + t[2] + ")"
        },
        rgbaString: f,
        percentString: function(t, e) {
            if (e < 1 || t[3] && t[3] < 1)
                return g(t, e);
            var n = Math.round(t[0] / 255 * 100)
              , i = Math.round(t[1] / 255 * 100)
              , a = Math.round(t[2] / 255 * 100);
            return "rgb(" + n + "%, " + i + "%, " + a + "%)"
        },
        percentaString: g,
        hslString: function(t, e) {
            if (e < 1 || t[3] && t[3] < 1)
                return p(t, e);
            return "hsl(" + t[0] + ", " + t[1] + "%, " + t[2] + "%)"
        },
        hslaString: p,
        hwbString: function(t, e) {
            void 0 === e && (e = void 0 !== t[3] ? t[3] : 1);
            return "hwb(" + t[0] + ", " + t[1] + "%, " + t[2] + "%" + (void 0 !== e && 1 !== e ? ", " + e : "") + ")"
        },
        keyword: function(t) {
            return b[t.slice(0, 3)]
        }
    };
    function d(t) {
        if (t) {
            var e = [0, 0, 0]
              , n = 1
              , i = t.match(/^#([a-fA-F0-9]{3,4})$/i)
              , a = "";
            if (i) {
                a = (i = i[1])[3];
                for (var r = 0; r < e.length; r++)
                    e[r] = parseInt(i[r] + i[r], 16);
                a && (n = Math.round(parseInt(a + a, 16) / 255 * 100) / 100)
            } else if (i = t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)) {
                a = i[2],
                i = i[1];
                for (r = 0; r < e.length; r++)
                    e[r] = parseInt(i.slice(2 * r, 2 * r + 2), 16);
                a && (n = Math.round(parseInt(a, 16) / 255 * 100) / 100)
            } else if (i = t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) {
                for (r = 0; r < e.length; r++)
                    e[r] = parseInt(i[r + 1]);
                n = parseFloat(i[4])
            } else if (i = t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) {
                for (r = 0; r < e.length; r++)
                    e[r] = Math.round(2.55 * parseFloat(i[r + 1]));
                n = parseFloat(i[4])
            } else if (i = t.match(/(\w+)/)) {
                if ("transparent" == i[1])
                    return [0, 0, 0, 0];
                if (!(e = l[i[1]]))
                    return
            }
            for (r = 0; r < e.length; r++)
                e[r] = m(e[r], 0, 255);
            return n = n || 0 == n ? m(n, 0, 1) : 1,
            e[3] = n,
            e
        }
    }
    function h(t) {
        if (t) {
            var e = t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
            if (e) {
                var n = parseFloat(e[4]);
                return [m(parseInt(e[1]), 0, 360), m(parseFloat(e[2]), 0, 100), m(parseFloat(e[3]), 0, 100), m(isNaN(n) ? 1 : n, 0, 1)]
            }
        }
    }
    function c(t) {
        if (t) {
            var e = t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
            if (e) {
                var n = parseFloat(e[4]);
                return [m(parseInt(e[1]), 0, 360), m(parseFloat(e[2]), 0, 100), m(parseFloat(e[3]), 0, 100), m(isNaN(n) ? 1 : n, 0, 1)]
            }
        }
    }
    function f(t, e) {
        return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1),
        "rgba(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + e + ")"
    }
    function g(t, e) {
        return "rgba(" + Math.round(t[0] / 255 * 100) + "%, " + Math.round(t[1] / 255 * 100) + "%, " + Math.round(t[2] / 255 * 100) + "%, " + (e || t[3] || 1) + ")"
    }
    function p(t, e) {
        return void 0 === e && (e = void 0 !== t[3] ? t[3] : 1),
        "hsla(" + t[0] + ", " + t[1] + "%, " + t[2] + "%, " + e + ")"
    }
    function m(t, e, n) {
        return Math.min(Math.max(e, t), n)
    }
    function v(t) {
        var e = t.toString(16).toUpperCase();
        return e.length < 2 ? "0" + e : e
    }
    var b = {};
    for (var x in l)
        b[l[x]] = x;
    var y = function(t) {
        return t instanceof y ? t : this instanceof y ? (this.valid = !1,
        this.values = {
            rgb: [0, 0, 0],
            hsl: [0, 0, 0],
            hsv: [0, 0, 0],
            hwb: [0, 0, 0],
            cmyk: [0, 0, 0, 0],
            alpha: 1
        },
        void ("string" == typeof t ? (e = u.getRgba(t)) ? this.setValues("rgb", e) : (e = u.getHsla(t)) ? this.setValues("hsl", e) : (e = u.getHwb(t)) && this.setValues("hwb", e) : "object" == typeof t && (void 0 !== (e = t).r || void 0 !== e.red ? this.setValues("rgb", e) : void 0 !== e.l || void 0 !== e.lightness ? this.setValues("hsl", e) : void 0 !== e.v || void 0 !== e.value ? this.setValues("hsv", e) : void 0 !== e.w || void 0 !== e.whiteness ? this.setValues("hwb", e) : void 0 === e.c && void 0 === e.cyan || this.setValues("cmyk", e)))) : new y(t);
        var e
    };
    y.prototype = {
        isValid: function() {
            return this.valid
        },
        rgb: function() {
            return this.setSpace("rgb", arguments)
        },
        hsl: function() {
            return this.setSpace("hsl", arguments)
        },
        hsv: function() {
            return this.setSpace("hsv", arguments)
        },
        hwb: function() {
            return this.setSpace("hwb", arguments)
        },
        cmyk: function() {
            return this.setSpace("cmyk", arguments)
        },
        rgbArray: function() {
            return this.values.rgb
        },
        hslArray: function() {
            return this.values.hsl
        },
        hsvArray: function() {
            return this.values.hsv
        },
        hwbArray: function() {
            var t = this.values;
            return 1 !== t.alpha ? t.hwb.concat([t.alpha]) : t.hwb
        },
        cmykArray: function() {
            return this.values.cmyk
        },
        rgbaArray: function() {
            var t = this.values;
            return t.rgb.concat([t.alpha])
        },
        hslaArray: function() {
            var t = this.values;
            return t.hsl.concat([t.alpha])
        },
        alpha: function(t) {
            return void 0 === t ? this.values.alpha : (this.setValues("alpha", t),
            this)
        },
        red: function(t) {
            return this.setChannel("rgb", 0, t)
        },
        green: function(t) {
            return this.setChannel("rgb", 1, t)
        },
        blue: function(t) {
            return this.setChannel("rgb", 2, t)
        },
        hue: function(t) {
            return t && (t = (t %= 360) < 0 ? 360 + t : t),
            this.setChannel("hsl", 0, t)
        },
        saturation: function(t) {
            return this.setChannel("hsl", 1, t)
        },
        lightness: function(t) {
            return this.setChannel("hsl", 2, t)
        },
        saturationv: function(t) {
            return this.setChannel("hsv", 1, t)
        },
        whiteness: function(t) {
            return this.setChannel("hwb", 1, t)
        },
        blackness: function(t) {
            return this.setChannel("hwb", 2, t)
        },
        value: function(t) {
            return this.setChannel("hsv", 2, t)
        },
        cyan: function(t) {
            return this.setChannel("cmyk", 0, t)
        },
        magenta: function(t) {
            return this.setChannel("cmyk", 1, t)
        },
        yellow: function(t) {
            return this.setChannel("cmyk", 2, t)
        },
        black: function(t) {
            return this.setChannel("cmyk", 3, t)
        },
        hexString: function() {
            return u.hexString(this.values.rgb)
        },
        rgbString: function() {
            return u.rgbString(this.values.rgb, this.values.alpha)
        },
        rgbaString: function() {
            return u.rgbaString(this.values.rgb, this.values.alpha)
        },
        percentString: function() {
            return u.percentString(this.values.rgb, this.values.alpha)
        },
        hslString: function() {
            return u.hslString(this.values.hsl, this.values.alpha)
        },
        hslaString: function() {
            return u.hslaString(this.values.hsl, this.values.alpha)
        },
        hwbString: function() {
            return u.hwbString(this.values.hwb, this.values.alpha)
        },
        keyword: function() {
            return u.keyword(this.values.rgb, this.values.alpha)
        },
        rgbNumber: function() {
            var t = this.values.rgb;
            return t[0] << 16 | t[1] << 8 | t[2]
        },
        luminosity: function() {
            for (var t = this.values.rgb, e = [], n = 0; n < t.length; n++) {
                var i = t[n] / 255;
                e[n] = i <= .03928 ? i / 12.92 : Math.pow((i + .055) / 1.055, 2.4)
            }
            return .2126 * e[0] + .7152 * e[1] + .0722 * e[2]
        },
        contrast: function(t) {
            var e = this.luminosity()
              , n = t.luminosity();
            return e > n ? (e + .05) / (n + .05) : (n + .05) / (e + .05)
        },
        level: function(t) {
            var e = this.contrast(t);
            return e >= 7.1 ? "AAA" : e >= 4.5 ? "AA" : ""
        },
        dark: function() {
            var t = this.values.rgb;
            return (299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3 < 128
        },
        light: function() {
            return !this.dark()
        },
        negate: function() {
            for (var t = [], e = 0; e < 3; e++)
                t[e] = 255 - this.values.rgb[e];
            return this.setValues("rgb", t),
            this
        },
        lighten: function(t) {
            var e = this.values.hsl;
            return e[2] += e[2] * t,
            this.setValues("hsl", e),
            this
        },
        darken: function(t) {
            var e = this.values.hsl;
            return e[2] -= e[2] * t,
            this.setValues("hsl", e),
            this
        },
        saturate: function(t) {
            var e = this.values.hsl;
            return e[1] += e[1] * t,
            this.setValues("hsl", e),
            this
        },
        desaturate: function(t) {
            var e = this.values.hsl;
            return e[1] -= e[1] * t,
            this.setValues("hsl", e),
            this
        },
        whiten: function(t) {
            var e = this.values.hwb;
            return e[1] += e[1] * t,
            this.setValues("hwb", e),
            this
        },
        blacken: function(t) {
            var e = this.values.hwb;
            return e[2] += e[2] * t,
            this.setValues("hwb", e),
            this
        },
        greyscale: function() {
            var t = this.values.rgb
              , e = .3 * t[0] + .59 * t[1] + .11 * t[2];
            return this.setValues("rgb", [e, e, e]),
            this
        },
        clearer: function(t) {
            var e = this.values.alpha;
            return this.setValues("alpha", e - e * t),
            this
        },
        opaquer: function(t) {
            var e = this.values.alpha;
            return this.setValues("alpha", e + e * t),
            this
        },
        rotate: function(t) {
            var e = this.values.hsl
              , n = (e[0] + t) % 360;
            return e[0] = n < 0 ? 360 + n : n,
            this.setValues("hsl", e),
            this
        },
        mix: function(t, e) {
            var n = t
              , i = void 0 === e ? .5 : e
              , a = 2 * i - 1
              , r = this.alpha() - n.alpha()
              , o = ((a * r == -1 ? a : (a + r) / (1 + a * r)) + 1) / 2
              , s = 1 - o;
            return this.rgb(o * this.red() + s * n.red(), o * this.green() + s * n.green(), o * this.blue() + s * n.blue()).alpha(this.alpha() * i + n.alpha() * (1 - i))
        },
        toJSON: function() {
            return this.rgb()
        },
        clone: function() {
            var t, e, n = new y, i = this.values, a = n.values;
            for (var r in i)
                i.hasOwnProperty(r) && (t = i[r],
                "[object Array]" === (e = {}.toString.call(t)) ? a[r] = t.slice(0) : "[object Number]" === e ? a[r] = t : console.error("unexpected color value:", t));
            return n
        }
    },
    y.prototype.spaces = {
        rgb: ["red", "green", "blue"],
        hsl: ["hue", "saturation", "lightness"],
        hsv: ["hue", "saturation", "value"],
        hwb: ["hue", "whiteness", "blackness"],
        cmyk: ["cyan", "magenta", "yellow", "black"]
    },
    y.prototype.maxes = {
        rgb: [255, 255, 255],
        hsl: [360, 100, 100],
        hsv: [360, 100, 100],
        hwb: [360, 100, 100],
        cmyk: [100, 100, 100, 100]
    },
    y.prototype.getValues = function(t) {
        for (var e = this.values, n = {}, i = 0; i < t.length; i++)
            n[t.charAt(i)] = e[t][i];
        return 1 !== e.alpha && (n.a = e.alpha),
        n
    }
    ,
    y.prototype.setValues = function(t, e) {
        var n, i, a = this.values, r = this.spaces, o = this.maxes, l = 1;
        if (this.valid = !0,
        "alpha" === t)
            l = e;
        else if (e.length)
            a[t] = e.slice(0, t.length),
            l = e[t.length];
        else if (void 0 !== e[t.charAt(0)]) {
            for (n = 0; n < t.length; n++)
                a[t][n] = e[t.charAt(n)];
            l = e.a
        } else if (void 0 !== e[r[t][0]]) {
            var u = r[t];
            for (n = 0; n < t.length; n++)
                a[t][n] = e[u[n]];
            l = e.alpha
        }
        if (a.alpha = Math.max(0, Math.min(1, void 0 === l ? a.alpha : l)),
        "alpha" === t)
            return !1;
        for (n = 0; n < t.length; n++)
            i = Math.max(0, Math.min(o[t][n], a[t][n])),
            a[t][n] = Math.round(i);
        for (var d in r)
            d !== t && (a[d] = s[t][d](a[t]));
        return !0
    }
    ,
    y.prototype.setSpace = function(t, e) {
        var n = e[0];
        return void 0 === n ? this.getValues(t) : ("number" == typeof n && (n = Array.prototype.slice.call(e)),
        this.setValues(t, n),
        this)
    }
    ,
    y.prototype.setChannel = function(t, e, n) {
        var i = this.values[t];
        return void 0 === n ? i[e] : n === i[e] ? this : (i[e] = n,
        this.setValues(t, i),
        this)
    }
    ,
    "undefined" != typeof window && (window.Color = y);
    var _ = y;
    function k(t) {
        return -1 === ["__proto__", "prototype", "constructor"].indexOf(t)
    }
    var w, M = {
        noop: function() {},
        uid: (w = 0,
        function() {
            return w++
        }
        ),
        isNullOrUndef: function(t) {
            return null == t
        },
        isArray: function(t) {
            if (Array.isArray && Array.isArray(t))
                return !0;
            var e = Object.prototype.toString.call(t);
            return "[object" === e.substr(0, 7) && "Array]" === e.substr(-6)
        },
        isObject: function(t) {
            return null !== t && "[object Object]" === Object.prototype.toString.call(t)
        },
        isFinite: function(t) {
            return ("number" == typeof t || t instanceof Number) && isFinite(t)
        },
        valueOrDefault: function(t, e) {
            return void 0 === t ? e : t
        },
        valueAtIndexOrDefault: function(t, e, n) {
            return M.valueOrDefault(M.isArray(t) ? t[e] : t, n)
        },
        callback: function(t, e, n) {
            if (t && "function" == typeof t.call)
                return t.apply(n, e)
        },
        each: function(t, e, n, i) {
            var a, r, o;
            if (M.isArray(t))
                if (r = t.length,
                i)
                    for (a = r - 1; a >= 0; a--)
                        e.call(n, t[a], a);
                else
                    for (a = 0; a < r; a++)
                        e.call(n, t[a], a);
            else if (M.isObject(t))
                for (r = (o = Object.keys(t)).length,
                a = 0; a < r; a++)
                    e.call(n, t[o[a]], o[a])
        },
        arrayEquals: function(t, e) {
            var n, i, a, r;
            if (!t || !e || t.length !== e.length)
                return !1;
            for (n = 0,
            i = t.length; n < i; ++n)
                if (a = t[n],
                r = e[n],
                a instanceof Array && r instanceof Array) {
                    if (!M.arrayEquals(a, r))
                        return !1
                } else if (a !== r)
                    return !1;
            return !0
        },
        clone: function(t) {
            if (M.isArray(t))
                return t.map(M.clone);
            if (M.isObject(t)) {
                for (var e = Object.create(t), n = Object.keys(t), i = n.length, a = 0; a < i; ++a)
                    e[n[a]] = M.clone(t[n[a]]);
                return e
            }
            return t
        },
        _merger: function(t, e, n, i) {
            if (k(t)) {
                var a = e[t]
                  , r = n[t];
                M.isObject(a) && M.isObject(r) ? M.merge(a, r, i) : e[t] = M.clone(r)
            }
        },
        _mergerIf: function(t, e, n) {
            if (k(t)) {
                var i = e[t]
                  , a = n[t];
                M.isObject(i) && M.isObject(a) ? M.mergeIf(i, a) : e.hasOwnProperty(t) || (e[t] = M.clone(a))
            }
        },
        merge: function(t, e, n) {
            var i, a, r, o, s, l = M.isArray(e) ? e : [e], u = l.length;
            if (!M.isObject(t))
                return t;
            for (i = (n = n || {}).merger || M._merger,
            a = 0; a < u; ++a)
                if (e = l[a],
                M.isObject(e))
                    for (s = 0,
                    o = (r = Object.keys(e)).length; s < o; ++s)
                        i(r[s], t, e, n);
            return t
        },
        mergeIf: function(t, e) {
            return M.merge(t, e, {
                merger: M._mergerIf
            })
        },
        extend: Object.assign || function(t) {
            return M.merge(t, [].slice.call(arguments, 1), {
                merger: function(t, e, n) {
                    e[t] = n[t]
                }
            })
        }
        ,
        inherits: function(t) {
            var e = this
              , n = t && t.hasOwnProperty("constructor") ? t.constructor : function() {
                return e.apply(this, arguments)
            }
              , i = function() {
                this.constructor = n
            };
            return i.prototype = e.prototype,
            n.prototype = new i,
            n.extend = M.inherits,
            t && M.extend(n.prototype, t),
            n.__super__ = e.prototype,
            n
        },
        _deprecated: function(t, e, n, i) {
            void 0 !== e && console.warn(t + ': "' + n + '" is deprecated. Please use "' + i + '" instead')
        }
    }, S = M;
    M.callCallback = M.callback,
    M.indexOf = function(t, e, n) {
        return Array.prototype.indexOf.call(t, e, n)
    }
    ,
    M.getValueOrDefault = M.valueOrDefault,
    M.getValueAtIndexOrDefault = M.valueAtIndexOrDefault;
    var C = {
        linear: function(t) {
            return t
        },
        easeInQuad: function(t) {
            return t * t
        },
        easeOutQuad: function(t) {
            return -t * (t - 2)
        },
        easeInOutQuad: function(t) {
            return (t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1)
        },
        easeInCubic: function(t) {
            return t * t * t
        },
        easeOutCubic: function(t) {
            return (t -= 1) * t * t + 1
        },
        easeInOutCubic: function(t) {
            return (t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2)
        },
        easeInQuart: function(t) {
            return t * t * t * t
        },
        easeOutQuart: function(t) {
            return -((t -= 1) * t * t * t - 1)
        },
        easeInOutQuart: function(t) {
            return (t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2)
        },
        easeInQuint: function(t) {
            return t * t * t * t * t
        },
        easeOutQuint: function(t) {
            return (t -= 1) * t * t * t * t + 1
        },
        easeInOutQuint: function(t) {
            return (t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2)
        },
        easeInSine: function(t) {
            return 1 - Math.cos(t * (Math.PI / 2))
        },
        easeOutSine: function(t) {
            return Math.sin(t * (Math.PI / 2))
        },
        easeInOutSine: function(t) {
            return -.5 * (Math.cos(Math.PI * t) - 1)
        },
        easeInExpo: function(t) {
            return 0 === t ? 0 : Math.pow(2, 10 * (t - 1))
        },
        easeOutExpo: function(t) {
            return 1 === t ? 1 : 1 - Math.pow(2, -10 * t)
        },
        easeInOutExpo: function(t) {
            return 0 === t ? 0 : 1 === t ? 1 : (t /= .5) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * --t))
        },
        easeInCirc: function(t) {
            return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1)
        },
        easeOutCirc: function(t) {
            return Math.sqrt(1 - (t -= 1) * t)
        },
        easeInOutCirc: function(t) {
            return (t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
        },
        easeInElastic: function(t) {
            var e = 1.70158
              , n = 0
              , i = 1;
            return 0 === t ? 0 : 1 === t ? 1 : (n || (n = .3),
            i < 1 ? (i = 1,
            e = n / 4) : e = n / (2 * Math.PI) * Math.asin(1 / i),
            -i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / n))
        },
        easeOutElastic: function(t) {
            var e = 1.70158
              , n = 0
              , i = 1;
            return 0 === t ? 0 : 1 === t ? 1 : (n || (n = .3),
            i < 1 ? (i = 1,
            e = n / 4) : e = n / (2 * Math.PI) * Math.asin(1 / i),
            i * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / n) + 1)
        },
        easeInOutElastic: function(t) {
            var e = 1.70158
              , n = 0
              , i = 1;
            return 0 === t ? 0 : 2 == (t /= .5) ? 1 : (n || (n = .45),
            i < 1 ? (i = 1,
            e = n / 4) : e = n / (2 * Math.PI) * Math.asin(1 / i),
            t < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / n) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / n) * .5 + 1)
        },
        easeInBack: function(t) {
            var e = 1.70158;
            return t * t * ((e + 1) * t - e)
        },
        easeOutBack: function(t) {
            var e = 1.70158;
            return (t -= 1) * t * ((e + 1) * t + e) + 1
        },
        easeInOutBack: function(t) {
            var e = 1.70158;
            return (t /= .5) < 1 ? t * t * ((1 + (e *= 1.525)) * t - e) * .5 : .5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2)
        },
        easeInBounce: function(t) {
            return 1 - C.easeOutBounce(1 - t)
        },
        easeOutBounce: function(t) {
            return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
        },
        easeInOutBounce: function(t) {
            return t < .5 ? .5 * C.easeInBounce(2 * t) : .5 * C.easeOutBounce(2 * t - 1) + .5
        }
    }
      , P = {
        effects: C
    };
    S.easingEffects = C;
    var A = Math.PI
      , D = A / 180
      , T = 2 * A
      , I = A / 2
      , F = A / 4
      , O = 2 * A / 3
      , L = {
        clear: function(t) {
            t.ctx.clearRect(0, 0, t.width, t.height)
        },
        roundedRect: function(t, e, n, i, a, r) {
            if (r) {
                var o = Math.min(r, a / 2, i / 2)
                  , s = e + o
                  , l = n + o
                  , u = e + i - o
                  , d = n + a - o;
                t.moveTo(e, l),
                s < u && l < d ? (t.arc(s, l, o, -A, -I),
                t.arc(u, l, o, -I, 0),
                t.arc(u, d, o, 0, I),
                t.arc(s, d, o, I, A)) : s < u ? (t.moveTo(s, n),
                t.arc(u, l, o, -I, I),
                t.arc(s, l, o, I, A + I)) : l < d ? (t.arc(s, l, o, -A, 0),
                t.arc(s, d, o, 0, A)) : t.arc(s, l, o, -A, A),
                t.closePath(),
                t.moveTo(e, n)
            } else
                t.rect(e, n, i, a)
        },
        drawPoint: function(t, e, n, i, a, r) {
            var o, s, l, u, d, h = (r || 0) * D;
            if (e && "object" == typeof e && ("[object HTMLImageElement]" === (o = e.toString()) || "[object HTMLCanvasElement]" === o))
                return t.save(),
                t.translate(i, a),
                t.rotate(h),
                t.drawImage(e, -e.width / 2, -e.height / 2, e.width, e.height),
                void t.restore();
            if (!(isNaN(n) || n <= 0)) {
                switch (t.beginPath(),
                e) {
                default:
                    t.arc(i, a, n, 0, T),
                    t.closePath();
                    break;
                case "triangle":
                    t.moveTo(i + Math.sin(h) * n, a - Math.cos(h) * n),
                    h += O,
                    t.lineTo(i + Math.sin(h) * n, a - Math.cos(h) * n),
                    h += O,
                    t.lineTo(i + Math.sin(h) * n, a - Math.cos(h) * n),
                    t.closePath();
                    break;
                case "rectRounded":
                    u = n - (d = .516 * n),
                    s = Math.cos(h + F) * u,
                    l = Math.sin(h + F) * u,
                    t.arc(i - s, a - l, d, h - A, h - I),
                    t.arc(i + l, a - s, d, h - I, h),
                    t.arc(i + s, a + l, d, h, h + I),
                    t.arc(i - l, a + s, d, h + I, h + A),
                    t.closePath();
                    break;
                case "rect":
                    if (!r) {
                        u = Math.SQRT1_2 * n,
                        t.rect(i - u, a - u, 2 * u, 2 * u);
                        break
                    }
                    h += F;
                case "rectRot":
                    s = Math.cos(h) * n,
                    l = Math.sin(h) * n,
                    t.moveTo(i - s, a - l),
                    t.lineTo(i + l, a - s),
                    t.lineTo(i + s, a + l),
                    t.lineTo(i - l, a + s),
                    t.closePath();
                    break;
                case "crossRot":
                    h += F;
                case "cross":
                    s = Math.cos(h) * n,
                    l = Math.sin(h) * n,
                    t.moveTo(i - s, a - l),
                    t.lineTo(i + s, a + l),
                    t.moveTo(i + l, a - s),
                    t.lineTo(i - l, a + s);
                    break;
                case "star":
                    s = Math.cos(h) * n,
                    l = Math.sin(h) * n,
                    t.moveTo(i - s, a - l),
                    t.lineTo(i + s, a + l),
                    t.moveTo(i + l, a - s),
                    t.lineTo(i - l, a + s),
                    h += F,
                    s = Math.cos(h) * n,
                    l = Math.sin(h) * n,
                    t.moveTo(i - s, a - l),
                    t.lineTo(i + s, a + l),
                    t.moveTo(i + l, a - s),
                    t.lineTo(i - l, a + s);
                    break;
                case "line":
                    s = Math.cos(h) * n,
                    l = Math.sin(h) * n,
                    t.moveTo(i - s, a - l),
                    t.lineTo(i + s, a + l);
                    break;
                case "dash":
                    t.moveTo(i, a),
                    t.lineTo(i + Math.cos(h) * n, a + Math.sin(h) * n)
                }
                t.fill(),
                t.stroke()
            }
        },
        _isPointInArea: function(t, e) {
            return t.x > e.left - 1e-6 && t.x < e.right + 1e-6 && t.y > e.top - 1e-6 && t.y < e.bottom + 1e-6
        },
        clipArea: function(t, e) {
            t.save(),
            t.beginPath(),
            t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top),
            t.clip()
        },
        unclipArea: function(t) {
            t.restore()
        },
        lineTo: function(t, e, n, i) {
            var a = n.steppedLine;
            if (a) {
                if ("middle" === a) {
                    var r = (e.x + n.x) / 2;
                    t.lineTo(r, i ? n.y : e.y),
                    t.lineTo(r, i ? e.y : n.y)
                } else
                    "after" === a && !i || "after" !== a && i ? t.lineTo(e.x, n.y) : t.lineTo(n.x, e.y);
                t.lineTo(n.x, n.y)
            } else
                n.tension ? t.bezierCurveTo(i ? e.controlPointPreviousX : e.controlPointNextX, i ? e.controlPointPreviousY : e.controlPointNextY, i ? n.controlPointNextX : n.controlPointPreviousX, i ? n.controlPointNextY : n.controlPointPreviousY, n.x, n.y) : t.lineTo(n.x, n.y)
        }
    }
      , R = L;
    S.clear = L.clear,
    S.drawRoundedRectangle = function(t) {
        t.beginPath(),
        L.roundedRect.apply(L, arguments)
    }
    ;
    var z = {
        _set: function(t, e) {
            return S.merge(this[t] || (this[t] = {}), e)
        }
    };
    z._set("global", {
        defaultColor: "rgba(0,0,0,0.1)",
        defaultFontColor: "#666",
        defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
        defaultFontSize: 12,
        defaultFontStyle: "normal",
        defaultLineHeight: 1.2,
        showLines: !0
    });
    var N = z
      , B = S.valueOrDefault;
    var E = {
        toLineHeight: function(t, e) {
            var n = ("" + t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);
            if (!n || "normal" === n[1])
                return 1.2 * e;
            switch (t = +n[2],
            n[3]) {
            case "px":
                return t;
            case "%":
                t /= 100
            }
            return e * t
        },
        toPadding: function(t) {
            var e, n, i, a;
            return S.isObject(t) ? (e = +t.top || 0,
            n = +t.right || 0,
            i = +t.bottom || 0,
            a = +t.left || 0) : e = n = i = a = +t || 0,
            {
                top: e,
                right: n,
                bottom: i,
                left: a,
                height: e + i,
                width: a + n
            }
        },
        _parseFont: function(t) {
            var e = N.global
              , n = B(t.fontSize, e.defaultFontSize)
              , i = {
                family: B(t.fontFamily, e.defaultFontFamily),
                lineHeight: S.options.toLineHeight(B(t.lineHeight, e.defaultLineHeight), n),
                size: n,
                style: B(t.fontStyle, e.defaultFontStyle),
                weight: null,
                string: ""
            };
            return i.string = function(t) {
                return !t || S.isNullOrUndef(t.size) || S.isNullOrUndef(t.family) ? null : (t.style ? t.style + " " : "") + (t.weight ? t.weight + " " : "") + t.size + "px " + t.family
            }(i),
            i
        },
        resolve: function(t, e, n, i) {
            var a, r, o, s = !0;
            for (a = 0,
            r = t.length; a < r; ++a)
                if (void 0 !== (o = t[a]) && (void 0 !== e && "function" == typeof o && (o = o(e),
                s = !1),
                void 0 !== n && S.isArray(o) && (o = o[n],
                s = !1),
                void 0 !== o))
                    return i && !s && (i.cacheable = !1),
                    o
        }
    }
      , W = {
        _factorize: function(t) {
            var e, n = [], i = Math.sqrt(t);
            for (e = 1; e < i; e++)
                t % e == 0 && (n.push(e),
                n.push(t / e));
            return i === (0 | i) && n.push(i),
            n.sort((function(t, e) {
                return t - e
            }
            )).pop(),
            n
        },
        log10: Math.log10 || function(t) {
            var e = Math.log(t) * Math.LOG10E
              , n = Math.round(e);
            return t === Math.pow(10, n) ? n : e
        }
    }
      , V = W;
    S.log10 = W.log10;
    var H = S
      , j = P
      , q = R
      , U = E
      , Y = V
      , G = {
        getRtlAdapter: function(t, e, n) {
            return t ? function(t, e) {
                return {
                    x: function(n) {
                        return t + t + e - n
                    },
                    setWidth: function(t) {
                        e = t
                    },
                    textAlign: function(t) {
                        return "center" === t ? t : "right" === t ? "left" : "right"
                    },
                    xPlus: function(t, e) {
                        return t - e
                    },
                    leftForLtr: function(t, e) {
                        return t - e
                    }
                }
            }(e, n) : {
                x: function(t) {
                    return t
                },
                setWidth: function(t) {},
                textAlign: function(t) {
                    return t
                },
                xPlus: function(t, e) {
                    return t + e
                },
                leftForLtr: function(t, e) {
                    return t
                }
            }
        },
        overrideTextDirection: function(t, e) {
            var n, i;
            "ltr" !== e && "rtl" !== e || (i = [(n = t.canvas.style).getPropertyValue("direction"), n.getPropertyPriority("direction")],
            n.setProperty("direction", e, "important"),
            t.prevTextDirection = i)
        },
        restoreTextDirection: function(t) {
            var e = t.prevTextDirection;
            void 0 !== e && (delete t.prevTextDirection,
            t.canvas.style.setProperty("direction", e[0], e[1]))
        }
    };
    H.easing = j,
    H.canvas = q,
    H.options = U,
    H.math = Y,
    H.rtl = G;
    var X = function(t) {
        H.extend(this, t),
        this.initialize.apply(this, arguments)
    };
    H.extend(X.prototype, {
        _type: void 0,
        initialize: function() {
            this.hidden = !1
        },
        pivot: function() {
            var t = this;
            return t._view || (t._view = H.extend({}, t._model)),
            t._start = {},
            t
        },
        transition: function(t) {
            var e = this
              , n = e._model
              , i = e._start
              , a = e._view;
            return n && 1 !== t ? (a || (a = e._view = {}),
            i || (i = e._start = {}),
            function(t, e, n, i) {
                var a, r, o, s, l, u, d, h, c, f = Object.keys(n);
                for (a = 0,
                r = f.length; a < r; ++a)
                    if (u = n[o = f[a]],
                    e.hasOwnProperty(o) || (e[o] = u),
                    (s = e[o]) !== u && "_" !== o[0]) {
                        if (t.hasOwnProperty(o) || (t[o] = s),
                        (d = typeof u) === typeof (l = t[o]))
                            if ("string" === d) {
                                if ((h = _(l)).valid && (c = _(u)).valid) {
                                    e[o] = c.mix(h, i).rgbString();
                                    continue
                                }
                            } else if (H.isFinite(l) && H.isFinite(u)) {
                                e[o] = l + (u - l) * i;
                                continue
                            }
                        e[o] = u
                    }
            }(i, a, n, t),
            e) : (e._view = H.extend({}, n),
            e._start = null,
            e)
        },
        tooltipPosition: function() {
            return {
                x: this._model.x,
                y: this._model.y
            }
        },
        hasValue: function() {
            return H.isNumber(this._model.x) && H.isNumber(this._model.y)
        }
    }),
    X.extend = H.inherits;
    var K = X
      , Z = K.extend({
        chart: null,
        currentStep: 0,
        numSteps: 60,
        easing: "",
        render: null,
        onAnimationProgress: null,
        onAnimationComplete: null
    })
      , $ = Z;
    Object.defineProperty(Z.prototype, "animationObject", {
        get: function() {
            return this
        }
    }),
    Object.defineProperty(Z.prototype, "chartInstance", {
        get: function() {
            return this.chart
        },
        set: function(t) {
            this.chart = t
        }
    }),
    N._set("global", {
        animation: {
            duration: 1e3,
            easing: "easeOutQuart",
            onProgress: H.noop,
            onComplete: H.noop
        }
    });
    var J = {
        animations: [],
        request: null,
        addAnimation: function(t, e, n, i) {
            var a, r, o = this.animations;
            for (e.chart = t,
            e.startTime = Date.now(),
            e.duration = n,
            i || (t.animating = !0),
            a = 0,
            r = o.length; a < r; ++a)
                if (o[a].chart === t)
                    return void (o[a] = e);
            o.push(e),
            1 === o.length && this.requestAnimationFrame()
        },
        cancelAnimation: function(t) {
            var e = H.findIndex(this.animations, (function(e) {
                return e.chart === t
            }
            ));
            -1 !== e && (this.animations.splice(e, 1),
            t.animating = !1)
        },
        requestAnimationFrame: function() {
            var t = this;
            null === t.request && (t.request = H.requestAnimFrame.call(window, (function() {
                t.request = null,
                t.startDigest()
            }
            )))
        },
        startDigest: function() {
            this.advance(),
            this.animations.length > 0 && this.requestAnimationFrame()
        },
        advance: function() {
            for (var t, e, n, i, a = this.animations, r = 0; r < a.length; )
                e = (t = a[r]).chart,
                n = t.numSteps,
                i = Math.floor((Date.now() - t.startTime) / t.duration * n) + 1,
                t.currentStep = Math.min(i, n),
                H.callback(t.render, [e, t], e),
                H.callback(t.onAnimationProgress, [t], e),
                t.currentStep >= n ? (H.callback(t.onAnimationComplete, [t], e),
                e.animating = !1,
                a.splice(r, 1)) : ++r
        }
    }
      , Q = H.options.resolve
      , tt = ["push", "pop", "shift", "splice", "unshift"];
    function et(t, e) {
        var n = t._chartjs;
        if (n) {
            var i = n.listeners
              , a = i.indexOf(e);
            -1 !== a && i.splice(a, 1),
            i.length > 0 || (tt.forEach((function(e) {
                delete t[e]
            }
            )),
            delete t._chartjs)
        }
    }
    var nt = function(t, e) {
        this.initialize(t, e)
    };
    H.extend(nt.prototype, {
        datasetElementType: null,
        dataElementType: null,
        _datasetElementOptions: ["backgroundColor", "borderCapStyle", "borderColor", "borderDash", "borderDashOffset", "borderJoinStyle", "borderWidth"],
        _dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "pointStyle"],
        initialize: function(t, e) {
            var n = this;
            n.chart = t,
            n.index = e,
            n.linkScales(),
            n.addElements(),
            n._type = n.getMeta().type
        },
        updateIndex: function(t) {
            this.index = t
        },
        linkScales: function() {
            var t = this.getMeta()
              , e = this.chart
              , n = e.scales
              , i = this.getDataset()
              , a = e.options.scales;
            null !== t.xAxisID && t.xAxisID in n && !i.xAxisID || (t.xAxisID = i.xAxisID || a.xAxes[0].id),
            null !== t.yAxisID && t.yAxisID in n && !i.yAxisID || (t.yAxisID = i.yAxisID || a.yAxes[0].id)
        },
        getDataset: function() {
            return this.chart.data.datasets[this.index]
        },
        getMeta: function() {
            return this.chart.getDatasetMeta(this.index)
        },
        getScaleForId: function(t) {
            return this.chart.scales[t]
        },
        _getValueScaleId: function() {
            return this.getMeta().yAxisID
        },
        _getIndexScaleId: function() {
            return this.getMeta().xAxisID
        },
        _getValueScale: function() {
            return this.getScaleForId(this._getValueScaleId())
        },
        _getIndexScale: function() {
            return this.getScaleForId(this._getIndexScaleId())
        },
        reset: function() {
            this._update(!0)
        },
        destroy: function() {
            this._data && et(this._data, this)
        },
        createMetaDataset: function() {
            var t = this.datasetElementType;
            return t && new t({
                _chart: this.chart,
                _datasetIndex: this.index
            })
        },
        createMetaData: function(t) {
            var e = this.dataElementType;
            return e && new e({
                _chart: this.chart,
                _datasetIndex: this.index,
                _index: t
            })
        },
        addElements: function() {
            var t, e, n = this.getMeta(), i = this.getDataset().data || [], a = n.data;
            for (t = 0,
            e = i.length; t < e; ++t)
                a[t] = a[t] || this.createMetaData(t);
            n.dataset = n.dataset || this.createMetaDataset()
        },
        addElementAndReset: function(t) {
            var e = this.createMetaData(t);
            this.getMeta().data.splice(t, 0, e),
            this.updateElement(e, t, !0)
        },
        buildOrUpdateElements: function() {
            var t, e, n = this, i = n.getDataset(), a = i.data || (i.data = []);
            n._data !== a && (n._data && et(n._data, n),
            a && Object.isExtensible(a) && (e = n,
            (t = a)._chartjs ? t._chartjs.listeners.push(e) : (Object.defineProperty(t, "_chartjs", {
                configurable: !0,
                enumerable: !1,
                value: {
                    listeners: [e]
                }
            }),
            tt.forEach((function(e) {
                var n = "onData" + e.charAt(0).toUpperCase() + e.slice(1)
                  , i = t[e];
                Object.defineProperty(t, e, {
                    configurable: !0,
                    enumerable: !1,
                    value: function() {
                        var e = Array.prototype.slice.call(arguments)
                          , a = i.apply(this, e);
                        return H.each(t._chartjs.listeners, (function(t) {
                            "function" == typeof t[n] && t[n].apply(t, e)
                        }
                        )),
                        a
                    }
                })
            }
            )))),
            n._data = a),
            n.resyncElements()
        },
        _configure: function() {
            this._config = H.merge(Object.create(null), [this.chart.options.datasets[this._type], this.getDataset()], {
                merger: function(t, e, n) {
                    "_meta" !== t && "data" !== t && H._merger(t, e, n)
                }
            })
        },
        _update: function(t) {
            this._configure(),
            this._cachedDataOpts = null,
            this.update(t)
        },
        update: H.noop,
        transition: function(t) {
            for (var e = this.getMeta(), n = e.data || [], i = n.length, a = 0; a < i; ++a)
                n[a].transition(t);
            e.dataset && e.dataset.transition(t)
        },
        draw: function() {
            var t = this.getMeta()
              , e = t.data || []
              , n = e.length
              , i = 0;
            for (t.dataset && t.dataset.draw(); i < n; ++i)
                e[i].draw()
        },
        getStyle: function(t) {
            var e, n = this.getMeta(), i = n.dataset;
            return this._configure(),
            i && void 0 === t ? e = this._resolveDatasetElementOptions(i || {}) : (t = t || 0,
            e = this._resolveDataElementOptions(n.data[t] || {}, t)),
            !1 !== e.fill && null !== e.fill || (e.backgroundColor = e.borderColor),
            e
        },
        _resolveDatasetElementOptions: function(t, e) {
            var n, i, a, r, o = this, s = o.chart, l = o._config, u = t.custom || {}, d = s.options.elements[o.datasetElementType.prototype._type] || {}, h = o._datasetElementOptions, c = {}, f = {
                chart: s,
                dataset: o.getDataset(),
                datasetIndex: o.index,
                hover: e
            };
            for (n = 0,
            i = h.length; n < i; ++n)
                a = h[n],
                r = e ? "hover" + a.charAt(0).toUpperCase() + a.slice(1) : a,
                c[a] = Q([u[r], l[r], d[r]], f);
            return c
        },
        _resolveDataElementOptions: function(t, e) {
            var n = this
              , i = t && t.custom
              , a = n._cachedDataOpts;
            if (a && !i)
                return a;
            var r, o, s, l, u = n.chart, d = n._config, h = u.options.elements[n.dataElementType.prototype._type] || {}, c = n._dataElementOptions, f = {}, g = {
                chart: u,
                dataIndex: e,
                dataset: n.getDataset(),
                datasetIndex: n.index
            }, p = {
                cacheable: !i
            };
            if (i = i || {},
            H.isArray(c))
                for (o = 0,
                s = c.length; o < s; ++o)
                    f[l = c[o]] = Q([i[l], d[l], h[l]], g, e, p);
            else
                for (o = 0,
                s = (r = Object.keys(c)).length; o < s; ++o)
                    f[l = r[o]] = Q([i[l], d[c[l]], d[l], h[l]], g, e, p);
            return p.cacheable && (n._cachedDataOpts = Object.freeze(f)),
            f
        },
        removeHoverStyle: function(t) {
            H.merge(t._model, t.$previousStyle || {}),
            delete t.$previousStyle
        },
        setHoverStyle: function(t) {
            var e = this.chart.data.datasets[t._datasetIndex]
              , n = t._index
              , i = t.custom || {}
              , a = t._model
              , r = H.getHoverColor;
            t.$previousStyle = {
                backgroundColor: a.backgroundColor,
                borderColor: a.borderColor,
                borderWidth: a.borderWidth
            },
            a.backgroundColor = Q([i.hoverBackgroundColor, e.hoverBackgroundColor, r(a.backgroundColor)], void 0, n),
            a.borderColor = Q([i.hoverBorderColor, e.hoverBorderColor, r(a.borderColor)], void 0, n),
            a.borderWidth = Q([i.hoverBorderWidth, e.hoverBorderWidth, a.borderWidth], void 0, n)
        },
        _removeDatasetHoverStyle: function() {
            var t = this.getMeta().dataset;
            t && this.removeHoverStyle(t)
        },
        _setDatasetHoverStyle: function() {
            var t, e, n, i, a, r, o = this.getMeta().dataset, s = {};
            if (o) {
                for (r = o._model,
                a = this._resolveDatasetElementOptions(o, !0),
                t = 0,
                e = (i = Object.keys(a)).length; t < e; ++t)
                    s[n = i[t]] = r[n],
                    r[n] = a[n];
                o.$previousStyle = s
            }
        },
        resyncElements: function() {
            var t = this.getMeta()
              , e = this.getDataset().data
              , n = t.data.length
              , i = e.length;
            i < n ? t.data.splice(i, n - i) : i > n && this.insertElements(n, i - n)
        },
        insertElements: function(t, e) {
            for (var n = 0; n < e; ++n)
                this.addElementAndReset(t + n)
        },
        onDataPush: function() {
            var t = arguments.length;
            this.insertElements(this.getDataset().data.length - t, t)
        },
        onDataPop: function() {
            this.getMeta().data.pop()
        },
        onDataShift: function() {
            this.getMeta().data.shift()
        },
        onDataSplice: function(t, e) {
            this.getMeta().data.splice(t, e),
            this.insertElements(t, arguments.length - 2)
        },
        onDataUnshift: function() {
            this.insertElements(0, arguments.length)
        }
    }),
    nt.extend = H.inherits;
    var it = nt
      , at = 2 * Math.PI;
    function rt(t, e) {
        var n = e.startAngle
          , i = e.endAngle
          , a = e.pixelMargin
          , r = a / e.outerRadius
          , o = e.x
          , s = e.y;
        t.beginPath(),
        t.arc(o, s, e.outerRadius, n - r, i + r),
        e.innerRadius > a ? (r = a / e.innerRadius,
        t.arc(o, s, e.innerRadius - a, i + r, n - r, !0)) : t.arc(o, s, a, i + Math.PI / 2, n - Math.PI / 2),
        t.closePath(),
        t.clip()
    }
    function ot(t, e, n) {
        var i = "inner" === e.borderAlign;
        i ? (t.lineWidth = 2 * e.borderWidth,
        t.lineJoin = "round") : (t.lineWidth = e.borderWidth,
        t.lineJoin = "bevel"),
        n.fullCircles && function(t, e, n, i) {
            var a, r = n.endAngle;
            for (i && (n.endAngle = n.startAngle + at,
            rt(t, n),
            n.endAngle = r,
            n.endAngle === n.startAngle && n.fullCircles && (n.endAngle += at,
            n.fullCircles--)),
            t.beginPath(),
            t.arc(n.x, n.y, n.innerRadius, n.startAngle + at, n.startAngle, !0),
            a = 0; a < n.fullCircles; ++a)
                t.stroke();
            for (t.beginPath(),
            t.arc(n.x, n.y, e.outerRadius, n.startAngle, n.startAngle + at),
            a = 0; a < n.fullCircles; ++a)
                t.stroke()
        }(t, e, n, i),
        i && rt(t, n),
        t.beginPath(),
        t.arc(n.x, n.y, e.outerRadius, n.startAngle, n.endAngle),
        t.arc(n.x, n.y, n.innerRadius, n.endAngle, n.startAngle, !0),
        t.closePath(),
        t.stroke()
    }
    N._set("global", {
        elements: {
            arc: {
                backgroundColor: N.global.defaultColor,
                borderColor: "#fff",
                borderWidth: 2,
                borderAlign: "center"
            }
        }
    });
    var st = K.extend({
        _type: "arc",
        inLabelRange: function(t) {
            var e = this._view;
            return !!e && Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hoverRadius, 2)
        },
        inRange: function(t, e) {
            var n = this._view;
            if (n) {
                for (var i = H.getAngleFromPoint(n, {
                    x: t,
                    y: e
                }), a = i.angle, r = i.distance, o = n.startAngle, s = n.endAngle; s < o; )
                    s += at;
                for (; a > s; )
                    a -= at;
                for (; a < o; )
                    a += at;
                var l = a >= o && a <= s
                  , u = r >= n.innerRadius && r <= n.outerRadius;
                return l && u
            }
            return !1
        },
        getCenterPoint: function() {
            var t = this._view
              , e = (t.startAngle + t.endAngle) / 2
              , n = (t.innerRadius + t.outerRadius) / 2;
            return {
                x: t.x + Math.cos(e) * n,
                y: t.y + Math.sin(e) * n
            }
        },
        getArea: function() {
            var t = this._view;
            return Math.PI * ((t.endAngle - t.startAngle) / (2 * Math.PI)) * (Math.pow(t.outerRadius, 2) - Math.pow(t.innerRadius, 2))
        },
        tooltipPosition: function() {
            var t = this._view
              , e = t.startAngle + (t.endAngle - t.startAngle) / 2
              , n = (t.outerRadius - t.innerRadius) / 2 + t.innerRadius;
            return {
                x: t.x + Math.cos(e) * n,
                y: t.y + Math.sin(e) * n
            }
        },
        draw: function() {
            var t, e = this._chart.ctx, n = this._view, i = "inner" === n.borderAlign ? .33 : 0, a = {
                x: n.x,
                y: n.y,
                innerRadius: n.innerRadius,
                outerRadius: Math.max(n.outerRadius - i, 0),
                pixelMargin: i,
                startAngle: n.startAngle,
                endAngle: n.endAngle,
                fullCircles: Math.floor(n.circumference / at)
            };
            if (e.save(),
            e.fillStyle = n.backgroundColor,
            e.strokeStyle = n.borderColor,
            a.fullCircles) {
                for (a.endAngle = a.startAngle + at,
                e.beginPath(),
                e.arc(a.x, a.y, a.outerRadius, a.startAngle, a.endAngle),
                e.arc(a.x, a.y, a.innerRadius, a.endAngle, a.startAngle, !0),
                e.closePath(),
                t = 0; t < a.fullCircles; ++t)
                    e.fill();
                a.endAngle = a.startAngle + n.circumference % at
            }
            e.beginPath(),
            e.arc(a.x, a.y, a.outerRadius, a.startAngle, a.endAngle),
            e.arc(a.x, a.y, a.innerRadius, a.endAngle, a.startAngle, !0),
            e.closePath(),
            e.fill(),
            n.borderWidth && ot(e, n, a),
            e.restore()
        }
    })
      , lt = H.valueOrDefault
      , ut = N.global.defaultColor;
    N._set("global", {
        elements: {
            line: {
                tension: .4,
                backgroundColor: ut,
                borderWidth: 3,
                borderColor: ut,
                borderCapStyle: "butt",
                borderDash: [],
                borderDashOffset: 0,
                borderJoinStyle: "miter",
                capBezierPoints: !0,
                fill: !0
            }
        }
    });
    var dt = K.extend({
        _type: "line",
        draw: function() {
            var t, e, n, i = this, a = i._view, r = i._chart.ctx, o = a.spanGaps, s = i._children.slice(), l = N.global, u = l.elements.line, d = -1, h = i._loop;
            if (s.length) {
                if (i._loop) {
                    for (t = 0; t < s.length; ++t)
                        if (e = H.previousItem(s, t),
                        !s[t]._view.skip && e._view.skip) {
                            s = s.slice(t).concat(s.slice(0, t)),
                            h = o;
                            break
                        }
                    h && s.push(s[0])
                }
                for (r.save(),
                r.lineCap = a.borderCapStyle || u.borderCapStyle,
                r.setLineDash && r.setLineDash(a.borderDash || u.borderDash),
                r.lineDashOffset = lt(a.borderDashOffset, u.borderDashOffset),
                r.lineJoin = a.borderJoinStyle || u.borderJoinStyle,
                r.lineWidth = lt(a.borderWidth, u.borderWidth),
                r.strokeStyle = a.borderColor || l.defaultColor,
                r.beginPath(),
                (n = s[0]._view).skip || (r.moveTo(n.x, n.y),
                d = 0),
                t = 1; t < s.length; ++t)
                    n = s[t]._view,
                    e = -1 === d ? H.previousItem(s, t) : s[d],
                    n.skip || (d !== t - 1 && !o || -1 === d ? r.moveTo(n.x, n.y) : H.canvas.lineTo(r, e._view, n),
                    d = t);
                h && r.closePath(),
                r.stroke(),
                r.restore()
            }
        }
    })
      , ht = H.valueOrDefault
      , ct = N.global.defaultColor;
    function ft(t) {
        var e = this._view;
        return !!e && Math.abs(t - e.x) < e.radius + e.hitRadius
    }
    N._set("global", {
        elements: {
            point: {
                radius: 3,
                pointStyle: "circle",
                backgroundColor: ct,
                borderColor: ct,
                borderWidth: 1,
                hitRadius: 1,
                hoverRadius: 4,
                hoverBorderWidth: 1
            }
        }
    });
    var gt = K.extend({
        _type: "point",
        inRange: function(t, e) {
            var n = this._view;
            return !!n && Math.pow(t - n.x, 2) + Math.pow(e - n.y, 2) < Math.pow(n.hitRadius + n.radius, 2)
        },
        inLabelRange: ft,
        inXRange: ft,
        inYRange: function(t) {
            var e = this._view;
            return !!e && Math.abs(t - e.y) < e.radius + e.hitRadius
        },
        getCenterPoint: function() {
            var t = this._view;
            return {
                x: t.x,
                y: t.y
            }
        },
        getArea: function() {
            return Math.PI * Math.pow(this._view.radius, 2)
        },
        tooltipPosition: function() {
            var t = this._view;
            return {
                x: t.x,
                y: t.y,
                padding: t.radius + t.borderWidth
            }
        },
        draw: function(t) {
            var e = this._view
              , n = this._chart.ctx
              , i = e.pointStyle
              , a = e.rotation
              , r = e.radius
              , o = e.x
              , s = e.y
              , l = N.global
              , u = l.defaultColor;
            e.skip || (void 0 === t || H.canvas._isPointInArea(e, t)) && (n.strokeStyle = e.borderColor || u,
            n.lineWidth = ht(e.borderWidth, l.elements.point.borderWidth),
            n.fillStyle = e.backgroundColor || u,
            H.canvas.drawPoint(n, i, r, o, s, a))
        }
    })
      , pt = N.global.defaultColor;
    function mt(t) {
        return t && void 0 !== t.width
    }
    function vt(t) {
        var e, n, i, a, r;
        return mt(t) ? (r = t.width / 2,
        e = t.x - r,
        n = t.x + r,
        i = Math.min(t.y, t.base),
        a = Math.max(t.y, t.base)) : (r = t.height / 2,
        e = Math.min(t.x, t.base),
        n = Math.max(t.x, t.base),
        i = t.y - r,
        a = t.y + r),
        {
            left: e,
            top: i,
            right: n,
            bottom: a
        }
    }
    function bt(t, e, n) {
        return t === e ? n : t === n ? e : t
    }
    function xt(t, e, n) {
        var i, a, r, o, s = t.borderWidth, l = function(t) {
            var e = t.borderSkipped
              , n = {};
            return e ? (t.horizontal ? t.base > t.x && (e = bt(e, "left", "right")) : t.base < t.y && (e = bt(e, "bottom", "top")),
            n[e] = !0,
            n) : n
        }(t);
        return H.isObject(s) ? (i = +s.top || 0,
        a = +s.right || 0,
        r = +s.bottom || 0,
        o = +s.left || 0) : i = a = r = o = +s || 0,
        {
            t: l.top || i < 0 ? 0 : i > n ? n : i,
            r: l.right || a < 0 ? 0 : a > e ? e : a,
            b: l.bottom || r < 0 ? 0 : r > n ? n : r,
            l: l.left || o < 0 ? 0 : o > e ? e : o
        }
    }
    function yt(t, e, n) {
        var i = null === e
          , a = null === n
          , r = !(!t || i && a) && vt(t);
        return r && (i || e >= r.left && e <= r.right) && (a || n >= r.top && n <= r.bottom)
    }
    N._set("global", {
        elements: {
            rectangle: {
                backgroundColor: pt,
                borderColor: pt,
                borderSkipped: "bottom",
                borderWidth: 0
            }
        }
    });
    var _t = K.extend({
        _type: "rectangle",
        draw: function() {
            var t = this._chart.ctx
              , e = this._view
              , n = function(t) {
                var e = vt(t)
                  , n = e.right - e.left
                  , i = e.bottom - e.top
                  , a = xt(t, n / 2, i / 2);
                return {
                    outer: {
                        x: e.left,
                        y: e.top,
                        w: n,
                        h: i
                    },
                    inner: {
                        x: e.left + a.l,
                        y: e.top + a.t,
                        w: n - a.l - a.r,
                        h: i - a.t - a.b
                    }
                }
            }(e)
              , i = n.outer
              , a = n.inner;
            t.fillStyle = e.backgroundColor,
            t.fillRect(i.x, i.y, i.w, i.h),
            i.w === a.w && i.h === a.h || (t.save(),
            t.beginPath(),
            t.rect(i.x, i.y, i.w, i.h),
            t.clip(),
            t.fillStyle = e.borderColor,
            t.rect(a.x, a.y, a.w, a.h),
            t.fill("evenodd"),
            t.restore())
        },
        height: function() {
            var t = this._view;
            return t.base - t.y
        },
        inRange: function(t, e) {
            return yt(this._view, t, e)
        },
        inLabelRange: function(t, e) {
            var n = this._view;
            return mt(n) ? yt(n, t, null) : yt(n, null, e)
        },
        inXRange: function(t) {
            return yt(this._view, t, null)
        },
        inYRange: function(t) {
            return yt(this._view, null, t)
        },
        getCenterPoint: function() {
            var t, e, n = this._view;
            return mt(n) ? (t = n.x,
            e = (n.y + n.base) / 2) : (t = (n.x + n.base) / 2,
            e = n.y),
            {
                x: t,
                y: e
            }
        },
        getArea: function() {
            var t = this._view;
            return mt(t) ? t.width * Math.abs(t.y - t.base) : t.height * Math.abs(t.x - t.base)
        },
        tooltipPosition: function() {
            var t = this._view;
            return {
                x: t.x,
                y: t.y
            }
        }
    })
      , kt = {}
      , wt = st
      , Mt = dt
      , St = gt
      , Ct = _t;
    kt.Arc = wt,
    kt.Line = Mt,
    kt.Point = St,
    kt.Rectangle = Ct;
    var Pt = H._deprecated
      , At = H.valueOrDefault;
    function Dt(t, e, n) {
        var i, a, r = n.barThickness, o = e.stackCount, s = e.pixels[t], l = H.isNullOrUndef(r) ? function(t, e) {
            var n, i, a, r, o = t._length;
            for (a = 1,
            r = e.length; a < r; ++a)
                o = Math.min(o, Math.abs(e[a] - e[a - 1]));
            for (a = 0,
            r = t.getTicks().length; a < r; ++a)
                i = t.getPixelForTick(a),
                o = a > 0 ? Math.min(o, Math.abs(i - n)) : o,
                n = i;
            return o
        }(e.scale, e.pixels) : -1;
        return H.isNullOrUndef(r) ? (i = l * n.categoryPercentage,
        a = n.barPercentage) : (i = r * o,
        a = 1),
        {
            chunk: i / o,
            ratio: a,
            start: s - i / 2
        }
    }
    N._set("bar", {
        hover: {
            mode: "label"
        },
        scales: {
            xAxes: [{
                type: "category",
                offset: !0,
                gridLines: {
                    offsetGridLines: !0
                }
            }],
            yAxes: [{
                type: "linear"
            }]
        }
    }),
    N._set("global", {
        datasets: {
            bar: {
                categoryPercentage: .8,
                barPercentage: .9
            }
        }
    });
    var Tt = it.extend({
        dataElementType: kt.Rectangle,
        _dataElementOptions: ["backgroundColor", "borderColor", "borderSkipped", "borderWidth", "barPercentage", "barThickness", "categoryPercentage", "maxBarThickness", "minBarLength"],
        initialize: function() {
            var t, e, n = this;
            it.prototype.initialize.apply(n, arguments),
            (t = n.getMeta()).stack = n.getDataset().stack,
            t.bar = !0,
            e = n._getIndexScale().options,
            Pt("bar chart", e.barPercentage, "scales.[x/y]Axes.barPercentage", "dataset.barPercentage"),
            Pt("bar chart", e.barThickness, "scales.[x/y]Axes.barThickness", "dataset.barThickness"),
            Pt("bar chart", e.categoryPercentage, "scales.[x/y]Axes.categoryPercentage", "dataset.categoryPercentage"),
            Pt("bar chart", n._getValueScale().options.minBarLength, "scales.[x/y]Axes.minBarLength", "dataset.minBarLength"),
            Pt("bar chart", e.maxBarThickness, "scales.[x/y]Axes.maxBarThickness", "dataset.maxBarThickness")
        },
        update: function(t) {
            var e, n, i = this.getMeta().data;
            for (this._ruler = this.getRuler(),
            e = 0,
            n = i.length; e < n; ++e)
                this.updateElement(i[e], e, t)
        },
        updateElement: function(t, e, n) {
            var i = this
              , a = i.getMeta()
              , r = i.getDataset()
              , o = i._resolveDataElementOptions(t, e);
            t._xScale = i.getScaleForId(a.xAxisID),
            t._yScale = i.getScaleForId(a.yAxisID),
            t._datasetIndex = i.index,
            t._index = e,
            t._model = {
                backgroundColor: o.backgroundColor,
                borderColor: o.borderColor,
                borderSkipped: o.borderSkipped,
                borderWidth: o.borderWidth,
                datasetLabel: r.label,
                label: i.chart.data.labels[e]
            },
            H.isArray(r.data[e]) && (t._model.borderSkipped = null),
            i._updateElementGeometry(t, e, n, o),
            t.pivot()
        },
        _updateElementGeometry: function(t, e, n, i) {
            var a = this
              , r = t._model
              , o = a._getValueScale()
              , s = o.getBasePixel()
              , l = o.isHorizontal()
              , u = a._ruler || a.getRuler()
              , d = a.calculateBarValuePixels(a.index, e, i)
              , h = a.calculateBarIndexPixels(a.index, e, u, i);
            r.horizontal = l,
            r.base = n ? s : d.base,
            r.x = l ? n ? s : d.head : h.center,
            r.y = l ? h.center : n ? s : d.head,
            r.height = l ? h.size : void 0,
            r.width = l ? void 0 : h.size
        },
        _getStacks: function(t) {
            var e, n, i = this._getIndexScale(), a = i._getMatchingVisibleMetas(this._type), r = i.options.stacked, o = a.length, s = [];
            for (e = 0; e < o && (n = a[e],
            (!1 === r || -1 === s.indexOf(n.stack) || void 0 === r && void 0 === n.stack) && s.push(n.stack),
            n.index !== t); ++e)
                ;
            return s
        },
        getStackCount: function() {
            return this._getStacks().length
        },
        getStackIndex: function(t, e) {
            var n = this._getStacks(t)
              , i = void 0 !== e ? n.indexOf(e) : -1;
            return -1 === i ? n.length - 1 : i
        },
        getRuler: function() {
            var t, e, n = this._getIndexScale(), i = [];
            for (t = 0,
            e = this.getMeta().data.length; t < e; ++t)
                i.push(n.getPixelForValue(null, t, this.index));
            return {
                pixels: i,
                start: n._startPixel,
                end: n._endPixel,
                stackCount: this.getStackCount(),
                scale: n
            }
        },
        calculateBarValuePixels: function(t, e, n) {
            var i, a, r, o, s, l, u, d = this.chart, h = this._getValueScale(), c = h.isHorizontal(), f = d.data.datasets, g = h._getMatchingVisibleMetas(this._type), p = h._parseValue(f[t].data[e]), m = n.minBarLength, v = h.options.stacked, b = this.getMeta().stack, x = void 0 === p.start ? 0 : p.max >= 0 && p.min >= 0 ? p.min : p.max, y = void 0 === p.start ? p.end : p.max >= 0 && p.min >= 0 ? p.max - p.min : p.min - p.max, _ = g.length;
            if (v || void 0 === v && void 0 !== b)
                for (i = 0; i < _ && (a = g[i]).index !== t; ++i)
                    a.stack === b && (r = void 0 === (u = h._parseValue(f[a.index].data[e])).start ? u.end : u.min >= 0 && u.max >= 0 ? u.max : u.min,
                    (p.min < 0 && r < 0 || p.max >= 0 && r > 0) && (x += r));
            return o = h.getPixelForValue(x),
            l = (s = h.getPixelForValue(x + y)) - o,
            void 0 !== m && Math.abs(l) < m && (l = m,
            s = y >= 0 && !c || y < 0 && c ? o - m : o + m),
            {
                size: l,
                base: o,
                head: s,
                center: s + l / 2
            }
        },
        calculateBarIndexPixels: function(t, e, n, i) {
            var a = "flex" === i.barThickness ? function(t, e, n) {
                var i, a = e.pixels, r = a[t], o = t > 0 ? a[t - 1] : null, s = t < a.length - 1 ? a[t + 1] : null, l = n.categoryPercentage;
                return null === o && (o = r - (null === s ? e.end - e.start : s - r)),
                null === s && (s = r + r - o),
                i = r - (r - Math.min(o, s)) / 2 * l,
                {
                    chunk: Math.abs(s - o) / 2 * l / e.stackCount,
                    ratio: n.barPercentage,
                    start: i
                }
            }(e, n, i) : Dt(e, n, i)
              , r = this.getStackIndex(t, this.getMeta().stack)
              , o = a.start + a.chunk * r + a.chunk / 2
              , s = Math.min(At(i.maxBarThickness, 1 / 0), a.chunk * a.ratio);
            return {
                base: o - s / 2,
                head: o + s / 2,
                center: o,
                size: s
            }
        },
        draw: function() {
            var t = this.chart
              , e = this._getValueScale()
              , n = this.getMeta().data
              , i = this.getDataset()
              , a = n.length
              , r = 0;
            for (H.canvas.clipArea(t.ctx, t.chartArea); r < a; ++r) {
                var o = e._parseValue(i.data[r]);
                isNaN(o.min) || isNaN(o.max) || n[r].draw()
            }
            H.canvas.unclipArea(t.ctx)
        },
        _resolveDataElementOptions: function() {
            var t = this
              , e = H.extend({}, it.prototype._resolveDataElementOptions.apply(t, arguments))
              , n = t._getIndexScale().options
              , i = t._getValueScale().options;
            return e.barPercentage = At(n.barPercentage, e.barPercentage),
            e.barThickness = At(n.barThickness, e.barThickness),
            e.categoryPercentage = At(n.categoryPercentage, e.categoryPercentage),
            e.maxBarThickness = At(n.maxBarThickness, e.maxBarThickness),
            e.minBarLength = At(i.minBarLength, e.minBarLength),
            e
        }
    })
      , It = H.valueOrDefault
      , Ft = H.options.resolve;
    N._set("bubble", {
        hover: {
            mode: "single"
        },
        scales: {
            xAxes: [{
                type: "linear",
                position: "bottom",
                id: "x-axis-0"
            }],
            yAxes: [{
                type: "linear",
                position: "left",
                id: "y-axis-0"
            }]
        },
        tooltips: {
            callbacks: {
                title: function() {
                    return ""
                },
                label: function(t, e) {
                    var n = e.datasets[t.datasetIndex].label || ""
                      , i = e.datasets[t.datasetIndex].data[t.index];
                    return n + ": (" + t.xLabel + ", " + t.yLabel + ", " + i.r + ")"
                }
            }
        }
    });
    var Ot = it.extend({
        dataElementType: kt.Point,
        _dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth", "hoverRadius", "hitRadius", "pointStyle", "rotation"],
        update: function(t) {
            var e = this
              , n = e.getMeta().data;
            H.each(n, (function(n, i) {
                e.updateElement(n, i, t)
            }
            ))
        },
        updateElement: function(t, e, n) {
            var i = this
              , a = i.getMeta()
              , r = t.custom || {}
              , o = i.getScaleForId(a.xAxisID)
              , s = i.getScaleForId(a.yAxisID)
              , l = i._resolveDataElementOptions(t, e)
              , u = i.getDataset().data[e]
              , d = i.index
              , h = n ? o.getPixelForDecimal(.5) : o.getPixelForValue("object" == typeof u ? u : NaN, e, d)
              , c = n ? s.getBasePixel() : s.getPixelForValue(u, e, d);
            t._xScale = o,
            t._yScale = s,
            t._options = l,
            t._datasetIndex = d,
            t._index = e,
            t._model = {
                backgroundColor: l.backgroundColor,
                borderColor: l.borderColor,
                borderWidth: l.borderWidth,
                hitRadius: l.hitRadius,
                pointStyle: l.pointStyle,
                rotation: l.rotation,
                radius: n ? 0 : l.radius,
                skip: r.skip || isNaN(h) || isNaN(c),
                x: h,
                y: c
            },
            t.pivot()
        },
        setHoverStyle: function(t) {
            var e = t._model
              , n = t._options
              , i = H.getHoverColor;
            t.$previousStyle = {
                backgroundColor: e.backgroundColor,
                borderColor: e.borderColor,
                borderWidth: e.borderWidth,
                radius: e.radius
            },
            e.backgroundColor = It(n.hoverBackgroundColor, i(n.backgroundColor)),
            e.borderColor = It(n.hoverBorderColor, i(n.borderColor)),
            e.borderWidth = It(n.hoverBorderWidth, n.borderWidth),
            e.radius = n.radius + n.hoverRadius
        },
        _resolveDataElementOptions: function(t, e) {
            var n = this
              , i = n.chart
              , a = n.getDataset()
              , r = t.custom || {}
              , o = a.data[e] || {}
              , s = it.prototype._resolveDataElementOptions.apply(n, arguments)
              , l = {
                chart: i,
                dataIndex: e,
                dataset: a,
                datasetIndex: n.index
            };
            return n._cachedDataOpts === s && (s = H.extend({}, s)),
            s.radius = Ft([r.radius, o.r, n._config.radius, i.options.elements.point.radius], l, e),
            s
        }
    })
      , Lt = H.valueOrDefault
      , Rt = Math.PI
      , zt = 2 * Rt
      , Nt = Rt / 2;
    N._set("doughnut", {
        animation: {
            animateRotate: !0,
            animateScale: !1
        },
        hover: {
            mode: "single"
        },
        legendCallback: function(t) {
            var e, n, i, a = document.createElement("ul"), r = t.data, o = r.datasets, s = r.labels;
            if (a.setAttribute("class", t.id + "-legend"),
            o.length)
                for (e = 0,
                n = o[0].data.length; e < n; ++e)
                    (i = a.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor = o[0].backgroundColor[e],
                    s[e] && i.appendChild(document.createTextNode(s[e]));
            return a.outerHTML
        },
        legend: {
            labels: {
                generateLabels: function(t) {
                    var e = t.data;
                    return e.labels.length && e.datasets.length ? e.labels.map((function(n, i) {
                        var a = t.getDatasetMeta(0)
                          , r = a.controller.getStyle(i);
                        return {
                            text: n,
                            fillStyle: r.backgroundColor,
                            strokeStyle: r.borderColor,
                            lineWidth: r.borderWidth,
                            hidden: isNaN(e.datasets[0].data[i]) || a.data[i].hidden,
                            index: i
                        }
                    }
                    )) : []
                }
            },
            onClick: function(t, e) {
                var n, i, a, r = e.index, o = this.chart;
                for (n = 0,
                i = (o.data.datasets || []).length; n < i; ++n)
                    (a = o.getDatasetMeta(n)).data[r] && (a.data[r].hidden = !a.data[r].hidden);
                o.update()
            }
        },
        cutoutPercentage: 50,
        rotation: -Nt,
        circumference: zt,
        tooltips: {
            callbacks: {
                title: function() {
                    return ""
                },
                label: function(t, e) {
                    var n = e.labels[t.index]
                      , i = ": " + e.datasets[t.datasetIndex].data[t.index];
                    return H.isArray(n) ? (n = n.slice())[0] += i : n += i,
                    n
                }
            }
        }
    });
    var Bt = it.extend({
        dataElementType: kt.Arc,
        linkScales: H.noop,
        _dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "borderAlign", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth"],
        getRingIndex: function(t) {
            for (var e = 0, n = 0; n < t; ++n)
                this.chart.isDatasetVisible(n) && ++e;
            return e
        },
        update: function(t) {
            var e, n, i, a, r = this, o = r.chart, s = o.chartArea, l = o.options, u = 1, d = 1, h = 0, c = 0, f = r.getMeta(), g = f.data, p = l.cutoutPercentage / 100 || 0, m = l.circumference, v = r._getRingWeight(r.index);
            if (m < zt) {
                var b = l.rotation % zt
                  , x = (b += b >= Rt ? -zt : b < -Rt ? zt : 0) + m
                  , y = Math.cos(b)
                  , _ = Math.sin(b)
                  , k = Math.cos(x)
                  , w = Math.sin(x)
                  , M = b <= 0 && x >= 0 || x >= zt
                  , S = b <= Nt && x >= Nt || x >= zt + Nt
                  , C = b <= -Nt && x >= -Nt || x >= Rt + Nt
                  , P = b === -Rt || x >= Rt ? -1 : Math.min(y, y * p, k, k * p)
                  , A = C ? -1 : Math.min(_, _ * p, w, w * p)
                  , D = M ? 1 : Math.max(y, y * p, k, k * p)
                  , T = S ? 1 : Math.max(_, _ * p, w, w * p);
                u = (D - P) / 2,
                d = (T - A) / 2,
                h = -(D + P) / 2,
                c = -(T + A) / 2
            }
            for (i = 0,
            a = g.length; i < a; ++i)
                g[i]._options = r._resolveDataElementOptions(g[i], i);
            for (o.borderWidth = r.getMaxBorderWidth(),
            e = (s.right - s.left - o.borderWidth) / u,
            n = (s.bottom - s.top - o.borderWidth) / d,
            o.outerRadius = Math.max(Math.min(e, n) / 2, 0),
            o.innerRadius = Math.max(o.outerRadius * p, 0),
            o.radiusLength = (o.outerRadius - o.innerRadius) / (r._getVisibleDatasetWeightTotal() || 1),
            o.offsetX = h * o.outerRadius,
            o.offsetY = c * o.outerRadius,
            f.total = r.calculateTotal(),
            r.outerRadius = o.outerRadius - o.radiusLength * r._getRingWeightOffset(r.index),
            r.innerRadius = Math.max(r.outerRadius - o.radiusLength * v, 0),
            i = 0,
            a = g.length; i < a; ++i)
                r.updateElement(g[i], i, t)
        },
        updateElement: function(t, e, n) {
            var i = this
              , a = i.chart
              , r = a.chartArea
              , o = a.options
              , s = o.animation
              , l = (r.left + r.right) / 2
              , u = (r.top + r.bottom) / 2
              , d = o.rotation
              , h = o.rotation
              , c = i.getDataset()
              , f = n && s.animateRotate ? 0 : t.hidden ? 0 : i.calculateCircumference(c.data[e]) * (o.circumference / zt)
              , g = n && s.animateScale ? 0 : i.innerRadius
              , p = n && s.animateScale ? 0 : i.outerRadius
              , m = t._options || {};
            H.extend(t, {
                _datasetIndex: i.index,
                _index: e,
                _model: {
                    backgroundColor: m.backgroundColor,
                    borderColor: m.borderColor,
                    borderWidth: m.borderWidth,
                    borderAlign: m.borderAlign,
                    x: l + a.offsetX,
                    y: u + a.offsetY,
                    startAngle: d,
                    endAngle: h,
                    circumference: f,
                    outerRadius: p,
                    innerRadius: g,
                    label: H.valueAtIndexOrDefault(c.label, e, a.data.labels[e])
                }
            });
            var v = t._model;
            n && s.animateRotate || (v.startAngle = 0 === e ? o.rotation : i.getMeta().data[e - 1]._model.endAngle,
            v.endAngle = v.startAngle + v.circumference),
            t.pivot()
        },
        calculateTotal: function() {
            var t, e = this.getDataset(), n = this.getMeta(), i = 0;
            return H.each(n.data, (function(n, a) {
                t = e.data[a],
                isNaN(t) || n.hidden || (i += Math.abs(t))
            }
            )),
            i
        },
        calculateCircumference: function(t) {
            var e = this.getMeta().total;
            return e > 0 && !isNaN(t) ? zt * (Math.abs(t) / e) : 0
        },
        getMaxBorderWidth: function(t) {
            var e, n, i, a, r, o, s, l, u = 0, d = this.chart;
            if (!t)
                for (e = 0,
                n = d.data.datasets.length; e < n; ++e)
                    if (d.isDatasetVisible(e)) {
                        t = (i = d.getDatasetMeta(e)).data,
                        e !== this.index && (r = i.controller);
                        break
                    }
            if (!t)
                return 0;
            for (e = 0,
            n = t.length; e < n; ++e)
                a = t[e],
                r ? (r._configure(),
                o = r._resolveDataElementOptions(a, e)) : o = a._options,
                "inner" !== o.borderAlign && (s = o.borderWidth,
                u = (l = o.hoverBorderWidth) > (u = s > u ? s : u) ? l : u);
            return u
        },
        setHoverStyle: function(t) {
            var e = t._model
              , n = t._options
              , i = H.getHoverColor;
            t.$previousStyle = {
                backgroundColor: e.backgroundColor,
                borderColor: e.borderColor,
                borderWidth: e.borderWidth
            },
            e.backgroundColor = Lt(n.hoverBackgroundColor, i(n.backgroundColor)),
            e.borderColor = Lt(n.hoverBorderColor, i(n.borderColor)),
            e.borderWidth = Lt(n.hoverBorderWidth, n.borderWidth)
        },
        _getRingWeightOffset: function(t) {
            for (var e = 0, n = 0; n < t; ++n)
                this.chart.isDatasetVisible(n) && (e += this._getRingWeight(n));
            return e
        },
        _getRingWeight: function(t) {
            return Math.max(Lt(this.chart.data.datasets[t].weight, 1), 0)
        },
        _getVisibleDatasetWeightTotal: function() {
            return this._getRingWeightOffset(this.chart.data.datasets.length)
        }
    });
    N._set("horizontalBar", {
        hover: {
            mode: "index",
            axis: "y"
        },
        scales: {
            xAxes: [{
                type: "linear",
                position: "bottom"
            }],
            yAxes: [{
                type: "category",
                position: "left",
                offset: !0,
                gridLines: {
                    offsetGridLines: !0
                }
            }]
        },
        elements: {
            rectangle: {
                borderSkipped: "left"
            }
        },
        tooltips: {
            mode: "index",
            axis: "y"
        }
    }),
    N._set("global", {
        datasets: {
            horizontalBar: {
                categoryPercentage: .8,
                barPercentage: .9
            }
        }
    });
    var Et = Tt.extend({
        _getValueScaleId: function() {
            return this.getMeta().xAxisID
        },
        _getIndexScaleId: function() {
            return this.getMeta().yAxisID
        }
    })
      , Wt = H.valueOrDefault
      , Vt = H.options.resolve
      , Ht = H.canvas._isPointInArea;
    function jt(t, e) {
        var n = t && t.options.ticks || {}
          , i = n.reverse
          , a = void 0 === n.min ? e : 0
          , r = void 0 === n.max ? e : 0;
        return {
            start: i ? r : a,
            end: i ? a : r
        }
    }
    function qt(t, e, n) {
        var i = n / 2
          , a = jt(t, i)
          , r = jt(e, i);
        return {
            top: r.end,
            right: a.end,
            bottom: r.start,
            left: a.start
        }
    }
    function Ut(t) {
        var e, n, i, a;
        return H.isObject(t) ? (e = t.top,
        n = t.right,
        i = t.bottom,
        a = t.left) : e = n = i = a = t,
        {
            top: e,
            right: n,
            bottom: i,
            left: a
        }
    }
    N._set("line", {
        showLines: !0,
        spanGaps: !1,
        hover: {
            mode: "label"
        },
        scales: {
            xAxes: [{
                type: "category",
                id: "x-axis-0"
            }],
            yAxes: [{
                type: "linear",
                id: "y-axis-0"
            }]
        }
    });
    var Yt = it.extend({
        datasetElementType: kt.Line,
        dataElementType: kt.Point,
        _datasetElementOptions: ["backgroundColor", "borderCapStyle", "borderColor", "borderDash", "borderDashOffset", "borderJoinStyle", "borderWidth", "cubicInterpolationMode", "fill"],
        _dataElementOptions: {
            backgroundColor: "pointBackgroundColor",
            borderColor: "pointBorderColor",
            borderWidth: "pointBorderWidth",
            hitRadius: "pointHitRadius",
            hoverBackgroundColor: "pointHoverBackgroundColor",
            hoverBorderColor: "pointHoverBorderColor",
            hoverBorderWidth: "pointHoverBorderWidth",
            hoverRadius: "pointHoverRadius",
            pointStyle: "pointStyle",
            radius: "pointRadius",
            rotation: "pointRotation"
        },
        update: function(t) {
            var e, n, i = this, a = i.getMeta(), r = a.dataset, o = a.data || [], s = i.chart.options, l = i._config, u = i._showLine = Wt(l.showLine, s.showLines);
            for (i._xScale = i.getScaleForId(a.xAxisID),
            i._yScale = i.getScaleForId(a.yAxisID),
            u && (void 0 !== l.tension && void 0 === l.lineTension && (l.lineTension = l.tension),
            r._scale = i._yScale,
            r._datasetIndex = i.index,
            r._children = o,
            r._model = i._resolveDatasetElementOptions(r),
            r.pivot()),
            e = 0,
            n = o.length; e < n; ++e)
                i.updateElement(o[e], e, t);
            for (u && 0 !== r._model.tension && i.updateBezierControlPoints(),
            e = 0,
            n = o.length; e < n; ++e)
                o[e].pivot()
        },
        updateElement: function(t, e, n) {
            var i, a, r = this, o = r.getMeta(), s = t.custom || {}, l = r.getDataset(), u = r.index, d = l.data[e], h = r._xScale, c = r._yScale, f = o.dataset._model, g = r._resolveDataElementOptions(t, e);
            i = h.getPixelForValue("object" == typeof d ? d : NaN, e, u),
            a = n ? c.getBasePixel() : r.calculatePointY(d, e, u),
            t._xScale = h,
            t._yScale = c,
            t._options = g,
            t._datasetIndex = u,
            t._index = e,
            t._model = {
                x: i,
                y: a,
                skip: s.skip || isNaN(i) || isNaN(a),
                radius: g.radius,
                pointStyle: g.pointStyle,
                rotation: g.rotation,
                backgroundColor: g.backgroundColor,
                borderColor: g.borderColor,
                borderWidth: g.borderWidth,
                tension: Wt(s.tension, f ? f.tension : 0),
                steppedLine: !!f && f.steppedLine,
                hitRadius: g.hitRadius
            }
        },
        _resolveDatasetElementOptions: function(t) {
            var e = this
              , n = e._config
              , i = t.custom || {}
              , a = e.chart.options
              , r = a.elements.line
              , o = it.prototype._resolveDatasetElementOptions.apply(e, arguments);
            return o.spanGaps = Wt(n.spanGaps, a.spanGaps),
            o.tension = Wt(n.lineTension, r.tension),
            o.steppedLine = Vt([i.steppedLine, n.steppedLine, r.stepped]),
            o.clip = Ut(Wt(n.clip, qt(e._xScale, e._yScale, o.borderWidth))),
            o
        },
        calculatePointY: function(t, e, n) {
            var i, a, r, o, s, l, u, d = this.chart, h = this._yScale, c = 0, f = 0;
            if (h.options.stacked) {
                for (s = +h.getRightValue(t),
                u = (l = d._getSortedVisibleDatasetMetas()).length,
                i = 0; i < u && (r = l[i]).index !== n; ++i)
                    a = d.data.datasets[r.index],
                    "line" === r.type && r.yAxisID === h.id && ((o = +h.getRightValue(a.data[e])) < 0 ? f += o || 0 : c += o || 0);
                return s < 0 ? h.getPixelForValue(f + s) : h.getPixelForValue(c + s)
            }
            return h.getPixelForValue(t)
        },
        updateBezierControlPoints: function() {
            var t, e, n, i, a = this.chart, r = this.getMeta(), o = r.dataset._model, s = a.chartArea, l = r.data || [];
            function u(t, e, n) {
                return Math.max(Math.min(t, n), e)
            }
            if (o.spanGaps && (l = l.filter((function(t) {
                return !t._model.skip
            }
            ))),
            "monotone" === o.cubicInterpolationMode)
                H.splineCurveMonotone(l);
            else
                for (t = 0,
                e = l.length; t < e; ++t)
                    n = l[t]._model,
                    i = H.splineCurve(H.previousItem(l, t)._model, n, H.nextItem(l, t)._model, o.tension),
                    n.controlPointPreviousX = i.previous.x,
                    n.controlPointPreviousY = i.previous.y,
                    n.controlPointNextX = i.next.x,
                    n.controlPointNextY = i.next.y;
            if (a.options.elements.line.capBezierPoints)
                for (t = 0,
                e = l.length; t < e; ++t)
                    n = l[t]._model,
                    Ht(n, s) && (t > 0 && Ht(l[t - 1]._model, s) && (n.controlPointPreviousX = u(n.controlPointPreviousX, s.left, s.right),
                    n.controlPointPreviousY = u(n.controlPointPreviousY, s.top, s.bottom)),
                    t < l.length - 1 && Ht(l[t + 1]._model, s) && (n.controlPointNextX = u(n.controlPointNextX, s.left, s.right),
                    n.controlPointNextY = u(n.controlPointNextY, s.top, s.bottom)))
        },
        draw: function() {
            var t, e = this.chart, n = this.getMeta(), i = n.data || [], a = e.chartArea, r = e.canvas, o = 0, s = i.length;
            for (this._showLine && (t = n.dataset._model.clip,
            H.canvas.clipArea(e.ctx, {
                left: !1 === t.left ? 0 : a.left - t.left,
                right: !1 === t.right ? r.width : a.right + t.right,
                top: !1 === t.top ? 0 : a.top - t.top,
                bottom: !1 === t.bottom ? r.height : a.bottom + t.bottom
            }),
            n.dataset.draw(),
            H.canvas.unclipArea(e.ctx)); o < s; ++o)
                i[o].draw(a)
        },
        setHoverStyle: function(t) {
            var e = t._model
              , n = t._options
              , i = H.getHoverColor;
            t.$previousStyle = {
                backgroundColor: e.backgroundColor,
                borderColor: e.borderColor,
                borderWidth: e.borderWidth,
                radius: e.radius
            },
            e.backgroundColor = Wt(n.hoverBackgroundColor, i(n.backgroundColor)),
            e.borderColor = Wt(n.hoverBorderColor, i(n.borderColor)),
            e.borderWidth = Wt(n.hoverBorderWidth, n.borderWidth),
            e.radius = Wt(n.hoverRadius, n.radius)
        }
    })
      , Gt = H.options.resolve;
    N._set("polarArea", {
        scale: {
            type: "radialLinear",
            angleLines: {
                display: !1
            },
            gridLines: {
                circular: !0
            },
            pointLabels: {
                display: !1
            },
            ticks: {
                beginAtZero: !0
            }
        },
        animation: {
            animateRotate: !0,
            animateScale: !0
        },
        startAngle: -.5 * Math.PI,
        legendCallback: function(t) {
            var e, n, i, a = document.createElement("ul"), r = t.data, o = r.datasets, s = r.labels;
            if (a.setAttribute("class", t.id + "-legend"),
            o.length)
                for (e = 0,
                n = o[0].data.length; e < n; ++e)
                    (i = a.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor = o[0].backgroundColor[e],
                    s[e] && i.appendChild(document.createTextNode(s[e]));
            return a.outerHTML
        },
        legend: {
            labels: {
                generateLabels: function(t) {
                    var e = t.data;
                    return e.labels.length && e.datasets.length ? e.labels.map((function(n, i) {
                        var a = t.getDatasetMeta(0)
                          , r = a.controller.getStyle(i);
                        return {
                            text: n,
                            fillStyle: r.backgroundColor,
                            strokeStyle: r.borderColor,
                            lineWidth: r.borderWidth,
                            hidden: isNaN(e.datasets[0].data[i]) || a.data[i].hidden,
                            index: i
                        }
                    }
                    )) : []
                }
            },
            onClick: function(t, e) {
                var n, i, a, r = e.index, o = this.chart;
                for (n = 0,
                i = (o.data.datasets || []).length; n < i; ++n)
                    (a = o.getDatasetMeta(n)).data[r].hidden = !a.data[r].hidden;
                o.update()
            }
        },
        tooltips: {
            callbacks: {
                title: function() {
                    return ""
                },
                label: function(t, e) {
                    return e.labels[t.index] + ": " + t.yLabel
                }
            }
        }
    });
    var Xt = it.extend({
        dataElementType: kt.Arc,
        linkScales: H.noop,
        _dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "borderAlign", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth"],
        _getIndexScaleId: function() {
            return this.chart.scale.id
        },
        _getValueScaleId: function() {
            return this.chart.scale.id
        },
        update: function(t) {
            var e, n, i, a = this, r = a.getDataset(), o = a.getMeta(), s = a.chart.options.startAngle || 0, l = a._starts = [], u = a._angles = [], d = o.data;
            for (a._updateRadius(),
            o.count = a.countVisibleElements(),
            e = 0,
            n = r.data.length; e < n; e++)
                l[e] = s,
                i = a._computeAngle(e),
                u[e] = i,
                s += i;
            for (e = 0,
            n = d.length; e < n; ++e)
                d[e]._options = a._resolveDataElementOptions(d[e], e),
                a.updateElement(d[e], e, t)
        },
        _updateRadius: function() {
            var t = this
              , e = t.chart
              , n = e.chartArea
              , i = e.options
              , a = Math.min(n.right - n.left, n.bottom - n.top);
            e.outerRadius = Math.max(a / 2, 0),
            e.innerRadius = Math.max(i.cutoutPercentage ? e.outerRadius / 100 * i.cutoutPercentage : 1, 0),
            e.radiusLength = (e.outerRadius - e.innerRadius) / e.getVisibleDatasetCount(),
            t.outerRadius = e.outerRadius - e.radiusLength * t.index,
            t.innerRadius = t.outerRadius - e.radiusLength
        },
        updateElement: function(t, e, n) {
            var i = this
              , a = i.chart
              , r = i.getDataset()
              , o = a.options
              , s = o.animation
              , l = a.scale
              , u = a.data.labels
              , d = l.xCenter
              , h = l.yCenter
              , c = o.startAngle
              , f = t.hidden ? 0 : l.getDistanceFromCenterForValue(r.data[e])
              , g = i._starts[e]
              , p = g + (t.hidden ? 0 : i._angles[e])
              , m = s.animateScale ? 0 : l.getDistanceFromCenterForValue(r.data[e])
              , v = t._options || {};
            H.extend(t, {
                _datasetIndex: i.index,
                _index: e,
                _scale: l,
                _model: {
                    backgroundColor: v.backgroundColor,
                    borderColor: v.borderColor,
                    borderWidth: v.borderWidth,
                    borderAlign: v.borderAlign,
                    x: d,
                    y: h,
                    innerRadius: 0,
                    outerRadius: n ? m : f,
                    startAngle: n && s.animateRotate ? c : g,
                    endAngle: n && s.animateRotate ? c : p,
                    label: H.valueAtIndexOrDefault(u, e, u[e])
                }
            }),
            t.pivot()
        },
        countVisibleElements: function() {
            var t = this.getDataset()
              , e = this.getMeta()
              , n = 0;
            return H.each(e.data, (function(e, i) {
                isNaN(t.data[i]) || e.hidden || n++
            }
            )),
            n
        },
        setHoverStyle: function(t) {
            var e = t._model
              , n = t._options
              , i = H.getHoverColor
              , a = H.valueOrDefault;
            t.$previousStyle = {
                backgroundColor: e.backgroundColor,
                borderColor: e.borderColor,
                borderWidth: e.borderWidth
            },
            e.backgroundColor = a(n.hoverBackgroundColor, i(n.backgroundColor)),
            e.borderColor = a(n.hoverBorderColor, i(n.borderColor)),
            e.borderWidth = a(n.hoverBorderWidth, n.borderWidth)
        },
        _computeAngle: function(t) {
            var e = this
              , n = this.getMeta().count
              , i = e.getDataset()
              , a = e.getMeta();
            if (isNaN(i.data[t]) || a.data[t].hidden)
                return 0;
            var r = {
                chart: e.chart,
                dataIndex: t,
                dataset: i,
                datasetIndex: e.index
            };
            return Gt([e.chart.options.elements.arc.angle, 2 * Math.PI / n], r, t)
        }
    });
    N._set("pie", H.clone(N.doughnut)),
    N._set("pie", {
        cutoutPercentage: 0
    });
    var Kt = Bt
      , Zt = H.valueOrDefault;
    N._set("radar", {
        spanGaps: !1,
        scale: {
            type: "radialLinear"
        },
        elements: {
            line: {
                fill: "start",
                tension: 0
            }
        }
    });
    var $t = it.extend({
        datasetElementType: kt.Line,
        dataElementType: kt.Point,
        linkScales: H.noop,
        _datasetElementOptions: ["backgroundColor", "borderWidth", "borderColor", "borderCapStyle", "borderDash", "borderDashOffset", "borderJoinStyle", "fill"],
        _dataElementOptions: {
            backgroundColor: "pointBackgroundColor",
            borderColor: "pointBorderColor",
            borderWidth: "pointBorderWidth",
            hitRadius: "pointHitRadius",
            hoverBackgroundColor: "pointHoverBackgroundColor",
            hoverBorderColor: "pointHoverBorderColor",
            hoverBorderWidth: "pointHoverBorderWidth",
            hoverRadius: "pointHoverRadius",
            pointStyle: "pointStyle",
            radius: "pointRadius",
            rotation: "pointRotation"
        },
        _getIndexScaleId: function() {
            return this.chart.scale.id
        },
        _getValueScaleId: function() {
            return this.chart.scale.id
        },
        update: function(t) {
            var e, n, i = this, a = i.getMeta(), r = a.dataset, o = a.data || [], s = i.chart.scale, l = i._config;
            for (void 0 !== l.tension && void 0 === l.lineTension && (l.lineTension = l.tension),
            r._scale = s,
            r._datasetIndex = i.index,
            r._children = o,
            r._loop = !0,
            r._model = i._resolveDatasetElementOptions(r),
            r.pivot(),
            e = 0,
            n = o.length; e < n; ++e)
                i.updateElement(o[e], e, t);
            for (i.updateBezierControlPoints(),
            e = 0,
            n = o.length; e < n; ++e)
                o[e].pivot()
        },
        updateElement: function(t, e, n) {
            var i = this
              , a = t.custom || {}
              , r = i.getDataset()
              , o = i.chart.scale
              , s = o.getPointPositionForValue(e, r.data[e])
              , l = i._resolveDataElementOptions(t, e)
              , u = i.getMeta().dataset._model
              , d = n ? o.xCenter : s.x
              , h = n ? o.yCenter : s.y;
            t._scale = o,
            t._options = l,
            t._datasetIndex = i.index,
            t._index = e,
            t._model = {
                x: d,
                y: h,
                skip: a.skip || isNaN(d) || isNaN(h),
                radius: l.radius,
                pointStyle: l.pointStyle,
                rotation: l.rotation,
                backgroundColor: l.backgroundColor,
                borderColor: l.borderColor,
                borderWidth: l.borderWidth,
                tension: Zt(a.tension, u ? u.tension : 0),
                hitRadius: l.hitRadius
            }
        },
        _resolveDatasetElementOptions: function() {
            var t = this
              , e = t._config
              , n = t.chart.options
              , i = it.prototype._resolveDatasetElementOptions.apply(t, arguments);
            return i.spanGaps = Zt(e.spanGaps, n.spanGaps),
            i.tension = Zt(e.lineTension, n.elements.line.tension),
            i
        },
        updateBezierControlPoints: function() {
            var t, e, n, i, a = this.getMeta(), r = this.chart.chartArea, o = a.data || [];
            function s(t, e, n) {
                return Math.max(Math.min(t, n), e)
            }
            for (a.dataset._model.spanGaps && (o = o.filter((function(t) {
                return !t._model.skip
            }
            ))),
            t = 0,
            e = o.length; t < e; ++t)
                n = o[t]._model,
                i = H.splineCurve(H.previousItem(o, t, !0)._model, n, H.nextItem(o, t, !0)._model, n.tension),
                n.controlPointPreviousX = s(i.previous.x, r.left, r.right),
                n.controlPointPreviousY = s(i.previous.y, r.top, r.bottom),
                n.controlPointNextX = s(i.next.x, r.left, r.right),
                n.controlPointNextY = s(i.next.y, r.top, r.bottom)
        },
        setHoverStyle: function(t) {
            var e = t._model
              , n = t._options
              , i = H.getHoverColor;
            t.$previousStyle = {
                backgroundColor: e.backgroundColor,
                borderColor: e.borderColor,
                borderWidth: e.borderWidth,
                radius: e.radius
            },
            e.backgroundColor = Zt(n.hoverBackgroundColor, i(n.backgroundColor)),
            e.borderColor = Zt(n.hoverBorderColor, i(n.borderColor)),
            e.borderWidth = Zt(n.hoverBorderWidth, n.borderWidth),
            e.radius = Zt(n.hoverRadius, n.radius)
        }
    });
    N._set("scatter", {
        hover: {
            mode: "single"
        },
        scales: {
            xAxes: [{
                id: "x-axis-1",
                type: "linear",
                position: "bottom"
            }],
            yAxes: [{
                id: "y-axis-1",
                type: "linear",
                position: "left"
            }]
        },
        tooltips: {
            callbacks: {
                title: function() {
                    return ""
                },
                label: function(t) {
                    return "(" + t.xLabel + ", " + t.yLabel + ")"
                }
            }
        }
    }),
    N._set("global", {
        datasets: {
            scatter: {
                showLine: !1
            }
        }
    });
    var Jt = {
        bar: Tt,
        bubble: Ot,
        doughnut: Bt,
        horizontalBar: Et,
        line: Yt,
        polarArea: Xt,
        pie: Kt,
        radar: $t,
        scatter: Yt
    };
    function Qt(t, e) {
        return t.native ? {
            x: t.x,
            y: t.y
        } : H.getRelativePosition(t, e)
    }
    function te(t, e) {
        var n, i, a, r, o, s, l = t._getSortedVisibleDatasetMetas();
        for (i = 0,
        r = l.length; i < r; ++i)
            for (a = 0,
            o = (n = l[i].data).length; a < o; ++a)
                (s = n[a])._view.skip || e(s)
    }
    function ee(t, e) {
        var n = [];
        return te(t, (function(t) {
            t.inRange(e.x, e.y) && n.push(t)
        }
        )),
        n
    }
    function ne(t, e, n, i) {
        var a = Number.POSITIVE_INFINITY
          , r = [];
        return te(t, (function(t) {
            if (!n || t.inRange(e.x, e.y)) {
                var o = t.getCenterPoint()
                  , s = i(e, o);
                s < a ? (r = [t],
                a = s) : s === a && r.push(t)
            }
        }
        )),
        r
    }
    function ie(t) {
        var e = -1 !== t.indexOf("x")
          , n = -1 !== t.indexOf("y");
        return function(t, i) {
            var a = e ? Math.abs(t.x - i.x) : 0
              , r = n ? Math.abs(t.y - i.y) : 0;
            return Math.sqrt(Math.pow(a, 2) + Math.pow(r, 2))
        }
    }
    function ae(t, e, n) {
        var i = Qt(e, t);
        n.axis = n.axis || "x";
        var a = ie(n.axis)
          , r = n.intersect ? ee(t, i) : ne(t, i, !1, a)
          , o = [];
        return r.length ? (t._getSortedVisibleDatasetMetas().forEach((function(t) {
            var e = t.data[r[0]._index];
            e && !e._view.skip && o.push(e)
        }
        )),
        o) : []
    }
    var re = {
        modes: {
            single: function(t, e) {
                var n = Qt(e, t)
                  , i = [];
                return te(t, (function(t) {
                    if (t.inRange(n.x, n.y))
                        return i.push(t),
                        i
                }
                )),
                i.slice(0, 1)
            },
            label: ae,
            index: ae,
            dataset: function(t, e, n) {
                var i = Qt(e, t);
                n.axis = n.axis || "xy";
                var a = ie(n.axis)
                  , r = n.intersect ? ee(t, i) : ne(t, i, !1, a);
                return r.length > 0 && (r = t.getDatasetMeta(r[0]._datasetIndex).data),
                r
            },
            "x-axis": function(t, e) {
                return ae(t, e, {
                    intersect: !1
                })
            },
            point: function(t, e) {
                return ee(t, Qt(e, t))
            },
            nearest: function(t, e, n) {
                var i = Qt(e, t);
                n.axis = n.axis || "xy";
                var a = ie(n.axis);
                return ne(t, i, n.intersect, a)
            },
            x: function(t, e, n) {
                var i = Qt(e, t)
                  , a = []
                  , r = !1;
                return te(t, (function(t) {
                    t.inXRange(i.x) && a.push(t),
                    t.inRange(i.x, i.y) && (r = !0)
                }
                )),
                n.intersect && !r && (a = []),
                a
            },
            y: function(t, e, n) {
                var i = Qt(e, t)
                  , a = []
                  , r = !1;
                return te(t, (function(t) {
                    t.inYRange(i.y) && a.push(t),
                    t.inRange(i.x, i.y) && (r = !0)
                }
                )),
                n.intersect && !r && (a = []),
                a
            }
        }
    }
      , oe = H.extend;
    function se(t, e) {
        return H.where(t, (function(t) {
            return t.pos === e
        }
        ))
    }
    function le(t, e) {
        return t.sort((function(t, n) {
            var i = e ? n : t
              , a = e ? t : n;
            return i.weight === a.weight ? i.index - a.index : i.weight - a.weight
        }
        ))
    }
    function ue(t, e, n, i) {
        return Math.max(t[n], e[n]) + Math.max(t[i], e[i])
    }
    function de(t, e, n) {
        var i, a, r = n.box, o = t.maxPadding;
        if (n.size && (t[n.pos] -= n.size),
        n.size = n.horizontal ? r.height : r.width,
        t[n.pos] += n.size,
        r.getPadding) {
            var s = r.getPadding();
            o.top = Math.max(o.top, s.top),
            o.left = Math.max(o.left, s.left),
            o.bottom = Math.max(o.bottom, s.bottom),
            o.right = Math.max(o.right, s.right)
        }
        if (i = e.outerWidth - ue(o, t, "left", "right"),
        a = e.outerHeight - ue(o, t, "top", "bottom"),
        i !== t.w || a !== t.h) {
            t.w = i,
            t.h = a;
            var l = n.horizontal ? [i, t.w] : [a, t.h];
            return !(l[0] === l[1] || isNaN(l[0]) && isNaN(l[1]))
        }
    }
    function he(t, e) {
        var n = e.maxPadding;
        function i(t) {
            var i = {
                left: 0,
                top: 0,
                right: 0,
                bottom: 0
            };
            return t.forEach((function(t) {
                i[t] = Math.max(e[t], n[t])
            }
            )),
            i
        }
        return i(t ? ["left", "right"] : ["top", "bottom"])
    }
    function ce(t, e, n) {
        var i, a, r, o, s, l, u = [];
        for (i = 0,
        a = t.length; i < a; ++i)
            (o = (r = t[i]).box).update(r.width || e.w, r.height || e.h, he(r.horizontal, e)),
            de(e, n, r) && (l = !0,
            u.length && (s = !0)),
            o.fullWidth || u.push(r);
        return s && ce(u, e, n) || l
    }
    function fe(t, e, n) {
        var i, a, r, o, s = n.padding, l = e.x, u = e.y;
        for (i = 0,
        a = t.length; i < a; ++i)
            o = (r = t[i]).box,
            r.horizontal ? (o.left = o.fullWidth ? s.left : e.left,
            o.right = o.fullWidth ? n.outerWidth - s.right : e.left + e.w,
            o.top = u,
            o.bottom = u + o.height,
            o.width = o.right - o.left,
            u = o.bottom) : (o.left = l,
            o.right = l + o.width,
            o.top = e.top,
            o.bottom = e.top + e.h,
            o.height = o.bottom - o.top,
            l = o.right);
        e.x = l,
        e.y = u
    }
    N._set("global", {
        layout: {
            padding: {
                top: 0,
                right: 0,
                bottom: 0,
                left: 0
            }
        }
    });
    var ge, pe = {
        defaults: {},
        addBox: function(t, e) {
            t.boxes || (t.boxes = []),
            e.fullWidth = e.fullWidth || !1,
            e.position = e.position || "top",
            e.weight = e.weight || 0,
            e._layers = e._layers || function() {
                return [{
                    z: 0,
                    draw: function() {
                        e.draw.apply(e, arguments)
                    }
                }]
            }
            ,
            t.boxes.push(e)
        },
        removeBox: function(t, e) {
            var n = t.boxes ? t.boxes.indexOf(e) : -1;
            -1 !== n && t.boxes.splice(n, 1)
        },
        configure: function(t, e, n) {
            for (var i, a = ["fullWidth", "position", "weight"], r = a.length, o = 0; o < r; ++o)
                i = a[o],
                n.hasOwnProperty(i) && (e[i] = n[i])
        },
        update: function(t, e, n) {
            if (t) {
                var i = t.options.layout || {}
                  , a = H.options.toPadding(i.padding)
                  , r = e - a.width
                  , o = n - a.height
                  , s = function(t) {
                    var e = function(t) {
                        var e, n, i, a = [];
                        for (e = 0,
                        n = (t || []).length; e < n; ++e)
                            i = t[e],
                            a.push({
                                index: e,
                                box: i,
                                pos: i.position,
                                horizontal: i.isHorizontal(),
                                weight: i.weight
                            });
                        return a
                    }(t)
                      , n = le(se(e, "left"), !0)
                      , i = le(se(e, "right"))
                      , a = le(se(e, "top"), !0)
                      , r = le(se(e, "bottom"));
                    return {
                        leftAndTop: n.concat(a),
                        rightAndBottom: i.concat(r),
                        chartArea: se(e, "chartArea"),
                        vertical: n.concat(i),
                        horizontal: a.concat(r)
                    }
                }(t.boxes)
                  , l = s.vertical
                  , u = s.horizontal
                  , d = Object.freeze({
                    outerWidth: e,
                    outerHeight: n,
                    padding: a,
                    availableWidth: r,
                    vBoxMaxWidth: r / 2 / l.length,
                    hBoxMaxHeight: o / 2
                })
                  , h = oe({
                    maxPadding: oe({}, a),
                    w: r,
                    h: o,
                    x: a.left,
                    y: a.top
                }, a);
                !function(t, e) {
                    var n, i, a;
                    for (n = 0,
                    i = t.length; n < i; ++n)
                        (a = t[n]).width = a.horizontal ? a.box.fullWidth && e.availableWidth : e.vBoxMaxWidth,
                        a.height = a.horizontal && e.hBoxMaxHeight
                }(l.concat(u), d),
                ce(l, h, d),
                ce(u, h, d) && ce(l, h, d),
                function(t) {
                    var e = t.maxPadding;
                    function n(n) {
                        var i = Math.max(e[n] - t[n], 0);
                        return t[n] += i,
                        i
                    }
                    t.y += n("top"),
                    t.x += n("left"),
                    n("right"),
                    n("bottom")
                }(h),
                fe(s.leftAndTop, h, d),
                h.x += h.w,
                h.y += h.h,
                fe(s.rightAndBottom, h, d),
                t.chartArea = {
                    left: h.left,
                    top: h.top,
                    right: h.left + h.w,
                    bottom: h.top + h.h
                },
                H.each(s.chartArea, (function(e) {
                    var n = e.box;
                    oe(n, t.chartArea),
                    n.update(h.w, h.h)
                }
                ))
            }
        }
    }, me = (ge = Object.freeze({
        __proto__: null,
        default: "@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"
    })) && ge.default || ge, ve = "$chartjs", be = "chartjs-size-monitor", xe = "chartjs-render-monitor", ye = "chartjs-render-animation", _e = ["animationstart", "webkitAnimationStart"], ke = {
        touchstart: "mousedown",
        touchmove: "mousemove",
        touchend: "mouseup",
        pointerenter: "mouseenter",
        pointerdown: "mousedown",
        pointermove: "mousemove",
        pointerup: "mouseup",
        pointerleave: "mouseout",
        pointerout: "mouseout"
    };
    function we(t, e) {
        var n = H.getStyle(t, e)
          , i = n && n.match(/^(\d+)(\.\d+)?px$/);
        return i ? Number(i[1]) : void 0
    }
    var Me = !!function() {
        var t = !1;
        try {
            var e = Object.defineProperty({}, "passive", {
                get: function() {
                    t = !0
                }
            });
            window.addEventListener("e", null, e)
        } catch (t) {}
        return t
    }() && {
        passive: !0
    };
    function Se(t, e, n) {
        t.addEventListener(e, n, Me)
    }
    function Ce(t, e, n) {
        t.removeEventListener(e, n, Me)
    }
    function Pe(t, e, n, i, a) {
        return {
            type: t,
            chart: e,
            native: a || null,
            x: void 0 !== n ? n : null,
            y: void 0 !== i ? i : null
        }
    }
    function Ae(t) {
        var e = document.createElement("div");
        return e.className = t || "",
        e
    }
    function De(t, e, n) {
        var i, a, r, o, s = t[ve] || (t[ve] = {}), l = s.resizer = function(t) {
            var e = Ae(be)
              , n = Ae(be + "-expand")
              , i = Ae(be + "-shrink");
            n.appendChild(Ae()),
            i.appendChild(Ae()),
            e.appendChild(n),
            e.appendChild(i),
            e._reset = function() {
                n.scrollLeft = 1e6,
                n.scrollTop = 1e6,
                i.scrollLeft = 1e6,
                i.scrollTop = 1e6
            }
            ;
            var a = function() {
                e._reset(),
                t()
            };
            return Se(n, "scroll", a.bind(n, "expand")),
            Se(i, "scroll", a.bind(i, "shrink")),
            e
        }((i = function() {
            if (s.resizer) {
                var i = n.options.maintainAspectRatio && t.parentNode
                  , a = i ? i.clientWidth : 0;
                e(Pe("resize", n)),
                i && i.clientWidth < a && n.canvas && e(Pe("resize", n))
            }
        }
        ,
        r = !1,
        o = [],
        function() {
            o = Array.prototype.slice.call(arguments),
            a = a || this,
            r || (r = !0,
            H.requestAnimFrame.call(window, (function() {
                r = !1,
                i.apply(a, o)
            }
            )))
        }
        ));
        !function(t, e) {
            var n = t[ve] || (t[ve] = {})
              , i = n.renderProxy = function(t) {
                t.animationName === ye && e()
            }
            ;
            H.each(_e, (function(e) {
                Se(t, e, i)
            }
            )),
            n.reflow = !!t.offsetParent,
            t.classList.add(xe)
        }(t, (function() {
            if (s.resizer) {
                var e = t.parentNode;
                e && e !== l.parentNode && e.insertBefore(l, e.firstChild),
                l._reset()
            }
        }
        ))
    }
    function Te(t) {
        var e = t[ve] || {}
          , n = e.resizer;
        delete e.resizer,
        function(t) {
            var e = t[ve] || {}
              , n = e.renderProxy;
            n && (H.each(_e, (function(e) {
                Ce(t, e, n)
            }
            )),
            delete e.renderProxy),
            t.classList.remove(xe)
        }(t),
        n && n.parentNode && n.parentNode.removeChild(n)
    }
    var Ie = {
        disableCSSInjection: !1,
        _enabled: "undefined" != typeof window && "undefined" != typeof document,
        _ensureLoaded: function(t) {
            if (!this.disableCSSInjection) {
                var e = t.getRootNode ? t.getRootNode() : document;
                !function(t, e) {
                    var n = t[ve] || (t[ve] = {});
                    if (!n.containsStyles) {
                        n.containsStyles = !0,
                        e = "/* Chart.js */\n" + e;
                        var i = document.createElement("style");
                        i.setAttribute("type", "text/css"),
                        i.appendChild(document.createTextNode(e)),
                        t.appendChild(i)
                    }
                }(e.host ? e : document.head, me)
            }
        },
        acquireContext: function(t, e) {
            "string" == typeof t ? t = document.getElementById(t) : t.length && (t = t[0]),
            t && t.canvas && (t = t.canvas);
            var n = t && t.getContext && t.getContext("2d");
            return n && n.canvas === t ? (this._ensureLoaded(t),
            function(t, e) {
                var n = t.style
                  , i = t.getAttribute("height")
                  , a = t.getAttribute("width");
                if (t[ve] = {
                    initial: {
                        height: i,
                        width: a,
                        style: {
                            display: n.display,
                            height: n.height,
                            width: n.width
                        }
                    }
                },
                n.display = n.display || "block",
                null === a || "" === a) {
                    var r = we(t, "width");
                    void 0 !== r && (t.width = r)
                }
                if (null === i || "" === i)
                    if ("" === t.style.height)
                        t.height = t.width / (e.options.aspectRatio || 2);
                    else {
                        var o = we(t, "height");
                        void 0 !== r && (t.height = o)
                    }
            }(t, e),
            n) : null
        },
        releaseContext: function(t) {
            var e = t.canvas;
            if (e[ve]) {
                var n = e[ve].initial;
                ["height", "width"].forEach((function(t) {
                    var i = n[t];
                    H.isNullOrUndef(i) ? e.removeAttribute(t) : e.setAttribute(t, i)
                }
                )),
                H.each(n.style || {}, (function(t, n) {
                    e.style[n] = t
                }
                )),
                e.width = e.width,
                delete e[ve]
            }
        },
        addEventListener: function(t, e, n) {
            var i = t.canvas;
            if ("resize" !== e) {
                var a = n[ve] || (n[ve] = {});
                Se(i, e, (a.proxies || (a.proxies = {}))[t.id + "_" + e] = function(e) {
                    n(function(t, e) {
                        var n = ke[t.type] || t.type
                          , i = H.getRelativePosition(t, e);
                        return Pe(n, e, i.x, i.y, t)
                    }(e, t))
                }
                )
            } else
                De(i, n, t)
        },
        removeEventListener: function(t, e, n) {
            var i = t.canvas;
            if ("resize" !== e) {
                var a = ((n[ve] || {}).proxies || {})[t.id + "_" + e];
                a && Ce(i, e, a)
            } else
                Te(i)
        }
    };
    H.addEvent = Se,
    H.removeEvent = Ce;
    var Fe = Ie._enabled ? Ie : {
        acquireContext: function(t) {
            return t && t.canvas && (t = t.canvas),
            t && t.getContext("2d") || null
        }
    }
      , Oe = H.extend({
        initialize: function() {},
        acquireContext: function() {},
        releaseContext: function() {},
        addEventListener: function() {},
        removeEventListener: function() {}
    }, Fe);
    N._set("global", {
        plugins: {}
    });
    var Le = {
        _plugins: [],
        _cacheId: 0,
        register: function(t) {
            var e = this._plugins;
            [].concat(t).forEach((function(t) {
                -1 === e.indexOf(t) && e.push(t)
            }
            )),
            this._cacheId++
        },
        unregister: function(t) {
            var e = this._plugins;
            [].concat(t).forEach((function(t) {
                var n = e.indexOf(t);
                -1 !== n && e.splice(n, 1)
            }
            )),
            this._cacheId++
        },
        clear: function() {
            this._plugins = [],
            this._cacheId++
        },
        count: function() {
            return this._plugins.length
        },
        getAll: function() {
            return this._plugins
        },
        notify: function(t, e, n) {
            var i, a, r, o, s, l = this.descriptors(t), u = l.length;
            for (i = 0; i < u; ++i)
                if ("function" == typeof (s = (r = (a = l[i]).plugin)[e]) && ((o = [t].concat(n || [])).push(a.options),
                !1 === s.apply(r, o)))
                    return !1;
            return !0
        },
        descriptors: function(t) {
            var e = t.$plugins || (t.$plugins = {});
            if (e.id === this._cacheId)
                return e.descriptors;
            var n = []
              , i = []
              , a = t && t.config || {}
              , r = a.options && a.options.plugins || {};
            return this._plugins.concat(a.plugins || []).forEach((function(t) {
                if (-1 === n.indexOf(t)) {
                    var e = t.id
                      , a = r[e];
                    !1 !== a && (!0 === a && (a = H.clone(N.global.plugins[e])),
                    n.push(t),
                    i.push({
                        plugin: t,
                        options: a || {}
                    }))
                }
            }
            )),
            e.descriptors = i,
            e.id = this._cacheId,
            i
        },
        _invalidate: function(t) {
            delete t.$plugins
        }
    }
      , Re = {
        constructors: {},
        defaults: {},
        registerScaleType: function(t, e, n) {
            this.constructors[t] = e,
            this.defaults[t] = H.clone(n)
        },
        getScaleConstructor: function(t) {
            return this.constructors.hasOwnProperty(t) ? this.constructors[t] : void 0
        },
        getScaleDefaults: function(t) {
            return this.defaults.hasOwnProperty(t) ? H.merge(Object.create(null), [N.scale, this.defaults[t]]) : {}
        },
        updateScaleDefaults: function(t, e) {
            this.defaults.hasOwnProperty(t) && (this.defaults[t] = H.extend(this.defaults[t], e))
        },
        addScalesToLayout: function(t) {
            H.each(t.scales, (function(e) {
                e.fullWidth = e.options.fullWidth,
                e.position = e.options.position,
                e.weight = e.options.weight,
                pe.addBox(t, e)
            }
            ))
        }
    }
      , ze = H.valueOrDefault
      , Ne = H.rtl.getRtlAdapter;
    N._set("global", {
        tooltips: {
            enabled: !0,
            custom: null,
            mode: "nearest",
            position: "average",
            intersect: !0,
            backgroundColor: "rgba(0,0,0,0.8)",
            titleFontStyle: "bold",
            titleSpacing: 2,
            titleMarginBottom: 6,
            titleFontColor: "#fff",
            titleAlign: "left",
            bodySpacing: 2,
            bodyFontColor: "#fff",
            bodyAlign: "left",
            footerFontStyle: "bold",
            footerSpacing: 2,
            footerMarginTop: 6,
            footerFontColor: "#fff",
            footerAlign: "left",
            yPadding: 6,
            xPadding: 6,
            caretPadding: 2,
            caretSize: 5,
            cornerRadius: 6,
            multiKeyBackground: "#fff",
            displayColors: !0,
            borderColor: "rgba(0,0,0,0)",
            borderWidth: 0,
            callbacks: {
                beforeTitle: H.noop,
                title: function(t, e) {
                    var n = ""
                      , i = e.labels
                      , a = i ? i.length : 0;
                    if (t.length > 0) {
                        var r = t[0];
                        r.label ? n = r.label : r.xLabel ? n = r.xLabel : a > 0 && r.index < a && (n = i[r.index])
                    }
                    return n
                },
                afterTitle: H.noop,
                beforeBody: H.noop,
                beforeLabel: H.noop,
                label: function(t, e) {
                    var n = e.datasets[t.datasetIndex].label || "";
                    return n && (n += ": "),
                    H.isNullOrUndef(t.value) ? n += t.yLabel : n += t.value,
                    n
                },
                labelColor: function(t, e) {
                    var n = e.getDatasetMeta(t.datasetIndex).data[t.index]._view;
                    return {
                        borderColor: n.borderColor,
                        backgroundColor: n.backgroundColor
                    }
                },
                labelTextColor: function() {
                    return this._options.bodyFontColor
                },
                afterLabel: H.noop,
                afterBody: H.noop,
                beforeFooter: H.noop,
                footer: H.noop,
                afterFooter: H.noop
            }
        }
    });
    var Be = {
        average: function(t) {
            if (!t.length)
                return !1;
            var e, n, i = 0, a = 0, r = 0;
            for (e = 0,
            n = t.length; e < n; ++e) {
                var o = t[e];
                if (o && o.hasValue()) {
                    var s = o.tooltipPosition();
                    i += s.x,
                    a += s.y,
                    ++r
                }
            }
            return {
                x: i / r,
                y: a / r
            }
        },
        nearest: function(t, e) {
            var n, i, a, r = e.x, o = e.y, s = Number.POSITIVE_INFINITY;
            for (n = 0,
            i = t.length; n < i; ++n) {
                var l = t[n];
                if (l && l.hasValue()) {
                    var u = l.getCenterPoint()
                      , d = H.distanceBetweenPoints(e, u);
                    d < s && (s = d,
                    a = l)
                }
            }
            if (a) {
                var h = a.tooltipPosition();
                r = h.x,
                o = h.y
            }
            return {
                x: r,
                y: o
            }
        }
    };
    function Ee(t, e) {
        return e && (H.isArray(e) ? Array.prototype.push.apply(t, e) : t.push(e)),
        t
    }
    function We(t) {
        return ("string" == typeof t || t instanceof String) && t.indexOf("\n") > -1 ? t.split("\n") : t
    }
    function Ve(t) {
        var e = N.global;
        return {
            xPadding: t.xPadding,
            yPadding: t.yPadding,
            xAlign: t.xAlign,
            yAlign: t.yAlign,
            rtl: t.rtl,
            textDirection: t.textDirection,
            bodyFontColor: t.bodyFontColor,
            _bodyFontFamily: ze(t.bodyFontFamily, e.defaultFontFamily),
            _bodyFontStyle: ze(t.bodyFontStyle, e.defaultFontStyle),
            _bodyAlign: t.bodyAlign,
            bodyFontSize: ze(t.bodyFontSize, e.defaultFontSize),
            bodySpacing: t.bodySpacing,
            titleFontColor: t.titleFontColor,
            _titleFontFamily: ze(t.titleFontFamily, e.defaultFontFamily),
            _titleFontStyle: ze(t.titleFontStyle, e.defaultFontStyle),
            titleFontSize: ze(t.titleFontSize, e.defaultFontSize),
            _titleAlign: t.titleAlign,
            titleSpacing: t.titleSpacing,
            titleMarginBottom: t.titleMarginBottom,
            footerFontColor: t.footerFontColor,
            _footerFontFamily: ze(t.footerFontFamily, e.defaultFontFamily),
            _footerFontStyle: ze(t.footerFontStyle, e.defaultFontStyle),
            footerFontSize: ze(t.footerFontSize, e.defaultFontSize),
            _footerAlign: t.footerAlign,
            footerSpacing: t.footerSpacing,
            footerMarginTop: t.footerMarginTop,
            caretSize: t.caretSize,
            cornerRadius: t.cornerRadius,
            backgroundColor: t.backgroundColor,
            opacity: 0,
            legendColorBackground: t.multiKeyBackground,
            displayColors: t.displayColors,
            borderColor: t.borderColor,
            borderWidth: t.borderWidth
        }
    }
    function He(t, e) {
        return "center" === e ? t.x + t.width / 2 : "right" === e ? t.x + t.width - t.xPadding : t.x + t.xPadding
    }
    function je(t) {
        return Ee([], We(t))
    }
    var qe = K.extend({
        initialize: function() {
            this._model = Ve(this._options),
            this._lastActive = []
        },
        getTitle: function() {
            var t = this
              , e = t._options
              , n = e.callbacks
              , i = n.beforeTitle.apply(t, arguments)
              , a = n.title.apply(t, arguments)
              , r = n.afterTitle.apply(t, arguments)
              , o = [];
            return o = Ee(o, We(i)),
            o = Ee(o, We(a)),
            o = Ee(o, We(r))
        },
        getBeforeBody: function() {
            return je(this._options.callbacks.beforeBody.apply(this, arguments))
        },
        getBody: function(t, e) {
            var n = this
              , i = n._options.callbacks
              , a = [];
            return H.each(t, (function(t) {
                var r = {
                    before: [],
                    lines: [],
                    after: []
                };
                Ee(r.before, We(i.beforeLabel.call(n, t, e))),
                Ee(r.lines, i.label.call(n, t, e)),
                Ee(r.after, We(i.afterLabel.call(n, t, e))),
                a.push(r)
            }
            )),
            a
        },
        getAfterBody: function() {
            return je(this._options.callbacks.afterBody.apply(this, arguments))
        },
        getFooter: function() {
            var t = this
              , e = t._options.callbacks
              , n = e.beforeFooter.apply(t, arguments)
              , i = e.footer.apply(t, arguments)
              , a = e.afterFooter.apply(t, arguments)
              , r = [];
            return r = Ee(r, We(n)),
            r = Ee(r, We(i)),
            r = Ee(r, We(a))
        },
        update: function(t) {
            var e, n, i, a, r, o, s, l, u, d, h = this, c = h._options, f = h._model, g = h._model = Ve(c), p = h._active, m = h._data, v = {
                xAlign: f.xAlign,
                yAlign: f.yAlign
            }, b = {
                x: f.x,
                y: f.y
            }, x = {
                width: f.width,
                height: f.height
            }, y = {
                x: f.caretX,
                y: f.caretY
            };
            if (p.length) {
                g.opacity = 1;
                var _ = []
                  , k = [];
                y = Be[c.position].call(h, p, h._eventPosition);
                var w = [];
                for (e = 0,
                n = p.length; e < n; ++e)
                    w.push((i = p[e],
                    a = void 0,
                    r = void 0,
                    o = void 0,
                    s = void 0,
                    l = void 0,
                    u = void 0,
                    d = void 0,
                    a = i._xScale,
                    r = i._yScale || i._scale,
                    o = i._index,
                    s = i._datasetIndex,
                    l = i._chart.getDatasetMeta(s).controller,
                    u = l._getIndexScale(),
                    d = l._getValueScale(),
                    {
                        xLabel: a ? a.getLabelForIndex(o, s) : "",
                        yLabel: r ? r.getLabelForIndex(o, s) : "",
                        label: u ? "" + u.getLabelForIndex(o, s) : "",
                        value: d ? "" + d.getLabelForIndex(o, s) : "",
                        index: o,
                        datasetIndex: s,
                        x: i._model.x,
                        y: i._model.y
                    }));
                c.filter && (w = w.filter((function(t) {
                    return c.filter(t, m)
                }
                ))),
                c.itemSort && (w = w.sort((function(t, e) {
                    return c.itemSort(t, e, m)
                }
                ))),
                H.each(w, (function(t) {
                    _.push(c.callbacks.labelColor.call(h, t, h._chart)),
                    k.push(c.callbacks.labelTextColor.call(h, t, h._chart))
                }
                )),
                g.title = h.getTitle(w, m),
                g.beforeBody = h.getBeforeBody(w, m),
                g.body = h.getBody(w, m),
                g.afterBody = h.getAfterBody(w, m),
                g.footer = h.getFooter(w, m),
                g.x = y.x,
                g.y = y.y,
                g.caretPadding = c.caretPadding,
                g.labelColors = _,
                g.labelTextColors = k,
                g.dataPoints = w,
                x = function(t, e) {
                    var n = t._chart.ctx
                      , i = 2 * e.yPadding
                      , a = 0
                      , r = e.body
                      , o = r.reduce((function(t, e) {
                        return t + e.before.length + e.lines.length + e.after.length
                    }
                    ), 0);
                    o += e.beforeBody.length + e.afterBody.length;
                    var s = e.title.length
                      , l = e.footer.length
                      , u = e.titleFontSize
                      , d = e.bodyFontSize
                      , h = e.footerFontSize;
                    i += s * u,
                    i += s ? (s - 1) * e.titleSpacing : 0,
                    i += s ? e.titleMarginBottom : 0,
                    i += o * d,
                    i += o ? (o - 1) * e.bodySpacing : 0,
                    i += l ? e.footerMarginTop : 0,
                    i += l * h,
                    i += l ? (l - 1) * e.footerSpacing : 0;
                    var c = 0
                      , f = function(t) {
                        a = Math.max(a, n.measureText(t).width + c)
                    };
                    return n.font = H.fontString(u, e._titleFontStyle, e._titleFontFamily),
                    H.each(e.title, f),
                    n.font = H.fontString(d, e._bodyFontStyle, e._bodyFontFamily),
                    H.each(e.beforeBody.concat(e.afterBody), f),
                    c = e.displayColors ? d + 2 : 0,
                    H.each(r, (function(t) {
                        H.each(t.before, f),
                        H.each(t.lines, f),
                        H.each(t.after, f)
                    }
                    )),
                    c = 0,
                    n.font = H.fontString(h, e._footerFontStyle, e._footerFontFamily),
                    H.each(e.footer, f),
                    {
                        width: a += 2 * e.xPadding,
                        height: i
                    }
                }(this, g),
                b = function(t, e, n, i) {
                    var a = t.x
                      , r = t.y
                      , o = t.caretSize
                      , s = t.caretPadding
                      , l = t.cornerRadius
                      , u = n.xAlign
                      , d = n.yAlign
                      , h = o + s
                      , c = l + s;
                    return "right" === u ? a -= e.width : "center" === u && ((a -= e.width / 2) + e.width > i.width && (a = i.width - e.width),
                    a < 0 && (a = 0)),
                    "top" === d ? r += h : r -= "bottom" === d ? e.height + h : e.height / 2,
                    "center" === d ? "left" === u ? a += h : "right" === u && (a -= h) : "left" === u ? a -= c : "right" === u && (a += c),
                    {
                        x: a,
                        y: r
                    }
                }(g, x, v = function(t, e) {
                    var n, i, a, r, o, s = t._model, l = t._chart, u = t._chart.chartArea, d = "center", h = "center";
                    s.y < e.height ? h = "top" : s.y > l.height - e.height && (h = "bottom");
                    var c = (u.left + u.right) / 2
                      , f = (u.top + u.bottom) / 2;
                    "center" === h ? (n = function(t) {
                        return t <= c
                    }
                    ,
                    i = function(t) {
                        return t > c
                    }
                    ) : (n = function(t) {
                        return t <= e.width / 2
                    }
                    ,
                    i = function(t) {
                        return t >= l.width - e.width / 2
                    }
                    ),
                    a = function(t) {
                        return t + e.width + s.caretSize + s.caretPadding > l.width
                    }
                    ,
                    r = function(t) {
                        return t - e.width - s.caretSize - s.caretPadding < 0
                    }
                    ,
                    o = function(t) {
                        return t <= f ? "top" : "bottom"
                    }
                    ,
                    n(s.x) ? (d = "left",
                    a(s.x) && (d = "center",
                    h = o(s.y))) : i(s.x) && (d = "right",
                    r(s.x) && (d = "center",
                    h = o(s.y)));
                    var g = t._options;
                    return {
                        xAlign: g.xAlign ? g.xAlign : d,
                        yAlign: g.yAlign ? g.yAlign : h
                    }
                }(this, x), h._chart)
            } else
                g.opacity = 0;
            return g.xAlign = v.xAlign,
            g.yAlign = v.yAlign,
            g.x = b.x,
            g.y = b.y,
            g.width = x.width,
            g.height = x.height,
            g.caretX = y.x,
            g.caretY = y.y,
            h._model = g,
            t && c.custom && c.custom.call(h, g),
            h
        },
        drawCaret: function(t, e) {
            var n = this._chart.ctx
              , i = this._view
              , a = this.getCaretPosition(t, e, i);
            n.lineTo(a.x1, a.y1),
            n.lineTo(a.x2, a.y2),
            n.lineTo(a.x3, a.y3)
        },
        getCaretPosition: function(t, e, n) {
            var i, a, r, o, s, l, u = n.caretSize, d = n.cornerRadius, h = n.xAlign, c = n.yAlign, f = t.x, g = t.y, p = e.width, m = e.height;
            if ("center" === c)
                s = g + m / 2,
                "left" === h ? (a = (i = f) - u,
                r = i,
                o = s + u,
                l = s - u) : (a = (i = f + p) + u,
                r = i,
                o = s - u,
                l = s + u);
            else if ("left" === h ? (i = (a = f + d + u) - u,
            r = a + u) : "right" === h ? (i = (a = f + p - d - u) - u,
            r = a + u) : (i = (a = n.caretX) - u,
            r = a + u),
            "top" === c)
                s = (o = g) - u,
                l = o;
            else {
                s = (o = g + m) + u,
                l = o;
                var v = r;
                r = i,
                i = v
            }
            return {
                x1: i,
                x2: a,
                x3: r,
                y1: o,
                y2: s,
                y3: l
            }
        },
        drawTitle: function(t, e, n) {
            var i, a, r, o = e.title, s = o.length;
            if (s) {
                var l = Ne(e.rtl, e.x, e.width);
                for (t.x = He(e, e._titleAlign),
                n.textAlign = l.textAlign(e._titleAlign),
                n.textBaseline = "middle",
                i = e.titleFontSize,
                a = e.titleSpacing,
                n.fillStyle = e.titleFontColor,
                n.font = H.fontString(i, e._titleFontStyle, e._titleFontFamily),
                r = 0; r < s; ++r)
                    n.fillText(o[r], l.x(t.x), t.y + i / 2),
                    t.y += i + a,
                    r + 1 === s && (t.y += e.titleMarginBottom - a)
            }
        },
        drawBody: function(t, e, n) {
            var i, a, r, o, s, l, u, d, h = e.bodyFontSize, c = e.bodySpacing, f = e._bodyAlign, g = e.body, p = e.displayColors, m = 0, v = p ? He(e, "left") : 0, b = Ne(e.rtl, e.x, e.width), x = function(e) {
                n.fillText(e, b.x(t.x + m), t.y + h / 2),
                t.y += h + c
            }, y = b.textAlign(f);
            for (n.textAlign = f,
            n.textBaseline = "middle",
            n.font = H.fontString(h, e._bodyFontStyle, e._bodyFontFamily),
            t.x = He(e, y),
            n.fillStyle = e.bodyFontColor,
            H.each(e.beforeBody, x),
            m = p && "right" !== y ? "center" === f ? h / 2 + 1 : h + 2 : 0,
            s = 0,
            u = g.length; s < u; ++s) {
                for (i = g[s],
                a = e.labelTextColors[s],
                r = e.labelColors[s],
                n.fillStyle = a,
                H.each(i.before, x),
                l = 0,
                d = (o = i.lines).length; l < d; ++l) {
                    if (p) {
                        var _ = b.x(v);
                        n.fillStyle = e.legendColorBackground,
                        n.fillRect(b.leftForLtr(_, h), t.y, h, h),
                        n.lineWidth = 1,
                        n.strokeStyle = r.borderColor,
                        n.strokeRect(b.leftForLtr(_, h), t.y, h, h),
                        n.fillStyle = r.backgroundColor,
                        n.fillRect(b.leftForLtr(b.xPlus(_, 1), h - 2), t.y + 1, h - 2, h - 2),
                        n.fillStyle = a
                    }
                    x(o[l])
                }
                H.each(i.after, x)
            }
            m = 0,
            H.each(e.afterBody, x),
            t.y -= c
        },
        drawFooter: function(t, e, n) {
            var i, a, r = e.footer, o = r.length;
            if (o) {
                var s = Ne(e.rtl, e.x, e.width);
                for (t.x = He(e, e._footerAlign),
                t.y += e.footerMarginTop,
                n.textAlign = s.textAlign(e._footerAlign),
                n.textBaseline = "middle",
                i = e.footerFontSize,
                n.fillStyle = e.footerFontColor,
                n.font = H.fontString(i, e._footerFontStyle, e._footerFontFamily),
                a = 0; a < o; ++a)
                    n.fillText(r[a], s.x(t.x), t.y + i / 2),
                    t.y += i + e.footerSpacing
            }
        },
        drawBackground: function(t, e, n, i) {
            n.fillStyle = e.backgroundColor,
            n.strokeStyle = e.borderColor,
            n.lineWidth = e.borderWidth;
            var a = e.xAlign
              , r = e.yAlign
              , o = t.x
              , s = t.y
              , l = i.width
              , u = i.height
              , d = e.cornerRadius;
            n.beginPath(),
            n.moveTo(o + d, s),
            "top" === r && this.drawCaret(t, i),
            n.lineTo(o + l - d, s),
            n.quadraticCurveTo(o + l, s, o + l, s + d),
            "center" === r && "right" === a && this.drawCaret(t, i),
            n.lineTo(o + l, s + u - d),
            n.quadraticCurveTo(o + l, s + u, o + l - d, s + u),
            "bottom" === r && this.drawCaret(t, i),
            n.lineTo(o + d, s + u),
            n.quadraticCurveTo(o, s + u, o, s + u - d),
            "center" === r && "left" === a && this.drawCaret(t, i),
            n.lineTo(o, s + d),
            n.quadraticCurveTo(o, s, o + d, s),
            n.closePath(),
            n.fill(),
            e.borderWidth > 0 && n.stroke()
        },
        draw: function() {
            var t = this._chart.ctx
              , e = this._view;
            if (0 !== e.opacity) {
                var n = {
                    width: e.width,
                    height: e.height
                }
                  , i = {
                    x: e.x,
                    y: e.y
                }
                  , a = Math.abs(e.opacity < .001) ? 0 : e.opacity
                  , r = e.title.length || e.beforeBody.length || e.body.length || e.afterBody.length || e.footer.length;
                this._options.enabled && r && (t.save(),
                t.globalAlpha = a,
                this.drawBackground(i, e, t, n),
                i.y += e.yPadding,
                H.rtl.overrideTextDirection(t, e.textDirection),
                this.drawTitle(i, e, t),
                this.drawBody(i, e, t),
                this.drawFooter(i, e, t),
                H.rtl.restoreTextDirection(t, e.textDirection),
                t.restore())
            }
        },
        handleEvent: function(t) {
            var e, n = this, i = n._options;
            return n._lastActive = n._lastActive || [],
            "mouseout" === t.type ? n._active = [] : (n._active = n._chart.getElementsAtEventForMode(t, i.mode, i),
            i.reverse && n._active.reverse()),
            (e = !H.arrayEquals(n._active, n._lastActive)) && (n._lastActive = n._active,
            (i.enabled || i.custom) && (n._eventPosition = {
                x: t.x,
                y: t.y
            },
            n.update(!0),
            n.pivot())),
            e
        }
    })
      , Ue = Be
      , Ye = qe;
    Ye.positioners = Ue;
    var Ge = H.valueOrDefault;
    function Xe() {
        return H.merge(Object.create(null), [].slice.call(arguments), {
            merger: function(t, e, n, i) {
                if ("xAxes" === t || "yAxes" === t) {
                    var a, r, o, s = n[t].length;
                    for (e[t] || (e[t] = []),
                    a = 0; a < s; ++a)
                        o = n[t][a],
                        r = Ge(o.type, "xAxes" === t ? "category" : "linear"),
                        a >= e[t].length && e[t].push({}),
                        !e[t][a].type || o.type && o.type !== e[t][a].type ? H.merge(e[t][a], [Re.getScaleDefaults(r), o]) : H.merge(e[t][a], o)
                } else
                    H._merger(t, e, n, i)
            }
        })
    }
    function Ke() {
        return H.merge(Object.create(null), [].slice.call(arguments), {
            merger: function(t, e, n, i) {
                var a = e[t] || Object.create(null)
                  , r = n[t];
                "scales" === t ? e[t] = Xe(a, r) : "scale" === t ? e[t] = H.merge(a, [Re.getScaleDefaults(r.type), r]) : H._merger(t, e, n, i)
            }
        })
    }
    function Ze(t) {
        var e = t.options;
        H.each(t.scales, (function(e) {
            pe.removeBox(t, e)
        }
        )),
        e = Ke(N.global, N[t.config.type], e),
        t.options = t.config.options = e,
        t.ensureScalesHaveIDs(),
        t.buildOrUpdateScales(),
        t.tooltip._options = e.tooltips,
        t.tooltip.initialize()
    }
    function $e(t, e, n) {
        var i, a = function(t) {
            return t.id === i
        };
        do {
            i = e + n++
        } while (H.findIndex(t, a) >= 0);
        return i
    }
    function Je(t) {
        return "top" === t || "bottom" === t
    }
    function Qe(t, e) {
        return function(n, i) {
            return n[t] === i[t] ? n[e] - i[e] : n[t] - i[t]
        }
    }
    N._set("global", {
        elements: {},
        events: ["mousemove", "mouseout", "click", "touchstart", "touchmove"],
        hover: {
            onHover: null,
            mode: "nearest",
            intersect: !0,
            animationDuration: 400
        },
        onClick: null,
        maintainAspectRatio: !0,
        responsive: !0,
        responsiveAnimationDuration: 0
    });
    var tn = function(t, e) {
        return this.construct(t, e),
        this
    };
    H.extend(tn.prototype, {
        construct: function(t, e) {
            var n = this;
            e = function(t) {
                var e = (t = t || Object.create(null)).data = t.data || {};
                return e.datasets = e.datasets || [],
                e.labels = e.labels || [],
                t.options = Ke(N.global, N[t.type], t.options || {}),
                t
            }(e);
            var i = Oe.acquireContext(t, e)
              , a = i && i.canvas
              , r = a && a.height
              , o = a && a.width;
            n.id = H.uid(),
            n.ctx = i,
            n.canvas = a,
            n.config = e,
            n.width = o,
            n.height = r,
            n.aspectRatio = r ? o / r : null,
            n.options = e.options,
            n._bufferedRender = !1,
            n._layers = [],
            n.chart = n,
            n.controller = n,
            tn.instances[n.id] = n,
            Object.defineProperty(n, "data", {
                get: function() {
                    return n.config.data
                },
                set: function(t) {
                    n.config.data = t
                }
            }),
            i && a ? (n.initialize(),
            n.update()) : console.error("Failed to create chart: can't acquire context from the given item")
        },
        initialize: function() {
            var t = this;
            return Le.notify(t, "beforeInit"),
            H.retinaScale(t, t.options.devicePixelRatio),
            t.bindEvents(),
            t.options.responsive && t.resize(!0),
            t.initToolTip(),
            Le.notify(t, "afterInit"),
            t
        },
        clear: function() {
            return H.canvas.clear(this),
            this
        },
        stop: function() {
            return J.cancelAnimation(this),
            this
        },
        resize: function(t) {
            var e = this
              , n = e.options
              , i = e.canvas
              , a = n.maintainAspectRatio && e.aspectRatio || null
              , r = Math.max(0, Math.floor(H.getMaximumWidth(i)))
              , o = Math.max(0, Math.floor(a ? r / a : H.getMaximumHeight(i)));
            if ((e.width !== r || e.height !== o) && (i.width = e.width = r,
            i.height = e.height = o,
            i.style.width = r + "px",
            i.style.height = o + "px",
            H.retinaScale(e, n.devicePixelRatio),
            !t)) {
                var s = {
                    width: r,
                    height: o
                };
                Le.notify(e, "resize", [s]),
                n.onResize && n.onResize(e, s),
                e.stop(),
                e.update({
                    duration: n.responsiveAnimationDuration
                })
            }
        },
        ensureScalesHaveIDs: function() {
            var t = this.options
              , e = t.scales || {}
              , n = t.scale;
            H.each(e.xAxes, (function(t, n) {
                t.id || (t.id = $e(e.xAxes, "x-axis-", n))
            }
            )),
            H.each(e.yAxes, (function(t, n) {
                t.id || (t.id = $e(e.yAxes, "y-axis-", n))
            }
            )),
            n && (n.id = n.id || "scale")
        },
        buildOrUpdateScales: function() {
            var t = this
              , e = t.options
              , n = t.scales || {}
              , i = []
              , a = Object.keys(n).reduce((function(t, e) {
                return t[e] = !1,
                t
            }
            ), {});
            e.scales && (i = i.concat((e.scales.xAxes || []).map((function(t) {
                return {
                    options: t,
                    dtype: "category",
                    dposition: "bottom"
                }
            }
            )), (e.scales.yAxes || []).map((function(t) {
                return {
                    options: t,
                    dtype: "linear",
                    dposition: "left"
                }
            }
            )))),
            e.scale && i.push({
                options: e.scale,
                dtype: "radialLinear",
                isDefault: !0,
                dposition: "chartArea"
            }),
            H.each(i, (function(e) {
                var i = e.options
                  , r = i.id
                  , o = Ge(i.type, e.dtype);
                Je(i.position) !== Je(e.dposition) && (i.position = e.dposition),
                a[r] = !0;
                var s = null;
                if (r in n && n[r].type === o)
                    (s = n[r]).options = i,
                    s.ctx = t.ctx,
                    s.chart = t;
                else {
                    var l = Re.getScaleConstructor(o);
                    if (!l)
                        return;
                    s = new l({
                        id: r,
                        type: o,
                        options: i,
                        ctx: t.ctx,
                        chart: t
                    }),
                    n[s.id] = s
                }
                s.mergeTicksOptions(),
                e.isDefault && (t.scale = s)
            }
            )),
            H.each(a, (function(t, e) {
                t || delete n[e]
            }
            )),
            t.scales = n,
            Re.addScalesToLayout(this)
        },
        buildOrUpdateControllers: function() {
            var t, e, n = this, i = [], a = n.data.datasets;
            for (t = 0,
            e = a.length; t < e; t++) {
                var r = a[t]
                  , o = n.getDatasetMeta(t)
                  , s = r.type || n.config.type;
                if (o.type && o.type !== s && (n.destroyDatasetMeta(t),
                o = n.getDatasetMeta(t)),
                o.type = s,
                o.order = r.order || 0,
                o.index = t,
                o.controller)
                    o.controller.updateIndex(t),
                    o.controller.linkScales();
                else {
                    var l = Jt[o.type];
                    if (void 0 === l)
                        throw new Error('"' + o.type + '" is not a chart type.');
                    o.controller = new l(n,t),
                    i.push(o.controller)
                }
            }
            return i
        },
        resetElements: function() {
            var t = this;
            H.each(t.data.datasets, (function(e, n) {
                t.getDatasetMeta(n).controller.reset()
            }
            ), t)
        },
        reset: function() {
            this.resetElements(),
            this.tooltip.initialize()
        },
        update: function(t) {
            var e, n, i = this;
            if (t && "object" == typeof t || (t = {
                duration: t,
                lazy: arguments[1]
            }),
            Ze(i),
            Le._invalidate(i),
            !1 !== Le.notify(i, "beforeUpdate")) {
                i.tooltip._data = i.data;
                var a = i.buildOrUpdateControllers();
                for (e = 0,
                n = i.data.datasets.length; e < n; e++)
                    i.getDatasetMeta(e).controller.buildOrUpdateElements();
                i.updateLayout(),
                i.options.animation && i.options.animation.duration && H.each(a, (function(t) {
                    t.reset()
                }
                )),
                i.updateDatasets(),
                i.tooltip.initialize(),
                i.lastActive = [],
                Le.notify(i, "afterUpdate"),
                i._layers.sort(Qe("z", "_idx")),
                i._bufferedRender ? i._bufferedRequest = {
                    duration: t.duration,
                    easing: t.easing,
                    lazy: t.lazy
                } : i.render(t)
            }
        },
        updateLayout: function() {
            var t = this;
            !1 !== Le.notify(t, "beforeLayout") && (pe.update(this, this.width, this.height),
            t._layers = [],
            H.each(t.boxes, (function(e) {
                e._configure && e._configure(),
                t._layers.push.apply(t._layers, e._layers())
            }
            ), t),
            t._layers.forEach((function(t, e) {
                t._idx = e
            }
            )),
            Le.notify(t, "afterScaleUpdate"),
            Le.notify(t, "afterLayout"))
        },
        updateDatasets: function() {
            if (!1 !== Le.notify(this, "beforeDatasetsUpdate")) {
                for (var t = 0, e = this.data.datasets.length; t < e; ++t)
                    this.updateDataset(t);
                Le.notify(this, "afterDatasetsUpdate")
            }
        },
        updateDataset: function(t) {
            var e = this.getDatasetMeta(t)
              , n = {
                meta: e,
                index: t
            };
            !1 !== Le.notify(this, "beforeDatasetUpdate", [n]) && (e.controller._update(),
            Le.notify(this, "afterDatasetUpdate", [n]))
        },
        render: function(t) {
            var e = this;
            t && "object" == typeof t || (t = {
                duration: t,
                lazy: arguments[1]
            });
            var n = e.options.animation
              , i = Ge(t.duration, n && n.duration)
              , a = t.lazy;
            if (!1 !== Le.notify(e, "beforeRender")) {
                var r = function(t) {
                    Le.notify(e, "afterRender"),
                    H.callback(n && n.onComplete, [t], e)
                };
                if (n && i) {
                    var o = new $({
                        numSteps: i / 16.66,
                        easing: t.easing || n.easing,
                        render: function(t, e) {
                            var n = H.easing.effects[e.easing]
                              , i = e.currentStep
                              , a = i / e.numSteps;
                            t.draw(n(a), a, i)
                        },
                        onAnimationProgress: n.onProgress,
                        onAnimationComplete: r
                    });
                    J.addAnimation(e, o, i, a)
                } else
                    e.draw(),
                    r(new $({
                        numSteps: 0,
                        chart: e
                    }));
                return e
            }
        },
        draw: function(t) {
            var e, n, i = this;
            if (i.clear(),
            H.isNullOrUndef(t) && (t = 1),
            i.transition(t),
            !(i.width <= 0 || i.height <= 0) && !1 !== Le.notify(i, "beforeDraw", [t])) {
                for (n = i._layers,
                e = 0; e < n.length && n[e].z <= 0; ++e)
                    n[e].draw(i.chartArea);
                for (i.drawDatasets(t); e < n.length; ++e)
                    n[e].draw(i.chartArea);
                i._drawTooltip(t),
                Le.notify(i, "afterDraw", [t])
            }
        },
        transition: function(t) {
            for (var e = 0, n = (this.data.datasets || []).length; e < n; ++e)
                this.isDatasetVisible(e) && this.getDatasetMeta(e).controller.transition(t);
            this.tooltip.transition(t)
        },
        _getSortedDatasetMetas: function(t) {
            var e, n, i = [];
            for (e = 0,
            n = (this.data.datasets || []).length; e < n; ++e)
                t && !this.isDatasetVisible(e) || i.push(this.getDatasetMeta(e));
            return i.sort(Qe("order", "index")),
            i
        },
        _getSortedVisibleDatasetMetas: function() {
            return this._getSortedDatasetMetas(!0)
        },
        drawDatasets: function(t) {
            var e, n;
            if (!1 !== Le.notify(this, "beforeDatasetsDraw", [t])) {
                for (n = (e = this._getSortedVisibleDatasetMetas()).length - 1; n >= 0; --n)
                    this.drawDataset(e[n], t);
                Le.notify(this, "afterDatasetsDraw", [t])
            }
        },
        drawDataset: function(t, e) {
            var n = {
                meta: t,
                index: t.index,
                easingValue: e
            };
            !1 !== Le.notify(this, "beforeDatasetDraw", [n]) && (t.controller.draw(e),
            Le.notify(this, "afterDatasetDraw", [n]))
        },
        _drawTooltip: function(t) {
            var e = this.tooltip
              , n = {
                tooltip: e,
                easingValue: t
            };
            !1 !== Le.notify(this, "beforeTooltipDraw", [n]) && (e.draw(),
            Le.notify(this, "afterTooltipDraw", [n]))
        },
        getElementAtEvent: function(t) {
            return re.modes.single(this, t)
        },
        getElementsAtEvent: function(t) {
            return re.modes.label(this, t, {
                intersect: !0
            })
        },
        getElementsAtXAxis: function(t) {
            return re.modes["x-axis"](this, t, {
                intersect: !0
            })
        },
        getElementsAtEventForMode: function(t, e, n) {
            var i = re.modes[e];
            return "function" == typeof i ? i(this, t, n) : []
        },
        getDatasetAtEvent: function(t) {
            return re.modes.dataset(this, t, {
                intersect: !0
            })
        },
        getDatasetMeta: function(t) {
            var e = this.data.datasets[t];
            e._meta || (e._meta = {});
            var n = e._meta[this.id];
            return n || (n = e._meta[this.id] = {
                type: null,
                data: [],
                dataset: null,
                controller: null,
                hidden: null,
                xAxisID: null,
                yAxisID: null,
                order: e.order || 0,
                index: t
            }),
            n
        },
        getVisibleDatasetCount: function() {
            for (var t = 0, e = 0, n = this.data.datasets.length; e < n; ++e)
                this.isDatasetVisible(e) && t++;
            return t
        },
        isDatasetVisible: function(t) {
            var e = this.getDatasetMeta(t);
            return "boolean" == typeof e.hidden ? !e.hidden : !this.data.datasets[t].hidden
        },
        generateLegend: function() {
            return this.options.legendCallback(this)
        },
        destroyDatasetMeta: function(t) {
            var e = this.id
              , n = this.data.datasets[t]
              , i = n._meta && n._meta[e];
            i && (i.controller.destroy(),
            delete n._meta[e])
        },
        destroy: function() {
            var t, e, n = this, i = n.canvas;
            for (n.stop(),
            t = 0,
            e = n.data.datasets.length; t < e; ++t)
                n.destroyDatasetMeta(t);
            i && (n.unbindEvents(),
            H.canvas.clear(n),
            Oe.releaseContext(n.ctx),
            n.canvas = null,
            n.ctx = null),
            Le.notify(n, "destroy"),
            delete tn.instances[n.id]
        },
        toBase64Image: function() {
            return this.canvas.toDataURL.apply(this.canvas, arguments)
        },
        initToolTip: function() {
            var t = this;
            t.tooltip = new Ye({
                _chart: t,
                _chartInstance: t,
                _data: t.data,
                _options: t.options.tooltips
            },t)
        },
        bindEvents: function() {
            var t = this
              , e = t._listeners = {}
              , n = function() {
                t.eventHandler.apply(t, arguments)
            };
            H.each(t.options.events, (function(i) {
                Oe.addEventListener(t, i, n),
                e[i] = n
            }
            )),
            t.options.responsive && (n = function() {
                t.resize()
            }
            ,
            Oe.addEventListener(t, "resize", n),
            e.resize = n)
        },
        unbindEvents: function() {
            var t = this
              , e = t._listeners;
            e && (delete t._listeners,
            H.each(e, (function(e, n) {
                Oe.removeEventListener(t, n, e)
            }
            )))
        },
        updateHoverStyle: function(t, e, n) {
            var i, a, r, o = n ? "set" : "remove";
            for (a = 0,
            r = t.length; a < r; ++a)
                (i = t[a]) && this.getDatasetMeta(i._datasetIndex).controller[o + "HoverStyle"](i);
            "dataset" === e && this.getDatasetMeta(t[0]._datasetIndex).controller["_" + o + "DatasetHoverStyle"]()
        },
        eventHandler: function(t) {
            var e = this
              , n = e.tooltip;
            if (!1 !== Le.notify(e, "beforeEvent", [t])) {
                e._bufferedRender = !0,
                e._bufferedRequest = null;
                var i = e.handleEvent(t);
                n && (i = n._start ? n.handleEvent(t) : i | n.handleEvent(t)),
                Le.notify(e, "afterEvent", [t]);
                var a = e._bufferedRequest;
                return a ? e.render(a) : i && !e.animating && (e.stop(),
                e.render({
                    duration: e.options.hover.animationDuration,
                    lazy: !0
                })),
                e._bufferedRender = !1,
                e._bufferedRequest = null,
                e
            }
        },
        handleEvent: function(t) {
            var e, n = this, i = n.options || {}, a = i.hover;
            return n.lastActive = n.lastActive || [],
            "mouseout" === t.type ? n.active = [] : n.active = n.getElementsAtEventForMode(t, a.mode, a),
            H.callback(i.onHover || i.hover.onHover, [t.native, n.active], n),
            "mouseup" !== t.type && "click" !== t.type || i.onClick && i.onClick.call(n, t.native, n.active),
            n.lastActive.length && n.updateHoverStyle(n.lastActive, a.mode, !1),
            n.active.length && a.mode && n.updateHoverStyle(n.active, a.mode, !0),
            e = !H.arrayEquals(n.active, n.lastActive),
            n.lastActive = n.active,
            e
        }
    }),
    tn.instances = {};
    var en = tn;
    tn.Controller = tn,
    tn.types = {},
    H.configMerge = Ke,
    H.scaleMerge = Xe;
    function nn() {
        throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")
    }
    function an(t) {
        this.options = t || {}
    }
    H.extend(an.prototype, {
        formats: nn,
        parse: nn,
        format: nn,
        add: nn,
        diff: nn,
        startOf: nn,
        endOf: nn,
        _create: function(t) {
            return t
        }
    }),
    an.override = function(t) {
        H.extend(an.prototype, t)
    }
    ;
    var rn = {
        _date: an
    }
      , on = {
        formatters: {
            values: function(t) {
                return H.isArray(t) ? t : "" + t
            },
            linear: function(t, e, n) {
                var i = n.length > 3 ? n[2] - n[1] : n[1] - n[0];
                Math.abs(i) > 1 && t !== Math.floor(t) && (i = t - Math.floor(t));
                var a = H.log10(Math.abs(i))
                  , r = "";
                if (0 !== t)
                    if (Math.max(Math.abs(n[0]), Math.abs(n[n.length - 1])) < 1e-4) {
                        var o = H.log10(Math.abs(t))
                          , s = Math.floor(o) - Math.floor(a);
                        s = Math.max(Math.min(s, 20), 0),
                        r = t.toExponential(s)
                    } else {
                        var l = -1 * Math.floor(a);
                        l = Math.max(Math.min(l, 20), 0),
                        r = t.toFixed(l)
                    }
                else
                    r = "0";
                return r
            },
            logarithmic: function(t, e, n) {
                var i = t / Math.pow(10, Math.floor(H.log10(t)));
                return 0 === t ? "0" : 1 === i || 2 === i || 5 === i || 0 === e || e === n.length - 1 ? t.toExponential() : ""
            }
        }
    }
      , sn = H.isArray
      , ln = H.isNullOrUndef
      , un = H.valueOrDefault
      , dn = H.valueAtIndexOrDefault;
    function hn(t, e, n) {
        var i, a = t.getTicks().length, r = Math.min(e, a - 1), o = t.getPixelForTick(r), s = t._startPixel, l = t._endPixel;
        if (!(n && (i = 1 === a ? Math.max(o - s, l - o) : 0 === e ? (t.getPixelForTick(1) - o) / 2 : (o - t.getPixelForTick(r - 1)) / 2,
        (o += r < e ? i : -i) < s - 1e-6 || o > l + 1e-6)))
            return o
    }
    function cn(t, e, n, i) {
        var a, r, o, s, l, u, d, h, c, f, g, p, m, v = n.length, b = [], x = [], y = [], _ = 0, k = 0;
        for (a = 0; a < v; ++a) {
            if (s = n[a].label,
            l = n[a].major ? e.major : e.minor,
            t.font = u = l.string,
            d = i[u] = i[u] || {
                data: {},
                gc: []
            },
            h = l.lineHeight,
            c = f = 0,
            ln(s) || sn(s)) {
                if (sn(s))
                    for (r = 0,
                    o = s.length; r < o; ++r)
                        g = s[r],
                        ln(g) || sn(g) || (c = H.measureText(t, d.data, d.gc, c, g),
                        f += h)
            } else
                c = H.measureText(t, d.data, d.gc, c, s),
                f = h;
            b.push(c),
            x.push(f),
            y.push(h / 2),
            _ = Math.max(c, _),
            k = Math.max(f, k)
        }
        function w(t) {
            return {
                width: b[t] || 0,
                height: x[t] || 0,
                offset: y[t] || 0
            }
        }
        return function(t, e) {
            H.each(t, (function(t) {
                var n, i = t.gc, a = i.length / 2;
                if (a > e) {
                    for (n = 0; n < a; ++n)
                        delete t.data[i[n]];
                    i.splice(0, a)
                }
            }
            ))
        }(i, v),
        p = b.indexOf(_),
        m = x.indexOf(k),
        {
            first: w(0),
            last: w(v - 1),
            widest: w(p),
            highest: w(m)
        }
    }
    function fn(t) {
        return t.drawTicks ? t.tickMarkLength : 0
    }
    function gn(t) {
        var e, n;
        return t.display ? (e = H.options._parseFont(t),
        n = H.options.toPadding(t.padding),
        e.lineHeight + n.height) : 0
    }
    function pn(t, e) {
        return H.extend(H.options._parseFont({
            fontFamily: un(e.fontFamily, t.fontFamily),
            fontSize: un(e.fontSize, t.fontSize),
            fontStyle: un(e.fontStyle, t.fontStyle),
            lineHeight: un(e.lineHeight, t.lineHeight)
        }), {
            color: H.options.resolve([e.fontColor, t.fontColor, N.global.defaultFontColor])
        })
    }
    function mn(t) {
        var e = pn(t, t.minor);
        return {
            minor: e,
            major: t.major.enabled ? pn(t, t.major) : e
        }
    }
    function vn(t) {
        var e, n, i, a = [];
        for (n = 0,
        i = t.length; n < i; ++n)
            void 0 !== (e = t[n])._index && a.push(e);
        return a
    }
    function bn(t, e, n, i) {
        var a, r, o, s, l = un(n, 0), u = Math.min(un(i, t.length), t.length), d = 0;
        for (e = Math.ceil(e),
        i && (e = (a = i - n) / Math.floor(a / e)),
        s = l; s < 0; )
            d++,
            s = Math.round(l + d * e);
        for (r = Math.max(l, 0); r < u; r++)
            o = t[r],
            r === s ? (o._index = r,
            d++,
            s = Math.round(l + d * e)) : delete o.label
    }
    N._set("scale", {
        display: !0,
        position: "left",
        offset: !1,
        gridLines: {
            display: !0,
            color: "rgba(0,0,0,0.1)",
            lineWidth: 1,
            drawBorder: !0,
            drawOnChartArea: !0,
            drawTicks: !0,
            tickMarkLength: 10,
            zeroLineWidth: 1,
            zeroLineColor: "rgba(0,0,0,0.25)",
            zeroLineBorderDash: [],
            zeroLineBorderDashOffset: 0,
            offsetGridLines: !1,
            borderDash: [],
            borderDashOffset: 0
        },
        scaleLabel: {
            display: !1,
            labelString: "",
            padding: {
                top: 4,
                bottom: 4
            }
        },
        ticks: {
            beginAtZero: !1,
            minRotation: 0,
            maxRotation: 50,
            mirror: !1,
            padding: 0,
            reverse: !1,
            display: !0,
            autoSkip: !0,
            autoSkipPadding: 0,
            labelOffset: 0,
            callback: on.formatters.values,
            minor: {},
            major: {}
        }
    });
    var xn = K.extend({
        zeroLineIndex: 0,
        getPadding: function() {
            return {
                left: this.paddingLeft || 0,
                top: this.paddingTop || 0,
                right: this.paddingRight || 0,
                bottom: this.paddingBottom || 0
            }
        },
        getTicks: function() {
            return this._ticks
        },
        _getLabels: function() {
            var t = this.chart.data;
            return this.options.labels || (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels || []
        },
        mergeTicksOptions: function() {},
        beforeUpdate: function() {
            H.callback(this.options.beforeUpdate, [this])
        },
        update: function(t, e, n) {
            var i, a, r, o, s, l = this, u = l.options.ticks, d = u.sampleSize;
            if (l.beforeUpdate(),
            l.maxWidth = t,
            l.maxHeight = e,
            l.margins = H.extend({
                left: 0,
                right: 0,
                top: 0,
                bottom: 0
            }, n),
            l._ticks = null,
            l.ticks = null,
            l._labelSizes = null,
            l._maxLabelLines = 0,
            l.longestLabelWidth = 0,
            l.longestTextCache = l.longestTextCache || {},
            l._gridLineItems = null,
            l._labelItems = null,
            l.beforeSetDimensions(),
            l.setDimensions(),
            l.afterSetDimensions(),
            l.beforeDataLimits(),
            l.determineDataLimits(),
            l.afterDataLimits(),
            l.beforeBuildTicks(),
            o = l.buildTicks() || [],
            (!(o = l.afterBuildTicks(o) || o) || !o.length) && l.ticks)
                for (o = [],
                i = 0,
                a = l.ticks.length; i < a; ++i)
                    o.push({
                        value: l.ticks[i],
                        major: !1
                    });
            return l._ticks = o,
            s = d < o.length,
            r = l._convertTicksToLabels(s ? function(t, e) {
                for (var n = [], i = t.length / e, a = 0, r = t.length; a < r; a += i)
                    n.push(t[Math.floor(a)]);
                return n
            }(o, d) : o),
            l._configure(),
            l.beforeCalculateTickRotation(),
            l.calculateTickRotation(),
            l.afterCalculateTickRotation(),
            l.beforeFit(),
            l.fit(),
            l.afterFit(),
            l._ticksToDraw = u.display && (u.autoSkip || "auto" === u.source) ? l._autoSkip(o) : o,
            s && (r = l._convertTicksToLabels(l._ticksToDraw)),
            l.ticks = r,
            l.afterUpdate(),
            l.minSize
        },
        _configure: function() {
            var t, e, n = this, i = n.options.ticks.reverse;
            n.isHorizontal() ? (t = n.left,
            e = n.right) : (t = n.top,
            e = n.bottom,
            i = !i),
            n._startPixel = t,
            n._endPixel = e,
            n._reversePixels = i,
            n._length = e - t
        },
        afterUpdate: function() {
            H.callback(this.options.afterUpdate, [this])
        },
        beforeSetDimensions: function() {
            H.callback(this.options.beforeSetDimensions, [this])
        },
        setDimensions: function() {
            var t = this;
            t.isHorizontal() ? (t.width = t.maxWidth,
            t.left = 0,
            t.right = t.width) : (t.height = t.maxHeight,
            t.top = 0,
            t.bottom = t.height),
            t.paddingLeft = 0,
            t.paddingTop = 0,
            t.paddingRight = 0,
            t.paddingBottom = 0
        },
        afterSetDimensions: function() {
            H.callback(this.options.afterSetDimensions, [this])
        },
        beforeDataLimits: function() {
            H.callback(this.options.beforeDataLimits, [this])
        },
        determineDataLimits: H.noop,
        afterDataLimits: function() {
            H.callback(this.options.afterDataLimits, [this])
        },
        beforeBuildTicks: function() {
            H.callback(this.options.beforeBuildTicks, [this])
        },
        buildTicks: H.noop,
        afterBuildTicks: function(t) {
            var e = this;
            return sn(t) && t.length ? H.callback(e.options.afterBuildTicks, [e, t]) : (e.ticks = H.callback(e.options.afterBuildTicks, [e, e.ticks]) || e.ticks,
            t)
        },
        beforeTickToLabelConversion: function() {
            H.callback(this.options.beforeTickToLabelConversion, [this])
        },
        convertTicksToLabels: function() {
            var t = this.options.ticks;
            this.ticks = this.ticks.map(t.userCallback || t.callback, this)
        },
        afterTickToLabelConversion: function() {
            H.callback(this.options.afterTickToLabelConversion, [this])
        },
        beforeCalculateTickRotation: function() {
            H.callback(this.options.beforeCalculateTickRotation, [this])
        },
        calculateTickRotation: function() {
            var t, e, n, i, a, r, o, s = this, l = s.options, u = l.ticks, d = s.getTicks().length, h = u.minRotation || 0, c = u.maxRotation, f = h;
            !s._isVisible() || !u.display || h >= c || d <= 1 || !s.isHorizontal() ? s.labelRotation = h : (e = (t = s._getLabelSizes()).widest.width,
            n = t.highest.height - t.highest.offset,
            i = Math.min(s.maxWidth, s.chart.width - e),
            e + 6 > (a = l.offset ? s.maxWidth / d : i / (d - 1)) && (a = i / (d - (l.offset ? .5 : 1)),
            r = s.maxHeight - fn(l.gridLines) - u.padding - gn(l.scaleLabel),
            o = Math.sqrt(e * e + n * n),
            f = H.toDegrees(Math.min(Math.asin(Math.min((t.highest.height + 6) / a, 1)), Math.asin(Math.min(r / o, 1)) - Math.asin(n / o))),
            f = Math.max(h, Math.min(c, f))),
            s.labelRotation = f)
        },
        afterCalculateTickRotation: function() {
            H.callback(this.options.afterCalculateTickRotation, [this])
        },
        beforeFit: function() {
            H.callback(this.options.beforeFit, [this])
        },
        fit: function() {
            var t = this
              , e = t.minSize = {
                width: 0,
                height: 0
            }
              , n = t.chart
              , i = t.options
              , a = i.ticks
              , r = i.scaleLabel
              , o = i.gridLines
              , s = t._isVisible()
              , l = "bottom" === i.position
              , u = t.isHorizontal();
            if (u ? e.width = t.maxWidth : s && (e.width = fn(o) + gn(r)),
            u ? s && (e.height = fn(o) + gn(r)) : e.height = t.maxHeight,
            a.display && s) {
                var d = mn(a)
                  , h = t._getLabelSizes()
                  , c = h.first
                  , f = h.last
                  , g = h.widest
                  , p = h.highest
                  , m = .4 * d.minor.lineHeight
                  , v = a.padding;
                if (u) {
                    var b = 0 !== t.labelRotation
                      , x = H.toRadians(t.labelRotation)
                      , y = Math.cos(x)
                      , _ = Math.sin(x)
                      , k = _ * g.width + y * (p.height - (b ? p.offset : 0)) + (b ? 0 : m);
                    e.height = Math.min(t.maxHeight, e.height + k + v);
                    var w, M, S = t.getPixelForTick(0) - t.left, C = t.right - t.getPixelForTick(t.getTicks().length - 1);
                    b ? (w = l ? y * c.width + _ * c.offset : _ * (c.height - c.offset),
                    M = l ? _ * (f.height - f.offset) : y * f.width + _ * f.offset) : (w = c.width / 2,
                    M = f.width / 2),
                    t.paddingLeft = Math.max((w - S) * t.width / (t.width - S), 0) + 3,
                    t.paddingRight = Math.max((M - C) * t.width / (t.width - C), 0) + 3
                } else {
                    var P = a.mirror ? 0 : g.width + v + m;
                    e.width = Math.min(t.maxWidth, e.width + P),
                    t.paddingTop = c.height / 2,
                    t.paddingBottom = f.height / 2
                }
            }
            t.handleMargins(),
            u ? (t.width = t._length = n.width - t.margins.left - t.margins.right,
            t.height = e.height) : (t.width = e.width,
            t.height = t._length = n.height - t.margins.top - t.margins.bottom)
        },
        handleMargins: function() {
            var t = this;
            t.margins && (t.margins.left = Math.max(t.paddingLeft, t.margins.left),
            t.margins.top = Math.max(t.paddingTop, t.margins.top),
            t.margins.right = Math.max(t.paddingRight, t.margins.right),
            t.margins.bottom = Math.max(t.paddingBottom, t.margins.bottom))
        },
        afterFit: function() {
            H.callback(this.options.afterFit, [this])
        },
        isHorizontal: function() {
            var t = this.options.position;
            return "top" === t || "bottom" === t
        },
        isFullWidth: function() {
            return this.options.fullWidth
        },
        getRightValue: function(t) {
            if (ln(t))
                return NaN;
            if (("number" == typeof t || t instanceof Number) && !isFinite(t))
                return NaN;
            if (t)
                if (this.isHorizontal()) {
                    if (void 0 !== t.x)
                        return this.getRightValue(t.x)
                } else if (void 0 !== t.y)
                    return this.getRightValue(t.y);
            return t
        },
        _convertTicksToLabels: function(t) {
            var e, n, i, a = this;
            for (a.ticks = t.map((function(t) {
                return t.value
            }
            )),
            a.beforeTickToLabelConversion(),
            e = a.convertTicksToLabels(t) || a.ticks,
            a.afterTickToLabelConversion(),
            n = 0,
            i = t.length; n < i; ++n)
                t[n].label = e[n];
            return e
        },
        _getLabelSizes: function() {
            var t = this
              , e = t._labelSizes;
            return e || (t._labelSizes = e = cn(t.ctx, mn(t.options.ticks), t.getTicks(), t.longestTextCache),
            t.longestLabelWidth = e.widest.width),
            e
        },
        _parseValue: function(t) {
            var e, n, i, a;
            return sn(t) ? (e = +this.getRightValue(t[0]),
            n = +this.getRightValue(t[1]),
            i = Math.min(e, n),
            a = Math.max(e, n)) : (e = void 0,
            n = t = +this.getRightValue(t),
            i = t,
            a = t),
            {
                min: i,
                max: a,
                start: e,
                end: n
            }
        },
        _getScaleLabel: function(t) {
            var e = this._parseValue(t);
            return void 0 !== e.start ? "[" + e.start + ", " + e.end + "]" : +this.getRightValue(t)
        },
        getLabelForIndex: H.noop,
        getPixelForValue: H.noop,
        getValueForPixel: H.noop,
        getPixelForTick: function(t) {
            var e = this.options.offset
              , n = this._ticks.length
              , i = 1 / Math.max(n - (e ? 0 : 1), 1);
            return t < 0 || t > n - 1 ? null : this.getPixelForDecimal(t * i + (e ? i / 2 : 0))
        },
        getPixelForDecimal: function(t) {
            return this._reversePixels && (t = 1 - t),
            this._startPixel + t * this._length
        },
        getDecimalForPixel: function(t) {
            var e = (t - this._startPixel) / this._length;
            return this._reversePixels ? 1 - e : e
        },
        getBasePixel: function() {
            return this.getPixelForValue(this.getBaseValue())
        },
        getBaseValue: function() {
            var t = this.min
              , e = this.max;
            return this.beginAtZero ? 0 : t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0
        },
        _autoSkip: function(t) {
            var e, n, i, a, r = this.options.ticks, o = this._length, s = r.maxTicksLimit || o / this._tickSize() + 1, l = r.major.enabled ? function(t) {
                var e, n, i = [];
                for (e = 0,
                n = t.length; e < n; e++)
                    t[e].major && i.push(e);
                return i
            }(t) : [], u = l.length, d = l[0], h = l[u - 1];
            if (u > s)
                return function(t, e, n) {
                    var i, a, r = 0, o = e[0];
                    for (n = Math.ceil(n),
                    i = 0; i < t.length; i++)
                        a = t[i],
                        i === o ? (a._index = i,
                        o = e[++r * n]) : delete a.label
                }(t, l, u / s),
                vn(t);
            if (i = function(t, e, n, i) {
                var a, r, o, s, l = function(t) {
                    var e, n, i = t.length;
                    if (i < 2)
                        return !1;
                    for (n = t[0],
                    e = 1; e < i; ++e)
                        if (t[e] - t[e - 1] !== n)
                            return !1;
                    return n
                }(t), u = (e.length - 1) / i;
                if (!l)
                    return Math.max(u, 1);
                for (o = 0,
                s = (a = H.math._factorize(l)).length - 1; o < s; o++)
                    if ((r = a[o]) > u)
                        return r;
                return Math.max(u, 1)
            }(l, t, 0, s),
            u > 0) {
                for (e = 0,
                n = u - 1; e < n; e++)
                    bn(t, i, l[e], l[e + 1]);
                return a = u > 1 ? (h - d) / (u - 1) : null,
                bn(t, i, H.isNullOrUndef(a) ? 0 : d - a, d),
                bn(t, i, h, H.isNullOrUndef(a) ? t.length : h + a),
                vn(t)
            }
            return bn(t, i),
            vn(t)
        },
        _tickSize: function() {
            var t = this.options.ticks
              , e = H.toRadians(this.labelRotation)
              , n = Math.abs(Math.cos(e))
              , i = Math.abs(Math.sin(e))
              , a = this._getLabelSizes()
              , r = t.autoSkipPadding || 0
              , o = a ? a.widest.width + r : 0
              , s = a ? a.highest.height + r : 0;
            return this.isHorizontal() ? s * n > o * i ? o / n : s / i : s * i < o * n ? s / n : o / i
        },
        _isVisible: function() {
            var t, e, n, i = this.chart, a = this.options.display;
            if ("auto" !== a)
                return !!a;
            for (t = 0,
            e = i.data.datasets.length; t < e; ++t)
                if (i.isDatasetVisible(t) && ((n = i.getDatasetMeta(t)).xAxisID === this.id || n.yAxisID === this.id))
                    return !0;
            return !1
        },
        _computeGridLineItems: function(t) {
            var e, n, i, a, r, o, s, l, u, d, h, c, f, g, p, m, v, b = this, x = b.chart, y = b.options, _ = y.gridLines, k = y.position, w = _.offsetGridLines, M = b.isHorizontal(), S = b._ticksToDraw, C = S.length + (w ? 1 : 0), P = fn(_), A = [], D = _.drawBorder ? dn(_.lineWidth, 0, 0) : 0, T = D / 2, I = H._alignPixel, F = function(t) {
                return I(x, t, D)
            };
            for ("top" === k ? (e = F(b.bottom),
            s = b.bottom - P,
            u = e - T,
            h = F(t.top) + T,
            f = t.bottom) : "bottom" === k ? (e = F(b.top),
            h = t.top,
            f = F(t.bottom) - T,
            s = e + T,
            u = b.top + P) : "left" === k ? (e = F(b.right),
            o = b.right - P,
            l = e - T,
            d = F(t.left) + T,
            c = t.right) : (e = F(b.left),
            d = t.left,
            c = F(t.right) - T,
            o = e + T,
            l = b.left + P),
            n = 0; n < C; ++n)
                i = S[n] || {},
                ln(i.label) && n < S.length || (n === b.zeroLineIndex && y.offset === w ? (g = _.zeroLineWidth,
                p = _.zeroLineColor,
                m = _.zeroLineBorderDash || [],
                v = _.zeroLineBorderDashOffset || 0) : (g = dn(_.lineWidth, n, 1),
                p = dn(_.color, n, "rgba(0,0,0,0.1)"),
                m = _.borderDash || [],
                v = _.borderDashOffset || 0),
                void 0 !== (a = hn(b, i._index || n, w)) && (r = I(x, a, g),
                M ? o = l = d = c = r : s = u = h = f = r,
                A.push({
                    tx1: o,
                    ty1: s,
                    tx2: l,
                    ty2: u,
                    x1: d,
                    y1: h,
                    x2: c,
                    y2: f,
                    width: g,
                    color: p,
                    borderDash: m,
                    borderDashOffset: v
                })));
            return A.ticksLength = C,
            A.borderValue = e,
            A
        },
        _computeLabelItems: function() {
            var t, e, n, i, a, r, o, s, l, u, d, h, c = this, f = c.options, g = f.ticks, p = f.position, m = g.mirror, v = c.isHorizontal(), b = c._ticksToDraw, x = mn(g), y = g.padding, _ = fn(f.gridLines), k = -H.toRadians(c.labelRotation), w = [];
            for ("top" === p ? (r = c.bottom - _ - y,
            o = k ? "left" : "center") : "bottom" === p ? (r = c.top + _ + y,
            o = k ? "right" : "center") : "left" === p ? (a = c.right - (m ? 0 : _) - y,
            o = m ? "left" : "right") : (a = c.left + (m ? 0 : _) + y,
            o = m ? "right" : "left"),
            t = 0,
            e = b.length; t < e; ++t)
                i = (n = b[t]).label,
                ln(i) || (s = c.getPixelForTick(n._index || t) + g.labelOffset,
                u = (l = n.major ? x.major : x.minor).lineHeight,
                d = sn(i) ? i.length : 1,
                v ? (a = s,
                h = "top" === p ? ((k ? 1 : .5) - d) * u : (k ? 0 : .5) * u) : (r = s,
                h = (1 - d) * u / 2),
                w.push({
                    x: a,
                    y: r,
                    rotation: k,
                    label: i,
                    font: l,
                    textOffset: h,
                    textAlign: o
                }));
            return w
        },
        _drawGrid: function(t) {
            var e = this
              , n = e.options.gridLines;
            if (n.display) {
                var i, a, r, o, s, l = e.ctx, u = e.chart, d = H._alignPixel, h = n.drawBorder ? dn(n.lineWidth, 0, 0) : 0, c = e._gridLineItems || (e._gridLineItems = e._computeGridLineItems(t));
                for (r = 0,
                o = c.length; r < o; ++r)
                    i = (s = c[r]).width,
                    a = s.color,
                    i && a && (l.save(),
                    l.lineWidth = i,
                    l.strokeStyle = a,
                    l.setLineDash && (l.setLineDash(s.borderDash),
                    l.lineDashOffset = s.borderDashOffset),
                    l.beginPath(),
                    n.drawTicks && (l.moveTo(s.tx1, s.ty1),
                    l.lineTo(s.tx2, s.ty2)),
                    n.drawOnChartArea && (l.moveTo(s.x1, s.y1),
                    l.lineTo(s.x2, s.y2)),
                    l.stroke(),
                    l.restore());
                if (h) {
                    var f, g, p, m, v = h, b = dn(n.lineWidth, c.ticksLength - 1, 1), x = c.borderValue;
                    e.isHorizontal() ? (f = d(u, e.left, v) - v / 2,
                    g = d(u, e.right, b) + b / 2,
                    p = m = x) : (p = d(u, e.top, v) - v / 2,
                    m = d(u, e.bottom, b) + b / 2,
                    f = g = x),
                    l.lineWidth = h,
                    l.strokeStyle = dn(n.color, 0),
                    l.beginPath(),
                    l.moveTo(f, p),
                    l.lineTo(g, m),
                    l.stroke()
                }
            }
        },
        _drawLabels: function() {
            var t = this;
            if (t.options.ticks.display) {
                var e, n, i, a, r, o, s, l, u = t.ctx, d = t._labelItems || (t._labelItems = t._computeLabelItems());
                for (e = 0,
                i = d.length; e < i; ++e) {
                    if (o = (r = d[e]).font,
                    u.save(),
                    u.translate(r.x, r.y),
                    u.rotate(r.rotation),
                    u.font = o.string,
                    u.fillStyle = o.color,
                    u.textBaseline = "middle",
                    u.textAlign = r.textAlign,
                    s = r.label,
                    l = r.textOffset,
                    sn(s))
                        for (n = 0,
                        a = s.length; n < a; ++n)
                            u.fillText("" + s[n], 0, l),
                            l += o.lineHeight;
                    else
                        u.fillText(s, 0, l);
                    u.restore()
                }
            }
        },
        _drawTitle: function() {
            var t = this
              , e = t.ctx
              , n = t.options
              , i = n.scaleLabel;
            if (i.display) {
                var a, r, o = un(i.fontColor, N.global.defaultFontColor), s = H.options._parseFont(i), l = H.options.toPadding(i.padding), u = s.lineHeight / 2, d = n.position, h = 0;
                if (t.isHorizontal())
                    a = t.left + t.width / 2,
                    r = "bottom" === d ? t.bottom - u - l.bottom : t.top + u + l.top;
                else {
                    var c = "left" === d;
                    a = c ? t.left + u + l.top : t.right - u - l.top,
                    r = t.top + t.height / 2,
                    h = c ? -.5 * Math.PI : .5 * Math.PI
                }
                e.save(),
                e.translate(a, r),
                e.rotate(h),
                e.textAlign = "center",
                e.textBaseline = "middle",
                e.fillStyle = o,
                e.font = s.string,
                e.fillText(i.labelString, 0, 0),
                e.restore()
            }
        },
        draw: function(t) {
            this._isVisible() && (this._drawGrid(t),
            this._drawTitle(),
            this._drawLabels())
        },
        _layers: function() {
            var t = this
              , e = t.options
              , n = e.ticks && e.ticks.z || 0
              , i = e.gridLines && e.gridLines.z || 0;
            return t._isVisible() && n !== i && t.draw === t._draw ? [{
                z: i,
                draw: function() {
                    t._drawGrid.apply(t, arguments),
                    t._drawTitle.apply(t, arguments)
                }
            }, {
                z: n,
                draw: function() {
                    t._drawLabels.apply(t, arguments)
                }
            }] : [{
                z: n,
                draw: function() {
                    t.draw.apply(t, arguments)
                }
            }]
        },
        _getMatchingVisibleMetas: function(t) {
            var e = this
              , n = e.isHorizontal();
            return e.chart._getSortedVisibleDatasetMetas().filter((function(i) {
                return (!t || i.type === t) && (n ? i.xAxisID === e.id : i.yAxisID === e.id)
            }
            ))
        }
    });
    xn.prototype._draw = xn.prototype.draw;
    var yn = xn
      , _n = H.isNullOrUndef
      , kn = yn.extend({
        determineDataLimits: function() {
            var t, e = this, n = e._getLabels(), i = e.options.ticks, a = i.min, r = i.max, o = 0, s = n.length - 1;
            void 0 !== a && (t = n.indexOf(a)) >= 0 && (o = t),
            void 0 !== r && (t = n.indexOf(r)) >= 0 && (s = t),
            e.minIndex = o,
            e.maxIndex = s,
            e.min = n[o],
            e.max = n[s]
        },
        buildTicks: function() {
            var t = this._getLabels()
              , e = this.minIndex
              , n = this.maxIndex;
            this.ticks = 0 === e && n === t.length - 1 ? t : t.slice(e, n + 1)
        },
        getLabelForIndex: function(t, e) {
            var n = this.chart;
            return n.getDatasetMeta(e).controller._getValueScaleId() === this.id ? this.getRightValue(n.data.datasets[e].data[t]) : this._getLabels()[t]
        },
        _configure: function() {
            var t = this
              , e = t.options.offset
              , n = t.ticks;
            yn.prototype._configure.call(t),
            t.isHorizontal() || (t._reversePixels = !t._reversePixels),
            n && (t._startValue = t.minIndex - (e ? .5 : 0),
            t._valueRange = Math.max(n.length - (e ? 0 : 1), 1))
        },
        getPixelForValue: function(t, e, n) {
            var i, a, r, o = this;
            return _n(e) || _n(n) || (t = o.chart.data.datasets[n].data[e]),
            _n(t) || (i = o.isHorizontal() ? t.x : t.y),
            (void 0 !== i || void 0 !== t && isNaN(e)) && (a = o._getLabels(),
            t = H.valueOrDefault(i, t),
            e = -1 !== (r = a.indexOf(t)) ? r : e,
            isNaN(e) && (e = t)),
            o.getPixelForDecimal((e - o._startValue) / o._valueRange)
        },
        getPixelForTick: function(t) {
            var e = this.ticks;
            return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t], t + this.minIndex)
        },
        getValueForPixel: function(t) {
            var e = Math.round(this._startValue + this.getDecimalForPixel(t) * this._valueRange);
            return Math.min(Math.max(e, 0), this.ticks.length - 1)
        },
        getBasePixel: function() {
            return this.bottom
        }
    })
      , wn = {
        position: "bottom"
    };
    kn._defaults = wn;
    var Mn = H.noop
      , Sn = H.isNullOrUndef;
    var Cn = yn.extend({
        getRightValue: function(t) {
            return "string" == typeof t ? +t : yn.prototype.getRightValue.call(this, t)
        },
        handleTickRangeOptions: function() {
            var t = this
              , e = t.options.ticks;
            if (e.beginAtZero) {
                var n = H.sign(t.min)
                  , i = H.sign(t.max);
                n < 0 && i < 0 ? t.max = 0 : n > 0 && i > 0 && (t.min = 0)
            }
            var a = void 0 !== e.min || void 0 !== e.suggestedMin
              , r = void 0 !== e.max || void 0 !== e.suggestedMax;
            void 0 !== e.min ? t.min = e.min : void 0 !== e.suggestedMin && (null === t.min ? t.min = e.suggestedMin : t.min = Math.min(t.min, e.suggestedMin)),
            void 0 !== e.max ? t.max = e.max : void 0 !== e.suggestedMax && (null === t.max ? t.max = e.suggestedMax : t.max = Math.max(t.max, e.suggestedMax)),
            a !== r && t.min >= t.max && (a ? t.max = t.min + 1 : t.min = t.max - 1),
            t.min === t.max && (t.max++,
            e.beginAtZero || t.min--)
        },
        getTickLimit: function() {
            var t, e = this.options.ticks, n = e.stepSize, i = e.maxTicksLimit;
            return n ? t = Math.ceil(this.max / n) - Math.floor(this.min / n) + 1 : (t = this._computeTickLimit(),
            i = i || 11),
            i && (t = Math.min(i, t)),
            t
        },
        _computeTickLimit: function() {
            return Number.POSITIVE_INFINITY
        },
        handleDirectionalChanges: Mn,
        buildTicks: function() {
            var t = this
              , e = t.options.ticks
              , n = t.getTickLimit()
              , i = {
                maxTicks: n = Math.max(2, n),
                min: e.min,
                max: e.max,
                precision: e.precision,
                stepSize: H.valueOrDefault(e.fixedStepSize, e.stepSize)
            }
              , a = t.ticks = function(t, e) {
                var n, i, a, r, o = [], s = t.stepSize, l = s || 1, u = t.maxTicks - 1, d = t.min, h = t.max, c = t.precision, f = e.min, g = e.max, p = H.niceNum((g - f) / u / l) * l;
                if (p < 1e-14 && Sn(d) && Sn(h))
                    return [f, g];
                (r = Math.ceil(g / p) - Math.floor(f / p)) > u && (p = H.niceNum(r * p / u / l) * l),
                s || Sn(c) ? n = Math.pow(10, H._decimalPlaces(p)) : (n = Math.pow(10, c),
                p = Math.ceil(p * n) / n),
                i = Math.floor(f / p) * p,
                a = Math.ceil(g / p) * p,
                s && (!Sn(d) && H.almostWhole(d / p, p / 1e3) && (i = d),
                !Sn(h) && H.almostWhole(h / p, p / 1e3) && (a = h)),
                r = (a - i) / p,
                r = H.almostEquals(r, Math.round(r), p / 1e3) ? Math.round(r) : Math.ceil(r),
                i = Math.round(i * n) / n,
                a = Math.round(a * n) / n,
                o.push(Sn(d) ? i : d);
                for (var m = 1; m < r; ++m)
                    o.push(Math.round((i + m * p) * n) / n);
                return o.push(Sn(h) ? a : h),
                o
            }(i, t);
            t.handleDirectionalChanges(),
            t.max = H.max(a),
            t.min = H.min(a),
            e.reverse ? (a.reverse(),
            t.start = t.max,
            t.end = t.min) : (t.start = t.min,
            t.end = t.max)
        },
        convertTicksToLabels: function() {
            var t = this;
            t.ticksAsNumbers = t.ticks.slice(),
            t.zeroLineIndex = t.ticks.indexOf(0),
            yn.prototype.convertTicksToLabels.call(t)
        },
        _configure: function() {
            var t, e = this, n = e.getTicks(), i = e.min, a = e.max;
            yn.prototype._configure.call(e),
            e.options.offset && n.length && (i -= t = (a - i) / Math.max(n.length - 1, 1) / 2,
            a += t),
            e._startValue = i,
            e._endValue = a,
            e._valueRange = a - i
        }
    })
      , Pn = {
        position: "left",
        ticks: {
            callback: on.formatters.linear
        }
    };
    function An(t, e, n, i) {
        var a, r, o = t.options, s = function(t, e, n) {
            var i = [n.type, void 0 === e && void 0 === n.stack ? n.index : "", n.stack].join(".");
            return void 0 === t[i] && (t[i] = {
                pos: [],
                neg: []
            }),
            t[i]
        }(e, o.stacked, n), l = s.pos, u = s.neg, d = i.length;
        for (a = 0; a < d; ++a)
            r = t._parseValue(i[a]),
            isNaN(r.min) || isNaN(r.max) || n.data[a].hidden || (l[a] = l[a] || 0,
            u[a] = u[a] || 0,
            o.relativePoints ? l[a] = 100 : r.min < 0 || r.max < 0 ? u[a] += r.min : l[a] += r.max)
    }
    function Dn(t, e, n) {
        var i, a, r = n.length;
        for (i = 0; i < r; ++i)
            a = t._parseValue(n[i]),
            isNaN(a.min) || isNaN(a.max) || e.data[i].hidden || (t.min = Math.min(t.min, a.min),
            t.max = Math.max(t.max, a.max))
    }
    var Tn = Cn.extend({
        determineDataLimits: function() {
            var t, e, n, i, a = this, r = a.options, o = a.chart.data.datasets, s = a._getMatchingVisibleMetas(), l = r.stacked, u = {}, d = s.length;
            if (a.min = Number.POSITIVE_INFINITY,
            a.max = Number.NEGATIVE_INFINITY,
            void 0 === l)
                for (t = 0; !l && t < d; ++t)
                    l = void 0 !== (e = s[t]).stack;
            for (t = 0; t < d; ++t)
                n = o[(e = s[t]).index].data,
                l ? An(a, u, e, n) : Dn(a, e, n);
            H.each(u, (function(t) {
                i = t.pos.concat(t.neg),
                a.min = Math.min(a.min, H.min(i)),
                a.max = Math.max(a.max, H.max(i))
            }
            )),
            a.min = H.isFinite(a.min) && !isNaN(a.min) ? a.min : 0,
            a.max = H.isFinite(a.max) && !isNaN(a.max) ? a.max : 1,
            a.handleTickRangeOptions()
        },
        _computeTickLimit: function() {
            var t;
            return this.isHorizontal() ? Math.ceil(this.width / 40) : (t = H.options._parseFont(this.options.ticks),
            Math.ceil(this.height / t.lineHeight))
        },
        handleDirectionalChanges: function() {
            this.isHorizontal() || this.ticks.reverse()
        },
        getLabelForIndex: function(t, e) {
            return this._getScaleLabel(this.chart.data.datasets[e].data[t])
        },
        getPixelForValue: function(t) {
            return this.getPixelForDecimal((+this.getRightValue(t) - this._startValue) / this._valueRange)
        },
        getValueForPixel: function(t) {
            return this._startValue + this.getDecimalForPixel(t) * this._valueRange
        },
        getPixelForTick: function(t) {
            var e = this.ticksAsNumbers;
            return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t])
        }
    })
      , In = Pn;
    Tn._defaults = In;
    var Fn = H.valueOrDefault
      , On = H.math.log10;
    var Ln = {
        position: "left",
        ticks: {
            callback: on.formatters.logarithmic
        }
    };
    function Rn(t, e) {
        return H.isFinite(t) && t >= 0 ? t : e
    }
    var zn = yn.extend({
        determineDataLimits: function() {
            var t, e, n, i, a, r, o = this, s = o.options, l = o.chart, u = l.data.datasets, d = o.isHorizontal();
            function h(t) {
                return d ? t.xAxisID === o.id : t.yAxisID === o.id
            }
            o.min = Number.POSITIVE_INFINITY,
            o.max = Number.NEGATIVE_INFINITY,
            o.minNotZero = Number.POSITIVE_INFINITY;
            var c = s.stacked;
            if (void 0 === c)
                for (t = 0; t < u.length; t++)
                    if (e = l.getDatasetMeta(t),
                    l.isDatasetVisible(t) && h(e) && void 0 !== e.stack) {
                        c = !0;
                        break
                    }
            if (s.stacked || c) {
                var f = {};
                for (t = 0; t < u.length; t++) {
                    var g = [(e = l.getDatasetMeta(t)).type, void 0 === s.stacked && void 0 === e.stack ? t : "", e.stack].join(".");
                    if (l.isDatasetVisible(t) && h(e))
                        for (void 0 === f[g] && (f[g] = []),
                        a = 0,
                        r = (i = u[t].data).length; a < r; a++) {
                            var p = f[g];
                            n = o._parseValue(i[a]),
                            isNaN(n.min) || isNaN(n.max) || e.data[a].hidden || n.min < 0 || n.max < 0 || (p[a] = p[a] || 0,
                            p[a] += n.max)
                        }
                }
                H.each(f, (function(t) {
                    if (t.length > 0) {
                        var e = H.min(t)
                          , n = H.max(t);
                        o.min = Math.min(o.min, e),
                        o.max = Math.max(o.max, n)
                    }
                }
                ))
            } else
                for (t = 0; t < u.length; t++)
                    if (e = l.getDatasetMeta(t),
                    l.isDatasetVisible(t) && h(e))
                        for (a = 0,
                        r = (i = u[t].data).length; a < r; a++)
                            n = o._parseValue(i[a]),
                            isNaN(n.min) || isNaN(n.max) || e.data[a].hidden || n.min < 0 || n.max < 0 || (o.min = Math.min(n.min, o.min),
                            o.max = Math.max(n.max, o.max),
                            0 !== n.min && (o.minNotZero = Math.min(n.min, o.minNotZero)));
            o.min = H.isFinite(o.min) ? o.min : null,
            o.max = H.isFinite(o.max) ? o.max : null,
            o.minNotZero = H.isFinite(o.minNotZero) ? o.minNotZero : null,
            this.handleTickRangeOptions()
        },
        handleTickRangeOptions: function() {
            var t = this
              , e = t.options.ticks;
            t.min = Rn(e.min, t.min),
            t.max = Rn(e.max, t.max),
            t.min === t.max && (0 !== t.min && null !== t.min ? (t.min = Math.pow(10, Math.floor(On(t.min)) - 1),
            t.max = Math.pow(10, Math.floor(On(t.max)) + 1)) : (t.min = 1,
            t.max = 10)),
            null === t.min && (t.min = Math.pow(10, Math.floor(On(t.max)) - 1)),
            null === t.max && (t.max = 0 !== t.min ? Math.pow(10, Math.floor(On(t.min)) + 1) : 10),
            null === t.minNotZero && (t.min > 0 ? t.minNotZero = t.min : t.max < 1 ? t.minNotZero = Math.pow(10, Math.floor(On(t.max))) : t.minNotZero = 1)
        },
        buildTicks: function() {
            var t = this
              , e = t.options.ticks
              , n = !t.isHorizontal()
              , i = {
                min: Rn(e.min),
                max: Rn(e.max)
            }
              , a = t.ticks = function(t, e) {
                var n, i, a = [], r = Fn(t.min, Math.pow(10, Math.floor(On(e.min)))), o = Math.floor(On(e.max)), s = Math.ceil(e.max / Math.pow(10, o));
                0 === r ? (n = Math.floor(On(e.minNotZero)),
                i = Math.floor(e.minNotZero / Math.pow(10, n)),
                a.push(r),
                r = i * Math.pow(10, n)) : (n = Math.floor(On(r)),
                i = Math.floor(r / Math.pow(10, n)));
                var l = n < 0 ? Math.pow(10, Math.abs(n)) : 1;
                do {
                    a.push(r),
                    10 === ++i && (i = 1,
                    l = ++n >= 0 ? 1 : l),
                    r = Math.round(i * Math.pow(10, n) * l) / l
                } while (n < o || n === o && i < s);
                var u = Fn(t.max, r);
                return a.push(u),
                a
            }(i, t);
            t.max = H.max(a),
            t.min = H.min(a),
            e.reverse ? (n = !n,
            t.start = t.max,
            t.end = t.min) : (t.start = t.min,
            t.end = t.max),
            n && a.reverse()
        },
        convertTicksToLabels: function() {
            this.tickValues = this.ticks.slice(),
            yn.prototype.convertTicksToLabels.call(this)
        },
        getLabelForIndex: function(t, e) {
            return this._getScaleLabel(this.chart.data.datasets[e].data[t])
        },
        getPixelForTick: function(t) {
            var e = this.tickValues;
            return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t])
        },
        _getFirstTickValue: function(t) {
            var e = Math.floor(On(t));
            return Math.floor(t / Math.pow(10, e)) * Math.pow(10, e)
        },
        _configure: function() {
            var t = this
              , e = t.min
              , n = 0;
            yn.prototype._configure.call(t),
            0 === e && (e = t._getFirstTickValue(t.minNotZero),
            n = Fn(t.options.ticks.fontSize, N.global.defaultFontSize) / t._length),
            t._startValue = On(e),
            t._valueOffset = n,
            t._valueRange = (On(t.max) - On(e)) / (1 - n)
        },
        getPixelForValue: function(t) {
            var e = this
              , n = 0;
            return (t = +e.getRightValue(t)) > e.min && t > 0 && (n = (On(t) - e._startValue) / e._valueRange + e._valueOffset),
            e.getPixelForDecimal(n)
        },
        getValueForPixel: function(t) {
            var e = this
              , n = e.getDecimalForPixel(t);
            return 0 === n && 0 === e.min ? 0 : Math.pow(10, e._startValue + (n - e._valueOffset) * e._valueRange)
        }
    })
      , Nn = Ln;
    zn._defaults = Nn;
    var Bn = H.valueOrDefault
      , En = H.valueAtIndexOrDefault
      , Wn = H.options.resolve
      , Vn = {
        display: !0,
        animate: !0,
        position: "chartArea",
        angleLines: {
            display: !0,
            color: "rgba(0,0,0,0.1)",
            lineWidth: 1,
            borderDash: [],
            borderDashOffset: 0
        },
        gridLines: {
            circular: !1
        },
        ticks: {
            showLabelBackdrop: !0,
            backdropColor: "rgba(255,255,255,0.75)",
            backdropPaddingY: 2,
            backdropPaddingX: 2,
            callback: on.formatters.linear
        },
        pointLabels: {
            display: !0,
            fontSize: 10,
            callback: function(t) {
                return t
            }
        }
    };
    function Hn(t) {
        var e = t.ticks;
        return e.display && t.display ? Bn(e.fontSize, N.global.defaultFontSize) + 2 * e.backdropPaddingY : 0
    }
    function jn(t, e, n, i, a) {
        return t === i || t === a ? {
            start: e - n / 2,
            end: e + n / 2
        } : t < i || t > a ? {
            start: e - n,
            end: e
        } : {
            start: e,
            end: e + n
        }
    }
    function qn(t) {
        return 0 === t || 180 === t ? "center" : t < 180 ? "left" : "right"
    }
    function Un(t, e, n, i) {
        var a, r, o = n.y + i / 2;
        if (H.isArray(e))
            for (a = 0,
            r = e.length; a < r; ++a)
                t.fillText(e[a], n.x, o),
                o += i;
        else
            t.fillText(e, n.x, o)
    }
    function Yn(t, e, n) {
        90 === t || 270 === t ? n.y -= e.h / 2 : (t > 270 || t < 90) && (n.y -= e.h)
    }
    function Gn(t) {
        return H.isNumber(t) ? t : 0
    }
    var Xn = Cn.extend({
        setDimensions: function() {
            var t = this;
            t.width = t.maxWidth,
            t.height = t.maxHeight,
            t.paddingTop = Hn(t.options) / 2,
            t.xCenter = Math.floor(t.width / 2),
            t.yCenter = Math.floor((t.height - t.paddingTop) / 2),
            t.drawingArea = Math.min(t.height - t.paddingTop, t.width) / 2
        },
        determineDataLimits: function() {
            var t = this
              , e = t.chart
              , n = Number.POSITIVE_INFINITY
              , i = Number.NEGATIVE_INFINITY;
            H.each(e.data.datasets, (function(a, r) {
                if (e.isDatasetVisible(r)) {
                    var o = e.getDatasetMeta(r);
                    H.each(a.data, (function(e, a) {
                        var r = +t.getRightValue(e);
                        isNaN(r) || o.data[a].hidden || (n = Math.min(r, n),
                        i = Math.max(r, i))
                    }
                    ))
                }
            }
            )),
            t.min = n === Number.POSITIVE_INFINITY ? 0 : n,
            t.max = i === Number.NEGATIVE_INFINITY ? 0 : i,
            t.handleTickRangeOptions()
        },
        _computeTickLimit: function() {
            return Math.ceil(this.drawingArea / Hn(this.options))
        },
        convertTicksToLabels: function() {
            var t = this;
            Cn.prototype.convertTicksToLabels.call(t),
            t.pointLabels = t.chart.data.labels.map((function() {
                var e = H.callback(t.options.pointLabels.callback, arguments, t);
                return e || 0 === e ? e : ""
            }
            ))
        },
        getLabelForIndex: function(t, e) {
            return +this.getRightValue(this.chart.data.datasets[e].data[t])
        },
        fit: function() {
            var t = this.options;
            t.display && t.pointLabels.display ? function(t) {
                var e, n, i, a = H.options._parseFont(t.options.pointLabels), r = {
                    l: 0,
                    r: t.width,
                    t: 0,
                    b: t.height - t.paddingTop
                }, o = {};
                t.ctx.font = a.string,
                t._pointLabelSizes = [];
                var s, l, u, d = t.chart.data.labels.length;
                for (e = 0; e < d; e++) {
                    i = t.getPointPosition(e, t.drawingArea + 5),
                    s = t.ctx,
                    l = a.lineHeight,
                    u = t.pointLabels[e],
                    n = H.isArray(u) ? {
                        w: H.longestText(s, s.font, u),
                        h: u.length * l
                    } : {
                        w: s.measureText(u).width,
                        h: l
                    },
                    t._pointLabelSizes[e] = n;
                    var h = t.getIndexAngle(e)
                      , c = H.toDegrees(h) % 360
                      , f = jn(c, i.x, n.w, 0, 180)
                      , g = jn(c, i.y, n.h, 90, 270);
                    f.start < r.l && (r.l = f.start,
                    o.l = h),
                    f.end > r.r && (r.r = f.end,
                    o.r = h),
                    g.start < r.t && (r.t = g.start,
                    o.t = h),
                    g.end > r.b && (r.b = g.end,
                    o.b = h)
                }
                t.setReductions(t.drawingArea, r, o)
            }(this) : this.setCenterPoint(0, 0, 0, 0)
        },
        setReductions: function(t, e, n) {
            var i = this
              , a = e.l / Math.sin(n.l)
              , r = Math.max(e.r - i.width, 0) / Math.sin(n.r)
              , o = -e.t / Math.cos(n.t)
              , s = -Math.max(e.b - (i.height - i.paddingTop), 0) / Math.cos(n.b);
            a = Gn(a),
            r = Gn(r),
            o = Gn(o),
            s = Gn(s),
            i.drawingArea = Math.min(Math.floor(t - (a + r) / 2), Math.floor(t - (o + s) / 2)),
            i.setCenterPoint(a, r, o, s)
        },
        setCenterPoint: function(t, e, n, i) {
            var a = this
              , r = a.width - e - a.drawingArea
              , o = t + a.drawingArea
              , s = n + a.drawingArea
              , l = a.height - a.paddingTop - i - a.drawingArea;
            a.xCenter = Math.floor((o + r) / 2 + a.left),
            a.yCenter = Math.floor((s + l) / 2 + a.top + a.paddingTop)
        },
        getIndexAngle: function(t) {
            var e = this.chart
              , n = (t * (360 / e.data.labels.length) + ((e.options || {}).startAngle || 0)) % 360;
            return (n < 0 ? n + 360 : n) * Math.PI * 2 / 360
        },
        getDistanceFromCenterForValue: function(t) {
            var e = this;
            if (H.isNullOrUndef(t))
                return NaN;
            var n = e.drawingArea / (e.max - e.min);
            return e.options.ticks.reverse ? (e.max - t) * n : (t - e.min) * n
        },
        getPointPosition: function(t, e) {
            var n = this.getIndexAngle(t) - Math.PI / 2;
            return {
                x: Math.cos(n) * e + this.xCenter,
                y: Math.sin(n) * e + this.yCenter
            }
        },
        getPointPositionForValue: function(t, e) {
            return this.getPointPosition(t, this.getDistanceFromCenterForValue(e))
        },
        getBasePosition: function(t) {
            var e = this.min
              , n = this.max;
            return this.getPointPositionForValue(t || 0, this.beginAtZero ? 0 : e < 0 && n < 0 ? n : e > 0 && n > 0 ? e : 0)
        },
        _drawGrid: function() {
            var t, e, n, i = this, a = i.ctx, r = i.options, o = r.gridLines, s = r.angleLines, l = Bn(s.lineWidth, o.lineWidth), u = Bn(s.color, o.color);
            if (r.pointLabels.display && function(t) {
                var e = t.ctx
                  , n = t.options
                  , i = n.pointLabels
                  , a = Hn(n)
                  , r = t.getDistanceFromCenterForValue(n.ticks.reverse ? t.min : t.max)
                  , o = H.options._parseFont(i);
                e.save(),
                e.font = o.string,
                e.textBaseline = "middle";
                for (var s = t.chart.data.labels.length - 1; s >= 0; s--) {
                    var l = 0 === s ? a / 2 : 0
                      , u = t.getPointPosition(s, r + l + 5)
                      , d = En(i.fontColor, s, N.global.defaultFontColor);
                    e.fillStyle = d;
                    var h = t.getIndexAngle(s)
                      , c = H.toDegrees(h);
                    e.textAlign = qn(c),
                    Yn(c, t._pointLabelSizes[s], u),
                    Un(e, t.pointLabels[s], u, o.lineHeight)
                }
                e.restore()
            }(i),
            o.display && H.each(i.ticks, (function(t, n) {
                0 !== n && (e = i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),
                function(t, e, n, i) {
                    var a, r = t.ctx, o = e.circular, s = t.chart.data.labels.length, l = En(e.color, i - 1), u = En(e.lineWidth, i - 1);
                    if ((o || s) && l && u) {
                        if (r.save(),
                        r.strokeStyle = l,
                        r.lineWidth = u,
                        r.setLineDash && (r.setLineDash(e.borderDash || []),
                        r.lineDashOffset = e.borderDashOffset || 0),
                        r.beginPath(),
                        o)
                            r.arc(t.xCenter, t.yCenter, n, 0, 2 * Math.PI);
                        else {
                            a = t.getPointPosition(0, n),
                            r.moveTo(a.x, a.y);
                            for (var d = 1; d < s; d++)
                                a = t.getPointPosition(d, n),
                                r.lineTo(a.x, a.y)
                        }
                        r.closePath(),
                        r.stroke(),
                        r.restore()
                    }
                }(i, o, e, n))
            }
            )),
            s.display && l && u) {
                for (a.save(),
                a.lineWidth = l,
                a.strokeStyle = u,
                a.setLineDash && (a.setLineDash(Wn([s.borderDash, o.borderDash, []])),
                a.lineDashOffset = Wn([s.borderDashOffset, o.borderDashOffset, 0])),
                t = i.chart.data.labels.length - 1; t >= 0; t--)
                    e = i.getDistanceFromCenterForValue(r.ticks.reverse ? i.min : i.max),
                    n = i.getPointPosition(t, e),
                    a.beginPath(),
                    a.moveTo(i.xCenter, i.yCenter),
                    a.lineTo(n.x, n.y),
                    a.stroke();
                a.restore()
            }
        },
        _drawLabels: function() {
            var t = this
              , e = t.ctx
              , n = t.options.ticks;
            if (n.display) {
                var i, a, r = t.getIndexAngle(0), o = H.options._parseFont(n), s = Bn(n.fontColor, N.global.defaultFontColor);
                e.save(),
                e.font = o.string,
                e.translate(t.xCenter, t.yCenter),
                e.rotate(r),
                e.textAlign = "center",
                e.textBaseline = "middle",
                H.each(t.ticks, (function(r, l) {
                    (0 !== l || n.reverse) && (i = t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),
                    n.showLabelBackdrop && (a = e.measureText(r).width,
                    e.fillStyle = n.backdropColor,
                    e.fillRect(-a / 2 - n.backdropPaddingX, -i - o.size / 2 - n.backdropPaddingY, a + 2 * n.backdropPaddingX, o.size + 2 * n.backdropPaddingY)),
                    e.fillStyle = s,
                    e.fillText(r, 0, -i))
                }
                )),
                e.restore()
            }
        },
        _drawTitle: H.noop
    })
      , Kn = Vn;
    Xn._defaults = Kn;
    var Zn = H._deprecated
      , $n = H.options.resolve
      , Jn = H.valueOrDefault
      , Qn = Number.MIN_SAFE_INTEGER || -9007199254740991
      , ti = Number.MAX_SAFE_INTEGER || 9007199254740991
      , ei = {
        millisecond: {
            common: !0,
            size: 1,
            steps: 1e3
        },
        second: {
            common: !0,
            size: 1e3,
            steps: 60
        },
        minute: {
            common: !0,
            size: 6e4,
            steps: 60
        },
        hour: {
            common: !0,
            size: 36e5,
            steps: 24
        },
        day: {
            common: !0,
            size: 864e5,
            steps: 30
        },
        week: {
            common: !1,
            size: 6048e5,
            steps: 4
        },
        month: {
            common: !0,
            size: 2628e6,
            steps: 12
        },
        quarter: {
            common: !1,
            size: 7884e6,
            steps: 4
        },
        year: {
            common: !0,
            size: 3154e7
        }
    }
      , ni = Object.keys(ei);
    function ii(t, e) {
        return t - e
    }
    function ai(t) {
        return H.valueOrDefault(t.time.min, t.ticks.min)
    }
    function ri(t) {
        return H.valueOrDefault(t.time.max, t.ticks.max)
    }
    function oi(t, e, n, i) {
        var a = function(t, e, n) {
            for (var i, a, r, o = 0, s = t.length - 1; o >= 0 && o <= s; ) {
                if (a = t[(i = o + s >> 1) - 1] || null,
                r = t[i],
                !a)
                    return {
                        lo: null,
                        hi: r
                    };
                if (r[e] < n)
                    o = i + 1;
                else {
                    if (!(a[e] > n))
                        return {
                            lo: a,
                            hi: r
                        };
                    s = i - 1
                }
            }
            return {
                lo: r,
                hi: null
            }
        }(t, e, n)
          , r = a.lo ? a.hi ? a.lo : t[t.length - 2] : t[0]
          , o = a.lo ? a.hi ? a.hi : t[t.length - 1] : t[1]
          , s = o[e] - r[e]
          , l = s ? (n - r[e]) / s : 0
          , u = (o[i] - r[i]) * l;
        return r[i] + u
    }
    function si(t, e) {
        var n = t._adapter
          , i = t.options.time
          , a = i.parser
          , r = a || i.format
          , o = e;
        return "function" == typeof a && (o = a(o)),
        H.isFinite(o) || (o = "string" == typeof r ? n.parse(o, r) : n.parse(o)),
        null !== o ? +o : (a || "function" != typeof r || (o = r(e),
        H.isFinite(o) || (o = n.parse(o))),
        o)
    }
    function li(t, e) {
        if (H.isNullOrUndef(e))
            return null;
        var n = t.options.time
          , i = si(t, t.getRightValue(e));
        return null === i ? i : (n.round && (i = +t._adapter.startOf(i, n.round)),
        i)
    }
    function ui(t, e, n, i) {
        var a, r, o, s = ni.length;
        for (a = ni.indexOf(t); a < s - 1; ++a)
            if (o = (r = ei[ni[a]]).steps ? r.steps : ti,
            r.common && Math.ceil((n - e) / (o * r.size)) <= i)
                return ni[a];
        return ni[s - 1]
    }
    function di(t, e, n) {
        var i, a, r = [], o = {}, s = e.length;
        for (i = 0; i < s; ++i)
            o[a = e[i]] = i,
            r.push({
                value: a,
                major: !1
            });
        return 0 !== s && n ? function(t, e, n, i) {
            var a, r, o = t._adapter, s = +o.startOf(e[0].value, i), l = e[e.length - 1].value;
            for (a = s; a <= l; a = +o.add(a, 1, i))
                (r = n[a]) >= 0 && (e[r].major = !0);
            return e
        }(t, r, o, n) : r
    }
    var hi = yn.extend({
        initialize: function() {
            this.mergeTicksOptions(),
            yn.prototype.initialize.call(this)
        },
        update: function() {
            var t = this
              , e = t.options
              , n = e.time || (e.time = {})
              , i = t._adapter = new rn._date(e.adapters.date);
            return Zn("time scale", n.format, "time.format", "time.parser"),
            Zn("time scale", n.min, "time.min", "ticks.min"),
            Zn("time scale", n.max, "time.max", "ticks.max"),
            H.mergeIf(n.displayFormats, i.formats()),
            yn.prototype.update.apply(t, arguments)
        },
        getRightValue: function(t) {
            return t && void 0 !== t.t && (t = t.t),
            yn.prototype.getRightValue.call(this, t)
        },
        determineDataLimits: function() {
            var t, e, n, i, a, r, o, s = this, l = s.chart, u = s._adapter, d = s.options, h = d.time.unit || "day", c = ti, f = Qn, g = [], p = [], m = [], v = s._getLabels();
            for (t = 0,
            n = v.length; t < n; ++t)
                m.push(li(s, v[t]));
            for (t = 0,
            n = (l.data.datasets || []).length; t < n; ++t)
                if (l.isDatasetVisible(t))
                    if (a = l.data.datasets[t].data,
                    H.isObject(a[0]))
                        for (p[t] = [],
                        e = 0,
                        i = a.length; e < i; ++e)
                            r = li(s, a[e]),
                            g.push(r),
                            p[t][e] = r;
                    else
                        p[t] = m.slice(0),
                        o || (g = g.concat(m),
                        o = !0);
                else
                    p[t] = [];
            m.length && (c = Math.min(c, m[0]),
            f = Math.max(f, m[m.length - 1])),
            g.length && (g = n > 1 ? function(t) {
                var e, n, i, a = {}, r = [];
                for (e = 0,
                n = t.length; e < n; ++e)
                    a[i = t[e]] || (a[i] = !0,
                    r.push(i));
                return r
            }(g).sort(ii) : g.sort(ii),
            c = Math.min(c, g[0]),
            f = Math.max(f, g[g.length - 1])),
            c = li(s, ai(d)) || c,
            f = li(s, ri(d)) || f,
            c = c === ti ? +u.startOf(Date.now(), h) : c,
            f = f === Qn ? +u.endOf(Date.now(), h) + 1 : f,
            s.min = Math.min(c, f),
            s.max = Math.max(c + 1, f),
            s._table = [],
            s._timestamps = {
                data: g,
                datasets: p,
                labels: m
            }
        },
        buildTicks: function() {
            var t, e, n, i = this, a = i.min, r = i.max, o = i.options, s = o.ticks, l = o.time, u = i._timestamps, d = [], h = i.getLabelCapacity(a), c = s.source, f = o.distribution;
            for (u = "data" === c || "auto" === c && "series" === f ? u.data : "labels" === c ? u.labels : function(t, e, n, i) {
                var a, r = t._adapter, o = t.options, s = o.time, l = s.unit || ui(s.minUnit, e, n, i), u = $n([s.stepSize, s.unitStepSize, 1]), d = "week" === l && s.isoWeekday, h = e, c = [];
                if (d && (h = +r.startOf(h, "isoWeek", d)),
                h = +r.startOf(h, d ? "day" : l),
                r.diff(n, e, l) > 1e5 * u)
                    throw e + " and " + n + " are too far apart with stepSize of " + u + " " + l;
                for (a = h; a < n; a = +r.add(a, u, l))
                    c.push(a);
                return a !== n && "ticks" !== o.bounds || c.push(a),
                c
            }(i, a, r, h),
            "ticks" === o.bounds && u.length && (a = u[0],
            r = u[u.length - 1]),
            a = li(i, ai(o)) || a,
            r = li(i, ri(o)) || r,
            t = 0,
            e = u.length; t < e; ++t)
                (n = u[t]) >= a && n <= r && d.push(n);
            return i.min = a,
            i.max = r,
            i._unit = l.unit || (s.autoSkip ? ui(l.minUnit, i.min, i.max, h) : function(t, e, n, i, a) {
                var r, o;
                for (r = ni.length - 1; r >= ni.indexOf(n); r--)
                    if (o = ni[r],
                    ei[o].common && t._adapter.diff(a, i, o) >= e - 1)
                        return o;
                return ni[n ? ni.indexOf(n) : 0]
            }(i, d.length, l.minUnit, i.min, i.max)),
            i._majorUnit = s.major.enabled && "year" !== i._unit ? function(t) {
                for (var e = ni.indexOf(t) + 1, n = ni.length; e < n; ++e)
                    if (ei[ni[e]].common)
                        return ni[e]
            }(i._unit) : void 0,
            i._table = function(t, e, n, i) {
                if ("linear" === i || !t.length)
                    return [{
                        time: e,
                        pos: 0
                    }, {
                        time: n,
                        pos: 1
                    }];
                var a, r, o, s, l, u = [], d = [e];
                for (a = 0,
                r = t.length; a < r; ++a)
                    (s = t[a]) > e && s < n && d.push(s);
                for (d.push(n),
                a = 0,
                r = d.length; a < r; ++a)
                    l = d[a + 1],
                    o = d[a - 1],
                    s = d[a],
                    void 0 !== o && void 0 !== l && Math.round((l + o) / 2) === s || u.push({
                        time: s,
                        pos: a / (r - 1)
                    });
                return u
            }(i._timestamps.data, a, r, f),
            i._offsets = function(t, e, n, i, a) {
                var r, o, s = 0, l = 0;
                return a.offset && e.length && (r = oi(t, "time", e[0], "pos"),
                s = 1 === e.length ? 1 - r : (oi(t, "time", e[1], "pos") - r) / 2,
                o = oi(t, "time", e[e.length - 1], "pos"),
                l = 1 === e.length ? o : (o - oi(t, "time", e[e.length - 2], "pos")) / 2),
                {
                    start: s,
                    end: l,
                    factor: 1 / (s + 1 + l)
                }
            }(i._table, d, 0, 0, o),
            s.reverse && d.reverse(),
            di(i, d, i._majorUnit)
        },
        getLabelForIndex: function(t, e) {
            var n = this
              , i = n._adapter
              , a = n.chart.data
              , r = n.options.time
              , o = a.labels && t < a.labels.length ? a.labels[t] : ""
              , s = a.datasets[e].data[t];
            return H.isObject(s) && (o = n.getRightValue(s)),
            r.tooltipFormat ? i.format(si(n, o), r.tooltipFormat) : "string" == typeof o ? o : i.format(si(n, o), r.displayFormats.datetime)
        },
        tickFormatFunction: function(t, e, n, i) {
            var a = this._adapter
              , r = this.options
              , o = r.time.displayFormats
              , s = o[this._unit]
              , l = this._majorUnit
              , u = o[l]
              , d = n[e]
              , h = r.ticks
              , c = l && u && d && d.major
              , f = a.format(t, i || (c ? u : s))
              , g = c ? h.major : h.minor
              , p = $n([g.callback, g.userCallback, h.callback, h.userCallback]);
            return p ? p(f, e, n) : f
        },
        convertTicksToLabels: function(t) {
            var e, n, i = [];
            for (e = 0,
            n = t.length; e < n; ++e)
                i.push(this.tickFormatFunction(t[e].value, e, t));
            return i
        },
        getPixelForOffset: function(t) {
            var e = this._offsets
              , n = oi(this._table, "time", t, "pos");
            return this.getPixelForDecimal((e.start + n) * e.factor)
        },
        getPixelForValue: function(t, e, n) {
            var i = null;
            if (void 0 !== e && void 0 !== n && (i = this._timestamps.datasets[n][e]),
            null === i && (i = li(this, t)),
            null !== i)
                return this.getPixelForOffset(i)
        },
        getPixelForTick: function(t) {
            var e = this.getTicks();
            return t >= 0 && t < e.length ? this.getPixelForOffset(e[t].value) : null
        },
        getValueForPixel: function(t) {
            var e = this._offsets
              , n = this.getDecimalForPixel(t) / e.factor - e.end
              , i = oi(this._table, "pos", n, "time");
            return this._adapter._create(i)
        },
        _getLabelSize: function(t) {
            var e = this.options.ticks
              , n = this.ctx.measureText(t).width
              , i = H.toRadians(this.isHorizontal() ? e.maxRotation : e.minRotation)
              , a = Math.cos(i)
              , r = Math.sin(i)
              , o = Jn(e.fontSize, N.global.defaultFontSize);
            return {
                w: n * a + o * r,
                h: n * r + o * a
            }
        },
        getLabelWidth: function(t) {
            return this._getLabelSize(t).w
        },
        getLabelCapacity: function(t) {
            var e = this
              , n = e.options.time
              , i = n.displayFormats
              , a = i[n.unit] || i.millisecond
              , r = e.tickFormatFunction(t, 0, di(e, [t], e._majorUnit), a)
              , o = e._getLabelSize(r)
              , s = Math.floor(e.isHorizontal() ? e.width / o.w : e.height / o.h);
            return e.options.offset && s--,
            s > 0 ? s : 1
        }
    })
      , ci = {
        position: "bottom",
        distribution: "linear",
        bounds: "data",
        adapters: {},
        time: {
            parser: !1,
            unit: !1,
            round: !1,
            displayFormat: !1,
            isoWeekday: !1,
            minUnit: "millisecond",
            displayFormats: {}
        },
        ticks: {
            autoSkip: !1,
            source: "auto",
            major: {
                enabled: !1
            }
        }
    };
    hi._defaults = ci;
    var fi = {
        category: kn,
        linear: Tn,
        logarithmic: zn,
        radialLinear: Xn,
        time: hi
    }
      , gi = {
        datetime: "MMM D, YYYY, h:mm:ss a",
        millisecond: "h:mm:ss.SSS a",
        second: "h:mm:ss a",
        minute: "h:mm a",
        hour: "hA",
        day: "MMM D",
        week: "ll",
        month: "MMM YYYY",
        quarter: "[Q]Q - YYYY",
        year: "YYYY"
    };
    rn._date.override("function" == typeof t ? {
        _id: "moment",
        formats: function() {
            return gi
        },
        parse: function(e, n) {
            return "string" == typeof e && "string" == typeof n ? e = t(e, n) : e instanceof t || (e = t(e)),
            e.isValid() ? e.valueOf() : null
        },
        format: function(e, n) {
            return t(e).format(n)
        },
        add: function(e, n, i) {
            return t(e).add(n, i).valueOf()
        },
        diff: function(e, n, i) {
            return t(e).diff(t(n), i)
        },
        startOf: function(e, n, i) {
            return e = t(e),
            "isoWeek" === n ? e.isoWeekday(i).valueOf() : e.startOf(n).valueOf()
        },
        endOf: function(e, n) {
            return t(e).endOf(n).valueOf()
        },
        _create: function(e) {
            return t(e)
        }
    } : {}),
    N._set("global", {
        plugins: {
            filler: {
                propagate: !0
            }
        }
    });
    var pi = {
        dataset: function(t) {
            var e = t.fill
              , n = t.chart
              , i = n.getDatasetMeta(e)
              , a = i && n.isDatasetVisible(e) && i.dataset._children || []
              , r = a.length || 0;
            return r ? function(t, e) {
                return e < r && a[e]._view || null
            }
            : null
        },
        boundary: function(t) {
            var e = t.boundary
              , n = e ? e.x : null
              , i = e ? e.y : null;
            return H.isArray(e) ? function(t, n) {
                return e[n]
            }
            : function(t) {
                return {
                    x: null === n ? t.x : n,
                    y: null === i ? t.y : i
                }
            }
        }
    };
    function mi(t, e, n) {
        var i, a = t._model || {}, r = a.fill;
        if (void 0 === r && (r = !!a.backgroundColor),
        !1 === r || null === r)
            return !1;
        if (!0 === r)
            return "origin";
        if (i = parseFloat(r, 10),
        isFinite(i) && Math.floor(i) === i)
            return "-" !== r[0] && "+" !== r[0] || (i = e + i),
            !(i === e || i < 0 || i >= n) && i;
        switch (r) {
        case "bottom":
            return "start";
        case "top":
            return "end";
        case "zero":
            return "origin";
        case "origin":
        case "start":
        case "end":
            return r;
        default:
            return !1
        }
    }
    function vi(t) {
        return (t.el._scale || {}).getPointPositionForValue ? function(t) {
            var e, n, i, a, r, o = t.el._scale, s = o.options, l = o.chart.data.labels.length, u = t.fill, d = [];
            if (!l)
                return null;
            for (e = s.ticks.reverse ? o.max : o.min,
            n = s.ticks.reverse ? o.min : o.max,
            i = o.getPointPositionForValue(0, e),
            a = 0; a < l; ++a)
                r = "start" === u || "end" === u ? o.getPointPositionForValue(a, "start" === u ? e : n) : o.getBasePosition(a),
                s.gridLines.circular && (r.cx = i.x,
                r.cy = i.y,
                r.angle = o.getIndexAngle(a) - Math.PI / 2),
                d.push(r);
            return d
        }(t) : function(t) {
            var e, n = t.el._model || {}, i = t.el._scale || {}, a = t.fill, r = null;
            if (isFinite(a))
                return null;
            if ("start" === a ? r = void 0 === n.scaleBottom ? i.bottom : n.scaleBottom : "end" === a ? r = void 0 === n.scaleTop ? i.top : n.scaleTop : void 0 !== n.scaleZero ? r = n.scaleZero : i.getBasePixel && (r = i.getBasePixel()),
            null != r) {
                if (void 0 !== r.x && void 0 !== r.y)
                    return r;
                if (H.isFinite(r))
                    return {
                        x: (e = i.isHorizontal()) ? r : null,
                        y: e ? null : r
                    }
            }
            return null
        }(t)
    }
    function bi(t, e, n) {
        var i, a = t[e].fill, r = [e];
        if (!n)
            return a;
        for (; !1 !== a && -1 === r.indexOf(a); ) {
            if (!isFinite(a))
                return a;
            if (!(i = t[a]))
                return !1;
            if (i.visible)
                return a;
            r.push(a),
            a = i.fill
        }
        return !1
    }
    function xi(t) {
        var e = t.fill
          , n = "dataset";
        return !1 === e ? null : (isFinite(e) || (n = "boundary"),
        pi[n](t))
    }
    function yi(t) {
        return t && !t.skip
    }
    function _i(t, e, n, i, a) {
        var r, o, s, l;
        if (i && a) {
            for (t.moveTo(e[0].x, e[0].y),
            r = 1; r < i; ++r)
                H.canvas.lineTo(t, e[r - 1], e[r]);
            if (void 0 === n[0].angle)
                for (t.lineTo(n[a - 1].x, n[a - 1].y),
                r = a - 1; r > 0; --r)
                    H.canvas.lineTo(t, n[r], n[r - 1], !0);
            else
                for (o = n[0].cx,
                s = n[0].cy,
                l = Math.sqrt(Math.pow(n[0].x - o, 2) + Math.pow(n[0].y - s, 2)),
                r = a - 1; r > 0; --r)
                    t.arc(o, s, l, n[r].angle, n[r - 1].angle, !0)
        }
    }
    function ki(t, e, n, i, a, r) {
        var o, s, l, u, d, h, c, f, g = e.length, p = i.spanGaps, m = [], v = [], b = 0, x = 0;
        for (t.beginPath(),
        o = 0,
        s = g; o < s; ++o)
            d = n(u = e[l = o % g]._view, l, i),
            h = yi(u),
            c = yi(d),
            r && void 0 === f && h && (s = g + (f = o + 1)),
            h && c ? (b = m.push(u),
            x = v.push(d)) : b && x && (p ? (h && m.push(u),
            c && v.push(d)) : (_i(t, m, v, b, x),
            b = x = 0,
            m = [],
            v = []));
        _i(t, m, v, b, x),
        t.closePath(),
        t.fillStyle = a,
        t.fill()
    }
    var wi = {
        id: "filler",
        afterDatasetsUpdate: function(t, e) {
            var n, i, a, r, o = (t.data.datasets || []).length, s = e.propagate, l = [];
            for (i = 0; i < o; ++i)
                r = null,
                (a = (n = t.getDatasetMeta(i)).dataset) && a._model && a instanceof kt.Line && (r = {
                    visible: t.isDatasetVisible(i),
                    fill: mi(a, i, o),
                    chart: t,
                    el: a
                }),
                n.$filler = r,
                l.push(r);
            for (i = 0; i < o; ++i)
                (r = l[i]) && (r.fill = bi(l, i, s),
                r.boundary = vi(r),
                r.mapper = xi(r))
        },
        beforeDatasetsDraw: function(t) {
            var e, n, i, a, r, o, s, l = t._getSortedVisibleDatasetMetas(), u = t.ctx;
            for (n = l.length - 1; n >= 0; --n)
                (e = l[n].$filler) && e.visible && (a = (i = e.el)._view,
                r = i._children || [],
                o = e.mapper,
                s = a.backgroundColor || N.global.defaultColor,
                o && s && r.length && (H.canvas.clipArea(u, t.chartArea),
                ki(u, r, o, a, s, i._loop),
                H.canvas.unclipArea(u)))
        }
    }
      , Mi = H.rtl.getRtlAdapter
      , Si = H.noop
      , Ci = H.valueOrDefault;
    function Pi(t, e) {
        return t.usePointStyle && t.boxWidth > e ? e : t.boxWidth
    }
    N._set("global", {
        legend: {
            display: !0,
            position: "top",
            align: "center",
            fullWidth: !0,
            reverse: !1,
            weight: 1e3,
            onClick: function(t, e) {
                var n = e.datasetIndex
                  , i = this.chart
                  , a = i.getDatasetMeta(n);
                a.hidden = null === a.hidden ? !i.data.datasets[n].hidden : null,
                i.update()
            },
            onHover: null,
            onLeave: null,
            labels: {
                boxWidth: 40,
                padding: 10,
                generateLabels: function(t) {
                    var e = t.data.datasets
                      , n = t.options.legend || {}
                      , i = n.labels && n.labels.usePointStyle;
                    return t._getSortedDatasetMetas().map((function(n) {
                        var a = n.controller.getStyle(i ? 0 : void 0);
                        return {
                            text: e[n.index].label,
                            fillStyle: a.backgroundColor,
                            hidden: !t.isDatasetVisible(n.index),
                            lineCap: a.borderCapStyle,
                            lineDash: a.borderDash,
                            lineDashOffset: a.borderDashOffset,
                            lineJoin: a.borderJoinStyle,
                            lineWidth: a.borderWidth,
                            strokeStyle: a.borderColor,
                            pointStyle: a.pointStyle,
                            rotation: a.rotation,
                            datasetIndex: n.index
                        }
                    }
                    ), this)
                }
            }
        },
        legendCallback: function(t) {
            var e, n, i, a = document.createElement("ul"), r = t.data.datasets;
            for (a.setAttribute("class", t.id + "-legend"),
            e = 0,
            n = r.length; e < n; e++)
                (i = a.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor = r[e].backgroundColor,
                r[e].label && i.appendChild(document.createTextNode(r[e].label));
            return a.outerHTML
        }
    });
    var Ai = K.extend({
        initialize: function(t) {
            H.extend(this, t),
            this.legendHitBoxes = [],
            this._hoveredItem = null,
            this.doughnutMode = !1
        },
        beforeUpdate: Si,
        update: function(t, e, n) {
            var i = this;
            return i.beforeUpdate(),
            i.maxWidth = t,
            i.maxHeight = e,
            i.margins = n,
            i.beforeSetDimensions(),
            i.setDimensions(),
            i.afterSetDimensions(),
            i.beforeBuildLabels(),
            i.buildLabels(),
            i.afterBuildLabels(),
            i.beforeFit(),
            i.fit(),
            i.afterFit(),
            i.afterUpdate(),
            i.minSize
        },
        afterUpdate: Si,
        beforeSetDimensions: Si,
        setDimensions: function() {
            var t = this;
            t.isHorizontal() ? (t.width = t.maxWidth,
            t.left = 0,
            t.right = t.width) : (t.height = t.maxHeight,
            t.top = 0,
            t.bottom = t.height),
            t.paddingLeft = 0,
            t.paddingTop = 0,
            t.paddingRight = 0,
            t.paddingBottom = 0,
            t.minSize = {
                width: 0,
                height: 0
            }
        },
        afterSetDimensions: Si,
        beforeBuildLabels: Si,
        buildLabels: function() {
            var t = this
              , e = t.options.labels || {}
              , n = H.callback(e.generateLabels, [t.chart], t) || [];
            e.filter && (n = n.filter((function(n) {
                return e.filter(n, t.chart.data)
            }
            ))),
            t.options.reverse && n.reverse(),
            t.legendItems = n
        },
        afterBuildLabels: Si,
        beforeFit: Si,
        fit: function() {
            var t = this
              , e = t.options
              , n = e.labels
              , i = e.display
              , a = t.ctx
              , r = H.options._parseFont(n)
              , o = r.size
              , s = t.legendHitBoxes = []
              , l = t.minSize
              , u = t.isHorizontal();
            if (u ? (l.width = t.maxWidth,
            l.height = i ? 10 : 0) : (l.width = i ? 10 : 0,
            l.height = t.maxHeight),
            i) {
                if (a.font = r.string,
                u) {
                    var d = t.lineWidths = [0]
                      , h = 0;
                    a.textAlign = "left",
                    a.textBaseline = "middle",
                    H.each(t.legendItems, (function(t, e) {
                        var i = Pi(n, o) + o / 2 + a.measureText(t.text).width;
                        (0 === e || d[d.length - 1] + i + 2 * n.padding > l.width) && (h += o + n.padding,
                        d[d.length - (e > 0 ? 0 : 1)] = 0),
                        s[e] = {
                            left: 0,
                            top: 0,
                            width: i,
                            height: o
                        },
                        d[d.length - 1] += i + n.padding
                    }
                    )),
                    l.height += h
                } else {
                    var c = n.padding
                      , f = t.columnWidths = []
                      , g = t.columnHeights = []
                      , p = n.padding
                      , m = 0
                      , v = 0;
                    H.each(t.legendItems, (function(t, e) {
                        var i = Pi(n, o) + o / 2 + a.measureText(t.text).width;
                        e > 0 && v + o + 2 * c > l.height && (p += m + n.padding,
                        f.push(m),
                        g.push(v),
                        m = 0,
                        v = 0),
                        m = Math.max(m, i),
                        v += o + c,
                        s[e] = {
                            left: 0,
                            top: 0,
                            width: i,
                            height: o
                        }
                    }
                    )),
                    p += m,
                    f.push(m),
                    g.push(v),
                    l.width += p
                }
                t.width = l.width,
                t.height = l.height
            } else
                t.width = l.width = t.height = l.height = 0
        },
        afterFit: Si,
        isHorizontal: function() {
            return "top" === this.options.position || "bottom" === this.options.position
        },
        draw: function() {
            var t = this
              , e = t.options
              , n = e.labels
              , i = N.global
              , a = i.defaultColor
              , r = i.elements.line
              , o = t.height
              , s = t.columnHeights
              , l = t.width
              , u = t.lineWidths;
            if (e.display) {
                var d, h = Mi(e.rtl, t.left, t.minSize.width), c = t.ctx, f = Ci(n.fontColor, i.defaultFontColor), g = H.options._parseFont(n), p = g.size;
                c.textAlign = h.textAlign("left"),
                c.textBaseline = "middle",
                c.lineWidth = .5,
                c.strokeStyle = f,
                c.fillStyle = f,
                c.font = g.string;
                var m = Pi(n, p)
                  , v = t.legendHitBoxes
                  , b = function(t, i) {
                    switch (e.align) {
                    case "start":
                        return n.padding;
                    case "end":
                        return t - i;
                    default:
                        return (t - i + n.padding) / 2
                    }
                }
                  , x = t.isHorizontal();
                d = x ? {
                    x: t.left + b(l, u[0]),
                    y: t.top + n.padding,
                    line: 0
                } : {
                    x: t.left + n.padding,
                    y: t.top + b(o, s[0]),
                    line: 0
                },
                H.rtl.overrideTextDirection(t.ctx, e.textDirection);
                var y = p + n.padding;
                H.each(t.legendItems, (function(e, i) {
                    var f = c.measureText(e.text).width
                      , g = m + p / 2 + f
                      , _ = d.x
                      , k = d.y;
                    h.setWidth(t.minSize.width),
                    x ? i > 0 && _ + g + n.padding > t.left + t.minSize.width && (k = d.y += y,
                    d.line++,
                    _ = d.x = t.left + b(l, u[d.line])) : i > 0 && k + y > t.top + t.minSize.height && (_ = d.x = _ + t.columnWidths[d.line] + n.padding,
                    d.line++,
                    k = d.y = t.top + b(o, s[d.line]));
                    var w = h.x(_);
                    !function(t, e, i) {
                        if (!(isNaN(m) || m <= 0)) {
                            c.save();
                            var o = Ci(i.lineWidth, r.borderWidth);
                            if (c.fillStyle = Ci(i.fillStyle, a),
                            c.lineCap = Ci(i.lineCap, r.borderCapStyle),
                            c.lineDashOffset = Ci(i.lineDashOffset, r.borderDashOffset),
                            c.lineJoin = Ci(i.lineJoin, r.borderJoinStyle),
                            c.lineWidth = o,
                            c.strokeStyle = Ci(i.strokeStyle, a),
                            c.setLineDash && c.setLineDash(Ci(i.lineDash, r.borderDash)),
                            n && n.usePointStyle) {
                                var s = m * Math.SQRT2 / 2
                                  , l = h.xPlus(t, m / 2)
                                  , u = e + p / 2;
                                H.canvas.drawPoint(c, i.pointStyle, s, l, u, i.rotation)
                            } else
                                c.fillRect(h.leftForLtr(t, m), e, m, p),
                                0 !== o && c.strokeRect(h.leftForLtr(t, m), e, m, p);
                            c.restore()
                        }
                    }(w, k, e),
                    v[i].left = h.leftForLtr(w, v[i].width),
                    v[i].top = k,
                    function(t, e, n, i) {
                        var a = p / 2
                          , r = h.xPlus(t, m + a)
                          , o = e + a;
                        c.fillText(n.text, r, o),
                        n.hidden && (c.beginPath(),
                        c.lineWidth = 2,
                        c.moveTo(r, o),
                        c.lineTo(h.xPlus(r, i), o),
                        c.stroke())
                    }(w, k, e, f),
                    x ? d.x += g + n.padding : d.y += y
                }
                )),
                H.rtl.restoreTextDirection(t.ctx, e.textDirection)
            }
        },
        _getLegendItemAt: function(t, e) {
            var n, i, a, r = this;
            if (t >= r.left && t <= r.right && e >= r.top && e <= r.bottom)
                for (a = r.legendHitBoxes,
                n = 0; n < a.length; ++n)
                    if (t >= (i = a[n]).left && t <= i.left + i.width && e >= i.top && e <= i.top + i.height)
                        return r.legendItems[n];
            return null
        },
        handleEvent: function(t) {
            var e, n = this, i = n.options, a = "mouseup" === t.type ? "click" : t.type;
            if ("mousemove" === a) {
                if (!i.onHover && !i.onLeave)
                    return
            } else {
                if ("click" !== a)
                    return;
                if (!i.onClick)
                    return
            }
            e = n._getLegendItemAt(t.x, t.y),
            "click" === a ? e && i.onClick && i.onClick.call(n, t.native, e) : (i.onLeave && e !== n._hoveredItem && (n._hoveredItem && i.onLeave.call(n, t.native, n._hoveredItem),
            n._hoveredItem = e),
            i.onHover && e && i.onHover.call(n, t.native, e))
        }
    });
    function Di(t, e) {
        var n = new Ai({
            ctx: t.ctx,
            options: e,
            chart: t
        });
        pe.configure(t, n, e),
        pe.addBox(t, n),
        t.legend = n
    }
    var Ti = {
        id: "legend",
        _element: Ai,
        beforeInit: function(t) {
            var e = t.options.legend;
            e && Di(t, e)
        },
        beforeUpdate: function(t) {
            var e = t.options.legend
              , n = t.legend;
            e ? (H.mergeIf(e, N.global.legend),
            n ? (pe.configure(t, n, e),
            n.options = e) : Di(t, e)) : n && (pe.removeBox(t, n),
            delete t.legend)
        },
        afterEvent: function(t, e) {
            var n = t.legend;
            n && n.handleEvent(e)
        }
    }
      , Ii = H.noop;
    N._set("global", {
        title: {
            display: !1,
            fontStyle: "bold",
            fullWidth: !0,
            padding: 10,
            position: "top",
            text: "",
            weight: 2e3
        }
    });
    var Fi = K.extend({
        initialize: function(t) {
            H.extend(this, t),
            this.legendHitBoxes = []
        },
        beforeUpdate: Ii,
        update: function(t, e, n) {
            var i = this;
            return i.beforeUpdate(),
            i.maxWidth = t,
            i.maxHeight = e,
            i.margins = n,
            i.beforeSetDimensions(),
            i.setDimensions(),
            i.afterSetDimensions(),
            i.beforeBuildLabels(),
            i.buildLabels(),
            i.afterBuildLabels(),
            i.beforeFit(),
            i.fit(),
            i.afterFit(),
            i.afterUpdate(),
            i.minSize
        },
        afterUpdate: Ii,
        beforeSetDimensions: Ii,
        setDimensions: function() {
            var t = this;
            t.isHorizontal() ? (t.width = t.maxWidth,
            t.left = 0,
            t.right = t.width) : (t.height = t.maxHeight,
            t.top = 0,
            t.bottom = t.height),
            t.paddingLeft = 0,
            t.paddingTop = 0,
            t.paddingRight = 0,
            t.paddingBottom = 0,
            t.minSize = {
                width: 0,
                height: 0
            }
        },
        afterSetDimensions: Ii,
        beforeBuildLabels: Ii,
        buildLabels: Ii,
        afterBuildLabels: Ii,
        beforeFit: Ii,
        fit: function() {
            var t, e = this, n = e.options, i = e.minSize = {}, a = e.isHorizontal();
            n.display ? (t = (H.isArray(n.text) ? n.text.length : 1) * H.options._parseFont(n).lineHeight + 2 * n.padding,
            e.width = i.width = a ? e.maxWidth : t,
            e.height = i.height = a ? t : e.maxHeight) : e.width = i.width = e.height = i.height = 0
        },
        afterFit: Ii,
        isHorizontal: function() {
            var t = this.options.position;
            return "top" === t || "bottom" === t
        },
        draw: function() {
            var t = this
              , e = t.ctx
              , n = t.options;
            if (n.display) {
                var i, a, r, o = H.options._parseFont(n), s = o.lineHeight, l = s / 2 + n.padding, u = 0, d = t.top, h = t.left, c = t.bottom, f = t.right;
                e.fillStyle = H.valueOrDefault(n.fontColor, N.global.defaultFontColor),
                e.font = o.string,
                t.isHorizontal() ? (a = h + (f - h) / 2,
                r = d + l,
                i = f - h) : (a = "left" === n.position ? h + l : f - l,
                r = d + (c - d) / 2,
                i = c - d,
                u = Math.PI * ("left" === n.position ? -.5 : .5)),
                e.save(),
                e.translate(a, r),
                e.rotate(u),
                e.textAlign = "center",
                e.textBaseline = "middle";
                var g = n.text;
                if (H.isArray(g))
                    for (var p = 0, m = 0; m < g.length; ++m)
                        e.fillText(g[m], 0, p, i),
                        p += s;
                else
                    e.fillText(g, 0, 0, i);
                e.restore()
            }
        }
    });
    function Oi(t, e) {
        var n = new Fi({
            ctx: t.ctx,
            options: e,
            chart: t
        });
        pe.configure(t, n, e),
        pe.addBox(t, n),
        t.titleBlock = n
    }
    var Li = {}
      , Ri = wi
      , zi = Ti
      , Ni = {
        id: "title",
        _element: Fi,
        beforeInit: function(t) {
            var e = t.options.title;
            e && Oi(t, e)
        },
        beforeUpdate: function(t) {
            var e = t.options.title
              , n = t.titleBlock;
            e ? (H.mergeIf(e, N.global.title),
            n ? (pe.configure(t, n, e),
            n.options = e) : Oi(t, e)) : n && (pe.removeBox(t, n),
            delete t.titleBlock)
        }
    };
    for (var Bi in Li.filler = Ri,
    Li.legend = zi,
    Li.title = Ni,
    en.helpers = H,
    function() {
        function t(t, e, n) {
            var i;
            return "string" == typeof t ? (i = parseInt(t, 10),
            -1 !== t.indexOf("%") && (i = i / 100 * e.parentNode[n])) : i = t,
            i
        }
        function e(t) {
            return null != t && "none" !== t
        }
        function n(n, i, a) {
            var r = document.defaultView
              , o = H._getParentNode(n)
              , s = r.getComputedStyle(n)[i]
              , l = r.getComputedStyle(o)[i]
              , u = e(s)
              , d = e(l)
              , h = Number.POSITIVE_INFINITY;
            return u || d ? Math.min(u ? t(s, n, a) : h, d ? t(l, o, a) : h) : "none"
        }
        H.where = function(t, e) {
            if (H.isArray(t) && Array.prototype.filter)
                return t.filter(e);
            var n = [];
            return H.each(t, (function(t) {
                e(t) && n.push(t)
            }
            )),
            n
        }
        ,
        H.findIndex = Array.prototype.findIndex ? function(t, e, n) {
            return t.findIndex(e, n)
        }
        : function(t, e, n) {
            n = void 0 === n ? t : n;
            for (var i = 0, a = t.length; i < a; ++i)
                if (e.call(n, t[i], i, t))
                    return i;
            return -1
        }
        ,
        H.findNextWhere = function(t, e, n) {
            H.isNullOrUndef(n) && (n = -1);
            for (var i = n + 1; i < t.length; i++) {
                var a = t[i];
                if (e(a))
                    return a
            }
        }
        ,
        H.findPreviousWhere = function(t, e, n) {
            H.isNullOrUndef(n) && (n = t.length);
            for (var i = n - 1; i >= 0; i--) {
                var a = t[i];
                if (e(a))
                    return a
            }
        }
        ,
        H.isNumber = function(t) {
            return !isNaN(parseFloat(t)) && isFinite(t)
        }
        ,
        H.almostEquals = function(t, e, n) {
            return Math.abs(t - e) < n
        }
        ,
        H.almostWhole = function(t, e) {
            var n = Math.round(t);
            return n - e <= t && n + e >= t
        }
        ,
        H.max = function(t) {
            return t.reduce((function(t, e) {
                return isNaN(e) ? t : Math.max(t, e)
            }
            ), Number.NEGATIVE_INFINITY)
        }
        ,
        H.min = function(t) {
            return t.reduce((function(t, e) {
                return isNaN(e) ? t : Math.min(t, e)
            }
            ), Number.POSITIVE_INFINITY)
        }
        ,
        H.sign = Math.sign ? function(t) {
            return Math.sign(t)
        }
        : function(t) {
            return 0 === (t = +t) || isNaN(t) ? t : t > 0 ? 1 : -1
        }
        ,
        H.toRadians = function(t) {
            return t * (Math.PI / 180)
        }
        ,
        H.toDegrees = function(t) {
            return t * (180 / Math.PI)
        }
        ,
        H._decimalPlaces = function(t) {
            if (H.isFinite(t)) {
                for (var e = 1, n = 0; Math.round(t * e) / e !== t; )
                    e *= 10,
                    n++;
                return n
            }
        }
        ,
        H.getAngleFromPoint = function(t, e) {
            var n = e.x - t.x
              , i = e.y - t.y
              , a = Math.sqrt(n * n + i * i)
              , r = Math.atan2(i, n);
            return r < -.5 * Math.PI && (r += 2 * Math.PI),
            {
                angle: r,
                distance: a
            }
        }
        ,
        H.distanceBetweenPoints = function(t, e) {
            return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))
        }
        ,
        H.aliasPixel = function(t) {
            return t % 2 == 0 ? 0 : .5
        }
        ,
        H._alignPixel = function(t, e, n) {
            var i = t.currentDevicePixelRatio
              , a = n / 2;
            return Math.round((e - a) * i) / i + a
        }
        ,
        H.splineCurve = function(t, e, n, i) {
            var a = t.skip ? e : t
              , r = e
              , o = n.skip ? e : n
              , s = Math.sqrt(Math.pow(r.x - a.x, 2) + Math.pow(r.y - a.y, 2))
              , l = Math.sqrt(Math.pow(o.x - r.x, 2) + Math.pow(o.y - r.y, 2))
              , u = s / (s + l)
              , d = l / (s + l)
              , h = i * (u = isNaN(u) ? 0 : u)
              , c = i * (d = isNaN(d) ? 0 : d);
            return {
                previous: {
                    x: r.x - h * (o.x - a.x),
                    y: r.y - h * (o.y - a.y)
                },
                next: {
                    x: r.x + c * (o.x - a.x),
                    y: r.y + c * (o.y - a.y)
                }
            }
        }
        ,
        H.EPSILON = Number.EPSILON || 1e-14,
        H.splineCurveMonotone = function(t) {
            var e, n, i, a, r, o, s, l, u, d = (t || []).map((function(t) {
                return {
                    model: t._model,
                    deltaK: 0,
                    mK: 0
                }
            }
            )), h = d.length;
            for (e = 0; e < h; ++e)
                if (!(i = d[e]).model.skip) {
                    if (n = e > 0 ? d[e - 1] : null,
                    (a = e < h - 1 ? d[e + 1] : null) && !a.model.skip) {
                        var c = a.model.x - i.model.x;
                        i.deltaK = 0 !== c ? (a.model.y - i.model.y) / c : 0
                    }
                    !n || n.model.skip ? i.mK = i.deltaK : !a || a.model.skip ? i.mK = n.deltaK : this.sign(n.deltaK) !== this.sign(i.deltaK) ? i.mK = 0 : i.mK = (n.deltaK + i.deltaK) / 2
                }
            for (e = 0; e < h - 1; ++e)
                i = d[e],
                a = d[e + 1],
                i.model.skip || a.model.skip || (H.almostEquals(i.deltaK, 0, this.EPSILON) ? i.mK = a.mK = 0 : (r = i.mK / i.deltaK,
                o = a.mK / i.deltaK,
                (l = Math.pow(r, 2) + Math.pow(o, 2)) <= 9 || (s = 3 / Math.sqrt(l),
                i.mK = r * s * i.deltaK,
                a.mK = o * s * i.deltaK)));
            for (e = 0; e < h; ++e)
                (i = d[e]).model.skip || (n = e > 0 ? d[e - 1] : null,
                a = e < h - 1 ? d[e + 1] : null,
                n && !n.model.skip && (u = (i.model.x - n.model.x) / 3,
                i.model.controlPointPreviousX = i.model.x - u,
                i.model.controlPointPreviousY = i.model.y - u * i.mK),
                a && !a.model.skip && (u = (a.model.x - i.model.x) / 3,
                i.model.controlPointNextX = i.model.x + u,
                i.model.controlPointNextY = i.model.y + u * i.mK))
        }
        ,
        H.nextItem = function(t, e, n) {
            return n ? e >= t.length - 1 ? t[0] : t[e + 1] : e >= t.length - 1 ? t[t.length - 1] : t[e + 1]
        }
        ,
        H.previousItem = function(t, e, n) {
            return n ? e <= 0 ? t[t.length - 1] : t[e - 1] : e <= 0 ? t[0] : t[e - 1]
        }
        ,
        H.niceNum = function(t, e) {
            var n = Math.floor(H.log10(t))
              , i = t / Math.pow(10, n);
            return (e ? i < 1.5 ? 1 : i < 3 ? 2 : i < 7 ? 5 : 10 : i <= 1 ? 1 : i <= 2 ? 2 : i <= 5 ? 5 : 10) * Math.pow(10, n)
        }
        ,
        H.requestAnimFrame = "undefined" == typeof window ? function(t) {
            t()
        }
        : window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(t) {
            return window.setTimeout(t, 1e3 / 60)
        }
        ,
        H.getRelativePosition = function(t, e) {
            var n, i, a = t.originalEvent || t, r = t.target || t.srcElement, o = r.getBoundingClientRect(), s = a.touches;
            s && s.length > 0 ? (n = s[0].clientX,
            i = s[0].clientY) : (n = a.clientX,
            i = a.clientY);
            var l = parseFloat(H.getStyle(r, "padding-left"))
              , u = parseFloat(H.getStyle(r, "padding-top"))
              , d = parseFloat(H.getStyle(r, "padding-right"))
              , h = parseFloat(H.getStyle(r, "padding-bottom"))
              , c = o.right - o.left - l - d
              , f = o.bottom - o.top - u - h;
            return {
                x: n = Math.round((n - o.left - l) / c * r.width / e.currentDevicePixelRatio),
                y: i = Math.round((i - o.top - u) / f * r.height / e.currentDevicePixelRatio)
            }
        }
        ,
        H.getConstraintWidth = function(t) {
            return n(t, "max-width", "clientWidth")
        }
        ,
        H.getConstraintHeight = function(t) {
            return n(t, "max-height", "clientHeight")
        }
        ,
        H._calculatePadding = function(t, e, n) {
            return (e = H.getStyle(t, e)).indexOf("%") > -1 ? n * parseInt(e, 10) / 100 : parseInt(e, 10)
        }
        ,
        H._getParentNode = function(t) {
            var e = t.parentNode;
            return e && "[object ShadowRoot]" === e.toString() && (e = e.host),
            e
        }
        ,
        H.getMaximumWidth = function(t) {
            var e = H._getParentNode(t);
            if (!e)
                return t.clientWidth;
            var n = e.clientWidth
              , i = n - H._calculatePadding(e, "padding-left", n) - H._calculatePadding(e, "padding-right", n)
              , a = H.getConstraintWidth(t);
            return isNaN(a) ? i : Math.min(i, a)
        }
        ,
        H.getMaximumHeight = function(t) {
            var e = H._getParentNode(t);
            if (!e)
                return t.clientHeight;
            var n = e.clientHeight
              , i = n - H._calculatePadding(e, "padding-top", n) - H._calculatePadding(e, "padding-bottom", n)
              , a = H.getConstraintHeight(t);
            return isNaN(a) ? i : Math.min(i, a)
        }
        ,
        H.getStyle = function(t, e) {
            return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e)
        }
        ,
        H.retinaScale = function(t, e) {
            var n = t.currentDevicePixelRatio = e || "undefined" != typeof window && window.devicePixelRatio || 1;
            if (1 !== n) {
                var i = t.canvas
                  , a = t.height
                  , r = t.width;
                i.height = a * n,
                i.width = r * n,
                t.ctx.scale(n, n),
                i.style.height || i.style.width || (i.style.height = a + "px",
                i.style.width = r + "px")
            }
        }
        ,
        H.fontString = function(t, e, n) {
            return e + " " + t + "px " + n
        }
        ,
        H.longestText = function(t, e, n, i) {
            var a = (i = i || {}).data = i.data || {}
              , r = i.garbageCollect = i.garbageCollect || [];
            i.font !== e && (a = i.data = {},
            r = i.garbageCollect = [],
            i.font = e),
            t.font = e;
            var o, s, l, u, d, h = 0, c = n.length;
            for (o = 0; o < c; o++)
                if (null != (u = n[o]) && !0 !== H.isArray(u))
                    h = H.measureText(t, a, r, h, u);
                else if (H.isArray(u))
                    for (s = 0,
                    l = u.length; s < l; s++)
                        null == (d = u[s]) || H.isArray(d) || (h = H.measureText(t, a, r, h, d));
            var f = r.length / 2;
            if (f > n.length) {
                for (o = 0; o < f; o++)
                    delete a[r[o]];
                r.splice(0, f)
            }
            return h
        }
        ,
        H.measureText = function(t, e, n, i, a) {
            var r = e[a];
            return r || (r = e[a] = t.measureText(a).width,
            n.push(a)),
            r > i && (i = r),
            i
        }
        ,
        H.numberOfLabelLines = function(t) {
            var e = 1;
            return H.each(t, (function(t) {
                H.isArray(t) && t.length > e && (e = t.length)
            }
            )),
            e
        }
        ,
        H.color = _ ? function(t) {
            return t instanceof CanvasGradient && (t = N.global.defaultColor),
            _(t)
        }
        : function(t) {
            return console.error("Color.js not found!"),
            t
        }
        ,
        H.getHoverColor = function(t) {
            return t instanceof CanvasPattern || t instanceof CanvasGradient ? t : H.color(t).saturate(.5).darken(.1).rgbString()
        }
    }(),
    en._adapters = rn,
    en.Animation = $,
    en.animationService = J,
    en.controllers = Jt,
    en.DatasetController = it,
    en.defaults = N,
    en.Element = K,
    en.elements = kt,
    en.Interaction = re,
    en.layouts = pe,
    en.platform = Oe,
    en.plugins = Le,
    en.Scale = yn,
    en.scaleService = Re,
    en.Ticks = on,
    en.Tooltip = Ye,
    en.helpers.each(fi, (function(t, e) {
        en.scaleService.registerScaleType(e, t, t._defaults)
    }
    )),
    Li)
        Li.hasOwnProperty(Bi) && en.plugins.register(Li[Bi]);
    en.platform.initialize();
    var Ei = en;
    return "undefined" != typeof window && (window.Chart = en),
    en.Chart = en,
    en.Legend = Li.legend._element,
    en.Title = Li.title._element,
    en.pluginService = en.plugins,
    en.PluginBase = en.Element.extend({}),
    en.canvasHelpers = en.helpers.canvas,
    en.layoutService = en.layouts,
    en.LinearScaleBase = Cn,
    en.helpers.each(["Bar", "Bubble", "Doughnut", "Line", "PolarArea", "Radar", "Scatter"], (function(t) {
        en[t] = function(e, n) {
            return new en(e,en.helpers.merge(n || {}, {
                type: t.charAt(0).toLowerCase() + t.slice(1)
            }))
        }
    }
    )),
    Ei
}
));

/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e, t) {
    "use strict";
    "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
        if (!e.document)
            throw new Error("jQuery requires a window with a document");
        return t(e)
    }
    : t(e)
}("undefined" != typeof window ? window : this, function(ie, e) {
    "use strict";
    var oe = []
      , r = Object.getPrototypeOf
      , ae = oe.slice
      , g = oe.flat ? function(e) {
        return oe.flat.call(e)
    }
    : function(e) {
        return oe.concat.apply([], e)
    }
      , s = oe.push
      , se = oe.indexOf
      , n = {}
      , i = n.toString
      , ue = n.hasOwnProperty
      , o = ue.toString
      , a = o.call(Object)
      , le = {}
      , v = function(e) {
        return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item
    }
      , y = function(e) {
        return null != e && e === e.window
    }
      , C = ie.document
      , u = {
        type: !0,
        src: !0,
        nonce: !0,
        noModule: !0
    };
    function m(e, t, n) {
        var r, i, o = (n = n || C).createElement("script");
        if (o.text = e,
        t)
            for (r in u)
                (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
        n.head.appendChild(o).parentNode.removeChild(o)
    }
    function x(e) {
        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[i.call(e)] || "object" : typeof e
    }
    var t = "3.7.1"
      , l = /HTML$/i
      , ce = function(e, t) {
        return new ce.fn.init(e,t)
    };
    function c(e) {
        var t = !!e && "length"in e && e.length
          , n = x(e);
        return !v(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
    }
    function fe(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
    }
    ce.fn = ce.prototype = {
        jquery: t,
        constructor: ce,
        length: 0,
        toArray: function() {
            return ae.call(this)
        },
        get: function(e) {
            return null == e ? ae.call(this) : e < 0 ? this[e + this.length] : this[e]
        },
        pushStack: function(e) {
            var t = ce.merge(this.constructor(), e);
            return t.prevObject = this,
            t
        },
        each: function(e) {
            return ce.each(this, e)
        },
        map: function(n) {
            return this.pushStack(ce.map(this, function(e, t) {
                return n.call(e, t, e)
            }))
        },
        slice: function() {
            return this.pushStack(ae.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq(-1)
        },
        even: function() {
            return this.pushStack(ce.grep(this, function(e, t) {
                return (t + 1) % 2
            }))
        },
        odd: function() {
            return this.pushStack(ce.grep(this, function(e, t) {
                return t % 2
            }))
        },
        eq: function(e) {
            var t = this.length
              , n = +e + (e < 0 ? t : 0);
            return this.pushStack(0 <= n && n < t ? [this[n]] : [])
        },
        end: function() {
            return this.prevObject || this.constructor()
        },
        push: s,
        sort: oe.sort,
        splice: oe.splice
    },
    ce.extend = ce.fn.extend = function() {
        var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1;
        for ("boolean" == typeof a && (l = a,
        a = arguments[s] || {},
        s++),
        "object" == typeof a || v(a) || (a = {}),
        s === u && (a = this,
        s--); s < u; s++)
            if (null != (e = arguments[s]))
                for (t in e)
                    r = e[t],
                    "__proto__" !== t && a !== r && (l && r && (ce.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t],
                    o = i && !Array.isArray(n) ? [] : i || ce.isPlainObject(n) ? n : {},
                    i = !1,
                    a[t] = ce.extend(l, o, r)) : void 0 !== r && (a[t] = r));
        return a
    }
    ,
    ce.extend({
        expando: "jQuery" + (t + Math.random()).replace(/\D/g, ""),
        isReady: !0,
        error: function(e) {
            throw new Error(e)
        },
        noop: function() {},
        isPlainObject: function(e) {
            var t, n;
            return !(!e || "[object Object]" !== i.call(e)) && (!(t = r(e)) || "function" == typeof (n = ue.call(t, "constructor") && t.constructor) && o.call(n) === a)
        },
        isEmptyObject: function(e) {
            var t;
            for (t in e)
                return !1;
            return !0
        },
        globalEval: function(e, t, n) {
            m(e, {
                nonce: t && t.nonce
            }, n)
        },
        each: function(e, t) {
            var n, r = 0;
            if (c(e)) {
                for (n = e.length; r < n; r++)
                    if (!1 === t.call(e[r], r, e[r]))
                        break
            } else
                for (r in e)
                    if (!1 === t.call(e[r], r, e[r]))
                        break;
            return e
        },
        text: function(e) {
            var t, n = "", r = 0, i = e.nodeType;
            if (!i)
                while (t = e[r++])
                    n += ce.text(t);
            return 1 === i || 11 === i ? e.textContent : 9 === i ? e.documentElement.textContent : 3 === i || 4 === i ? e.nodeValue : n
        },
        makeArray: function(e, t) {
            var n = t || [];
            return null != e && (c(Object(e)) ? ce.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)),
            n
        },
        inArray: function(e, t, n) {
            return null == t ? -1 : se.call(t, e, n)
        },
        isXMLDoc: function(e) {
            var t = e && e.namespaceURI
              , n = e && (e.ownerDocument || e).documentElement;
            return !l.test(t || n && n.nodeName || "HTML")
        },
        merge: function(e, t) {
            for (var n = +t.length, r = 0, i = e.length; r < n; r++)
                e[i++] = t[r];
            return e.length = i,
            e
        },
        grep: function(e, t, n) {
            for (var r = [], i = 0, o = e.length, a = !n; i < o; i++)
                !t(e[i], i) !== a && r.push(e[i]);
            return r
        },
        map: function(e, t, n) {
            var r, i, o = 0, a = [];
            if (c(e))
                for (r = e.length; o < r; o++)
                    null != (i = t(e[o], o, n)) && a.push(i);
            else
                for (o in e)
                    null != (i = t(e[o], o, n)) && a.push(i);
            return g(a)
        },
        guid: 1,
        support: le
    }),
    "function" == typeof Symbol && (ce.fn[Symbol.iterator] = oe[Symbol.iterator]),
    ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
        n["[object " + t + "]"] = t.toLowerCase()
    });
    var pe = oe.pop
      , de = oe.sort
      , he = oe.splice
      , ge = "[\\x20\\t\\r\\n\\f]"
      , ve = new RegExp("^" + ge + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ge + "+$","g");
    ce.contains = function(e, t) {
        var n = t && t.parentNode;
        return e === n || !(!n || 1 !== n.nodeType || !(e.contains ? e.contains(n) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(n)))
    }
    ;
    var f = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
    function p(e, t) {
        return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
    }
    ce.escapeSelector = function(e) {
        return (e + "").replace(f, p)
    }
    ;
    var ye = C
      , me = s;
    !function() {
        var e, b, w, o, a, T, r, C, d, i, k = me, S = ce.expando, E = 0, n = 0, s = W(), c = W(), u = W(), h = W(), l = function(e, t) {
            return e === t && (a = !0),
            0
        }, f = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", t = "(?:\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", p = "\\[" + ge + "*(" + t + ")(?:" + ge + "*([*^$|!~]?=)" + ge + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + t + "))|)" + ge + "*\\]", g = ":(" + t + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + p + ")*)|.*)\\)|)", v = new RegExp(ge + "+","g"), y = new RegExp("^" + ge + "*," + ge + "*"), m = new RegExp("^" + ge + "*([>+~]|" + ge + ")" + ge + "*"), x = new RegExp(ge + "|>"), j = new RegExp(g), A = new RegExp("^" + t + "$"), D = {
            ID: new RegExp("^#(" + t + ")"),
            CLASS: new RegExp("^\\.(" + t + ")"),
            TAG: new RegExp("^(" + t + "|[*])"),
            ATTR: new RegExp("^" + p),
            PSEUDO: new RegExp("^" + g),
            CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ge + "*(even|odd|(([+-]|)(\\d*)n|)" + ge + "*(?:([+-]|)" + ge + "*(\\d+)|))" + ge + "*\\)|)","i"),
            bool: new RegExp("^(?:" + f + ")$","i"),
            needsContext: new RegExp("^" + ge + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ge + "*((?:-\\d)?\\d*)" + ge + "*\\)|)(?=[^-]|$)","i")
        }, N = /^(?:input|select|textarea|button)$/i, q = /^h\d$/i, L = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, H = /[+~]/, O = new RegExp("\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\([^\\r\\n\\f])","g"), P = function(e, t) {
            var n = "0x" + e.slice(1) - 65536;
            return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
        }, M = function() {
            V()
        }, R = J(function(e) {
            return !0 === e.disabled && fe(e, "fieldset")
        }, {
            dir: "parentNode",
            next: "legend"
        });
        try {
            k.apply(oe = ae.call(ye.childNodes), ye.childNodes),
            oe[ye.childNodes.length].nodeType
        } catch (e) {
            k = {
                apply: function(e, t) {
                    me.apply(e, ae.call(t))
                },
                call: function(e) {
                    me.apply(e, ae.call(arguments, 1))
                }
            }
        }
        function I(t, e, n, r) {
            var i, o, a, s, u, l, c, f = e && e.ownerDocument, p = e ? e.nodeType : 9;
            if (n = n || [],
            "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p)
                return n;
            if (!r && (V(e),
            e = e || T,
            C)) {
                if (11 !== p && (u = L.exec(t)))
                    if (i = u[1]) {
                        if (9 === p) {
                            if (!(a = e.getElementById(i)))
                                return n;
                            if (a.id === i)
                                return k.call(n, a),
                                n
                        } else if (f && (a = f.getElementById(i)) && I.contains(e, a) && a.id === i)
                            return k.call(n, a),
                            n
                    } else {
                        if (u[2])
                            return k.apply(n, e.getElementsByTagName(t)),
                            n;
                        if ((i = u[3]) && e.getElementsByClassName)
                            return k.apply(n, e.getElementsByClassName(i)),
                            n
                    }
                if (!(h[t + " "] || d && d.test(t))) {
                    if (c = t,
                    f = e,
                    1 === p && (x.test(t) || m.test(t))) {
                        (f = H.test(t) && U(e.parentNode) || e) == e && le.scope || ((s = e.getAttribute("id")) ? s = ce.escapeSelector(s) : e.setAttribute("id", s = S)),
                        o = (l = Y(t)).length;
                        while (o--)
                            l[o] = (s ? "#" + s : ":scope") + " " + Q(l[o]);
                        c = l.join(",")
                    }
                    try {
                        return k.apply(n, f.querySelectorAll(c)),
                        n
                    } catch (e) {
                        h(t, !0)
                    } finally {
                        s === S && e.removeAttribute("id")
                    }
                }
            }
            return re(t.replace(ve, "$1"), e, n, r)
        }
        function W() {
            var r = [];
            return function e(t, n) {
                return r.push(t + " ") > b.cacheLength && delete e[r.shift()],
                e[t + " "] = n
            }
        }
        function F(e) {
            return e[S] = !0,
            e
        }
        function $(e) {
            var t = T.createElement("fieldset");
            try {
                return !!e(t)
            } catch (e) {
                return !1
            } finally {
                t.parentNode && t.parentNode.removeChild(t),
                t = null
            }
        }
        function B(t) {
            return function(e) {
                return fe(e, "input") && e.type === t
            }
        }
        function _(t) {
            return function(e) {
                return (fe(e, "input") || fe(e, "button")) && e.type === t
            }
        }
        function z(t) {
            return function(e) {
                return "form"in e ? e.parentNode && !1 === e.disabled ? "label"in e ? "label"in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && R(e) === t : e.disabled === t : "label"in e && e.disabled === t
            }
        }
        function X(a) {
            return F(function(o) {
                return o = +o,
                F(function(e, t) {
                    var n, r = a([], e.length, o), i = r.length;
                    while (i--)
                        e[n = r[i]] && (e[n] = !(t[n] = e[n]))
                })
            })
        }
        function U(e) {
            return e && "undefined" != typeof e.getElementsByTagName && e
        }
        function V(e) {
            var t, n = e ? e.ownerDocument || e : ye;
            return n != T && 9 === n.nodeType && n.documentElement && (r = (T = n).documentElement,
            C = !ce.isXMLDoc(T),
            i = r.matches || r.webkitMatchesSelector || r.msMatchesSelector,
            r.msMatchesSelector && ye != T && (t = T.defaultView) && t.top !== t && t.addEventListener("unload", M),
            le.getById = $(function(e) {
                return r.appendChild(e).id = ce.expando,
                !T.getElementsByName || !T.getElementsByName(ce.expando).length
            }),
            le.disconnectedMatch = $(function(e) {
                return i.call(e, "*")
            }),
            le.scope = $(function() {
                return T.querySelectorAll(":scope")
            }),
            le.cssHas = $(function() {
                try {
                    return T.querySelector(":has(*,:jqfake)"),
                    !1
                } catch (e) {
                    return !0
                }
            }),
            le.getById ? (b.filter.ID = function(e) {
                var t = e.replace(O, P);
                return function(e) {
                    return e.getAttribute("id") === t
                }
            }
            ,
            b.find.ID = function(e, t) {
                if ("undefined" != typeof t.getElementById && C) {
                    var n = t.getElementById(e);
                    return n ? [n] : []
                }
            }
            ) : (b.filter.ID = function(e) {
                var n = e.replace(O, P);
                return function(e) {
                    var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
                    return t && t.value === n
                }
            }
            ,
            b.find.ID = function(e, t) {
                if ("undefined" != typeof t.getElementById && C) {
                    var n, r, i, o = t.getElementById(e);
                    if (o) {
                        if ((n = o.getAttributeNode("id")) && n.value === e)
                            return [o];
                        i = t.getElementsByName(e),
                        r = 0;
                        while (o = i[r++])
                            if ((n = o.getAttributeNode("id")) && n.value === e)
                                return [o]
                    }
                    return []
                }
            }
            ),
            b.find.TAG = function(e, t) {
                return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : t.querySelectorAll(e)
            }
            ,
            b.find.CLASS = function(e, t) {
                if ("undefined" != typeof t.getElementsByClassName && C)
                    return t.getElementsByClassName(e)
            }
            ,
            d = [],
            $(function(e) {
                var t;
                r.appendChild(e).innerHTML = "<a id='" + S + "' href='' disabled='disabled'></a><select id='" + S + "-\r\\' disabled='disabled'><option selected=''></option></select>",
                e.querySelectorAll("[selected]").length || d.push("\\[" + ge + "*(?:value|" + f + ")"),
                e.querySelectorAll("[id~=" + S + "-]").length || d.push("~="),
                e.querySelectorAll("a#" + S + "+*").length || d.push(".#.+[+~]"),
                e.querySelectorAll(":checked").length || d.push(":checked"),
                (t = T.createElement("input")).setAttribute("type", "hidden"),
                e.appendChild(t).setAttribute("name", "D"),
                r.appendChild(e).disabled = !0,
                2 !== e.querySelectorAll(":disabled").length && d.push(":enabled", ":disabled"),
                (t = T.createElement("input")).setAttribute("name", ""),
                e.appendChild(t),
                e.querySelectorAll("[name='']").length || d.push("\\[" + ge + "*name" + ge + "*=" + ge + "*(?:''|\"\")")
            }),
            le.cssHas || d.push(":has"),
            d = d.length && new RegExp(d.join("|")),
            l = function(e, t) {
                if (e === t)
                    return a = !0,
                    0;
                var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
                return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !le.sortDetached && t.compareDocumentPosition(e) === n ? e === T || e.ownerDocument == ye && I.contains(ye, e) ? -1 : t === T || t.ownerDocument == ye && I.contains(ye, t) ? 1 : o ? se.call(o, e) - se.call(o, t) : 0 : 4 & n ? -1 : 1)
            }
            ),
            T
        }
        for (e in I.matches = function(e, t) {
            return I(e, null, null, t)
        }
        ,
        I.matchesSelector = function(e, t) {
            if (V(e),
            C && !h[t + " "] && (!d || !d.test(t)))
                try {
                    var n = i.call(e, t);
                    if (n || le.disconnectedMatch || e.document && 11 !== e.document.nodeType)
                        return n
                } catch (e) {
                    h(t, !0)
                }
            return 0 < I(t, T, null, [e]).length
        }
        ,
        I.contains = function(e, t) {
            return (e.ownerDocument || e) != T && V(e),
            ce.contains(e, t)
        }
        ,
        I.attr = function(e, t) {
            (e.ownerDocument || e) != T && V(e);
            var n = b.attrHandle[t.toLowerCase()]
              , r = n && ue.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !C) : void 0;
            return void 0 !== r ? r : e.getAttribute(t)
        }
        ,
        I.error = function(e) {
            throw new Error("Syntax error, unrecognized expression: " + e)
        }
        ,
        ce.uniqueSort = function(e) {
            var t, n = [], r = 0, i = 0;
            if (a = !le.sortStable,
            o = !le.sortStable && ae.call(e, 0),
            de.call(e, l),
            a) {
                while (t = e[i++])
                    t === e[i] && (r = n.push(i));
                while (r--)
                    he.call(e, n[r], 1)
            }
            return o = null,
            e
        }
        ,
        ce.fn.uniqueSort = function() {
            return this.pushStack(ce.uniqueSort(ae.apply(this)))
        }
        ,
        (b = ce.expr = {
            cacheLength: 50,
            createPseudo: F,
            match: D,
            attrHandle: {},
            find: {},
            relative: {
                ">": {
                    dir: "parentNode",
                    first: !0
                },
                " ": {
                    dir: "parentNode"
                },
                "+": {
                    dir: "previousSibling",
                    first: !0
                },
                "~": {
                    dir: "previousSibling"
                }
            },
            preFilter: {
                ATTR: function(e) {
                    return e[1] = e[1].replace(O, P),
                    e[3] = (e[3] || e[4] || e[5] || "").replace(O, P),
                    "~=" === e[2] && (e[3] = " " + e[3] + " "),
                    e.slice(0, 4)
                },
                CHILD: function(e) {
                    return e[1] = e[1].toLowerCase(),
                    "nth" === e[1].slice(0, 3) ? (e[3] || I.error(e[0]),
                    e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])),
                    e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && I.error(e[0]),
                    e
                },
                PSEUDO: function(e) {
                    var t, n = !e[6] && e[2];
                    return D.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && j.test(n) && (t = Y(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t),
                    e[2] = n.slice(0, t)),
                    e.slice(0, 3))
                }
            },
            filter: {
                TAG: function(e) {
                    var t = e.replace(O, P).toLowerCase();
                    return "*" === e ? function() {
                        return !0
                    }
                    : function(e) {
                        return fe(e, t)
                    }
                },
                CLASS: function(e) {
                    var t = s[e + " "];
                    return t || (t = new RegExp("(^|" + ge + ")" + e + "(" + ge + "|$)")) && s(e, function(e) {
                        return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
                    })
                },
                ATTR: function(n, r, i) {
                    return function(e) {
                        var t = I.attr(e, n);
                        return null == t ? "!=" === r : !r || (t += "",
                        "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(v, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
                    }
                },
                CHILD: function(d, e, t, h, g) {
                    var v = "nth" !== d.slice(0, 3)
                      , y = "last" !== d.slice(-4)
                      , m = "of-type" === e;
                    return 1 === h && 0 === g ? function(e) {
                        return !!e.parentNode
                    }
                    : function(e, t, n) {
                        var r, i, o, a, s, u = v !== y ? "nextSibling" : "previousSibling", l = e.parentNode, c = m && e.nodeName.toLowerCase(), f = !n && !m, p = !1;
                        if (l) {
                            if (v) {
                                while (u) {
                                    o = e;
                                    while (o = o[u])
                                        if (m ? fe(o, c) : 1 === o.nodeType)
                                            return !1;
                                    s = u = "only" === d && !s && "nextSibling"
                                }
                                return !0
                            }
                            if (s = [y ? l.firstChild : l.lastChild],
                            y && f) {
                                p = (a = (r = (i = l[S] || (l[S] = {}))[d] || [])[0] === E && r[1]) && r[2],
                                o = a && l.childNodes[a];
                                while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                    if (1 === o.nodeType && ++p && o === e) {
                                        i[d] = [E, a, p];
                                        break
                                    }
                            } else if (f && (p = a = (r = (i = e[S] || (e[S] = {}))[d] || [])[0] === E && r[1]),
                            !1 === p)
                                while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                    if ((m ? fe(o, c) : 1 === o.nodeType) && ++p && (f && ((i = o[S] || (o[S] = {}))[d] = [E, p]),
                                    o === e))
                                        break;
                            return (p -= g) === h || p % h == 0 && 0 <= p / h
                        }
                    }
                },
                PSEUDO: function(e, o) {
                    var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || I.error("unsupported pseudo: " + e);
                    return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o],
                    b.setFilters.hasOwnProperty(e.toLowerCase()) ? F(function(e, t) {
                        var n, r = a(e, o), i = r.length;
                        while (i--)
                            e[n = se.call(e, r[i])] = !(t[n] = r[i])
                    }) : function(e) {
                        return a(e, 0, t)
                    }
                    ) : a
                }
            },
            pseudos: {
                not: F(function(e) {
                    var r = []
                      , i = []
                      , s = ne(e.replace(ve, "$1"));
                    return s[S] ? F(function(e, t, n, r) {
                        var i, o = s(e, null, r, []), a = e.length;
                        while (a--)
                            (i = o[a]) && (e[a] = !(t[a] = i))
                    }) : function(e, t, n) {
                        return r[0] = e,
                        s(r, null, n, i),
                        r[0] = null,
                        !i.pop()
                    }
                }),
                has: F(function(t) {
                    return function(e) {
                        return 0 < I(t, e).length
                    }
                }),
                contains: F(function(t) {
                    return t = t.replace(O, P),
                    function(e) {
                        return -1 < (e.textContent || ce.text(e)).indexOf(t)
                    }
                }),
                lang: F(function(n) {
                    return A.test(n || "") || I.error("unsupported lang: " + n),
                    n = n.replace(O, P).toLowerCase(),
                    function(e) {
                        var t;
                        do {
                            if (t = C ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang"))
                                return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
                        } while ((e = e.parentNode) && 1 === e.nodeType);
                        return !1
                    }
                }),
                target: function(e) {
                    var t = ie.location && ie.location.hash;
                    return t && t.slice(1) === e.id
                },
                root: function(e) {
                    return e === r
                },
                focus: function(e) {
                    return e === function() {
                        try {
                            return T.activeElement
                        } catch (e) {}
                    }() && T.hasFocus() && !!(e.type || e.href || ~e.tabIndex)
                },
                enabled: z(!1),
                disabled: z(!0),
                checked: function(e) {
                    return fe(e, "input") && !!e.checked || fe(e, "option") && !!e.selected
                },
                selected: function(e) {
                    return e.parentNode && e.parentNode.selectedIndex,
                    !0 === e.selected
                },
                empty: function(e) {
                    for (e = e.firstChild; e; e = e.nextSibling)
                        if (e.nodeType < 6)
                            return !1;
                    return !0
                },
                parent: function(e) {
                    return !b.pseudos.empty(e)
                },
                header: function(e) {
                    return q.test(e.nodeName)
                },
                input: function(e) {
                    return N.test(e.nodeName)
                },
                button: function(e) {
                    return fe(e, "input") && "button" === e.type || fe(e, "button")
                },
                text: function(e) {
                    var t;
                    return fe(e, "input") && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                },
                first: X(function() {
                    return [0]
                }),
                last: X(function(e, t) {
                    return [t - 1]
                }),
                eq: X(function(e, t, n) {
                    return [n < 0 ? n + t : n]
                }),
                even: X(function(e, t) {
                    for (var n = 0; n < t; n += 2)
                        e.push(n);
                    return e
                }),
                odd: X(function(e, t) {
                    for (var n = 1; n < t; n += 2)
                        e.push(n);
                    return e
                }),
                lt: X(function(e, t, n) {
                    var r;
                    for (r = n < 0 ? n + t : t < n ? t : n; 0 <= --r; )
                        e.push(r);
                    return e
                }),
                gt: X(function(e, t, n) {
                    for (var r = n < 0 ? n + t : n; ++r < t; )
                        e.push(r);
                    return e
                })
            }
        }).pseudos.nth = b.pseudos.eq,
        {
            radio: !0,
            checkbox: !0,
            file: !0,
            password: !0,
            image: !0
        })
            b.pseudos[e] = B(e);
        for (e in {
            submit: !0,
            reset: !0
        })
            b.pseudos[e] = _(e);
        function G() {}
        function Y(e, t) {
            var n, r, i, o, a, s, u, l = c[e + " "];
            if (l)
                return t ? 0 : l.slice(0);
            a = e,
            s = [],
            u = b.preFilter;
            while (a) {
                for (o in n && !(r = y.exec(a)) || (r && (a = a.slice(r[0].length) || a),
                s.push(i = [])),
                n = !1,
                (r = m.exec(a)) && (n = r.shift(),
                i.push({
                    value: n,
                    type: r[0].replace(ve, " ")
                }),
                a = a.slice(n.length)),
                b.filter)
                    !(r = D[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(),
                    i.push({
                        value: n,
                        type: o,
                        matches: r
                    }),
                    a = a.slice(n.length));
                if (!n)
                    break
            }
            return t ? a.length : a ? I.error(e) : c(e, s).slice(0)
        }
        function Q(e) {
            for (var t = 0, n = e.length, r = ""; t < n; t++)
                r += e[t].value;
            return r
        }
        function J(a, e, t) {
            var s = e.dir
              , u = e.next
              , l = u || s
              , c = t && "parentNode" === l
              , f = n++;
            return e.first ? function(e, t, n) {
                while (e = e[s])
                    if (1 === e.nodeType || c)
                        return a(e, t, n);
                return !1
            }
            : function(e, t, n) {
                var r, i, o = [E, f];
                if (n) {
                    while (e = e[s])
                        if ((1 === e.nodeType || c) && a(e, t, n))
                            return !0
                } else
                    while (e = e[s])
                        if (1 === e.nodeType || c)
                            if (i = e[S] || (e[S] = {}),
                            u && fe(e, u))
                                e = e[s] || e;
                            else {
                                if ((r = i[l]) && r[0] === E && r[1] === f)
                                    return o[2] = r[2];
                                if ((i[l] = o)[2] = a(e, t, n))
                                    return !0
                            }
                return !1
            }
        }
        function K(i) {
            return 1 < i.length ? function(e, t, n) {
                var r = i.length;
                while (r--)
                    if (!i[r](e, t, n))
                        return !1;
                return !0
            }
            : i[0]
        }
        function Z(e, t, n, r, i) {
            for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)
                (o = e[s]) && (n && !n(o, r, i) || (a.push(o),
                l && t.push(s)));
            return a
        }
        function ee(d, h, g, v, y, e) {
            return v && !v[S] && (v = ee(v)),
            y && !y[S] && (y = ee(y, e)),
            F(function(e, t, n, r) {
                var i, o, a, s, u = [], l = [], c = t.length, f = e || function(e, t, n) {
                    for (var r = 0, i = t.length; r < i; r++)
                        I(e, t[r], n);
                    return n
                }(h || "*", n.nodeType ? [n] : n, []), p = !d || !e && h ? f : Z(f, u, d, n, r);
                if (g ? g(p, s = y || (e ? d : c || v) ? [] : t, n, r) : s = p,
                v) {
                    i = Z(s, l),
                    v(i, [], n, r),
                    o = i.length;
                    while (o--)
                        (a = i[o]) && (s[l[o]] = !(p[l[o]] = a))
                }
                if (e) {
                    if (y || d) {
                        if (y) {
                            i = [],
                            o = s.length;
                            while (o--)
                                (a = s[o]) && i.push(p[o] = a);
                            y(null, s = [], i, r)
                        }
                        o = s.length;
                        while (o--)
                            (a = s[o]) && -1 < (i = y ? se.call(e, a) : u[o]) && (e[i] = !(t[i] = a))
                    }
                } else
                    s = Z(s === t ? s.splice(c, s.length) : s),
                    y ? y(null, t, s, r) : k.apply(t, s)
            })
        }
        function te(e) {
            for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = J(function(e) {
                return e === i
            }, a, !0), l = J(function(e) {
                return -1 < se.call(i, e)
            }, a, !0), c = [function(e, t, n) {
                var r = !o && (n || t != w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
                return i = null,
                r
            }
            ]; s < r; s++)
                if (t = b.relative[e[s].type])
                    c = [J(K(c), t)];
                else {
                    if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
                        for (n = ++s; n < r; n++)
                            if (b.relative[e[n].type])
                                break;
                        return ee(1 < s && K(c), 1 < s && Q(e.slice(0, s - 1).concat({
                            value: " " === e[s - 2].type ? "*" : ""
                        })).replace(ve, "$1"), t, s < n && te(e.slice(s, n)), n < r && te(e = e.slice(n)), n < r && Q(e))
                    }
                    c.push(t)
                }
            return K(c)
        }
        function ne(e, t) {
            var n, v, y, m, x, r, i = [], o = [], a = u[e + " "];
            if (!a) {
                t || (t = Y(e)),
                n = t.length;
                while (n--)
                    (a = te(t[n]))[S] ? i.push(a) : o.push(a);
                (a = u(e, (v = o,
                m = 0 < (y = i).length,
                x = 0 < v.length,
                r = function(e, t, n, r, i) {
                    var o, a, s, u = 0, l = "0", c = e && [], f = [], p = w, d = e || x && b.find.TAG("*", i), h = E += null == p ? 1 : Math.random() || .1, g = d.length;
                    for (i && (w = t == T || t || i); l !== g && null != (o = d[l]); l++) {
                        if (x && o) {
                            a = 0,
                            t || o.ownerDocument == T || (V(o),
                            n = !C);
                            while (s = v[a++])
                                if (s(o, t || T, n)) {
                                    k.call(r, o);
                                    break
                                }
                            i && (E = h)
                        }
                        m && ((o = !s && o) && u--,
                        e && c.push(o))
                    }
                    if (u += l,
                    m && l !== u) {
                        a = 0;
                        while (s = y[a++])
                            s(c, f, t, n);
                        if (e) {
                            if (0 < u)
                                while (l--)
                                    c[l] || f[l] || (f[l] = pe.call(r));
                            f = Z(f)
                        }
                        k.apply(r, f),
                        i && !e && 0 < f.length && 1 < u + y.length && ce.uniqueSort(r)
                    }
                    return i && (E = h,
                    w = p),
                    c
                }
                ,
                m ? F(r) : r))).selector = e
            }
            return a
        }
        function re(e, t, n, r) {
            var i, o, a, s, u, l = "function" == typeof e && e, c = !r && Y(e = l.selector || e);
            if (n = n || [],
            1 === c.length) {
                if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && C && b.relative[o[1].type]) {
                    if (!(t = (b.find.ID(a.matches[0].replace(O, P), t) || [])[0]))
                        return n;
                    l && (t = t.parentNode),
                    e = e.slice(o.shift().value.length)
                }
                i = D.needsContext.test(e) ? 0 : o.length;
                while (i--) {
                    if (a = o[i],
                    b.relative[s = a.type])
                        break;
                    if ((u = b.find[s]) && (r = u(a.matches[0].replace(O, P), H.test(o[0].type) && U(t.parentNode) || t))) {
                        if (o.splice(i, 1),
                        !(e = r.length && Q(o)))
                            return k.apply(n, r),
                            n;
                        break
                    }
                }
            }
            return (l || ne(e, c))(r, t, !C, n, !t || H.test(e) && U(t.parentNode) || t),
            n
        }
        G.prototype = b.filters = b.pseudos,
        b.setFilters = new G,
        le.sortStable = S.split("").sort(l).join("") === S,
        V(),
        le.sortDetached = $(function(e) {
            return 1 & e.compareDocumentPosition(T.createElement("fieldset"))
        }),
        ce.find = I,
        ce.expr[":"] = ce.expr.pseudos,
        ce.unique = ce.uniqueSort,
        I.compile = ne,
        I.select = re,
        I.setDocument = V,
        I.tokenize = Y,
        I.escape = ce.escapeSelector,
        I.getText = ce.text,
        I.isXML = ce.isXMLDoc,
        I.selectors = ce.expr,
        I.support = ce.support,
        I.uniqueSort = ce.uniqueSort
    }();
    var d = function(e, t, n) {
        var r = []
          , i = void 0 !== n;
        while ((e = e[t]) && 9 !== e.nodeType)
            if (1 === e.nodeType) {
                if (i && ce(e).is(n))
                    break;
                r.push(e)
            }
        return r
    }
      , h = function(e, t) {
        for (var n = []; e; e = e.nextSibling)
            1 === e.nodeType && e !== t && n.push(e);
        return n
    }
      , b = ce.expr.match.needsContext
      , w = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
    function T(e, n, r) {
        return v(n) ? ce.grep(e, function(e, t) {
            return !!n.call(e, t, e) !== r
        }) : n.nodeType ? ce.grep(e, function(e) {
            return e === n !== r
        }) : "string" != typeof n ? ce.grep(e, function(e) {
            return -1 < se.call(n, e) !== r
        }) : ce.filter(n, e, r)
    }
    ce.filter = function(e, t, n) {
        var r = t[0];
        return n && (e = ":not(" + e + ")"),
        1 === t.length && 1 === r.nodeType ? ce.find.matchesSelector(r, e) ? [r] : [] : ce.find.matches(e, ce.grep(t, function(e) {
            return 1 === e.nodeType
        }))
    }
    ,
    ce.fn.extend({
        find: function(e) {
            var t, n, r = this.length, i = this;
            if ("string" != typeof e)
                return this.pushStack(ce(e).filter(function() {
                    for (t = 0; t < r; t++)
                        if (ce.contains(i[t], this))
                            return !0
                }));
            for (n = this.pushStack([]),
            t = 0; t < r; t++)
                ce.find(e, i[t], n);
            return 1 < r ? ce.uniqueSort(n) : n
        },
        filter: function(e) {
            return this.pushStack(T(this, e || [], !1))
        },
        not: function(e) {
            return this.pushStack(T(this, e || [], !0))
        },
        is: function(e) {
            return !!T(this, "string" == typeof e && b.test(e) ? ce(e) : e || [], !1).length
        }
    });
    var k, S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
    (ce.fn.init = function(e, t, n) {
        var r, i;
        if (!e)
            return this;
        if (n = n || k,
        "string" == typeof e) {
            if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : S.exec(e)) || !r[1] && t)
                return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
            if (r[1]) {
                if (t = t instanceof ce ? t[0] : t,
                ce.merge(this, ce.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : C, !0)),
                w.test(r[1]) && ce.isPlainObject(t))
                    for (r in t)
                        v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
                return this
            }
            return (i = C.getElementById(r[2])) && (this[0] = i,
            this.length = 1),
            this
        }
        return e.nodeType ? (this[0] = e,
        this.length = 1,
        this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(ce) : ce.makeArray(e, this)
    }
    ).prototype = ce.fn,
    k = ce(C);
    var E = /^(?:parents|prev(?:Until|All))/
      , j = {
        children: !0,
        contents: !0,
        next: !0,
        prev: !0
    };
    function A(e, t) {
        while ((e = e[t]) && 1 !== e.nodeType)
            ;
        return e
    }
    ce.fn.extend({
        has: function(e) {
            var t = ce(e, this)
              , n = t.length;
            return this.filter(function() {
                for (var e = 0; e < n; e++)
                    if (ce.contains(this, t[e]))
                        return !0
            })
        },
        closest: function(e, t) {
            var n, r = 0, i = this.length, o = [], a = "string" != typeof e && ce(e);
            if (!b.test(e))
                for (; r < i; r++)
                    for (n = this[r]; n && n !== t; n = n.parentNode)
                        if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && ce.find.matchesSelector(n, e))) {
                            o.push(n);
                            break
                        }
            return this.pushStack(1 < o.length ? ce.uniqueSort(o) : o)
        },
        index: function(e) {
            return e ? "string" == typeof e ? se.call(ce(e), this[0]) : se.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },
        add: function(e, t) {
            return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e, t))))
        },
        addBack: function(e) {
            return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
        }
    }),
    ce.each({
        parent: function(e) {
            var t = e.parentNode;
            return t && 11 !== t.nodeType ? t : null
        },
        parents: function(e) {
            return d(e, "parentNode")
        },
        parentsUntil: function(e, t, n) {
            return d(e, "parentNode", n)
        },
        next: function(e) {
            return A(e, "nextSibling")
        },
        prev: function(e) {
            return A(e, "previousSibling")
        },
        nextAll: function(e) {
            return d(e, "nextSibling")
        },
        prevAll: function(e) {
            return d(e, "previousSibling")
        },
        nextUntil: function(e, t, n) {
            return d(e, "nextSibling", n)
        },
        prevUntil: function(e, t, n) {
            return d(e, "previousSibling", n)
        },
        siblings: function(e) {
            return h((e.parentNode || {}).firstChild, e)
        },
        children: function(e) {
            return h(e.firstChild)
        },
        contents: function(e) {
            return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (fe(e, "template") && (e = e.content || e),
            ce.merge([], e.childNodes))
        }
    }, function(r, i) {
        ce.fn[r] = function(e, t) {
            var n = ce.map(this, i, e);
            return "Until" !== r.slice(-5) && (t = e),
            t && "string" == typeof t && (n = ce.filter(t, n)),
            1 < this.length && (j[r] || ce.uniqueSort(n),
            E.test(r) && n.reverse()),
            this.pushStack(n)
        }
    });
    var D = /[^\x20\t\r\n\f]+/g;
    function N(e) {
        return e
    }
    function q(e) {
        throw e
    }
    function L(e, t, n, r) {
        var i;
        try {
            e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
        } catch (e) {
            n.apply(void 0, [e])
        }
    }
    ce.Callbacks = function(r) {
        var e, n;
        r = "string" == typeof r ? (e = r,
        n = {},
        ce.each(e.match(D) || [], function(e, t) {
            n[t] = !0
        }),
        n) : ce.extend({}, r);
        var i, t, o, a, s = [], u = [], l = -1, c = function() {
            for (a = a || r.once,
            o = i = !0; u.length; l = -1) {
                t = u.shift();
                while (++l < s.length)
                    !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length,
                    t = !1)
            }
            r.memory || (t = !1),
            i = !1,
            a && (s = t ? [] : "")
        }, f = {
            add: function() {
                return s && (t && !i && (l = s.length - 1,
                u.push(t)),
                function n(e) {
                    ce.each(e, function(e, t) {
                        v(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== x(t) && n(t)
                    })
                }(arguments),
                t && !i && c()),
                this
            },
            remove: function() {
                return ce.each(arguments, function(e, t) {
                    var n;
                    while (-1 < (n = ce.inArray(t, s, n)))
                        s.splice(n, 1),
                        n <= l && l--
                }),
                this
            },
            has: function(e) {
                return e ? -1 < ce.inArray(e, s) : 0 < s.length
            },
            empty: function() {
                return s && (s = []),
                this
            },
            disable: function() {
                return a = u = [],
                s = t = "",
                this
            },
            disabled: function() {
                return !s
            },
            lock: function() {
                return a = u = [],
                t || i || (s = t = ""),
                this
            },
            locked: function() {
                return !!a
            },
            fireWith: function(e, t) {
                return a || (t = [e, (t = t || []).slice ? t.slice() : t],
                u.push(t),
                i || c()),
                this
            },
            fire: function() {
                return f.fireWith(this, arguments),
                this
            },
            fired: function() {
                return !!o
            }
        };
        return f
    }
    ,
    ce.extend({
        Deferred: function(e) {
            var o = [["notify", "progress", ce.Callbacks("memory"), ce.Callbacks("memory"), 2], ["resolve", "done", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 1, "rejected"]]
              , i = "pending"
              , a = {
                state: function() {
                    return i
                },
                always: function() {
                    return s.done(arguments).fail(arguments),
                    this
                },
                "catch": function(e) {
                    return a.then(null, e)
                },
                pipe: function() {
                    var i = arguments;
                    return ce.Deferred(function(r) {
                        ce.each(o, function(e, t) {
                            var n = v(i[t[4]]) && i[t[4]];
                            s[t[1]](function() {
                                var e = n && n.apply(this, arguments);
                                e && v(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
                            })
                        }),
                        i = null
                    }).promise()
                },
                then: function(t, n, r) {
                    var u = 0;
                    function l(i, o, a, s) {
                        return function() {
                            var n = this
                              , r = arguments
                              , e = function() {
                                var e, t;
                                if (!(i < u)) {
                                    if ((e = a.apply(n, r)) === o.promise())
                                        throw new TypeError("Thenable self-resolution");
                                    t = e && ("object" == typeof e || "function" == typeof e) && e.then,
                                    v(t) ? s ? t.call(e, l(u, o, N, s), l(u, o, q, s)) : (u++,
                                    t.call(e, l(u, o, N, s), l(u, o, q, s), l(u, o, N, o.notifyWith))) : (a !== N && (n = void 0,
                                    r = [e]),
                                    (s || o.resolveWith)(n, r))
                                }
                            }
                              , t = s ? e : function() {
                                try {
                                    e()
                                } catch (e) {
                                    ce.Deferred.exceptionHook && ce.Deferred.exceptionHook(e, t.error),
                                    u <= i + 1 && (a !== q && (n = void 0,
                                    r = [e]),
                                    o.rejectWith(n, r))
                                }
                            }
                            ;
                            i ? t() : (ce.Deferred.getErrorHook ? t.error = ce.Deferred.getErrorHook() : ce.Deferred.getStackHook && (t.error = ce.Deferred.getStackHook()),
                            ie.setTimeout(t))
                        }
                    }
                    return ce.Deferred(function(e) {
                        o[0][3].add(l(0, e, v(r) ? r : N, e.notifyWith)),
                        o[1][3].add(l(0, e, v(t) ? t : N)),
                        o[2][3].add(l(0, e, v(n) ? n : q))
                    }).promise()
                },
                promise: function(e) {
                    return null != e ? ce.extend(e, a) : a
                }
            }
              , s = {};
            return ce.each(o, function(e, t) {
                var n = t[2]
                  , r = t[5];
                a[t[1]] = n.add,
                r && n.add(function() {
                    i = r
                }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock),
                n.add(t[3].fire),
                s[t[0]] = function() {
                    return s[t[0] + "With"](this === s ? void 0 : this, arguments),
                    this
                }
                ,
                s[t[0] + "With"] = n.fireWith
            }),
            a.promise(s),
            e && e.call(s, s),
            s
        },
        when: function(e) {
            var n = arguments.length
              , t = n
              , r = Array(t)
              , i = ae.call(arguments)
              , o = ce.Deferred()
              , a = function(t) {
                return function(e) {
                    r[t] = this,
                    i[t] = 1 < arguments.length ? ae.call(arguments) : e,
                    --n || o.resolveWith(r, i)
                }
            };
            if (n <= 1 && (L(e, o.done(a(t)).resolve, o.reject, !n),
            "pending" === o.state() || v(i[t] && i[t].then)))
                return o.then();
            while (t--)
                L(i[t], a(t), o.reject);
            return o.promise()
        }
    });
    var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
    ce.Deferred.exceptionHook = function(e, t) {
        ie.console && ie.console.warn && e && H.test(e.name) && ie.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
    }
    ,
    ce.readyException = function(e) {
        ie.setTimeout(function() {
            throw e
        })
    }
    ;
    var O = ce.Deferred();
    function P() {
        C.removeEventListener("DOMContentLoaded", P),
        ie.removeEventListener("load", P),
        ce.ready()
    }
    ce.fn.ready = function(e) {
        return O.then(e)["catch"](function(e) {
            ce.readyException(e)
        }),
        this
    }
    ,
    ce.extend({
        isReady: !1,
        readyWait: 1,
        ready: function(e) {
            (!0 === e ? --ce.readyWait : ce.isReady) || (ce.isReady = !0) !== e && 0 < --ce.readyWait || O.resolveWith(C, [ce])
        }
    }),
    ce.ready.then = O.then,
    "complete" === C.readyState || "loading" !== C.readyState && !C.documentElement.doScroll ? ie.setTimeout(ce.ready) : (C.addEventListener("DOMContentLoaded", P),
    ie.addEventListener("load", P));
    var M = function(e, t, n, r, i, o, a) {
        var s = 0
          , u = e.length
          , l = null == n;
        if ("object" === x(n))
            for (s in i = !0,
            n)
                M(e, t, s, n[s], !0, o, a);
        else if (void 0 !== r && (i = !0,
        v(r) || (a = !0),
        l && (a ? (t.call(e, r),
        t = null) : (l = t,
        t = function(e, t, n) {
            return l.call(ce(e), n)
        }
        )),
        t))
            for (; s < u; s++)
                t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
        return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
    }
      , R = /^-ms-/
      , I = /-([a-z])/g;
    function W(e, t) {
        return t.toUpperCase()
    }
    function F(e) {
        return e.replace(R, "ms-").replace(I, W)
    }
    var $ = function(e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
    };
    function B() {
        this.expando = ce.expando + B.uid++
    }
    B.uid = 1,
    B.prototype = {
        cache: function(e) {
            var t = e[this.expando];
            return t || (t = {},
            $(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
                value: t,
                configurable: !0
            }))),
            t
        },
        set: function(e, t, n) {
            var r, i = this.cache(e);
            if ("string" == typeof t)
                i[F(t)] = n;
            else
                for (r in t)
                    i[F(r)] = t[r];
            return i
        },
        get: function(e, t) {
            return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][F(t)]
        },
        access: function(e, t, n) {
            return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n),
            void 0 !== n ? n : t)
        },
        remove: function(e, t) {
            var n, r = e[this.expando];
            if (void 0 !== r) {
                if (void 0 !== t) {
                    n = (t = Array.isArray(t) ? t.map(F) : (t = F(t))in r ? [t] : t.match(D) || []).length;
                    while (n--)
                        delete r[t[n]]
                }
                (void 0 === t || ce.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
            }
        },
        hasData: function(e) {
            var t = e[this.expando];
            return void 0 !== t && !ce.isEmptyObject(t)
        }
    };
    var _ = new B
      , z = new B
      , X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/
      , U = /[A-Z]/g;
    function V(e, t, n) {
        var r, i;
        if (void 0 === n && 1 === e.nodeType)
            if (r = "data-" + t.replace(U, "-$&").toLowerCase(),
            "string" == typeof (n = e.getAttribute(r))) {
                try {
                    n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : X.test(i) ? JSON.parse(i) : i)
                } catch (e) {}
                z.set(e, t, n)
            } else
                n = void 0;
        return n
    }
    ce.extend({
        hasData: function(e) {
            return z.hasData(e) || _.hasData(e)
        },
        data: function(e, t, n) {
            return z.access(e, t, n)
        },
        removeData: function(e, t) {
            z.remove(e, t)
        },
        _data: function(e, t, n) {
            return _.access(e, t, n)
        },
        _removeData: function(e, t) {
            _.remove(e, t)
        }
    }),
    ce.fn.extend({
        data: function(n, e) {
            var t, r, i, o = this[0], a = o && o.attributes;
            if (void 0 === n) {
                if (this.length && (i = z.get(o),
                1 === o.nodeType && !_.get(o, "hasDataAttrs"))) {
                    t = a.length;
                    while (t--)
                        a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = F(r.slice(5)),
                        V(o, r, i[r]));
                    _.set(o, "hasDataAttrs", !0)
                }
                return i
            }
            return "object" == typeof n ? this.each(function() {
                z.set(this, n)
            }) : M(this, function(e) {
                var t;
                if (o && void 0 === e)
                    return void 0 !== (t = z.get(o, n)) ? t : void 0 !== (t = V(o, n)) ? t : void 0;
                this.each(function() {
                    z.set(this, n, e)
                })
            }, null, e, 1 < arguments.length, null, !0)
        },
        removeData: function(e) {
            return this.each(function() {
                z.remove(this, e)
            })
        }
    }),
    ce.extend({
        queue: function(e, t, n) {
            var r;
            if (e)
                return t = (t || "fx") + "queue",
                r = _.get(e, t),
                n && (!r || Array.isArray(n) ? r = _.access(e, t, ce.makeArray(n)) : r.push(n)),
                r || []
        },
        dequeue: function(e, t) {
            t = t || "fx";
            var n = ce.queue(e, t)
              , r = n.length
              , i = n.shift()
              , o = ce._queueHooks(e, t);
            "inprogress" === i && (i = n.shift(),
            r--),
            i && ("fx" === t && n.unshift("inprogress"),
            delete o.stop,
            i.call(e, function() {
                ce.dequeue(e, t)
            }, o)),
            !r && o && o.empty.fire()
        },
        _queueHooks: function(e, t) {
            var n = t + "queueHooks";
            return _.get(e, n) || _.access(e, n, {
                empty: ce.Callbacks("once memory").add(function() {
                    _.remove(e, [t + "queue", n])
                })
            })
        }
    }),
    ce.fn.extend({
        queue: function(t, n) {
            var e = 2;
            return "string" != typeof t && (n = t,
            t = "fx",
            e--),
            arguments.length < e ? ce.queue(this[0], t) : void 0 === n ? this : this.each(function() {
                var e = ce.queue(this, t, n);
                ce._queueHooks(this, t),
                "fx" === t && "inprogress" !== e[0] && ce.dequeue(this, t)
            })
        },
        dequeue: function(e) {
            return this.each(function() {
                ce.dequeue(this, e)
            })
        },
        clearQueue: function(e) {
            return this.queue(e || "fx", [])
        },
        promise: function(e, t) {
            var n, r = 1, i = ce.Deferred(), o = this, a = this.length, s = function() {
                --r || i.resolveWith(o, [o])
            };
            "string" != typeof e && (t = e,
            e = void 0),
            e = e || "fx";
            while (a--)
                (n = _.get(o[a], e + "queueHooks")) && n.empty && (r++,
                n.empty.add(s));
            return s(),
            i.promise(t)
        }
    });
    var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source
      , Y = new RegExp("^(?:([+-])=|)(" + G + ")([a-z%]*)$","i")
      , Q = ["Top", "Right", "Bottom", "Left"]
      , J = C.documentElement
      , K = function(e) {
        return ce.contains(e.ownerDocument, e)
    }
      , Z = {
        composed: !0
    };
    J.getRootNode && (K = function(e) {
        return ce.contains(e.ownerDocument, e) || e.getRootNode(Z) === e.ownerDocument
    }
    );
    var ee = function(e, t) {
        return "none" === (e = t || e).style.display || "" === e.style.display && K(e) && "none" === ce.css(e, "display")
    };
    function te(e, t, n, r) {
        var i, o, a = 20, s = r ? function() {
            return r.cur()
        }
        : function() {
            return ce.css(e, t, "")
        }
        , u = s(), l = n && n[3] || (ce.cssNumber[t] ? "" : "px"), c = e.nodeType && (ce.cssNumber[t] || "px" !== l && +u) && Y.exec(ce.css(e, t));
        if (c && c[3] !== l) {
            u /= 2,
            l = l || c[3],
            c = +u || 1;
            while (a--)
                ce.style(e, t, c + l),
                (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0),
                c /= o;
            c *= 2,
            ce.style(e, t, c + l),
            n = n || []
        }
        return n && (c = +c || +u || 0,
        i = n[1] ? c + (n[1] + 1) * n[2] : +n[2],
        r && (r.unit = l,
        r.start = c,
        r.end = i)),
        i
    }
    var ne = {};
    function re(e, t) {
        for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)
            (r = e[c]).style && (n = r.style.display,
            t ? ("none" === n && (l[c] = _.get(r, "display") || null,
            l[c] || (r.style.display = "")),
            "" === r.style.display && ee(r) && (l[c] = (u = a = o = void 0,
            a = (i = r).ownerDocument,
            s = i.nodeName,
            (u = ne[s]) || (o = a.body.appendChild(a.createElement(s)),
            u = ce.css(o, "display"),
            o.parentNode.removeChild(o),
            "none" === u && (u = "block"),
            ne[s] = u)))) : "none" !== n && (l[c] = "none",
            _.set(r, "display", n)));
        for (c = 0; c < f; c++)
            null != l[c] && (e[c].style.display = l[c]);
        return e
    }
    ce.fn.extend({
        show: function() {
            return re(this, !0)
        },
        hide: function() {
            return re(this)
        },
        toggle: function(e) {
            return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
                ee(this) ? ce(this).show() : ce(this).hide()
            })
        }
    });
    var xe, be, we = /^(?:checkbox|radio)$/i, Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, Ce = /^$|^module$|\/(?:java|ecma)script/i;
    xe = C.createDocumentFragment().appendChild(C.createElement("div")),
    (be = C.createElement("input")).setAttribute("type", "radio"),
    be.setAttribute("checked", "checked"),
    be.setAttribute("name", "t"),
    xe.appendChild(be),
    le.checkClone = xe.cloneNode(!0).cloneNode(!0).lastChild.checked,
    xe.innerHTML = "<textarea>x</textarea>",
    le.noCloneChecked = !!xe.cloneNode(!0).lastChild.defaultValue,
    xe.innerHTML = "<option></option>",
    le.option = !!xe.lastChild;
    var ke = {
        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, "", ""]
    };
    function Se(e, t) {
        var n;
        return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [],
        void 0 === t || t && fe(e, t) ? ce.merge([e], n) : n
    }
    function Ee(e, t) {
        for (var n = 0, r = e.length; n < r; n++)
            _.set(e[n], "globalEval", !t || _.get(t[n], "globalEval"))
    }
    ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead,
    ke.th = ke.td,
    le.option || (ke.optgroup = ke.option = [1, "<select multiple='multiple'>", "</select>"]);
    var je = /<|&#?\w+;/;
    function Ae(e, t, n, r, i) {
        for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
            if ((o = e[d]) || 0 === o)
                if ("object" === x(o))
                    ce.merge(p, o.nodeType ? [o] : o);
                else if (je.test(o)) {
                    a = a || f.appendChild(t.createElement("div")),
                    s = (Te.exec(o) || ["", ""])[1].toLowerCase(),
                    u = ke[s] || ke._default,
                    a.innerHTML = u[1] + ce.htmlPrefilter(o) + u[2],
                    c = u[0];
                    while (c--)
                        a = a.lastChild;
                    ce.merge(p, a.childNodes),
                    (a = f.firstChild).textContent = ""
                } else
                    p.push(t.createTextNode(o));
        f.textContent = "",
        d = 0;
        while (o = p[d++])
            if (r && -1 < ce.inArray(o, r))
                i && i.push(o);
            else if (l = K(o),
            a = Se(f.appendChild(o), "script"),
            l && Ee(a),
            n) {
                c = 0;
                while (o = a[c++])
                    Ce.test(o.type || "") && n.push(o)
            }
        return f
    }
    var De = /^([^.]*)(?:\.(.+)|)/;
    function Ne() {
        return !0
    }
    function qe() {
        return !1
    }
    function Le(e, t, n, r, i, o) {
        var a, s;
        if ("object" == typeof t) {
            for (s in "string" != typeof n && (r = r || n,
            n = void 0),
            t)
                Le(e, s, n, r, t[s], o);
            return e
        }
        if (null == r && null == i ? (i = n,
        r = n = void 0) : null == i && ("string" == typeof n ? (i = r,
        r = void 0) : (i = r,
        r = n,
        n = void 0)),
        !1 === i)
            i = qe;
        else if (!i)
            return e;
        return 1 === o && (a = i,
        (i = function(e) {
            return ce().off(e),
            a.apply(this, arguments)
        }
        ).guid = a.guid || (a.guid = ce.guid++)),
        e.each(function() {
            ce.event.add(this, t, i, r, n)
        })
    }
    function He(e, r, t) {
        t ? (_.set(e, r, !1),
        ce.event.add(e, r, {
            namespace: !1,
            handler: function(e) {
                var t, n = _.get(this, r);
                if (1 & e.isTrigger && this[r]) {
                    if (n)
                        (ce.event.special[r] || {}).delegateType && e.stopPropagation();
                    else if (n = ae.call(arguments),
                    _.set(this, r, n),
                    this[r](),
                    t = _.get(this, r),
                    _.set(this, r, !1),
                    n !== t)
                        return e.stopImmediatePropagation(),
                        e.preventDefault(),
                        t
                } else
                    n && (_.set(this, r, ce.event.trigger(n[0], n.slice(1), this)),
                    e.stopPropagation(),
                    e.isImmediatePropagationStopped = Ne)
            }
        })) : void 0 === _.get(e, r) && ce.event.add(e, r, Ne)
    }
    ce.event = {
        global: {},
        add: function(t, e, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.get(t);
            if ($(t)) {
                n.handler && (n = (o = n).handler,
                i = o.selector),
                i && ce.find.matchesSelector(J, i),
                n.guid || (n.guid = ce.guid++),
                (u = v.events) || (u = v.events = Object.create(null)),
                (a = v.handle) || (a = v.handle = function(e) {
                    return "undefined" != typeof ce && ce.event.triggered !== e.type ? ce.event.dispatch.apply(t, arguments) : void 0
                }
                ),
                l = (e = (e || "").match(D) || [""]).length;
                while (l--)
                    d = g = (s = De.exec(e[l]) || [])[1],
                    h = (s[2] || "").split(".").sort(),
                    d && (f = ce.event.special[d] || {},
                    d = (i ? f.delegateType : f.bindType) || d,
                    f = ce.event.special[d] || {},
                    c = ce.extend({
                        type: d,
                        origType: g,
                        data: r,
                        handler: n,
                        guid: n.guid,
                        selector: i,
                        needsContext: i && ce.expr.match.needsContext.test(i),
                        namespace: h.join(".")
                    }, o),
                    (p = u[d]) || ((p = u[d] = []).delegateCount = 0,
                    f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)),
                    f.add && (f.add.call(t, c),
                    c.handler.guid || (c.handler.guid = n.guid)),
                    i ? p.splice(p.delegateCount++, 0, c) : p.push(c),
                    ce.event.global[d] = !0)
            }
        },
        remove: function(e, t, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.hasData(e) && _.get(e);
            if (v && (u = v.events)) {
                l = (t = (t || "").match(D) || [""]).length;
                while (l--)
                    if (d = g = (s = De.exec(t[l]) || [])[1],
                    h = (s[2] || "").split(".").sort(),
                    d) {
                        f = ce.event.special[d] || {},
                        p = u[d = (r ? f.delegateType : f.bindType) || d] || [],
                        s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"),
                        a = o = p.length;
                        while (o--)
                            c = p[o],
                            !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1),
                            c.selector && p.delegateCount--,
                            f.remove && f.remove.call(e, c));
                        a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || ce.removeEvent(e, d, v.handle),
                        delete u[d])
                    } else
                        for (d in u)
                            ce.event.remove(e, d + t[l], n, r, !0);
                ce.isEmptyObject(u) && _.remove(e, "handle events")
            }
        },
        dispatch: function(e) {
            var t, n, r, i, o, a, s = new Array(arguments.length), u = ce.event.fix(e), l = (_.get(this, "events") || Object.create(null))[u.type] || [], c = ce.event.special[u.type] || {};
            for (s[0] = u,
            t = 1; t < arguments.length; t++)
                s[t] = arguments[t];
            if (u.delegateTarget = this,
            !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
                a = ce.event.handlers.call(this, u, l),
                t = 0;
                while ((i = a[t++]) && !u.isPropagationStopped()) {
                    u.currentTarget = i.elem,
                    n = 0;
                    while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped())
                        u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o,
                        u.data = o.data,
                        void 0 !== (r = ((ce.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(),
                        u.stopPropagation()))
                }
                return c.postDispatch && c.postDispatch.call(this, u),
                u.result
            }
        },
        handlers: function(e, t) {
            var n, r, i, o, a, s = [], u = t.delegateCount, l = e.target;
            if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
                for (; l !== this; l = l.parentNode || this)
                    if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
                        for (o = [],
                        a = {},
                        n = 0; n < u; n++)
                            void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < ce(i, this).index(l) : ce.find(i, this, null, [l]).length),
                            a[i] && o.push(r);
                        o.length && s.push({
                            elem: l,
                            handlers: o
                        })
                    }
            return l = this,
            u < t.length && s.push({
                elem: l,
                handlers: t.slice(u)
            }),
            s
        },
        addProp: function(t, e) {
            Object.defineProperty(ce.Event.prototype, t, {
                enumerable: !0,
                configurable: !0,
                get: v(e) ? function() {
                    if (this.originalEvent)
                        return e(this.originalEvent)
                }
                : function() {
                    if (this.originalEvent)
                        return this.originalEvent[t]
                }
                ,
                set: function(e) {
                    Object.defineProperty(this, t, {
                        enumerable: !0,
                        configurable: !0,
                        writable: !0,
                        value: e
                    })
                }
            })
        },
        fix: function(e) {
            return e[ce.expando] ? e : new ce.Event(e)
        },
        special: {
            load: {
                noBubble: !0
            },
            click: {
                setup: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click", !0),
                    !1
                },
                trigger: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click"),
                    !0
                },
                _default: function(e) {
                    var t = e.target;
                    return we.test(t.type) && t.click && fe(t, "input") && _.get(t, "click") || fe(t, "a")
                }
            },
            beforeunload: {
                postDispatch: function(e) {
                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                }
            }
        }
    },
    ce.removeEvent = function(e, t, n) {
        e.removeEventListener && e.removeEventListener(t, n)
    }
    ,
    ce.Event = function(e, t) {
        if (!(this instanceof ce.Event))
            return new ce.Event(e,t);
        e && e.type ? (this.originalEvent = e,
        this.type = e.type,
        this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ne : qe,
        this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target,
        this.currentTarget = e.currentTarget,
        this.relatedTarget = e.relatedTarget) : this.type = e,
        t && ce.extend(this, t),
        this.timeStamp = e && e.timeStamp || Date.now(),
        this[ce.expando] = !0
    }
    ,
    ce.Event.prototype = {
        constructor: ce.Event,
        isDefaultPrevented: qe,
        isPropagationStopped: qe,
        isImmediatePropagationStopped: qe,
        isSimulated: !1,
        preventDefault: function() {
            var e = this.originalEvent;
            this.isDefaultPrevented = Ne,
            e && !this.isSimulated && e.preventDefault()
        },
        stopPropagation: function() {
            var e = this.originalEvent;
            this.isPropagationStopped = Ne,
            e && !this.isSimulated && e.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = Ne,
            e && !this.isSimulated && e.stopImmediatePropagation(),
            this.stopPropagation()
        }
    },
    ce.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,
        code: !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: !0
    }, ce.event.addProp),
    ce.each({
        focus: "focusin",
        blur: "focusout"
    }, function(r, i) {
        function o(e) {
            if (C.documentMode) {
                var t = _.get(this, "handle")
                  , n = ce.event.fix(e);
                n.type = "focusin" === e.type ? "focus" : "blur",
                n.isSimulated = !0,
                t(e),
                n.target === n.currentTarget && t(n)
            } else
                ce.event.simulate(i, e.target, ce.event.fix(e))
        }
        ce.event.special[r] = {
            setup: function() {
                var e;
                if (He(this, r, !0),
                !C.documentMode)
                    return !1;
                (e = _.get(this, i)) || this.addEventListener(i, o),
                _.set(this, i, (e || 0) + 1)
            },
            trigger: function() {
                return He(this, r),
                !0
            },
            teardown: function() {
                var e;
                if (!C.documentMode)
                    return !1;
                (e = _.get(this, i) - 1) ? _.set(this, i, e) : (this.removeEventListener(i, o),
                _.remove(this, i))
            },
            _default: function(e) {
                return _.get(e.target, r)
            },
            delegateType: i
        },
        ce.event.special[i] = {
            setup: function() {
                var e = this.ownerDocument || this.document || this
                  , t = C.documentMode ? this : e
                  , n = _.get(t, i);
                n || (C.documentMode ? this.addEventListener(i, o) : e.addEventListener(r, o, !0)),
                _.set(t, i, (n || 0) + 1)
            },
            teardown: function() {
                var e = this.ownerDocument || this.document || this
                  , t = C.documentMode ? this : e
                  , n = _.get(t, i) - 1;
                n ? _.set(t, i, n) : (C.documentMode ? this.removeEventListener(i, o) : e.removeEventListener(r, o, !0),
                _.remove(t, i))
            }
        }
    }),
    ce.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function(e, i) {
        ce.event.special[e] = {
            delegateType: i,
            bindType: i,
            handle: function(e) {
                var t, n = e.relatedTarget, r = e.handleObj;
                return n && (n === this || ce.contains(this, n)) || (e.type = r.origType,
                t = r.handler.apply(this, arguments),
                e.type = i),
                t
            }
        }
    }),
    ce.fn.extend({
        on: function(e, t, n, r) {
            return Le(this, e, t, n, r)
        },
        one: function(e, t, n, r) {
            return Le(this, e, t, n, r, 1)
        },
        off: function(e, t, n) {
            var r, i;
            if (e && e.preventDefault && e.handleObj)
                return r = e.handleObj,
                ce(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler),
                this;
            if ("object" == typeof e) {
                for (i in e)
                    this.off(i, t, e[i]);
                return this
            }
            return !1 !== t && "function" != typeof t || (n = t,
            t = void 0),
            !1 === n && (n = qe),
            this.each(function() {
                ce.event.remove(this, e, n, t)
            })
        }
    });
    var Oe = /<script|<style|<link/i
      , Pe = /checked\s*(?:[^=]|=\s*.checked.)/i
      , Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
    function Re(e, t) {
        return fe(e, "table") && fe(11 !== t.nodeType ? t : t.firstChild, "tr") && ce(e).children("tbody")[0] || e
    }
    function Ie(e) {
        return e.type = (null !== e.getAttribute("type")) + "/" + e.type,
        e
    }
    function We(e) {
        return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"),
        e
    }
    function Fe(e, t) {
        var n, r, i, o, a, s;
        if (1 === t.nodeType) {
            if (_.hasData(e) && (s = _.get(e).events))
                for (i in _.remove(t, "handle events"),
                s)
                    for (n = 0,
                    r = s[i].length; n < r; n++)
                        ce.event.add(t, i, s[i][n]);
            z.hasData(e) && (o = z.access(e),
            a = ce.extend({}, o),
            z.set(t, a))
        }
    }
    function $e(n, r, i, o) {
        r = g(r);
        var e, t, a, s, u, l, c = 0, f = n.length, p = f - 1, d = r[0], h = v(d);
        if (h || 1 < f && "string" == typeof d && !le.checkClone && Pe.test(d))
            return n.each(function(e) {
                var t = n.eq(e);
                h && (r[0] = d.call(this, e, t.html())),
                $e(t, r, i, o)
            });
        if (f && (t = (e = Ae(r, n[0].ownerDocument, !1, n, o)).firstChild,
        1 === e.childNodes.length && (e = t),
        t || o)) {
            for (s = (a = ce.map(Se(e, "script"), Ie)).length; c < f; c++)
                u = e,
                c !== p && (u = ce.clone(u, !0, !0),
                s && ce.merge(a, Se(u, "script"))),
                i.call(n[c], u, c);
            if (s)
                for (l = a[a.length - 1].ownerDocument,
                ce.map(a, We),
                c = 0; c < s; c++)
                    u = a[c],
                    Ce.test(u.type || "") && !_.access(u, "globalEval") && ce.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? ce._evalUrl && !u.noModule && ce._evalUrl(u.src, {
                        nonce: u.nonce || u.getAttribute("nonce")
                    }, l) : m(u.textContent.replace(Me, ""), u, l))
        }
        return n
    }
    function Be(e, t, n) {
        for (var r, i = t ? ce.filter(t, e) : e, o = 0; null != (r = i[o]); o++)
            n || 1 !== r.nodeType || ce.cleanData(Se(r)),
            r.parentNode && (n && K(r) && Ee(Se(r, "script")),
            r.parentNode.removeChild(r));
        return e
    }
    ce.extend({
        htmlPrefilter: function(e) {
            return e
        },
        clone: function(e, t, n) {
            var r, i, o, a, s, u, l, c = e.cloneNode(!0), f = K(e);
            if (!(le.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || ce.isXMLDoc(e)))
                for (a = Se(c),
                r = 0,
                i = (o = Se(e)).length; r < i; r++)
                    s = o[r],
                    u = a[r],
                    void 0,
                    "input" === (l = u.nodeName.toLowerCase()) && we.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue);
            if (t)
                if (n)
                    for (o = o || Se(e),
                    a = a || Se(c),
                    r = 0,
                    i = o.length; r < i; r++)
                        Fe(o[r], a[r]);
                else
                    Fe(e, c);
            return 0 < (a = Se(c, "script")).length && Ee(a, !f && Se(e, "script")),
            c
        },
        cleanData: function(e) {
            for (var t, n, r, i = ce.event.special, o = 0; void 0 !== (n = e[o]); o++)
                if ($(n)) {
                    if (t = n[_.expando]) {
                        if (t.events)
                            for (r in t.events)
                                i[r] ? ce.event.remove(n, r) : ce.removeEvent(n, r, t.handle);
                        n[_.expando] = void 0
                    }
                    n[z.expando] && (n[z.expando] = void 0)
                }
        }
    }),
    ce.fn.extend({
        detach: function(e) {
            return Be(this, e, !0)
        },
        remove: function(e) {
            return Be(this, e)
        },
        text: function(e) {
            return M(this, function(e) {
                return void 0 === e ? ce.text(this) : this.empty().each(function() {
                    1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
                })
            }, null, e, arguments.length)
        },
        append: function() {
            return $e(this, arguments, function(e) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Re(this, e).appendChild(e)
            })
        },
        prepend: function() {
            return $e(this, arguments, function(e) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var t = Re(this, e);
                    t.insertBefore(e, t.firstChild)
                }
            })
        },
        before: function() {
            return $e(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this)
            })
        },
        after: function() {
            return $e(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
            })
        },
        empty: function() {
            for (var e, t = 0; null != (e = this[t]); t++)
                1 === e.nodeType && (ce.cleanData(Se(e, !1)),
                e.textContent = "");
            return this
        },
        clone: function(e, t) {
            return e = null != e && e,
            t = null == t ? e : t,
            this.map(function() {
                return ce.clone(this, e, t)
            })
        },
        html: function(e) {
            return M(this, function(e) {
                var t = this[0] || {}
                  , n = 0
                  , r = this.length;
                if (void 0 === e && 1 === t.nodeType)
                    return t.innerHTML;
                if ("string" == typeof e && !Oe.test(e) && !ke[(Te.exec(e) || ["", ""])[1].toLowerCase()]) {
                    e = ce.htmlPrefilter(e);
                    try {
                        for (; n < r; n++)
                            1 === (t = this[n] || {}).nodeType && (ce.cleanData(Se(t, !1)),
                            t.innerHTML = e);
                        t = 0
                    } catch (e) {}
                }
                t && this.empty().append(e)
            }, null, e, arguments.length)
        },
        replaceWith: function() {
            var n = [];
            return $e(this, arguments, function(e) {
                var t = this.parentNode;
                ce.inArray(this, n) < 0 && (ce.cleanData(Se(this)),
                t && t.replaceChild(e, this))
            }, n)
        }
    }),
    ce.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(e, a) {
        ce.fn[e] = function(e) {
            for (var t, n = [], r = ce(e), i = r.length - 1, o = 0; o <= i; o++)
                t = o === i ? this : this.clone(!0),
                ce(r[o])[a](t),
                s.apply(n, t.get());
            return this.pushStack(n)
        }
    });
    var _e = new RegExp("^(" + G + ")(?!px)[a-z%]+$","i")
      , ze = /^--/
      , Xe = function(e) {
        var t = e.ownerDocument.defaultView;
        return t && t.opener || (t = ie),
        t.getComputedStyle(e)
    }
      , Ue = function(e, t, n) {
        var r, i, o = {};
        for (i in t)
            o[i] = e.style[i],
            e.style[i] = t[i];
        for (i in r = n.call(e),
        t)
            e.style[i] = o[i];
        return r
    }
      , Ve = new RegExp(Q.join("|"),"i");
    function Ge(e, t, n) {
        var r, i, o, a, s = ze.test(t), u = e.style;
        return (n = n || Xe(e)) && (a = n.getPropertyValue(t) || n[t],
        s && a && (a = a.replace(ve, "$1") || void 0),
        "" !== a || K(e) || (a = ce.style(e, t)),
        !le.pixelBoxStyles() && _e.test(a) && Ve.test(t) && (r = u.width,
        i = u.minWidth,
        o = u.maxWidth,
        u.minWidth = u.maxWidth = u.width = a,
        a = n.width,
        u.width = r,
        u.minWidth = i,
        u.maxWidth = o)),
        void 0 !== a ? a + "" : a
    }
    function Ye(e, t) {
        return {
            get: function() {
                if (!e())
                    return (this.get = t).apply(this, arguments);
                delete this.get
            }
        }
    }
    !function() {
        function e() {
            if (l) {
                u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",
                l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",
                J.appendChild(u).appendChild(l);
                var e = ie.getComputedStyle(l);
                n = "1%" !== e.top,
                s = 12 === t(e.marginLeft),
                l.style.right = "60%",
                o = 36 === t(e.right),
                r = 36 === t(e.width),
                l.style.position = "absolute",
                i = 12 === t(l.offsetWidth / 3),
                J.removeChild(u),
                l = null
            }
        }
        function t(e) {
            return Math.round(parseFloat(e))
        }
        var n, r, i, o, a, s, u = C.createElement("div"), l = C.createElement("div");
        l.style && (l.style.backgroundClip = "content-box",
        l.cloneNode(!0).style.backgroundClip = "",
        le.clearCloneStyle = "content-box" === l.style.backgroundClip,
        ce.extend(le, {
            boxSizingReliable: function() {
                return e(),
                r
            },
            pixelBoxStyles: function() {
                return e(),
                o
            },
            pixelPosition: function() {
                return e(),
                n
            },
            reliableMarginLeft: function() {
                return e(),
                s
            },
            scrollboxSize: function() {
                return e(),
                i
            },
            reliableTrDimensions: function() {
                var e, t, n, r;
                return null == a && (e = C.createElement("table"),
                t = C.createElement("tr"),
                n = C.createElement("div"),
                e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate",
                t.style.cssText = "box-sizing:content-box;border:1px solid",
                t.style.height = "1px",
                n.style.height = "9px",
                n.style.display = "block",
                J.appendChild(e).appendChild(t).appendChild(n),
                r = ie.getComputedStyle(t),
                a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight,
                J.removeChild(e)),
                a
            }
        }))
    }();
    var Qe = ["Webkit", "Moz", "ms"]
      , Je = C.createElement("div").style
      , Ke = {};
    function Ze(e) {
        var t = ce.cssProps[e] || Ke[e];
        return t || (e in Je ? e : Ke[e] = function(e) {
            var t = e[0].toUpperCase() + e.slice(1)
              , n = Qe.length;
            while (n--)
                if ((e = Qe[n] + t)in Je)
                    return e
        }(e) || e)
    }
    var et = /^(none|table(?!-c[ea]).+)/
      , tt = {
        position: "absolute",
        visibility: "hidden",
        display: "block"
    }
      , nt = {
        letterSpacing: "0",
        fontWeight: "400"
    };
    function rt(e, t, n) {
        var r = Y.exec(t);
        return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
    }
    function it(e, t, n, r, i, o) {
        var a = "width" === t ? 1 : 0
          , s = 0
          , u = 0
          , l = 0;
        if (n === (r ? "border" : "content"))
            return 0;
        for (; a < 4; a += 2)
            "margin" === n && (l += ce.css(e, n + Q[a], !0, i)),
            r ? ("content" === n && (u -= ce.css(e, "padding" + Q[a], !0, i)),
            "margin" !== n && (u -= ce.css(e, "border" + Q[a] + "Width", !0, i))) : (u += ce.css(e, "padding" + Q[a], !0, i),
            "padding" !== n ? u += ce.css(e, "border" + Q[a] + "Width", !0, i) : s += ce.css(e, "border" + Q[a] + "Width", !0, i));
        return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0),
        u + l
    }
    function ot(e, t, n) {
        var r = Xe(e)
          , i = (!le.boxSizingReliable() || n) && "border-box" === ce.css(e, "boxSizing", !1, r)
          , o = i
          , a = Ge(e, t, r)
          , s = "offset" + t[0].toUpperCase() + t.slice(1);
        if (_e.test(a)) {
            if (!n)
                return a;
            a = "auto"
        }
        return (!le.boxSizingReliable() && i || !le.reliableTrDimensions() && fe(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === ce.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === ce.css(e, "boxSizing", !1, r),
        (o = s in e) && (a = e[s])),
        (a = parseFloat(a) || 0) + it(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
    }
    function at(e, t, n, r, i) {
        return new at.prototype.init(e,t,n,r,i)
    }
    ce.extend({
        cssHooks: {
            opacity: {
                get: function(e, t) {
                    if (t) {
                        var n = Ge(e, "opacity");
                        return "" === n ? "1" : n
                    }
                }
            }
        },
        cssNumber: {
            animationIterationCount: !0,
            aspectRatio: !0,
            borderImageSlice: !0,
            columnCount: !0,
            flexGrow: !0,
            flexShrink: !0,
            fontWeight: !0,
            gridArea: !0,
            gridColumn: !0,
            gridColumnEnd: !0,
            gridColumnStart: !0,
            gridRow: !0,
            gridRowEnd: !0,
            gridRowStart: !0,
            lineHeight: !0,
            opacity: !0,
            order: !0,
            orphans: !0,
            scale: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0,
            fillOpacity: !0,
            floodOpacity: !0,
            stopOpacity: !0,
            strokeMiterlimit: !0,
            strokeOpacity: !0
        },
        cssProps: {},
        style: function(e, t, n, r) {
            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                var i, o, a, s = F(t), u = ze.test(t), l = e.style;
                if (u || (t = Ze(s)),
                a = ce.cssHooks[t] || ce.cssHooks[s],
                void 0 === n)
                    return a && "get"in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
                "string" === (o = typeof n) && (i = Y.exec(n)) && i[1] && (n = te(e, t, i),
                o = "number"),
                null != n && n == n && ("number" !== o || u || (n += i && i[3] || (ce.cssNumber[s] ? "" : "px")),
                le.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"),
                a && "set"in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n))
            }
        },
        css: function(e, t, n, r) {
            var i, o, a, s = F(t);
            return ze.test(t) || (t = Ze(s)),
            (a = ce.cssHooks[t] || ce.cssHooks[s]) && "get"in a && (i = a.get(e, !0, n)),
            void 0 === i && (i = Ge(e, t, r)),
            "normal" === i && t in nt && (i = nt[t]),
            "" === n || n ? (o = parseFloat(i),
            !0 === n || isFinite(o) ? o || 0 : i) : i
        }
    }),
    ce.each(["height", "width"], function(e, u) {
        ce.cssHooks[u] = {
            get: function(e, t, n) {
                if (t)
                    return !et.test(ce.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? ot(e, u, n) : Ue(e, tt, function() {
                        return ot(e, u, n)
                    })
            },
            set: function(e, t, n) {
                var r, i = Xe(e), o = !le.scrollboxSize() && "absolute" === i.position, a = (o || n) && "border-box" === ce.css(e, "boxSizing", !1, i), s = n ? it(e, u, n, a, i) : 0;
                return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - it(e, u, "border", !1, i) - .5)),
                s && (r = Y.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t,
                t = ce.css(e, u)),
                rt(0, t, s)
            }
        }
    }),
    ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function(e, t) {
        if (t)
            return (parseFloat(Ge(e, "marginLeft")) || e.getBoundingClientRect().left - Ue(e, {
                marginLeft: 0
            }, function() {
                return e.getBoundingClientRect().left
            })) + "px"
    }),
    ce.each({
        margin: "",
        padding: "",
        border: "Width"
    }, function(i, o) {
        ce.cssHooks[i + o] = {
            expand: function(e) {
                for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++)
                    n[i + Q[t] + o] = r[t] || r[t - 2] || r[0];
                return n
            }
        },
        "margin" !== i && (ce.cssHooks[i + o].set = rt)
    }),
    ce.fn.extend({
        css: function(e, t) {
            return M(this, function(e, t, n) {
                var r, i, o = {}, a = 0;
                if (Array.isArray(t)) {
                    for (r = Xe(e),
                    i = t.length; a < i; a++)
                        o[t[a]] = ce.css(e, t[a], !1, r);
                    return o
                }
                return void 0 !== n ? ce.style(e, t, n) : ce.css(e, t)
            }, e, t, 1 < arguments.length)
        }
    }),
    ((ce.Tween = at).prototype = {
        constructor: at,
        init: function(e, t, n, r, i, o) {
            this.elem = e,
            this.prop = n,
            this.easing = i || ce.easing._default,
            this.options = t,
            this.start = this.now = this.cur(),
            this.end = r,
            this.unit = o || (ce.cssNumber[n] ? "" : "px")
        },
        cur: function() {
            var e = at.propHooks[this.prop];
            return e && e.get ? e.get(this) : at.propHooks._default.get(this)
        },
        run: function(e) {
            var t, n = at.propHooks[this.prop];
            return this.options.duration ? this.pos = t = ce.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e,
            this.now = (this.end - this.start) * t + this.start,
            this.options.step && this.options.step.call(this.elem, this.now, this),
            n && n.set ? n.set(this) : at.propHooks._default.set(this),
            this
        }
    }).init.prototype = at.prototype,
    (at.propHooks = {
        _default: {
            get: function(e) {
                var t;
                return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = ce.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
            },
            set: function(e) {
                ce.fx.step[e.prop] ? ce.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !ce.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)] ? e.elem[e.prop] = e.now : ce.style(e.elem, e.prop, e.now + e.unit)
            }
        }
    }).scrollTop = at.propHooks.scrollLeft = {
        set: function(e) {
            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
        }
    },
    ce.easing = {
        linear: function(e) {
            return e
        },
        swing: function(e) {
            return .5 - Math.cos(e * Math.PI) / 2
        },
        _default: "swing"
    },
    ce.fx = at.prototype.init,
    ce.fx.step = {};
    var st, ut, lt, ct, ft = /^(?:toggle|show|hide)$/, pt = /queueHooks$/;
    function dt() {
        ut && (!1 === C.hidden && ie.requestAnimationFrame ? ie.requestAnimationFrame(dt) : ie.setTimeout(dt, ce.fx.interval),
        ce.fx.tick())
    }
    function ht() {
        return ie.setTimeout(function() {
            st = void 0
        }),
        st = Date.now()
    }
    function gt(e, t) {
        var n, r = 0, i = {
            height: e
        };
        for (t = t ? 1 : 0; r < 4; r += 2 - t)
            i["margin" + (n = Q[r])] = i["padding" + n] = e;
        return t && (i.opacity = i.width = e),
        i
    }
    function vt(e, t, n) {
        for (var r, i = (yt.tweeners[t] || []).concat(yt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
            if (r = i[o].call(n, t, e))
                return r
    }
    function yt(o, e, t) {
        var n, a, r = 0, i = yt.prefilters.length, s = ce.Deferred().always(function() {
            delete u.elem
        }), u = function() {
            if (a)
                return !1;
            for (var e = st || ht(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++)
                l.tweens[r].run(n);
            return s.notifyWith(o, [l, n, t]),
            n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]),
            s.resolveWith(o, [l]),
            !1)
        }, l = s.promise({
            elem: o,
            props: ce.extend({}, e),
            opts: ce.extend(!0, {
                specialEasing: {},
                easing: ce.easing._default
            }, t),
            originalProperties: e,
            originalOptions: t,
            startTime: st || ht(),
            duration: t.duration,
            tweens: [],
            createTween: function(e, t) {
                var n = ce.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing);
                return l.tweens.push(n),
                n
            },
            stop: function(e) {
                var t = 0
                  , n = e ? l.tweens.length : 0;
                if (a)
                    return this;
                for (a = !0; t < n; t++)
                    l.tweens[t].run(1);
                return e ? (s.notifyWith(o, [l, 1, 0]),
                s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]),
                this
            }
        }), c = l.props;
        for (!function(e, t) {
            var n, r, i, o, a;
            for (n in e)
                if (i = t[r = F(n)],
                o = e[n],
                Array.isArray(o) && (i = o[1],
                o = e[n] = o[0]),
                n !== r && (e[r] = o,
                delete e[n]),
                (a = ce.cssHooks[r]) && "expand"in a)
                    for (n in o = a.expand(o),
                    delete e[r],
                    o)
                        n in e || (e[n] = o[n],
                        t[n] = i);
                else
                    t[r] = i
        }(c, l.opts.specialEasing); r < i; r++)
            if (n = yt.prefilters[r].call(l, o, c, l.opts))
                return v(n.stop) && (ce._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)),
                n;
        return ce.map(c, vt, l),
        v(l.opts.start) && l.opts.start.call(o, l),
        l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always),
        ce.fx.timer(ce.extend(u, {
            elem: o,
            anim: l,
            queue: l.opts.queue
        })),
        l
    }
    ce.Animation = ce.extend(yt, {
        tweeners: {
            "*": [function(e, t) {
                var n = this.createTween(e, t);
                return te(n.elem, e, Y.exec(t), n),
                n
            }
            ]
        },
        tweener: function(e, t) {
            v(e) ? (t = e,
            e = ["*"]) : e = e.match(D);
            for (var n, r = 0, i = e.length; r < i; r++)
                n = e[r],
                yt.tweeners[n] = yt.tweeners[n] || [],
                yt.tweeners[n].unshift(t)
        },
        prefilters: [function(e, t, n) {
            var r, i, o, a, s, u, l, c, f = "width"in t || "height"in t, p = this, d = {}, h = e.style, g = e.nodeType && ee(e), v = _.get(e, "fxshow");
            for (r in n.queue || (null == (a = ce._queueHooks(e, "fx")).unqueued && (a.unqueued = 0,
            s = a.empty.fire,
            a.empty.fire = function() {
                a.unqueued || s()
            }
            ),
            a.unqueued++,
            p.always(function() {
                p.always(function() {
                    a.unqueued--,
                    ce.queue(e, "fx").length || a.empty.fire()
                })
            })),
            t)
                if (i = t[r],
                ft.test(i)) {
                    if (delete t[r],
                    o = o || "toggle" === i,
                    i === (g ? "hide" : "show")) {
                        if ("show" !== i || !v || void 0 === v[r])
                            continue;
                        g = !0
                    }
                    d[r] = v && v[r] || ce.style(e, r)
                }
            if ((u = !ce.isEmptyObject(t)) || !ce.isEmptyObject(d))
                for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY],
                null == (l = v && v.display) && (l = _.get(e, "display")),
                "none" === (c = ce.css(e, "display")) && (l ? c = l : (re([e], !0),
                l = e.style.display || l,
                c = ce.css(e, "display"),
                re([e]))),
                ("inline" === c || "inline-block" === c && null != l) && "none" === ce.css(e, "float") && (u || (p.done(function() {
                    h.display = l
                }),
                null == l && (c = h.display,
                l = "none" === c ? "" : c)),
                h.display = "inline-block")),
                n.overflow && (h.overflow = "hidden",
                p.always(function() {
                    h.overflow = n.overflow[0],
                    h.overflowX = n.overflow[1],
                    h.overflowY = n.overflow[2]
                })),
                u = !1,
                d)
                    u || (v ? "hidden"in v && (g = v.hidden) : v = _.access(e, "fxshow", {
                        display: l
                    }),
                    o && (v.hidden = !g),
                    g && re([e], !0),
                    p.done(function() {
                        for (r in g || re([e]),
                        _.remove(e, "fxshow"),
                        d)
                            ce.style(e, r, d[r])
                    })),
                    u = vt(g ? v[r] : 0, r, p),
                    r in v || (v[r] = u.start,
                    g && (u.end = u.start,
                    u.start = 0))
        }
        ],
        prefilter: function(e, t) {
            t ? yt.prefilters.unshift(e) : yt.prefilters.push(e)
        }
    }),
    ce.speed = function(e, t, n) {
        var r = e && "object" == typeof e ? ce.extend({}, e) : {
            complete: n || !n && t || v(e) && e,
            duration: e,
            easing: n && t || t && !v(t) && t
        };
        return ce.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in ce.fx.speeds ? r.duration = ce.fx.speeds[r.duration] : r.duration = ce.fx.speeds._default),
        null != r.queue && !0 !== r.queue || (r.queue = "fx"),
        r.old = r.complete,
        r.complete = function() {
            v(r.old) && r.old.call(this),
            r.queue && ce.dequeue(this, r.queue)
        }
        ,
        r
    }
    ,
    ce.fn.extend({
        fadeTo: function(e, t, n, r) {
            return this.filter(ee).css("opacity", 0).show().end().animate({
                opacity: t
            }, e, n, r)
        },
        animate: function(t, e, n, r) {
            var i = ce.isEmptyObject(t)
              , o = ce.speed(e, n, r)
              , a = function() {
                var e = yt(this, ce.extend({}, t), o);
                (i || _.get(this, "finish")) && e.stop(!0)
            };
            return a.finish = a,
            i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
        },
        stop: function(i, e, o) {
            var a = function(e) {
                var t = e.stop;
                delete e.stop,
                t(o)
            };
            return "string" != typeof i && (o = e,
            e = i,
            i = void 0),
            e && this.queue(i || "fx", []),
            this.each(function() {
                var e = !0
                  , t = null != i && i + "queueHooks"
                  , n = ce.timers
                  , r = _.get(this);
                if (t)
                    r[t] && r[t].stop && a(r[t]);
                else
                    for (t in r)
                        r[t] && r[t].stop && pt.test(t) && a(r[t]);
                for (t = n.length; t--; )
                    n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o),
                    e = !1,
                    n.splice(t, 1));
                !e && o || ce.dequeue(this, i)
            })
        },
        finish: function(a) {
            return !1 !== a && (a = a || "fx"),
            this.each(function() {
                var e, t = _.get(this), n = t[a + "queue"], r = t[a + "queueHooks"], i = ce.timers, o = n ? n.length : 0;
                for (t.finish = !0,
                ce.queue(this, a, []),
                r && r.stop && r.stop.call(this, !0),
                e = i.length; e--; )
                    i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0),
                    i.splice(e, 1));
                for (e = 0; e < o; e++)
                    n[e] && n[e].finish && n[e].finish.call(this);
                delete t.finish
            })
        }
    }),
    ce.each(["toggle", "show", "hide"], function(e, r) {
        var i = ce.fn[r];
        ce.fn[r] = function(e, t, n) {
            return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(gt(r, !0), e, t, n)
        }
    }),
    ce.each({
        slideDown: gt("show"),
        slideUp: gt("hide"),
        slideToggle: gt("toggle"),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function(e, r) {
        ce.fn[e] = function(e, t, n) {
            return this.animate(r, e, t, n)
        }
    }),
    ce.timers = [],
    ce.fx.tick = function() {
        var e, t = 0, n = ce.timers;
        for (st = Date.now(); t < n.length; t++)
            (e = n[t])() || n[t] !== e || n.splice(t--, 1);
        n.length || ce.fx.stop(),
        st = void 0
    }
    ,
    ce.fx.timer = function(e) {
        ce.timers.push(e),
        ce.fx.start()
    }
    ,
    ce.fx.interval = 13,
    ce.fx.start = function() {
        ut || (ut = !0,
        dt())
    }
    ,
    ce.fx.stop = function() {
        ut = null
    }
    ,
    ce.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    },
    ce.fn.delay = function(r, e) {
        return r = ce.fx && ce.fx.speeds[r] || r,
        e = e || "fx",
        this.queue(e, function(e, t) {
            var n = ie.setTimeout(e, r);
            t.stop = function() {
                ie.clearTimeout(n)
            }
        })
    }
    ,
    lt = C.createElement("input"),
    ct = C.createElement("select").appendChild(C.createElement("option")),
    lt.type = "checkbox",
    le.checkOn = "" !== lt.value,
    le.optSelected = ct.selected,
    (lt = C.createElement("input")).value = "t",
    lt.type = "radio",
    le.radioValue = "t" === lt.value;
    var mt, xt = ce.expr.attrHandle;
    ce.fn.extend({
        attr: function(e, t) {
            return M(this, ce.attr, e, t, 1 < arguments.length)
        },
        removeAttr: function(e) {
            return this.each(function() {
                ce.removeAttr(this, e)
            })
        }
    }),
    ce.extend({
        attr: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
                return "undefined" == typeof e.getAttribute ? ce.prop(e, t, n) : (1 === o && ce.isXMLDoc(e) || (i = ce.attrHooks[t.toLowerCase()] || (ce.expr.match.bool.test(t) ? mt : void 0)),
                void 0 !== n ? null === n ? void ce.removeAttr(e, t) : i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""),
                n) : i && "get"in i && null !== (r = i.get(e, t)) ? r : null == (r = ce.find.attr(e, t)) ? void 0 : r)
        },
        attrHooks: {
            type: {
                set: function(e, t) {
                    if (!le.radioValue && "radio" === t && fe(e, "input")) {
                        var n = e.value;
                        return e.setAttribute("type", t),
                        n && (e.value = n),
                        t
                    }
                }
            }
        },
        removeAttr: function(e, t) {
            var n, r = 0, i = t && t.match(D);
            if (i && 1 === e.nodeType)
                while (n = i[r++])
                    e.removeAttribute(n)
        }
    }),
    mt = {
        set: function(e, t, n) {
            return !1 === t ? ce.removeAttr(e, n) : e.setAttribute(n, n),
            n
        }
    },
    ce.each(ce.expr.match.bool.source.match(/\w+/g), function(e, t) {
        var a = xt[t] || ce.find.attr;
        xt[t] = function(e, t, n) {
            var r, i, o = t.toLowerCase();
            return n || (i = xt[o],
            xt[o] = r,
            r = null != a(e, t, n) ? o : null,
            xt[o] = i),
            r
        }
    });
    var bt = /^(?:input|select|textarea|button)$/i
      , wt = /^(?:a|area)$/i;
    function Tt(e) {
        return (e.match(D) || []).join(" ")
    }
    function Ct(e) {
        return e.getAttribute && e.getAttribute("class") || ""
    }
    function kt(e) {
        return Array.isArray(e) ? e : "string" == typeof e && e.match(D) || []
    }
    ce.fn.extend({
        prop: function(e, t) {
            return M(this, ce.prop, e, t, 1 < arguments.length)
        },
        removeProp: function(e) {
            return this.each(function() {
                delete this[ce.propFix[e] || e]
            })
        }
    }),
    ce.extend({
        prop: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
                return 1 === o && ce.isXMLDoc(e) || (t = ce.propFix[t] || t,
                i = ce.propHooks[t]),
                void 0 !== n ? i && "set"in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get"in i && null !== (r = i.get(e, t)) ? r : e[t]
        },
        propHooks: {
            tabIndex: {
                get: function(e) {
                    var t = ce.find.attr(e, "tabindex");
                    return t ? parseInt(t, 10) : bt.test(e.nodeName) || wt.test(e.nodeName) && e.href ? 0 : -1
                }
            }
        },
        propFix: {
            "for": "htmlFor",
            "class": "className"
        }
    }),
    le.optSelected || (ce.propHooks.selected = {
        get: function(e) {
            var t = e.parentNode;
            return t && t.parentNode && t.parentNode.selectedIndex,
            null
        },
        set: function(e) {
            var t = e.parentNode;
            t && (t.selectedIndex,
            t.parentNode && t.parentNode.selectedIndex)
        }
    }),
    ce.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        ce.propFix[this.toLowerCase()] = this
    }),
    ce.fn.extend({
        addClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).addClass(t.call(this, e, Ct(this)))
            }) : (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this),
                n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++)
                        i = e[o],
                        n.indexOf(" " + i + " ") < 0 && (n += i + " ");
                    a = Tt(n),
                    r !== a && this.setAttribute("class", a)
                }
            }) : this
        },
        removeClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).removeClass(t.call(this, e, Ct(this)))
            }) : arguments.length ? (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this),
                n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++) {
                        i = e[o];
                        while (-1 < n.indexOf(" " + i + " "))
                            n = n.replace(" " + i + " ", " ")
                    }
                    a = Tt(n),
                    r !== a && this.setAttribute("class", a)
                }
            }) : this : this.attr("class", "")
        },
        toggleClass: function(t, n) {
            var e, r, i, o, a = typeof t, s = "string" === a || Array.isArray(t);
            return v(t) ? this.each(function(e) {
                ce(this).toggleClass(t.call(this, e, Ct(this), n), n)
            }) : "boolean" == typeof n && s ? n ? this.addClass(t) : this.removeClass(t) : (e = kt(t),
            this.each(function() {
                if (s)
                    for (o = ce(this),
                    i = 0; i < e.length; i++)
                        r = e[i],
                        o.hasClass(r) ? o.removeClass(r) : o.addClass(r);
                else
                    void 0 !== t && "boolean" !== a || ((r = Ct(this)) && _.set(this, "__className__", r),
                    this.setAttribute && this.setAttribute("class", r || !1 === t ? "" : _.get(this, "__className__") || ""))
            }))
        },
        hasClass: function(e) {
            var t, n, r = 0;
            t = " " + e + " ";
            while (n = this[r++])
                if (1 === n.nodeType && -1 < (" " + Tt(Ct(n)) + " ").indexOf(t))
                    return !0;
            return !1
        }
    });
    var St = /\r/g;
    ce.fn.extend({
        val: function(n) {
            var r, e, i, t = this[0];
            return arguments.length ? (i = v(n),
            this.each(function(e) {
                var t;
                1 === this.nodeType && (null == (t = i ? n.call(this, e, ce(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = ce.map(t, function(e) {
                    return null == e ? "" : e + ""
                })),
                (r = ce.valHooks[this.type] || ce.valHooks[this.nodeName.toLowerCase()]) && "set"in r && void 0 !== r.set(this, t, "value") || (this.value = t))
            })) : t ? (r = ce.valHooks[t.type] || ce.valHooks[t.nodeName.toLowerCase()]) && "get"in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof (e = t.value) ? e.replace(St, "") : null == e ? "" : e : void 0
        }
    }),
    ce.extend({
        valHooks: {
            option: {
                get: function(e) {
                    var t = ce.find.attr(e, "value");
                    return null != t ? t : Tt(ce.text(e))
                }
            },
            select: {
                get: function(e) {
                    var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], u = a ? o + 1 : i.length;
                    for (r = o < 0 ? u : a ? o : 0; r < u; r++)
                        if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !fe(n.parentNode, "optgroup"))) {
                            if (t = ce(n).val(),
                            a)
                                return t;
                            s.push(t)
                        }
                    return s
                },
                set: function(e, t) {
                    var n, r, i = e.options, o = ce.makeArray(t), a = i.length;
                    while (a--)
                        ((r = i[a]).selected = -1 < ce.inArray(ce.valHooks.option.get(r), o)) && (n = !0);
                    return n || (e.selectedIndex = -1),
                    o
                }
            }
        }
    }),
    ce.each(["radio", "checkbox"], function() {
        ce.valHooks[this] = {
            set: function(e, t) {
                if (Array.isArray(t))
                    return e.checked = -1 < ce.inArray(ce(e).val(), t)
            }
        },
        le.checkOn || (ce.valHooks[this].get = function(e) {
            return null === e.getAttribute("value") ? "on" : e.value
        }
        )
    });
    var Et = ie.location
      , jt = {
        guid: Date.now()
    }
      , At = /\?/;
    ce.parseXML = function(e) {
        var t, n;
        if (!e || "string" != typeof e)
            return null;
        try {
            t = (new ie.DOMParser).parseFromString(e, "text/xml")
        } catch (e) {}
        return n = t && t.getElementsByTagName("parsererror")[0],
        t && !n || ce.error("Invalid XML: " + (n ? ce.map(n.childNodes, function(e) {
            return e.textContent
        }).join("\n") : e)),
        t
    }
    ;
    var Dt = /^(?:focusinfocus|focusoutblur)$/
      , Nt = function(e) {
        e.stopPropagation()
    };
    ce.extend(ce.event, {
        trigger: function(e, t, n, r) {
            var i, o, a, s, u, l, c, f, p = [n || C], d = ue.call(e, "type") ? e.type : e, h = ue.call(e, "namespace") ? e.namespace.split(".") : [];
            if (o = f = a = n = n || C,
            3 !== n.nodeType && 8 !== n.nodeType && !Dt.test(d + ce.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(),
            h.sort()),
            u = d.indexOf(":") < 0 && "on" + d,
            (e = e[ce.expando] ? e : new ce.Event(d,"object" == typeof e && e)).isTrigger = r ? 2 : 3,
            e.namespace = h.join("."),
            e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null,
            e.result = void 0,
            e.target || (e.target = n),
            t = null == t ? [e] : ce.makeArray(t, [e]),
            c = ce.event.special[d] || {},
            r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
                if (!r && !c.noBubble && !y(n)) {
                    for (s = c.delegateType || d,
                    Dt.test(s + d) || (o = o.parentNode); o; o = o.parentNode)
                        p.push(o),
                        a = o;
                    a === (n.ownerDocument || C) && p.push(a.defaultView || a.parentWindow || ie)
                }
                i = 0;
                while ((o = p[i++]) && !e.isPropagationStopped())
                    f = o,
                    e.type = 1 < i ? s : c.bindType || d,
                    (l = (_.get(o, "events") || Object.create(null))[e.type] && _.get(o, "handle")) && l.apply(o, t),
                    (l = u && o[u]) && l.apply && $(o) && (e.result = l.apply(o, t),
                    !1 === e.result && e.preventDefault());
                return e.type = d,
                r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !$(n) || u && v(n[d]) && !y(n) && ((a = n[u]) && (n[u] = null),
                ce.event.triggered = d,
                e.isPropagationStopped() && f.addEventListener(d, Nt),
                n[d](),
                e.isPropagationStopped() && f.removeEventListener(d, Nt),
                ce.event.triggered = void 0,
                a && (n[u] = a)),
                e.result
            }
        },
        simulate: function(e, t, n) {
            var r = ce.extend(new ce.Event, n, {
                type: e,
                isSimulated: !0
            });
            ce.event.trigger(r, null, t)
        }
    }),
    ce.fn.extend({
        trigger: function(e, t) {
            return this.each(function() {
                ce.event.trigger(e, t, this)
            })
        },
        triggerHandler: function(e, t) {
            var n = this[0];
            if (n)
                return ce.event.trigger(e, t, n, !0)
        }
    });
    var qt = /\[\]$/
      , Lt = /\r?\n/g
      , Ht = /^(?:submit|button|image|reset|file)$/i
      , Ot = /^(?:input|select|textarea|keygen)/i;
    function Pt(n, e, r, i) {
        var t;
        if (Array.isArray(e))
            ce.each(e, function(e, t) {
                r || qt.test(n) ? i(n, t) : Pt(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i)
            });
        else if (r || "object" !== x(e))
            i(n, e);
        else
            for (t in e)
                Pt(n + "[" + t + "]", e[t], r, i)
    }
    ce.param = function(e, t) {
        var n, r = [], i = function(e, t) {
            var n = v(t) ? t() : t;
            r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
        };
        if (null == e)
            return "";
        if (Array.isArray(e) || e.jquery && !ce.isPlainObject(e))
            ce.each(e, function() {
                i(this.name, this.value)
            });
        else
            for (n in e)
                Pt(n, e[n], t, i);
        return r.join("&")
    }
    ,
    ce.fn.extend({
        serialize: function() {
            return ce.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                var e = ce.prop(this, "elements");
                return e ? ce.makeArray(e) : this
            }).filter(function() {
                var e = this.type;
                return this.name && !ce(this).is(":disabled") && Ot.test(this.nodeName) && !Ht.test(e) && (this.checked || !we.test(e))
            }).map(function(e, t) {
                var n = ce(this).val();
                return null == n ? null : Array.isArray(n) ? ce.map(n, function(e) {
                    return {
                        name: t.name,
                        value: e.replace(Lt, "\r\n")
                    }
                }) : {
                    name: t.name,
                    value: n.replace(Lt, "\r\n")
                }
            }).get()
        }
    });
    var Mt = /%20/g
      , Rt = /#.*$/
      , It = /([?&])_=[^&]*/
      , Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm
      , Ft = /^(?:GET|HEAD)$/
      , $t = /^\/\//
      , Bt = {}
      , _t = {}
      , zt = "*/".concat("*")
      , Xt = C.createElement("a");
    function Ut(o) {
        return function(e, t) {
            "string" != typeof e && (t = e,
            e = "*");
            var n, r = 0, i = e.toLowerCase().match(D) || [];
            if (v(t))
                while (n = i[r++])
                    "+" === n[0] ? (n = n.slice(1) || "*",
                    (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
        }
    }
    function Vt(t, i, o, a) {
        var s = {}
          , u = t === _t;
        function l(e) {
            var r;
            return s[e] = !0,
            ce.each(t[e] || [], function(e, t) {
                var n = t(i, o, a);
                return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n),
                l(n),
                !1)
            }),
            r
        }
        return l(i.dataTypes[0]) || !s["*"] && l("*")
    }
    function Gt(e, t) {
        var n, r, i = ce.ajaxSettings.flatOptions || {};
        for (n in t)
            void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
        return r && ce.extend(!0, e, r),
        e
    }
    Xt.href = Et.href,
    ce.extend({
        active: 0,
        lastModified: {},
        etag: {},
        ajaxSettings: {
            url: Et.href,
            type: "GET",
            isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
                "*": zt,
                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": ce.parseXML
            },
            flatOptions: {
                url: !0,
                context: !0
            }
        },
        ajaxSetup: function(e, t) {
            return t ? Gt(Gt(e, ce.ajaxSettings), t) : Gt(ce.ajaxSettings, e)
        },
        ajaxPrefilter: Ut(Bt),
        ajaxTransport: Ut(_t),
        ajax: function(e, t) {
            "object" == typeof e && (t = e,
            e = void 0),
            t = t || {};
            var c, f, p, n, d, r, h, g, i, o, v = ce.ajaxSetup({}, t), y = v.context || v, m = v.context && (y.nodeType || y.jquery) ? ce(y) : ce.event, x = ce.Deferred(), b = ce.Callbacks("once memory"), w = v.statusCode || {}, a = {}, s = {}, u = "canceled", T = {
                readyState: 0,
                getResponseHeader: function(e) {
                    var t;
                    if (h) {
                        if (!n) {
                            n = {};
                            while (t = Wt.exec(p))
                                n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2])
                        }
                        t = n[e.toLowerCase() + " "]
                    }
                    return null == t ? null : t.join(", ")
                },
                getAllResponseHeaders: function() {
                    return h ? p : null
                },
                setRequestHeader: function(e, t) {
                    return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e,
                    a[e] = t),
                    this
                },
                overrideMimeType: function(e) {
                    return null == h && (v.mimeType = e),
                    this
                },
                statusCode: function(e) {
                    var t;
                    if (e)
                        if (h)
                            T.always(e[T.status]);
                        else
                            for (t in e)
                                w[t] = [w[t], e[t]];
                    return this
                },
                abort: function(e) {
                    var t = e || u;
                    return c && c.abort(t),
                    l(0, t),
                    this
                }
            };
            if (x.promise(T),
            v.url = ((e || v.url || Et.href) + "").replace($t, Et.protocol + "//"),
            v.type = t.method || t.type || v.method || v.type,
            v.dataTypes = (v.dataType || "*").toLowerCase().match(D) || [""],
            null == v.crossDomain) {
                r = C.createElement("a");
                try {
                    r.href = v.url,
                    r.href = r.href,
                    v.crossDomain = Xt.protocol + "//" + Xt.host != r.protocol + "//" + r.host
                } catch (e) {
                    v.crossDomain = !0
                }
            }
            if (v.data && v.processData && "string" != typeof v.data && (v.data = ce.param(v.data, v.traditional)),
            Vt(Bt, v, t, T),
            h)
                return T;
            for (i in (g = ce.event && v.global) && 0 == ce.active++ && ce.event.trigger("ajaxStart"),
            v.type = v.type.toUpperCase(),
            v.hasContent = !Ft.test(v.type),
            f = v.url.replace(Rt, ""),
            v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Mt, "+")) : (o = v.url.slice(f.length),
            v.data && (v.processData || "string" == typeof v.data) && (f += (At.test(f) ? "&" : "?") + v.data,
            delete v.data),
            !1 === v.cache && (f = f.replace(It, "$1"),
            o = (At.test(f) ? "&" : "?") + "_=" + jt.guid++ + o),
            v.url = f + o),
            v.ifModified && (ce.lastModified[f] && T.setRequestHeader("If-Modified-Since", ce.lastModified[f]),
            ce.etag[f] && T.setRequestHeader("If-None-Match", ce.etag[f])),
            (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType),
            T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + zt + "; q=0.01" : "") : v.accepts["*"]),
            v.headers)
                T.setRequestHeader(i, v.headers[i]);
            if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h))
                return T.abort();
            if (u = "abort",
            b.add(v.complete),
            T.done(v.success),
            T.fail(v.error),
            c = Vt(_t, v, t, T)) {
                if (T.readyState = 1,
                g && m.trigger("ajaxSend", [T, v]),
                h)
                    return T;
                v.async && 0 < v.timeout && (d = ie.setTimeout(function() {
                    T.abort("timeout")
                }, v.timeout));
                try {
                    h = !1,
                    c.send(a, l)
                } catch (e) {
                    if (h)
                        throw e;
                    l(-1, e)
                }
            } else
                l(-1, "No Transport");
            function l(e, t, n, r) {
                var i, o, a, s, u, l = t;
                h || (h = !0,
                d && ie.clearTimeout(d),
                c = void 0,
                p = r || "",
                T.readyState = 0 < e ? 4 : 0,
                i = 200 <= e && e < 300 || 304 === e,
                n && (s = function(e, t, n) {
                    var r, i, o, a, s = e.contents, u = e.dataTypes;
                    while ("*" === u[0])
                        u.shift(),
                        void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
                    if (r)
                        for (i in s)
                            if (s[i] && s[i].test(r)) {
                                u.unshift(i);
                                break
                            }
                    if (u[0]in n)
                        o = u[0];
                    else {
                        for (i in n) {
                            if (!u[0] || e.converters[i + " " + u[0]]) {
                                o = i;
                                break
                            }
                            a || (a = i)
                        }
                        o = o || a
                    }
                    if (o)
                        return o !== u[0] && u.unshift(o),
                        n[o]
                }(v, T, n)),
                !i && -1 < ce.inArray("script", v.dataTypes) && ce.inArray("json", v.dataTypes) < 0 && (v.converters["text script"] = function() {}
                ),
                s = function(e, t, n, r) {
                    var i, o, a, s, u, l = {}, c = e.dataTypes.slice();
                    if (c[1])
                        for (a in e.converters)
                            l[a.toLowerCase()] = e.converters[a];
                    o = c.shift();
                    while (o)
                        if (e.responseFields[o] && (n[e.responseFields[o]] = t),
                        !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)),
                        u = o,
                        o = c.shift())
                            if ("*" === o)
                                o = u;
                            else if ("*" !== u && u !== o) {
                                if (!(a = l[u + " " + o] || l["* " + o]))
                                    for (i in l)
                                        if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
                                            !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0],
                                            c.unshift(s[1]));
                                            break
                                        }
                                if (!0 !== a)
                                    if (a && e["throws"])
                                        t = a(t);
                                    else
                                        try {
                                            t = a(t)
                                        } catch (e) {
                                            return {
                                                state: "parsererror",
                                                error: a ? e : "No conversion from " + u + " to " + o
                                            }
                                        }
                            }
                    return {
                        state: "success",
                        data: t
                    }
                }(v, s, T, i),
                i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (ce.lastModified[f] = u),
                (u = T.getResponseHeader("etag")) && (ce.etag[f] = u)),
                204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state,
                o = s.data,
                i = !(a = s.error))) : (a = l,
                !e && l || (l = "error",
                e < 0 && (e = 0))),
                T.status = e,
                T.statusText = (t || l) + "",
                i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]),
                T.statusCode(w),
                w = void 0,
                g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]),
                b.fireWith(y, [T, l]),
                g && (m.trigger("ajaxComplete", [T, v]),
                --ce.active || ce.event.trigger("ajaxStop")))
            }
            return T
        },
        getJSON: function(e, t, n) {
            return ce.get(e, t, n, "json")
        },
        getScript: function(e, t) {
            return ce.get(e, void 0, t, "script")
        }
    }),
    ce.each(["get", "post"], function(e, i) {
        ce[i] = function(e, t, n, r) {
            return v(t) && (r = r || n,
            n = t,
            t = void 0),
            ce.ajax(ce.extend({
                url: e,
                type: i,
                dataType: r,
                data: t,
                success: n
            }, ce.isPlainObject(e) && e))
        }
    }),
    ce.ajaxPrefilter(function(e) {
        var t;
        for (t in e.headers)
            "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
    }),
    ce._evalUrl = function(e, t, n) {
        return ce.ajax({
            url: e,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            converters: {
                "text script": function() {}
            },
            dataFilter: function(e) {
                ce.globalEval(e, t, n)
            }
        })
    }
    ,
    ce.fn.extend({
        wrapAll: function(e) {
            var t;
            return this[0] && (v(e) && (e = e.call(this[0])),
            t = ce(e, this[0].ownerDocument).eq(0).clone(!0),
            this[0].parentNode && t.insertBefore(this[0]),
            t.map(function() {
                var e = this;
                while (e.firstElementChild)
                    e = e.firstElementChild;
                return e
            }).append(this)),
            this
        },
        wrapInner: function(n) {
            return v(n) ? this.each(function(e) {
                ce(this).wrapInner(n.call(this, e))
            }) : this.each(function() {
                var e = ce(this)
                  , t = e.contents();
                t.length ? t.wrapAll(n) : e.append(n)
            })
        },
        wrap: function(t) {
            var n = v(t);
            return this.each(function(e) {
                ce(this).wrapAll(n ? t.call(this, e) : t)
            })
        },
        unwrap: function(e) {
            return this.parent(e).not("body").each(function() {
                ce(this).replaceWith(this.childNodes)
            }),
            this
        }
    }),
    ce.expr.pseudos.hidden = function(e) {
        return !ce.expr.pseudos.visible(e)
    }
    ,
    ce.expr.pseudos.visible = function(e) {
        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
    }
    ,
    ce.ajaxSettings.xhr = function() {
        try {
            return new ie.XMLHttpRequest
        } catch (e) {}
    }
    ;
    var Yt = {
        0: 200,
        1223: 204
    }
      , Qt = ce.ajaxSettings.xhr();
    le.cors = !!Qt && "withCredentials"in Qt,
    le.ajax = Qt = !!Qt,
    ce.ajaxTransport(function(i) {
        var o, a;
        if (le.cors || Qt && !i.crossDomain)
            return {
                send: function(e, t) {
                    var n, r = i.xhr();
                    if (r.open(i.type, i.url, i.async, i.username, i.password),
                    i.xhrFields)
                        for (n in i.xhrFields)
                            r[n] = i.xhrFields[n];
                    for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType),
                    i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"),
                    e)
                        r.setRequestHeader(n, e[n]);
                    o = function(e) {
                        return function() {
                            o && (o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null,
                            "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(Yt[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? {
                                binary: r.response
                            } : {
                                text: r.responseText
                            }, r.getAllResponseHeaders()))
                        }
                    }
                    ,
                    r.onload = o(),
                    a = r.onerror = r.ontimeout = o("error"),
                    void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function() {
                        4 === r.readyState && ie.setTimeout(function() {
                            o && a()
                        })
                    }
                    ,
                    o = o("abort");
                    try {
                        r.send(i.hasContent && i.data || null)
                    } catch (e) {
                        if (o)
                            throw e
                    }
                },
                abort: function() {
                    o && o()
                }
            }
    }),
    ce.ajaxPrefilter(function(e) {
        e.crossDomain && (e.contents.script = !1)
    }),
    ce.ajaxSetup({
        accepts: {
            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
            script: /\b(?:java|ecma)script\b/
        },
        converters: {
            "text script": function(e) {
                return ce.globalEval(e),
                e
            }
        }
    }),
    ce.ajaxPrefilter("script", function(e) {
        void 0 === e.cache && (e.cache = !1),
        e.crossDomain && (e.type = "GET")
    }),
    ce.ajaxTransport("script", function(n) {
        var r, i;
        if (n.crossDomain || n.scriptAttrs)
            return {
                send: function(e, t) {
                    r = ce("<script>").attr(n.scriptAttrs || {}).prop({
                        charset: n.scriptCharset,
                        src: n.url
                    }).on("load error", i = function(e) {
                        r.remove(),
                        i = null,
                        e && t("error" === e.type ? 404 : 200, e.type)
                    }
                    ),
                    C.head.appendChild(r[0])
                },
                abort: function() {
                    i && i()
                }
            }
    });
    var Jt, Kt = [], Zt = /(=)\?(?=&|$)|\?\?/;
    ce.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
            var e = Kt.pop() || ce.expando + "_" + jt.guid++;
            return this[e] = !0,
            e
        }
    }),
    ce.ajaxPrefilter("json jsonp", function(e, t, n) {
        var r, i, o, a = !1 !== e.jsonp && (Zt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Zt.test(e.data) && "data");
        if (a || "jsonp" === e.dataTypes[0])
            return r = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback,
            a ? e[a] = e[a].replace(Zt, "$1" + r) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + r),
            e.converters["script json"] = function() {
                return o || ce.error(r + " was not called"),
                o[0]
            }
            ,
            e.dataTypes[0] = "json",
            i = ie[r],
            ie[r] = function() {
                o = arguments
            }
            ,
            n.always(function() {
                void 0 === i ? ce(ie).removeProp(r) : ie[r] = i,
                e[r] && (e.jsonpCallback = t.jsonpCallback,
                Kt.push(r)),
                o && v(i) && i(o[0]),
                o = i = void 0
            }),
            "script"
    }),
    le.createHTMLDocument = ((Jt = C.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>",
    2 === Jt.childNodes.length),
    ce.parseHTML = function(e, t, n) {
        return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t,
        t = !1),
        t || (le.createHTMLDocument ? ((r = (t = C.implementation.createHTMLDocument("")).createElement("base")).href = C.location.href,
        t.head.appendChild(r)) : t = C),
        o = !n && [],
        (i = w.exec(e)) ? [t.createElement(i[1])] : (i = Ae([e], t, o),
        o && o.length && ce(o).remove(),
        ce.merge([], i.childNodes)));
        var r, i, o
    }
    ,
    ce.fn.load = function(e, t, n) {
        var r, i, o, a = this, s = e.indexOf(" ");
        return -1 < s && (r = Tt(e.slice(s)),
        e = e.slice(0, s)),
        v(t) ? (n = t,
        t = void 0) : t && "object" == typeof t && (i = "POST"),
        0 < a.length && ce.ajax({
            url: e,
            type: i || "GET",
            dataType: "html",
            data: t
        }).done(function(e) {
            o = arguments,
            a.html(r ? ce("<div>").append(ce.parseHTML(e)).find(r) : e)
        }).always(n && function(e, t) {
            a.each(function() {
                n.apply(this, o || [e.responseText, t, e])
            })
        }
        ),
        this
    }
    ,
    ce.expr.pseudos.animated = function(t) {
        return ce.grep(ce.timers, function(e) {
            return t === e.elem
        }).length
    }
    ,
    ce.offset = {
        setOffset: function(e, t, n) {
            var r, i, o, a, s, u, l = ce.css(e, "position"), c = ce(e), f = {};
            "static" === l && (e.style.position = "relative"),
            s = c.offset(),
            o = ce.css(e, "top"),
            u = ce.css(e, "left"),
            ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top,
            i = r.left) : (a = parseFloat(o) || 0,
            i = parseFloat(u) || 0),
            v(t) && (t = t.call(e, n, ce.extend({}, s))),
            null != t.top && (f.top = t.top - s.top + a),
            null != t.left && (f.left = t.left - s.left + i),
            "using"in t ? t.using.call(e, f) : c.css(f)
        }
    },
    ce.fn.extend({
        offset: function(t) {
            if (arguments.length)
                return void 0 === t ? this : this.each(function(e) {
                    ce.offset.setOffset(this, t, e)
                });
            var e, n, r = this[0];
            return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(),
            n = r.ownerDocument.defaultView,
            {
                top: e.top + n.pageYOffset,
                left: e.left + n.pageXOffset
            }) : {
                top: 0,
                left: 0
            } : void 0
        },
        position: function() {
            if (this[0]) {
                var e, t, n, r = this[0], i = {
                    top: 0,
                    left: 0
                };
                if ("fixed" === ce.css(r, "position"))
                    t = r.getBoundingClientRect();
                else {
                    t = this.offset(),
                    n = r.ownerDocument,
                    e = r.offsetParent || n.documentElement;
                    while (e && (e === n.body || e === n.documentElement) && "static" === ce.css(e, "position"))
                        e = e.parentNode;
                    e && e !== r && 1 === e.nodeType && ((i = ce(e).offset()).top += ce.css(e, "borderTopWidth", !0),
                    i.left += ce.css(e, "borderLeftWidth", !0))
                }
                return {
                    top: t.top - i.top - ce.css(r, "marginTop", !0),
                    left: t.left - i.left - ce.css(r, "marginLeft", !0)
                }
            }
        },
        offsetParent: function() {
            return this.map(function() {
                var e = this.offsetParent;
                while (e && "static" === ce.css(e, "position"))
                    e = e.offsetParent;
                return e || J
            })
        }
    }),
    ce.each({
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset"
    }, function(t, i) {
        var o = "pageYOffset" === i;
        ce.fn[t] = function(e) {
            return M(this, function(e, t, n) {
                var r;
                if (y(e) ? r = e : 9 === e.nodeType && (r = e.defaultView),
                void 0 === n)
                    return r ? r[i] : e[t];
                r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n
            }, t, e, arguments.length)
        }
    }),
    ce.each(["top", "left"], function(e, n) {
        ce.cssHooks[n] = Ye(le.pixelPosition, function(e, t) {
            if (t)
                return t = Ge(e, n),
                _e.test(t) ? ce(e).position()[n] + "px" : t
        })
    }),
    ce.each({
        Height: "height",
        Width: "width"
    }, function(a, s) {
        ce.each({
            padding: "inner" + a,
            content: s,
            "": "outer" + a
        }, function(r, o) {
            ce.fn[o] = function(e, t) {
                var n = arguments.length && (r || "boolean" != typeof e)
                  , i = r || (!0 === e || !0 === t ? "margin" : "border");
                return M(this, function(e, t, n) {
                    var r;
                    return y(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement,
                    Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? ce.css(e, t, i) : ce.style(e, t, n, i)
                }, s, n ? e : void 0, n)
            }
        })
    }),
    ce.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
        ce.fn[t] = function(e) {
            return this.on(t, e)
        }
    }),
    ce.fn.extend({
        bind: function(e, t, n) {
            return this.on(e, null, t, n)
        },
        unbind: function(e, t) {
            return this.off(e, null, t)
        },
        delegate: function(e, t, n, r) {
            return this.on(t, e, n, r)
        },
        undelegate: function(e, t, n) {
            return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
        },
        hover: function(e, t) {
            return this.on("mouseenter", e).on("mouseleave", t || e)
        }
    }),
    ce.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(e, n) {
        ce.fn[n] = function(e, t) {
            return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
        }
    });
    var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
    ce.proxy = function(e, t) {
        var n, r, i;
        if ("string" == typeof t && (n = e[t],
        t = e,
        e = n),
        v(e))
            return r = ae.call(arguments, 2),
            (i = function() {
                return e.apply(t || this, r.concat(ae.call(arguments)))
            }
            ).guid = e.guid = e.guid || ce.guid++,
            i
    }
    ,
    ce.holdReady = function(e) {
        e ? ce.readyWait++ : ce.ready(!0)
    }
    ,
    ce.isArray = Array.isArray,
    ce.parseJSON = JSON.parse,
    ce.nodeName = fe,
    ce.isFunction = v,
    ce.isWindow = y,
    ce.camelCase = F,
    ce.type = x,
    ce.now = Date.now,
    ce.isNumeric = function(e) {
        var t = ce.type(e);
        return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
    }
    ,
    ce.trim = function(e) {
        return null == e ? "" : (e + "").replace(en, "$1")
    }
    ,
    "function" == typeof define && define.amd && define("jquery", [], function() {
        return ce
    });
    var tn = ie.jQuery
      , nn = ie.$;
    return ce.noConflict = function(e) {
        return ie.$ === ce && (ie.$ = nn),
        e && ie.jQuery === ce && (ie.jQuery = tn),
        ce
    }
    ,
    "undefined" == typeof e && (ie.jQuery = ie.$ = ce),
    ce
});

window.mendeleyWebImporter = {
    open() {
        window.postMessage("openMendeleyWebImporter", location.origin)
    }
};

window.mendeleyWebImporter = {
    open() {
        window.postMessage("openMendeleyWebImporter", location.origin)
    }
};

!function() {
    var e = {
        173: function(e, t) {
            !function(e) {
                "use strict";
                var t, n, r = function() {
                    var e = self.performance && performance.getEntriesByType && performance.getEntriesByType("navigation")[0];
                    if (e && e.responseStart > 0 && e.responseStart < performance.now())
                        return e
                }, i = function(e) {
                    if ("loading" === document.readyState)
                        return "loading";
                    var t = r();
                    if (t) {
                        if (e < t.domInteractive)
                            return "loading";
                        if (0 === t.domContentLoadedEventStart || e < t.domContentLoadedEventStart)
                            return "dom-interactive";
                        if (0 === t.domComplete || e < t.domComplete)
                            return "dom-content-loaded"
                    }
                    return "complete"
                }, o = function(e) {
                    var t = e.nodeName;
                    return 1 === e.nodeType ? t.toLowerCase() : t.toUpperCase().replace(/^#/, "")
                }, a = function(e, t) {
                    var n = "";
                    try {
                        for (; e && 9 !== e.nodeType; ) {
                            var r = e
                              , i = r.id ? "#" + r.id : o(r) + (r.classList && r.classList.value && r.classList.value.trim() && r.classList.value.trim().length ? "." + r.classList.value.trim().replace(/\s+/g, ".") : "");
                            if (n.length + i.length > (t || 100) - 1)
                                return n || i;
                            if (n = n ? i + ">" + n : i,
                            r.id)
                                break;
                            e = r.parentNode
                        }
                    } catch (e) {}
                    return n
                }, c = -1, s = function() {
                    return c
                }, u = function(e) {
                    addEventListener("pageshow", function(t) {
                        t.persisted && (c = t.timeStamp,
                        e(t))
                    }, !0)
                }, f = function() {
                    var e = r();
                    return e && e.activationStart || 0
                }, l = function(e, t) {
                    var n = r()
                      , i = "navigate";
                    return s() >= 0 ? i = "back-forward-cache" : n && (document.prerendering || f() > 0 ? i = "prerender" : document.wasDiscarded ? i = "restore" : n.type && (i = n.type.replace(/_/g, "-"))),
                    {
                        name: e,
                        value: void 0 === t ? -1 : t,
                        rating: "good",
                        delta: 0,
                        entries: [],
                        id: "v4-".concat(Date.now(), "-").concat(Math.floor(8999999999999 * Math.random()) + 1e12),
                        navigationType: i
                    }
                }, d = function(e, t, n) {
                    try {
                        if (PerformanceObserver.supportedEntryTypes.includes(e)) {
                            var r = new PerformanceObserver(function(e) {
                                Promise.resolve().then(function() {
                                    t(e.getEntries())
                                })
                            }
                            );
                            return r.observe(Object.assign({
                                type: e,
                                buffered: !0
                            }, n || {})),
                            r
                        }
                    } catch (e) {}
                }, v = function(e, t, n, r) {
                    var i, o;
                    return function(a) {
                        t.value >= 0 && (a || r) && ((o = t.value - (i || 0)) || void 0 === i) && (i = t.value,
                        t.delta = o,
                        t.rating = function(e, t) {
                            return e > t[1] ? "poor" : e > t[0] ? "needs-improvement" : "good"
                        }(t.value, n),
                        e(t))
                    }
                }, p = function(e) {
                    requestAnimationFrame(function() {
                        return requestAnimationFrame(function() {
                            return e()
                        })
                    })
                }, m = function(e) {
                    document.addEventListener("visibilitychange", function() {
                        "hidden" === document.visibilityState && e()
                    })
                }, g = function(e) {
                    var t = !1;
                    return function() {
                        t || (e(),
                        t = !0)
                    }
                }, h = -1, y = function() {
                    return "hidden" !== document.visibilityState || document.prerendering ? 1 / 0 : 0
                }, T = function(e) {
                    "hidden" === document.visibilityState && h > -1 && (h = "visibilitychange" === e.type ? e.timeStamp : 0,
                    b())
                }, w = function() {
                    addEventListener("visibilitychange", T, !0),
                    addEventListener("prerenderingchange", T, !0)
                }, b = function() {
                    removeEventListener("visibilitychange", T, !0),
                    removeEventListener("prerenderingchange", T, !0)
                }, S = function() {
                    return h < 0 && (h = y(),
                    w(),
                    u(function() {
                        setTimeout(function() {
                            h = y(),
                            w()
                        }, 0)
                    })),
                    {
                        get firstHiddenTime() {
                            return h
                        }
                    }
                }, E = function(e) {
                    document.prerendering ? addEventListener("prerenderingchange", function() {
                        return e()
                    }, !0) : e()
                }, L = [1800, 3e3], P = function(e, t) {
                    t = t || {},
                    E(function() {
                        var n, r = S(), i = l("FCP"), o = d("paint", function(e) {
                            e.forEach(function(e) {
                                "first-contentful-paint" === e.name && (o.disconnect(),
                                e.startTime < r.firstHiddenTime && (i.value = Math.max(e.startTime - f(), 0),
                                i.entries.push(e),
                                n(!0)))
                            })
                        });
                        o && (n = v(e, i, L, t.reportAllChanges),
                        u(function(r) {
                            i = l("FCP"),
                            n = v(e, i, L, t.reportAllChanges),
                            p(function() {
                                i.value = performance.now() - r.timeStamp,
                                n(!0)
                            })
                        }))
                    })
                }, C = [.1, .25], D = 0, I = 1 / 0, A = 0, U = function(e) {
                    e.forEach(function(e) {
                        e.interactionId && (I = Math.min(I, e.interactionId),
                        A = Math.max(A, e.interactionId),
                        D = A ? (A - I) / 7 + 1 : 0)
                    })
                }, O = function() {
                    return t ? D : performance.interactionCount || 0
                }, R = function() {
                    "interactionCount"in performance || t || (t = d("event", U, {
                        type: "event",
                        buffered: !0,
                        durationThreshold: 0
                    }))
                }, M = [], B = new Map, k = 0, _ = [], j = function(e) {
                    if (_.forEach(function(t) {
                        return t(e)
                    }),
                    e.interactionId || "first-input" === e.entryType) {
                        var t = M[M.length - 1]
                          , n = B.get(e.interactionId);
                        if (n || M.length < 10 || e.duration > t.latency) {
                            if (n)
                                e.duration > n.latency ? (n.entries = [e],
                                n.latency = e.duration) : e.duration === n.latency && e.startTime === n.entries[0].startTime && n.entries.push(e);
                            else {
                                var r = {
                                    id: e.interactionId,
                                    latency: e.duration,
                                    entries: [e]
                                };
                                B.set(r.id, r),
                                M.push(r)
                            }
                            M.sort(function(e, t) {
                                return t.latency - e.latency
                            }),
                            M.length > 10 && M.splice(10).forEach(function(e) {
                                return B.delete(e.id)
                            })
                        }
                    }
                }, x = function(e) {
                    var t = self.requestIdleCallback || self.setTimeout
                      , n = -1;
                    return e = g(e),
                    "hidden" === document.visibilityState ? e() : (n = t(e),
                    m(e)),
                    n
                }, F = [200, 500], q = function(e, t) {
                    "PerformanceEventTiming"in self && "interactionId"in PerformanceEventTiming.prototype && (t = t || {},
                    E(function() {
                        var n;
                        R();
                        var r, i = l("INP"), o = function(e) {
                            x(function() {
                                e.forEach(j);
                                var t = function() {
                                    var e = Math.min(M.length - 1, Math.floor((O() - k) / 50));
                                    return M[e]
                                }();
                                t && t.latency !== i.value && (i.value = t.latency,
                                i.entries = t.entries,
                                r())
                            })
                        }, a = d("event", o, {
                            durationThreshold: null !== (n = t.durationThreshold) && void 0 !== n ? n : 40
                        });
                        r = v(e, i, F, t.reportAllChanges),
                        a && (a.observe({
                            type: "first-input",
                            buffered: !0
                        }),
                        m(function() {
                            o(a.takeRecords()),
                            r(!0)
                        }),
                        u(function() {
                            k = O(),
                            M.length = 0,
                            B.clear(),
                            i = l("INP"),
                            r = v(e, i, F, t.reportAllChanges)
                        }))
                    }))
                }, N = [], V = [], z = 0, H = new WeakMap, K = new Map, W = -1, J = function(e) {
                    N = N.concat(e),
                    Q()
                }, Q = function() {
                    W < 0 && (W = x(X))
                }, X = function() {
                    K.size > 10 && K.forEach(function(e, t) {
                        B.has(t) || K.delete(t)
                    });
                    var e = M.map(function(e) {
                        return H.get(e.entries[0])
                    })
                      , t = V.length - 50;
                    V = V.filter(function(n, r) {
                        return r >= t || e.includes(n)
                    });
                    for (var n = new Set, r = 0; r < V.length; r++) {
                        var i = V[r];
                        ee(i.startTime, i.processingEnd).forEach(function(e) {
                            n.add(e)
                        })
                    }
                    var o = N.length - 1 - 50;
                    N = N.filter(function(e, t) {
                        return e.startTime > z && t > o || n.has(e)
                    }),
                    W = -1
                };
                _.push(function(e) {
                    e.interactionId && e.target && !K.has(e.interactionId) && K.set(e.interactionId, e.target)
                }, function(e) {
                    var t, n = e.startTime + e.duration;
                    z = Math.max(z, e.processingEnd);
                    for (var r = V.length - 1; r >= 0; r--) {
                        var i = V[r];
                        if (Math.abs(n - i.renderTime) <= 8) {
                            (t = i).startTime = Math.min(e.startTime, t.startTime),
                            t.processingStart = Math.min(e.processingStart, t.processingStart),
                            t.processingEnd = Math.max(e.processingEnd, t.processingEnd),
                            t.entries.push(e);
                            break
                        }
                    }
                    t || (t = {
                        startTime: e.startTime,
                        processingStart: e.processingStart,
                        processingEnd: e.processingEnd,
                        renderTime: n,
                        entries: [e]
                    },
                    V.push(t)),
                    (e.interactionId || "first-input" === e.entryType) && H.set(e, t),
                    Q()
                });
                var $, G, Y, Z, ee = function(e, t) {
                    for (var n, r = [], i = 0; n = N[i]; i++)
                        if (!(n.startTime + n.duration < e)) {
                            if (n.startTime > t)
                                break;
                            r.push(n)
                        }
                    return r
                }, te = [2500, 4e3], ne = {}, re = [800, 1800], ie = function e(t) {
                    document.prerendering ? E(function() {
                        return e(t)
                    }) : "complete" !== document.readyState ? addEventListener("load", function() {
                        return e(t)
                    }, !0) : setTimeout(t, 0)
                }, oe = function(e, t) {
                    t = t || {};
                    var n = l("TTFB")
                      , i = v(e, n, re, t.reportAllChanges);
                    ie(function() {
                        var o = r();
                        o && (n.value = Math.max(o.responseStart - f(), 0),
                        n.entries = [o],
                        i(!0),
                        u(function() {
                            n = l("TTFB", 0),
                            (i = v(e, n, re, t.reportAllChanges))(!0)
                        }))
                    })
                }, ae = {
                    passive: !0,
                    capture: !0
                }, ce = new Date, se = function(e, t) {
                    $ || ($ = t,
                    G = e,
                    Y = new Date,
                    le(removeEventListener),
                    ue())
                }, ue = function() {
                    if (G >= 0 && G < Y - ce) {
                        var e = {
                            entryType: "first-input",
                            name: $.type,
                            target: $.target,
                            cancelable: $.cancelable,
                            startTime: $.timeStamp,
                            processingStart: $.timeStamp + G
                        };
                        Z.forEach(function(t) {
                            t(e)
                        }),
                        Z = []
                    }
                }, fe = function(e) {
                    if (e.cancelable) {
                        var t = (e.timeStamp > 1e12 ? new Date : performance.now()) - e.timeStamp;
                        "pointerdown" == e.type ? function(e, t) {
                            var n = function() {
                                se(e, t),
                                i()
                            }
                              , r = function() {
                                i()
                            }
                              , i = function() {
                                removeEventListener("pointerup", n, ae),
                                removeEventListener("pointercancel", r, ae)
                            };
                            addEventListener("pointerup", n, ae),
                            addEventListener("pointercancel", r, ae)
                        }(t, e) : se(t, e)
                    }
                }, le = function(e) {
                    ["mousedown", "keydown", "touchstart", "pointerdown"].forEach(function(t) {
                        return e(t, fe, ae)
                    })
                }, de = [100, 300];
                e.CLSThresholds = C,
                e.FCPThresholds = L,
                e.FIDThresholds = de,
                e.INPThresholds = F,
                e.LCPThresholds = te,
                e.TTFBThresholds = re,
                e.onCLS = function(e, t) {
                    !function(e, t) {
                        t = t || {},
                        P(g(function() {
                            var n, r = l("CLS", 0), i = 0, o = [], a = function(e) {
                                e.forEach(function(e) {
                                    if (!e.hadRecentInput) {
                                        var t = o[0]
                                          , n = o[o.length - 1];
                                        i && e.startTime - n.startTime < 1e3 && e.startTime - t.startTime < 5e3 ? (i += e.value,
                                        o.push(e)) : (i = e.value,
                                        o = [e])
                                    }
                                }),
                                i > r.value && (r.value = i,
                                r.entries = o,
                                n())
                            }, c = d("layout-shift", a);
                            c && (n = v(e, r, C, t.reportAllChanges),
                            m(function() {
                                a(c.takeRecords()),
                                n(!0)
                            }),
                            u(function() {
                                i = 0,
                                r = l("CLS", 0),
                                n = v(e, r, C, t.reportAllChanges),
                                p(function() {
                                    return n()
                                })
                            }),
                            setTimeout(n, 0))
                        }))
                    }(function(t) {
                        var n = function(e) {
                            var t, n = {};
                            if (e.entries.length) {
                                var r = e.entries.reduce(function(e, t) {
                                    return e && e.value > t.value ? e : t
                                });
                                if (r && r.sources && r.sources.length) {
                                    var o = (t = r.sources).find(function(e) {
                                        return e.node && 1 === e.node.nodeType
                                    }) || t[0];
                                    o && (n = {
                                        largestShiftTarget: a(o.node),
                                        largestShiftTime: r.startTime,
                                        largestShiftValue: r.value,
                                        largestShiftSource: o,
                                        largestShiftEntry: r,
                                        loadState: i(r.startTime)
                                    })
                                }
                            }
                            return Object.assign(e, {
                                attribution: n
                            })
                        }(t);
                        e(n)
                    }, t)
                }
                ,
                e.onFCP = function(e, t) {
                    P(function(t) {
                        var n = function(e) {
                            var t = {
                                timeToFirstByte: 0,
                                firstByteToFCP: e.value,
                                loadState: i(s())
                            };
                            if (e.entries.length) {
                                var n = r()
                                  , o = e.entries[e.entries.length - 1];
                                if (n) {
                                    var a = n.activationStart || 0
                                      , c = Math.max(0, n.responseStart - a);
                                    t = {
                                        timeToFirstByte: c,
                                        firstByteToFCP: e.value - c,
                                        loadState: i(e.entries[0].startTime),
                                        navigationEntry: n,
                                        fcpEntry: o
                                    }
                                }
                            }
                            return Object.assign(e, {
                                attribution: t
                            })
                        }(t);
                        e(n)
                    }, t)
                }
                ,
                e.onFID = function(e, t) {
                    !function(e, t) {
                        t = t || {},
                        E(function() {
                            var n, r = S(), i = l("FID"), o = function(e) {
                                e.startTime < r.firstHiddenTime && (i.value = e.processingStart - e.startTime,
                                i.entries.push(e),
                                n(!0))
                            }, a = function(e) {
                                e.forEach(o)
                            }, c = d("first-input", a);
                            n = v(e, i, de, t.reportAllChanges),
                            c && (m(g(function() {
                                a(c.takeRecords()),
                                c.disconnect()
                            })),
                            u(function() {
                                var r;
                                i = l("FID"),
                                n = v(e, i, de, t.reportAllChanges),
                                Z = [],
                                G = -1,
                                $ = null,
                                le(addEventListener),
                                r = o,
                                Z.push(r),
                                ue()
                            }))
                        })
                    }(function(t) {
                        var n = function(e) {
                            var t = e.entries[0]
                              , n = {
                                eventTarget: a(t.target),
                                eventType: t.name,
                                eventTime: t.startTime,
                                eventEntry: t,
                                loadState: i(t.startTime)
                            };
                            return Object.assign(e, {
                                attribution: n
                            })
                        }(t);
                        e(n)
                    }, t)
                }
                ,
                e.onINP = function(e, t) {
                    n || (n = d("long-animation-frame", J)),
                    q(function(t) {
                        var n = function(e) {
                            var t = e.entries[0]
                              , n = H.get(t)
                              , r = t.processingStart
                              , o = n.processingEnd
                              , c = n.entries.sort(function(e, t) {
                                return e.processingStart - t.processingStart
                            })
                              , s = ee(t.startTime, o)
                              , u = e.entries.find(function(e) {
                                return e.target
                            })
                              , f = u && u.target || K.get(t.interactionId)
                              , l = [t.startTime + t.duration, o].concat(s.map(function(e) {
                                return e.startTime + e.duration
                            }))
                              , d = Math.max.apply(Math, l)
                              , v = {
                                interactionTarget: a(f),
                                interactionTargetElement: f,
                                interactionType: t.name.startsWith("key") ? "keyboard" : "pointer",
                                interactionTime: t.startTime,
                                nextPaintTime: d,
                                processedEventEntries: c,
                                longAnimationFrameEntries: s,
                                inputDelay: r - t.startTime,
                                processingDuration: o - r,
                                presentationDelay: Math.max(d - o, 0),
                                loadState: i(t.startTime)
                            };
                            return Object.assign(e, {
                                attribution: v
                            })
                        }(t);
                        e(n)
                    }, t)
                }
                ,
                e.onLCP = function(e, t) {
                    !function(e, t) {
                        t = t || {},
                        E(function() {
                            var n, r = S(), i = l("LCP"), o = function(e) {
                                t.reportAllChanges || (e = e.slice(-1)),
                                e.forEach(function(e) {
                                    e.startTime < r.firstHiddenTime && (i.value = Math.max(e.startTime - f(), 0),
                                    i.entries = [e],
                                    n())
                                })
                            }, a = d("largest-contentful-paint", o);
                            if (a) {
                                n = v(e, i, te, t.reportAllChanges);
                                var c = g(function() {
                                    ne[i.id] || (o(a.takeRecords()),
                                    a.disconnect(),
                                    ne[i.id] = !0,
                                    n(!0))
                                });
                                ["keydown", "click"].forEach(function(e) {
                                    addEventListener(e, function() {
                                        return x(c)
                                    }, {
                                        once: !0,
                                        capture: !0
                                    })
                                }),
                                m(c),
                                u(function(r) {
                                    i = l("LCP"),
                                    n = v(e, i, te, t.reportAllChanges),
                                    p(function() {
                                        i.value = performance.now() - r.timeStamp,
                                        ne[i.id] = !0,
                                        n(!0)
                                    })
                                })
                            }
                        })
                    }(function(t) {
                        var n = function(e) {
                            var t = {
                                timeToFirstByte: 0,
                                resourceLoadDelay: 0,
                                resourceLoadDuration: 0,
                                elementRenderDelay: e.value
                            };
                            if (e.entries.length) {
                                var n = r();
                                if (n) {
                                    var i = n.activationStart || 0
                                      , o = e.entries[e.entries.length - 1]
                                      , c = o.url && performance.getEntriesByType("resource").filter(function(e) {
                                        return e.name === o.url
                                    })[0]
                                      , s = Math.max(0, n.responseStart - i)
                                      , u = Math.max(s, c ? (c.requestStart || c.startTime) - i : 0)
                                      , f = Math.max(u, c ? c.responseEnd - i : 0)
                                      , l = Math.max(f, o.startTime - i);
                                    t = {
                                        element: a(o.element),
                                        timeToFirstByte: s,
                                        resourceLoadDelay: u - s,
                                        resourceLoadDuration: f - u,
                                        elementRenderDelay: l - f,
                                        navigationEntry: n,
                                        lcpEntry: o
                                    },
                                    o.url && (t.url = o.url),
                                    c && (t.lcpResourceEntry = c)
                                }
                            }
                            return Object.assign(e, {
                                attribution: t
                            })
                        }(t);
                        e(n)
                    }, t)
                }
                ,
                e.onTTFB = function(e, t) {
                    oe(function(t) {
                        var n = function(e) {
                            var t = {
                                waitingDuration: 0,
                                cacheDuration: 0,
                                dnsDuration: 0,
                                connectionDuration: 0,
                                requestDuration: 0
                            };
                            if (e.entries.length) {
                                var n = e.entries[0]
                                  , r = n.activationStart || 0
                                  , i = Math.max((n.workerStart || n.fetchStart) - r, 0)
                                  , o = Math.max(n.domainLookupStart - r, 0)
                                  , a = Math.max(n.connectStart - r, 0)
                                  , c = Math.max(n.connectEnd - r, 0);
                                t = {
                                    waitingDuration: i,
                                    cacheDuration: o - i,
                                    dnsDuration: a - o,
                                    connectionDuration: c - a,
                                    requestDuration: e.value - c,
                                    navigationEntry: n
                                }
                            }
                            return Object.assign(e, {
                                attribution: t
                            })
                        }(t);
                        e(n)
                    }, t)
                }
            }(t)
        },
        323: function(e, t) {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }),
            t.sendObjectBeacon = function(e, t, n, r, i) {
                void 0 === r && (r = !1),
                void 0 === i && (i = null);
                var o = i || "/cdn-cgi/rum?".concat(e)
                  , a = !0;
                if (navigator && "string" == typeof navigator.userAgent)
                    try {
                        var c = navigator.userAgent.match(/Chrome\/([0-9]+)/);
                        c && c[0].toLowerCase().indexOf("chrome") > -1 && parseInt(c[1]) < 81 && (a = !1)
                    } catch (e) {}
                if (navigator && "function" == typeof navigator.sendBeacon && a && r) {
                    t.st = 1;
                    var s = JSON.stringify(t)
                      , u = navigator.sendBeacon && navigator.sendBeacon.bind(navigator);
                    null == u || u(o, new Blob([s],{
                        type: "application/json"
                    }))
                } else {
                    t.st = 2,
                    s = JSON.stringify(t);
                    var f = new XMLHttpRequest;
                    n && (f.onreadystatechange = function() {
                        4 == this.readyState && 204 == this.status && n()
                    }
                    ),
                    f.open("POST", o, !0),
                    f.setRequestHeader("content-type", "application/json"),
                    f.send(s)
                }
            }
        },
        674: function(e, t) {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }),
            t.timingsV2TargetKeys = t.timingsTargetKeys = void 0,
            t.buildTimingsObject = function(e, t, n) {
                for (var r = 0, i = n; r < i.length; r++) {
                    var o = i[r]
                      , a = e[o];
                    void 0 !== t && ("number" != typeof a && "string" != typeof a || (t[o] = a))
                }
            }
            ,
            t.timingsTargetKeys = ["navigationStart", "domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd", "requestStart", "responseStart", "responseEnd", "domLoading", "domComplete", "loadEventStart", "loadEventEnd"],
            t.timingsV2TargetKeys = ["nextHopProtocol", "domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd", "requestStart", "responseStart", "responseEnd", "domInteractive", "domComplete", "loadEventStart", "loadEventEnd", "finalResponseHeadersStart", "firstInterimResponseStart", "transferSize", "decodedBodySize"]
        },
        696: function(e, t) {
            "use strict";
            var n, r;
            Object.defineProperty(t, "__esModule", {
                value: !0
            }),
            t.FetchPriority = t.EventType = void 0,
            function(e) {
                e[e.Load = 1] = "Load",
                e[e.Additional = 2] = "Additional",
                e[e.WebVitalsV2 = 3] = "WebVitalsV2"
            }(n || (t.EventType = n = {})),
            function(e) {
                e.High = "high",
                e.Low = "low",
                e.Auto = "auto"
            }(r || (t.FetchPriority = r = {}))
        },
        791: function(e, t, n) {
            "use strict";
            n.r(t),
            n.d(t, {
                MAX: function() {
                    return r
                },
                NIL: function() {
                    return i
                },
                parse: function() {
                    return c
                },
                stringify: function() {
                    return d
                },
                v1: function() {
                    return h
                },
                v1ToV6: function() {
                    return y
                },
                v3: function() {
                    return O
                },
                v4: function() {
                    return M
                },
                v5: function() {
                    return x
                },
                v6: function() {
                    return q
                },
                v6ToV1: function() {
                    return N
                },
                v7: function() {
                    return H
                },
                validate: function() {
                    return a
                },
                version: function() {
                    return K
                }
            });
            for (var r = "ffffffff-ffff-ffff-ffff-ffffffffffff", i = "00000000-0000-0000-0000-000000000000", o = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i, a = function(e) {
                return "string" == typeof e && o.test(e)
            }, c = function(e) {
                if (!a(e))
                    throw TypeError("Invalid UUID");
                var t;
                return Uint8Array.of((t = parseInt(e.slice(0, 8), 16)) >>> 24, t >>> 16 & 255, t >>> 8 & 255, 255 & t, (t = parseInt(e.slice(9, 13), 16)) >>> 8, 255 & t, (t = parseInt(e.slice(14, 18), 16)) >>> 8, 255 & t, (t = parseInt(e.slice(19, 23), 16)) >>> 8, 255 & t, (t = parseInt(e.slice(24, 36), 16)) / 1099511627776 & 255, t / 4294967296 & 255, t >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t)
            }, s = [], u = 0; u < 256; ++u)
                s.push((u + 256).toString(16).slice(1));
            function f(e, t) {
                return void 0 === t && (t = 0),
                (s[e[t + 0]] + s[e[t + 1]] + s[e[t + 2]] + s[e[t + 3]] + "-" + s[e[t + 4]] + s[e[t + 5]] + "-" + s[e[t + 6]] + s[e[t + 7]] + "-" + s[e[t + 8]] + s[e[t + 9]] + "-" + s[e[t + 10]] + s[e[t + 11]] + s[e[t + 12]] + s[e[t + 13]] + s[e[t + 14]] + s[e[t + 15]]).toLowerCase()
            }
            var l, d = function(e, t) {
                void 0 === t && (t = 0);
                var n = f(e, t);
                if (!a(n))
                    throw TypeError("Stringified UUID is invalid");
                return n
            }, v = new Uint8Array(16);
            function p() {
                if (!l) {
                    if ("undefined" == typeof crypto || !crypto.getRandomValues)
                        throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
                    l = crypto.getRandomValues.bind(crypto)
                }
                return l(v)
            }
            var m = {};
            function g(e, t, n, r, i, o, a) {
                if (void 0 === a && (a = 0),
                e.length < 16)
                    throw new Error("Random bytes length must be >= 16");
                if (o) {
                    if (a < 0 || a + 16 > o.length)
                        throw new RangeError("UUID byte range ".concat(a, ":").concat(a + 15, " is out of buffer bounds"))
                } else
                    o = new Uint8Array(16),
                    a = 0;
                null != t || (t = Date.now()),
                null != n || (n = 0),
                null != r || (r = 16383 & (e[8] << 8 | e[9])),
                null != i || (i = e.slice(10, 16));
                var c = (1e4 * (268435455 & (t += 122192928e5)) + n) % 4294967296;
                o[a++] = c >>> 24 & 255,
                o[a++] = c >>> 16 & 255,
                o[a++] = c >>> 8 & 255,
                o[a++] = 255 & c;
                var s = t / 4294967296 * 1e4 & 268435455;
                o[a++] = s >>> 8 & 255,
                o[a++] = 255 & s,
                o[a++] = s >>> 24 & 15 | 16,
                o[a++] = s >>> 16 & 255,
                o[a++] = r >>> 8 | 128,
                o[a++] = 255 & r;
                for (var u = 0; u < 6; ++u)
                    o[a++] = i[u];
                return o
            }
            var h = function(e, t, n) {
                var r, i, o, a, c, s = null !== (r = null == e ? void 0 : e._v6) && void 0 !== r && r;
                if (e) {
                    var u = Object.keys(e);
                    1 === u.length && "_v6" === u[0] && (e = void 0)
                }
                if (e)
                    c = g(null !== (a = null !== (i = e.random) && void 0 !== i ? i : null === (o = e.rng) || void 0 === o ? void 0 : o.call(e)) && void 0 !== a ? a : p(), e.msecs, e.nsecs, e.clockseq, e.node, t, n);
                else {
                    var l = Date.now()
                      , d = p();
                    !function(e, t, n) {
                        var r, i;
                        null !== (r = e.msecs) && void 0 !== r || (e.msecs = -1 / 0),
                        null !== (i = e.nsecs) && void 0 !== i || (e.nsecs = 0),
                        t === e.msecs ? (e.nsecs++,
                        e.nsecs >= 1e4 && (e.node = void 0,
                        e.nsecs = 0)) : t > e.msecs ? e.nsecs = 0 : t < e.msecs && (e.node = void 0),
                        e.node || (e.node = n.slice(10, 16),
                        e.node[0] |= 1,
                        e.clockseq = 16383 & (n[8] << 8 | n[9])),
                        e.msecs = t
                    }(m, l, d),
                    c = g(d, m.msecs, m.nsecs, s ? void 0 : m.clockseq, s ? void 0 : m.node, t, n)
                }
                return null != t ? t : f(c)
            };
            function y(e) {
                var t = function(e) {
                    return Uint8Array.of((15 & e[6]) << 4 | e[7] >> 4 & 15, (15 & e[7]) << 4 | (240 & e[4]) >> 4, (15 & e[4]) << 4 | (240 & e[5]) >> 4, (15 & e[5]) << 4 | (240 & e[0]) >> 4, (15 & e[0]) << 4 | (240 & e[1]) >> 4, (15 & e[1]) << 4 | (240 & e[2]) >> 4, 96 | 15 & e[2], e[3], e[8], e[9], e[10], e[11], e[12], e[13], e[14], e[15])
                }("string" == typeof e ? c(e) : e);
                return "string" == typeof e ? f(t) : t
            }
            function T(e) {
                return 14 + (e + 64 >>> 9 << 4) + 1
            }
            function w(e, t) {
                var n = (65535 & e) + (65535 & t);
                return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n
            }
            function b(e, t, n, r, i, o) {
                return w((a = w(w(t, e), w(r, o))) << (c = i) | a >>> 32 - c, n);
                var a, c
            }
            function S(e, t, n, r, i, o, a) {
                return b(t & n | ~t & r, e, t, i, o, a)
            }
            function E(e, t, n, r, i, o, a) {
                return b(t & r | n & ~r, e, t, i, o, a)
            }
            function L(e, t, n, r, i, o, a) {
                return b(t ^ n ^ r, e, t, i, o, a)
            }
            function P(e, t, n, r, i, o, a) {
                return b(n ^ (t | ~r), e, t, i, o, a)
            }
            var C = function(e) {
                var t = function(e) {
                    if (0 === e.length)
                        return new Uint32Array;
                    for (var t = new Uint32Array(T(8 * e.length)).fill(0), n = 0; n < e.length; n++)
                        t[n >> 2] |= (255 & e[n]) << n % 4 * 8;
                    return t
                }(e)
                  , n = function(e, t) {
                    var n = new Uint32Array(T(t)).fill(0);
                    n.set(e),
                    n[t >> 5] |= 128 << t % 32,
                    n[n.length - 1] = t,
                    e = n;
                    for (var r = 1732584193, i = -271733879, o = -1732584194, a = 271733878, c = 0; c < e.length; c += 16) {
                        var s = r
                          , u = i
                          , f = o
                          , l = a;
                        r = S(r, i, o, a, e[c], 7, -680876936),
                        a = S(a, r, i, o, e[c + 1], 12, -389564586),
                        o = S(o, a, r, i, e[c + 2], 17, 606105819),
                        i = S(i, o, a, r, e[c + 3], 22, -1044525330),
                        r = S(r, i, o, a, e[c + 4], 7, -176418897),
                        a = S(a, r, i, o, e[c + 5], 12, 1200080426),
                        o = S(o, a, r, i, e[c + 6], 17, -1473231341),
                        i = S(i, o, a, r, e[c + 7], 22, -45705983),
                        r = S(r, i, o, a, e[c + 8], 7, 1770035416),
                        a = S(a, r, i, o, e[c + 9], 12, -1958414417),
                        o = S(o, a, r, i, e[c + 10], 17, -42063),
                        i = S(i, o, a, r, e[c + 11], 22, -1990404162),
                        r = S(r, i, o, a, e[c + 12], 7, 1804603682),
                        a = S(a, r, i, o, e[c + 13], 12, -40341101),
                        o = S(o, a, r, i, e[c + 14], 17, -1502002290),
                        r = E(r, i = S(i, o, a, r, e[c + 15], 22, 1236535329), o, a, e[c + 1], 5, -165796510),
                        a = E(a, r, i, o, e[c + 6], 9, -1069501632),
                        o = E(o, a, r, i, e[c + 11], 14, 643717713),
                        i = E(i, o, a, r, e[c], 20, -373897302),
                        r = E(r, i, o, a, e[c + 5], 5, -701558691),
                        a = E(a, r, i, o, e[c + 10], 9, 38016083),
                        o = E(o, a, r, i, e[c + 15], 14, -660478335),
                        i = E(i, o, a, r, e[c + 4], 20, -405537848),
                        r = E(r, i, o, a, e[c + 9], 5, 568446438),
                        a = E(a, r, i, o, e[c + 14], 9, -1019803690),
                        o = E(o, a, r, i, e[c + 3], 14, -187363961),
                        i = E(i, o, a, r, e[c + 8], 20, 1163531501),
                        r = E(r, i, o, a, e[c + 13], 5, -1444681467),
                        a = E(a, r, i, o, e[c + 2], 9, -51403784),
                        o = E(o, a, r, i, e[c + 7], 14, 1735328473),
                        r = L(r, i = E(i, o, a, r, e[c + 12], 20, -1926607734), o, a, e[c + 5], 4, -378558),
                        a = L(a, r, i, o, e[c + 8], 11, -2022574463),
                        o = L(o, a, r, i, e[c + 11], 16, 1839030562),
                        i = L(i, o, a, r, e[c + 14], 23, -35309556),
                        r = L(r, i, o, a, e[c + 1], 4, -1530992060),
                        a = L(a, r, i, o, e[c + 4], 11, 1272893353),
                        o = L(o, a, r, i, e[c + 7], 16, -155497632),
                        i = L(i, o, a, r, e[c + 10], 23, -1094730640),
                        r = L(r, i, o, a, e[c + 13], 4, 681279174),
                        a = L(a, r, i, o, e[c], 11, -358537222),
                        o = L(o, a, r, i, e[c + 3], 16, -722521979),
                        i = L(i, o, a, r, e[c + 6], 23, 76029189),
                        r = L(r, i, o, a, e[c + 9], 4, -640364487),
                        a = L(a, r, i, o, e[c + 12], 11, -421815835),
                        o = L(o, a, r, i, e[c + 15], 16, 530742520),
                        r = P(r, i = L(i, o, a, r, e[c + 2], 23, -995338651), o, a, e[c], 6, -198630844),
                        a = P(a, r, i, o, e[c + 7], 10, 1126891415),
                        o = P(o, a, r, i, e[c + 14], 15, -1416354905),
                        i = P(i, o, a, r, e[c + 5], 21, -57434055),
                        r = P(r, i, o, a, e[c + 12], 6, 1700485571),
                        a = P(a, r, i, o, e[c + 3], 10, -1894986606),
                        o = P(o, a, r, i, e[c + 10], 15, -1051523),
                        i = P(i, o, a, r, e[c + 1], 21, -2054922799),
                        r = P(r, i, o, a, e[c + 8], 6, 1873313359),
                        a = P(a, r, i, o, e[c + 15], 10, -30611744),
                        o = P(o, a, r, i, e[c + 6], 15, -1560198380),
                        i = P(i, o, a, r, e[c + 13], 21, 1309151649),
                        r = P(r, i, o, a, e[c + 4], 6, -145523070),
                        a = P(a, r, i, o, e[c + 11], 10, -1120210379),
                        o = P(o, a, r, i, e[c + 2], 15, 718787259),
                        i = P(i, o, a, r, e[c + 9], 21, -343485551),
                        r = w(r, s),
                        i = w(i, u),
                        o = w(o, f),
                        a = w(a, l)
                    }
                    return Uint32Array.of(r, i, o, a)
                }(t, 8 * e.length);
                return function(e) {
                    for (var t = new Uint8Array(4 * e.length), n = 0; n < 4 * e.length; n++)
                        t[n] = e[n >> 2] >>> n % 4 * 8 & 255;
                    return t
                }(n)
            }
              , D = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
              , I = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
            function A(e, t, n, r, i, o) {
                var a = "string" == typeof n ? function(e) {
                    e = unescape(encodeURIComponent(e));
                    for (var t = new Uint8Array(e.length), n = 0; n < e.length; ++n)
                        t[n] = e.charCodeAt(n);
                    return t
                }(n) : n
                  , s = "string" == typeof r ? c(r) : r;
                if ("string" == typeof r && (r = c(r)),
                16 !== (null == r ? void 0 : r.length))
                    throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
                var u = new Uint8Array(16 + a.length);
                if (u.set(s),
                u.set(a, s.length),
                (u = t(u))[6] = 15 & u[6] | e,
                u[8] = 63 & u[8] | 128,
                i) {
                    o = o || 0;
                    for (var l = 0; l < 16; ++l)
                        i[o + l] = u[l];
                    return i
                }
                return f(u)
            }
            function U(e, t, n, r) {
                return A(48, C, e, t, n, r)
            }
            U.DNS = D,
            U.URL = I;
            var O = U
              , R = {
                randomUUID: "undefined" != typeof crypto && crypto.randomUUID && crypto.randomUUID.bind(crypto)
            }
              , M = function(e, t, n) {
                return !R.randomUUID || t || e ? function(e, t, n) {
                    var r, i, o, a = null !== (o = null !== (r = (e = e || {}).random) && void 0 !== r ? r : null === (i = e.rng) || void 0 === i ? void 0 : i.call(e)) && void 0 !== o ? o : p();
                    if (a.length < 16)
                        throw new Error("Random bytes length must be >= 16");
                    if (a[6] = 15 & a[6] | 64,
                    a[8] = 63 & a[8] | 128,
                    t) {
                        if ((n = n || 0) < 0 || n + 16 > t.length)
                            throw new RangeError("UUID byte range ".concat(n, ":").concat(n + 15, " is out of buffer bounds"));
                        for (var c = 0; c < 16; ++c)
                            t[n + c] = a[c];
                        return t
                    }
                    return f(a)
                }(e, t, n) : R.randomUUID()
            };
            function B(e, t, n, r) {
                switch (e) {
                case 0:
                    return t & n ^ ~t & r;
                case 1:
                case 3:
                    return t ^ n ^ r;
                case 2:
                    return t & n ^ t & r ^ n & r
                }
            }
            function k(e, t) {
                return e << t | e >>> 32 - t
            }
            var _ = function(e) {
                var t = [1518500249, 1859775393, 2400959708, 3395469782]
                  , n = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]
                  , r = new Uint8Array(e.length + 1);
                r.set(e),
                r[e.length] = 128;
                for (var i = (e = r).length / 4 + 2, o = Math.ceil(i / 16), a = new Array(o), c = 0; c < o; ++c) {
                    for (var s = new Uint32Array(16), u = 0; u < 16; ++u)
                        s[u] = e[64 * c + 4 * u] << 24 | e[64 * c + 4 * u + 1] << 16 | e[64 * c + 4 * u + 2] << 8 | e[64 * c + 4 * u + 3];
                    a[c] = s
                }
                for (a[o - 1][14] = 8 * (e.length - 1) / Math.pow(2, 32),
                a[o - 1][14] = Math.floor(a[o - 1][14]),
                a[o - 1][15] = 8 * (e.length - 1) & 4294967295,
                c = 0; c < o; ++c) {
                    for (var f = new Uint32Array(80), l = 0; l < 16; ++l)
                        f[l] = a[c][l];
                    for (l = 16; l < 80; ++l)
                        f[l] = k(f[l - 3] ^ f[l - 8] ^ f[l - 14] ^ f[l - 16], 1);
                    var d = n[0]
                      , v = n[1]
                      , p = n[2]
                      , m = n[3]
                      , g = n[4];
                    for (l = 0; l < 80; ++l) {
                        var h = Math.floor(l / 20)
                          , y = k(d, 5) + B(h, v, p, m) + g + t[h] + f[l] >>> 0;
                        g = m,
                        m = p,
                        p = k(v, 30) >>> 0,
                        v = d,
                        d = y
                    }
                    n[0] = n[0] + d >>> 0,
                    n[1] = n[1] + v >>> 0,
                    n[2] = n[2] + p >>> 0,
                    n[3] = n[3] + m >>> 0,
                    n[4] = n[4] + g >>> 0
                }
                return Uint8Array.of(n[0] >> 24, n[0] >> 16, n[0] >> 8, n[0], n[1] >> 24, n[1] >> 16, n[1] >> 8, n[1], n[2] >> 24, n[2] >> 16, n[2] >> 8, n[2], n[3] >> 24, n[3] >> 16, n[3] >> 8, n[3], n[4] >> 24, n[4] >> 16, n[4] >> 8, n[4])
            };
            function j(e, t, n, r) {
                return A(80, _, e, t, n, r)
            }
            j.DNS = D,
            j.URL = I;
            var x = j
              , F = function() {
                return F = Object.assign || function(e) {
                    for (var t, n = 1, r = arguments.length; n < r; n++)
                        for (var i in t = arguments[n])
                            Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
                    return e
                }
                ,
                F.apply(this, arguments)
            }
              , q = function(e, t, n) {
                null != e || (e = {}),
                null != n || (n = 0);
                var r = h(F(F({}, e), {
                    _v6: !0
                }), new Uint8Array(16));
                if (r = y(r),
                t) {
                    for (var i = 0; i < 16; i++)
                        t[n + i] = r[i];
                    return t
                }
                return f(r)
            };
            function N(e) {
                var t, n = (t = "string" == typeof e ? c(e) : e,
                Uint8Array.of((15 & t[3]) << 4 | t[4] >> 4 & 15, (15 & t[4]) << 4 | (240 & t[5]) >> 4, (15 & t[5]) << 4 | 15 & t[6], t[7], (15 & t[1]) << 4 | (240 & t[2]) >> 4, (15 & t[2]) << 4 | (240 & t[3]) >> 4, 16 | (240 & t[0]) >> 4, (15 & t[0]) << 4 | (240 & t[1]) >> 4, t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15]));
                return "string" == typeof e ? f(n) : n
            }
            var V = {};
            function z(e, t, n, r, i) {
                if (void 0 === i && (i = 0),
                e.length < 16)
                    throw new Error("Random bytes length must be >= 16");
                if (r) {
                    if (i < 0 || i + 16 > r.length)
                        throw new RangeError("UUID byte range ".concat(i, ":").concat(i + 15, " is out of buffer bounds"))
                } else
                    r = new Uint8Array(16),
                    i = 0;
                return null != t || (t = Date.now()),
                null != n || (n = 127 * e[6] << 24 | e[7] << 16 | e[8] << 8 | e[9]),
                r[i++] = t / 1099511627776 & 255,
                r[i++] = t / 4294967296 & 255,
                r[i++] = t / 16777216 & 255,
                r[i++] = t / 65536 & 255,
                r[i++] = t / 256 & 255,
                r[i++] = 255 & t,
                r[i++] = 112 | n >>> 28 & 15,
                r[i++] = n >>> 20 & 255,
                r[i++] = 128 | n >>> 14 & 63,
                r[i++] = n >>> 6 & 255,
                r[i++] = n << 2 & 255 | 3 & e[10],
                r[i++] = e[11],
                r[i++] = e[12],
                r[i++] = e[13],
                r[i++] = e[14],
                r[i++] = e[15],
                r
            }
            var H = function(e, t, n) {
                var r, i, o, a;
                if (e)
                    a = z(null !== (o = null !== (r = e.random) && void 0 !== r ? r : null === (i = e.rng) || void 0 === i ? void 0 : i.call(e)) && void 0 !== o ? o : p(), e.msecs, e.seq, t, n);
                else {
                    var c = Date.now()
                      , s = p();
                    !function(e, t, n) {
                        var r, i;
                        null !== (r = e.msecs) && void 0 !== r || (e.msecs = -1 / 0),
                        null !== (i = e.seq) && void 0 !== i || (e.seq = 0),
                        t > e.msecs ? (e.seq = n[6] << 23 | n[7] << 16 | n[8] << 8 | n[9],
                        e.msecs = t) : (e.seq = e.seq + 1 | 0,
                        0 === e.seq && e.msecs++)
                    }(V, c, s),
                    a = z(s, V.msecs, V.seq, t, n)
                }
                return null != t ? t : f(a)
            }
              , K = function(e) {
                if (!a(e))
                    throw TypeError("Invalid UUID");
                return parseInt(e.slice(14, 15), 16)
            }
        },
        935: function(e, t, n) {
            "use strict";
            var r = this && this.__assign || function() {
                return r = Object.assign || function(e) {
                    for (var t, n = 1, r = arguments.length; n < r; n++)
                        for (var i in t = arguments[n])
                            Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
                    return e
                }
                ,
                r.apply(this, arguments)
            }
            ;
            Object.defineProperty(t, "__esModule", {
                value: !0
            });
            var i = n(696)
              , o = n(323)
              , a = n(173)
              , c = n(791)
              , s = n(674);
            !function() {
                function e(e) {
                    var t = "";
                    if (t = window.location.origin ? window.location.origin : "".concat(window.location.protocol, "://").concat(window.location.host),
                    e && "string" == typeof e)
                        if (0 === e.indexOf("/"))
                            t += e;
                        else
                            try {
                                var n = new URL(e);
                                return "".concat(n.protocol, "://").concat(n.host).concat(n.pathname)
                            } catch (e) {}
                    else {
                        var r = window.location.pathname;
                        r && r.length > 0 && (t += r)
                    }
                    return t
                }
                !function() {
                    var t, n, u = window.performance || window.webkitPerformance || window.msPerformance || window.mozPerformance, f = "data-cf-beacon", l = document.currentScript || ("function" == typeof document.querySelector ? document.querySelector("script[".concat(f, "]")) : void 0), d = (0,
                    c.v4)(), v = [], p = window.__cfBeacon ? window.__cfBeacon : {};
                    if (!p || "single" !== p.load) {
                        if (l) {
                            var m = l.getAttribute(f);
                            if (m)
                                try {
                                    p = r(r({}, p), JSON.parse(m))
                                } catch (e) {}
                            else {
                                var g = l.getAttribute("src");
                                if (g && "function" == typeof URLSearchParams) {
                                    var h = new URLSearchParams(g.replace(/^[^\?]+\??/, ""))
                                      , y = h.get("token");
                                    y && (p.token = y);
                                    var T = h.get("spa");
                                    p.spa = null === T || "true" === T
                                }
                            }
                            p && "multi" !== p.load && (p.load = "single"),
                            window.__cfBeacon = p
                        }
                        if (u && p && p.token) {
                            var w, b, S = !1, E = {};
                            "function" == typeof PerformanceObserver && ((0,
                            a.onLCP)(O),
                            (0,
                            a.onFCP)(O),
                            (0,
                            a.onINP)(O),
                            (0,
                            a.onTTFB)(O),
                            PerformanceObserver.supportedEntryTypes && PerformanceObserver.supportedEntryTypes.includes("layout-shift") && (0,
                            a.onCLS)(O, {
                                reportAllChanges: !0
                            })),
                            document.addEventListener("visibilitychange", function() {
                                if ("hidden" === document.visibilityState) {
                                    if (L && A()) {
                                        var t = e();
                                        (null == w ? void 0 : w.url) == t && (null == w ? void 0 : w.triggered) || C(),
                                        U(t)
                                    }
                                    !S && w && (S = !0,
                                    D())
                                } else
                                    "visible" === document.visibilityState && (new Date).getTime()
                            });
                            var L = p && (void 0 === p.spa || !0 === p.spa)
                              , P = p.send && p.send.to ? p.send.to : void 0 === p.version ? "https://cloudflareinsights.com/cdn-cgi/rum" : null
                              , C = function(n) {
                                var r = function(n) {
                                    var r, o, a = u.timing, c = u.memory, f = n || e(), l = {
                                        memory: {},
                                        timings: {},
                                        resources: [],
                                        referrer: (r = document.referrer || "",
                                        o = v[v.length - 1],
                                        L && w && o ? o.url : r),
                                        eventType: i.EventType.Load,
                                        firstPaint: 0,
                                        firstContentfulPaint: 0,
                                        startTime: R(),
                                        versions: {
                                            fl: p ? p.version : "",
                                            js: "2026.5.0",
                                            timings: 1
                                        },
                                        pageloadId: d,
                                        location: f,
                                        nt: b,
                                        serverTimings: M()
                                    };
                                    if (null == t) {
                                        if ("function" == typeof u.getEntriesByType) {
                                            var m = u.getEntriesByType("navigation");
                                            if (m && Array.isArray(m) && m.length > 0) {
                                                l.timingsV2 = {},
                                                l.versions.timings = 2,
                                                l.dt = m[0].deliveryType,
                                                delete l.timings;
                                                var g = m[0];
                                                (0,
                                                s.buildTimingsObject)(g, l.timingsV2, s.timingsV2TargetKeys)
                                            }
                                        }
                                        if (1 === l.versions.timings) {
                                            var h = a;
                                            l.timings && (0,
                                            s.buildTimingsObject)(h, l.timings, s.timingsTargetKeys)
                                        }
                                        !function(e, t) {
                                            for (var n in e) {
                                                var r = e[n];
                                                void 0 !== t && ("number" != typeof r && "string" != typeof r || (t[n] = r))
                                            }
                                        }(c, l.memory)
                                    } else
                                        B(l);
                                    return l.firstPaint = k("first-paint"),
                                    l.firstContentfulPaint = k("first-contentful-paint"),
                                    p && (p.icTag && (l.icTag = p.icTag),
                                    l.siteToken = p.token),
                                    void 0 !== t && (delete l.timings,
                                    delete l.memory),
                                    l
                                }(n);
                                r && p && (r.resources = [],
                                p && ((0,
                                o.sendObjectBeacon)("", r, function() {}, !1, P),
                                void 0 !== p.forward && void 0 !== p.forward.url && (0,
                                o.sendObjectBeacon)("", r, function() {}, !1, p.forward.url)))
                            }
                              , D = function() {
                                var t = function() {
                                    var t = u.getEntriesByType("navigation")[0]
                                      , r = "";
                                    try {
                                        r = "function" == typeof u.getEntriesByType ? new URL(null == t ? void 0 : t.name).pathname : n ? new URL(n).pathname : window.location.pathname
                                    } catch (e) {}
                                    var o = {
                                        referrer: document.referrer || "",
                                        eventType: i.EventType.WebVitalsV2,
                                        versions: {
                                            js: "2026.5.0"
                                        },
                                        pageloadId: d,
                                        location: e(),
                                        landingPath: r,
                                        startTime: R(),
                                        nt: b,
                                        serverTimings: M()
                                    };
                                    return p && (p.version && (o.versions.fl = p.version),
                                    p.icTag && (o.icTag = p.icTag),
                                    o.siteToken = p.token),
                                    E && ["lcp", "cls", "fcp", "ttfb", "inp"].forEach(function(e) {
                                        o[e] = {
                                            value: -1,
                                            path: void 0
                                        },
                                        E[e] && void 0 !== E[e].value && (o[e] = E[e])
                                    }),
                                    B(o),
                                    o
                                }();
                                p && (0,
                                o.sendObjectBeacon)("", t, function() {}, !0, P)
                            }
                              , I = function() {
                                var t = window.__cfRl && window.__cfRl.done || window.__cfQR && window.__cfQR.done;
                                t ? t.then(C) : C(),
                                w = {
                                    id: d,
                                    url: e(),
                                    ts: (new Date).getTime(),
                                    triggered: !0
                                }
                            };
                            "complete" === window.document.readyState ? I() : window.addEventListener("load", function() {
                                window.setTimeout(I)
                            });
                            var A = function() {
                                return L && 0 === v.filter(function(e) {
                                    return e.id === d
                                }).length
                            }
                              , U = function(e) {
                                v.push({
                                    id: d,
                                    url: e,
                                    ts: (new Date).getTime()
                                }),
                                v.length > 3 && v.shift()
                            };
                            L && (n = e(),
                            function(n) {
                                var r = n.pushState;
                                if (r) {
                                    var i = function() {
                                        d = (0,
                                        c.v4)()
                                    };
                                    n.pushState = function(o, a, c) {
                                        t = e(c);
                                        var s = e()
                                          , u = !0;
                                        return t == s && (u = !1),
                                        u && (A() && ((null == w ? void 0 : w.url) == s && (null == w ? void 0 : w.triggered) || C(s),
                                        U(s)),
                                        i()),
                                        r.apply(n, [o, a, c])
                                    }
                                    ,
                                    window.addEventListener("popstate", function(n) {
                                        A() && ((null == w ? void 0 : w.url) == t && (null == w ? void 0 : w.triggered) || C(t),
                                        U(t)),
                                        t = e(),
                                        i()
                                    })
                                }
                            }(window.history))
                        }
                    }
                    function O(e) {
                        var t, n, r, i, o, a, c, s = window.location.pathname;
                        switch (b || (b = e.navigationType),
                        "INP" !== e.name && (E[e.name.toLowerCase()] = {
                            value: e.value,
                            path: s
                        }),
                        e.name) {
                        case "CLS":
                            (c = e.attribution) && E.cls && (E.cls.element = c.largestShiftTarget,
                            E.cls.currentRect = null === (t = c.largestShiftSource) || void 0 === t ? void 0 : t.currentRect,
                            E.cls.previousRect = null === (n = c.largestShiftSource) || void 0 === n ? void 0 : n.previousRect);
                            break;
                        case "LCP":
                            (c = e.attribution) && E.lcp && (E.lcp.element = c.element,
                            E.lcp.size = null === (r = c.lcpEntry) || void 0 === r ? void 0 : r.size,
                            E.lcp.url = c.url,
                            E.lcp.rld = c.resourceLoadDelay,
                            E.lcp.rlt = c.resourceLoadDuration,
                            E.lcp.erd = c.elementRenderDelay,
                            E.lcp.it = null === (i = c.lcpResourceEntry) || void 0 === i ? void 0 : i.initiatorType,
                            E.lcp.fp = null === (a = null === (o = c.lcpEntry) || void 0 === o ? void 0 : o.element) || void 0 === a ? void 0 : a.getAttribute("fetchpriority"));
                            break;
                        case "INP":
                            (null == E.inp || Number(E.inp.value) < Number(e.value)) && (E.inp = {
                                value: Number(e.value),
                                path: s
                            },
                            (c = e.attribution) && E.inp && (E.inp.element = c.interactionTarget,
                            E.inp.name = c.interactionType,
                            E.inp.idy = c.inputDelay,
                            E.inp.pdn = c.processingDuration,
                            E.inp.pdy = c.presentationDelay))
                        }
                    }
                    function R() {
                        return u.timeOrigin
                    }
                    function M() {
                        if (p && p.serverTiming) {
                            for (var e = [], t = 0, n = ["navigation", "resource"]; t < n.length; t++)
                                for (var r = n[t], i = 0, o = u.getEntriesByType(r); i < o.length; i++) {
                                    var a = o[i]
                                      , c = a.name
                                      , s = a.serverTiming;
                                    if (s) {
                                        if ("resource" === r) {
                                            var f = p.serverTiming.location_startswith;
                                            if (!f || !Array.isArray(f))
                                                continue;
                                            for (var l = !1, d = 0, v = f; d < v.length; d++) {
                                                var m = v[d];
                                                if (c.startsWith(m)) {
                                                    l = !0;
                                                    break
                                                }
                                            }
                                            if (!l)
                                                continue
                                        }
                                        for (var g = 0, h = s; g < h.length; g++) {
                                            var y = h[g]
                                              , T = y.name
                                              , w = y.description
                                              , b = y.duration;
                                            if (p.serverTiming.name && p.serverTiming.name[T])
                                                try {
                                                    var S = new URL(c);
                                                    e.push({
                                                        location: "resource" === r ? "".concat(S.origin).concat(S.pathname) : void 0,
                                                        name: T,
                                                        dur: b,
                                                        desc: w
                                                    })
                                                } catch (e) {}
                                        }
                                    }
                                }
                            return e
                        }
                    }
                    function B(e) {
                        if ("function" == typeof u.getEntriesByType) {
                            var t = u.getEntriesByType("navigation")
                              , n = {};
                            e.timingsV2 = {},
                            t && t[0] && (t[0].nextHopProtocol && (n.nextHopProtocol = t[0].nextHopProtocol),
                            t[0].transferSize && (n.transferSize = t[0].transferSize),
                            t[0].decodedBodySize && (n.decodedBodySize = t[0].decodedBodySize),
                            e.dt = t[0].deliveryType),
                            (0,
                            s.buildTimingsObject)(n, e.timingsV2, s.timingsV2TargetKeys)
                        }
                    }
                    function k(e) {
                        var t;
                        if ("first-contentful-paint" === e && E.fcp && E.fcp.value)
                            return E.fcp.value;
                        if ("function" == typeof u.getEntriesByType) {
                            var n = null === (t = u.getEntriesByType("paint")) || void 0 === t ? void 0 : t.filter(function(t) {
                                return t.name === e
                            })[0];
                            return n ? n.startTime : 0
                        }
                        return 0
                    }
                }()
            }()
        }
    }
      , t = {};
    function n(r) {
        var i = t[r];
        if (void 0 !== i)
            return i.exports;
        var o = t[r] = {
            exports: {}
        };
        return e[r].call(o.exports, o, o.exports, n),
        o.exports
    }
    n.d = function(e, t) {
        for (var r in t)
            n.o(t, r) && !n.o(e, r) && Object.defineProperty(e, r, {
                enumerable: !0,
                get: t[r]
            })
    }
    ,
    n.o = function(e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
    }
    ,
    n.r = function(e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
            value: "Module"
        }),
        Object.defineProperty(e, "__esModule", {
            value: !0
        })
    }
    ,
    n(935)
}();

.widget-sheet-container {
    flex: 1
}

.switcherOuter {
    display: flex;
    overflow: hidden;
    font-size: 10pt;
    border-style: none;
    border-width: 0
}

.switcherArrows {
    display: flex;
    flex-direction: column
}

.switcherArrow {
    overflow: hidden;
    height: 13px;
    width: 13px;
    font-size: 6pt;
    border-style: none;
    text-align: center;
    cursor: pointer
}

.switcherContent {
    flex: 1;
    overflow: hidden;
    font-size: 8pt;
    border-style: none
}

.switcherTable {
    border-style: none;
    border-spacing: 0;
    padding-left: 6px;
    left: 0;
    font-size: 8pt;
    vertical-align: middle;
    height: 100%
}

.switcherItem {
    color: #04409f;
    font-size: 11px;
    padding: 2px 7px;
    white-space: nowrap;
    text-decoration: underline;
    cursor: pointer
}

.switcherItemActive {
    padding: 2px 7px;
    white-space: nowrap;
    background-color: var(--gm3-sys-color-surface,#fff);
    font-weight: 500;
    font-size: 11px;
    border-left: 1px solid #ababab;
    border-bottom: 1px solid #ababab;
    border-right: 1px solid #ababab;
    text-decoration: none
}

.switcherPageFrame {
    border-style: none
}

/*# sourceMappingURL=trix_widget_ltr.css.map */

(function() {
    var k = typeof Object.defineProperties == "function" ? Object.defineProperty : function(a, b, c) {
        if (a == Array.prototype || a == Object.prototype)
            return a;
        a[b] = c.value;
        return a
    }
    ;
    function aa(a) {
        a = ["object" == typeof globalThis && globalThis, a, "object" == typeof window && window, "object" == typeof self && self, "object" == typeof global && global];
        for (var b = 0; b < a.length; ++b) {
            var c = a[b];
            if (c && c.Math == Math)
                return c
        }
        throw Error("Cannot find global object");
    }
    var ba = aa(this);
    function l(a, b) {
        if (b)
            a: {
                var c = ba;
                a = a.split(".");
                for (var d = 0; d < a.length - 1; d++) {
                    var e = a[d];
                    if (!(e in c))
                        break a;
                    c = c[e]
                }
                a = a[a.length - 1];
                d = c[a];
                b = b(d);
                b != d && b != null && k(c, a, {
                    configurable: !0,
                    writable: !0,
                    value: b
                })
            }
    }
    l("Symbol", function(a) {
        function b(f) {
            if (this instanceof b)
                throw new TypeError("Symbol is not a constructor");
            return new c(d + (f || "") + "_" + e++,f)
        }
        function c(f, g) {
            this.g = f;
            k(this, "description", {
                configurable: !0,
                writable: !0,
                value: g
            })
        }
        if (a)
            return a;
        c.prototype.toString = function() {
            return this.g
        }
        ;
        var d = "jscomp_symbol_" + (Math.random() * 1E9 >>> 0) + "_"
          , e = 0;
        return b
    });
    l("Symbol.dispose", function(a) {
        return a ? a : Symbol("Symbol.dispose")
    });
    /*

 Copyright The Closure Library Authors.
 SPDX-License-Identifier: Apache-2.0
*/
    var m = this || self;
    function ca(a) {
        var b = typeof a;
        b = b != "object" ? b : a ? Array.isArray(a) ? "array" : b : "null";
        return b == "array" || b == "object" && typeof a.length == "number"
    }
    function n(a) {
        var b = typeof a;
        return b == "object" && a != null || b == "function"
    }
    function da(a, b, c) {
        return a.call.apply(a.bind, arguments)
    }
    function ea(a, b, c) {
        if (!a)
            throw Error();
        if (arguments.length > 2) {
            var d = Array.prototype.slice.call(arguments, 2);
            return function() {
                var e = Array.prototype.slice.call(arguments);
                Array.prototype.unshift.apply(e, d);
                return a.apply(b, e)
            }
        }
        return function() {
            return a.apply(b, arguments)
        }
    }
    function p(a, b, c) {
        p = Function.prototype.bind && Function.prototype.bind.toString().indexOf("native code") != -1 ? da : ea;
        return p.apply(null, arguments)
    }
    function q(a, b) {
        function c() {}
        c.prototype = b.prototype;
        a.B = b.prototype;
        a.prototype = new c;
        a.prototype.constructor = a;
        a.O = function(d, e, f) {
            for (var g = Array(arguments.length - 2), h = 2; h < arguments.length; h++)
                g[h - 2] = arguments[h];
            return b.prototype[e].apply(d, g)
        }
    }
    ;var r;
    var fa = Array.prototype.indexOf ? function(a, b) {
        return Array.prototype.indexOf.call(a, b, void 0)
    }
    : function(a, b) {
        if (typeof a === "string")
            return typeof b !== "string" || b.length != 1 ? -1 : a.indexOf(b, 0);
        for (var c = 0; c < a.length; c++)
            if (c in a && a[c] === b)
                return c;
        return -1
    }
      , ha = Array.prototype.forEach ? function(a, b) {
        Array.prototype.forEach.call(a, b, void 0)
    }
    : function(a, b) {
        for (var c = a.length, d = typeof a === "string" ? a.split("") : a, e = 0; e < c; e++)
            e in d && b.call(void 0, d[e], e, a)
    }
    ;
    function ia(a) {
        var b = a.length;
        if (b > 0) {
            for (var c = Array(b), d = 0; d < b; d++)
                c[d] = a[d];
            return c
        }
        return []
    }
    ;function t(a, b, c) {
        for (var d in a)
            b.call(c, a[d], d, a)
    }
    var u = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
    function ja(a, b) {
        for (var c, d, e = 1; e < arguments.length; e++) {
            d = arguments[e];
            for (c in d)
                a[c] = d[c];
            for (var f = 0; f < u.length; f++)
                c = u[f],
                Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c])
        }
    }
    ;function ka(a, b) {
        t(b, function(c, d) {
            d == "style" ? a.style.cssText = c : d == "class" ? a.className = c : d == "for" ? a.htmlFor = c : la.hasOwnProperty(d) ? a.setAttribute(la[d], c) : d.lastIndexOf("aria-", 0) == 0 || d.lastIndexOf("data-", 0) == 0 ? a.setAttribute(d, c) : a[d] = c
        })
    }
    var la = {
        cellpadding: "cellPadding",
        cellspacing: "cellSpacing",
        colspan: "colSpan",
        frameborder: "frameBorder",
        height: "height",
        maxlength: "maxLength",
        nonce: "nonce",
        role: "role",
        rowspan: "rowSpan",
        type: "type",
        usemap: "useMap",
        valign: "vAlign",
        width: "width"
    };
    function ma(a, b, c) {
        function d(h) {
            h && b.appendChild(typeof h === "string" ? a.createTextNode(h) : h)
        }
        for (var e = 2; e < c.length; e++) {
            var f = c[e];
            if (!ca(f) || n(f) && f.nodeType > 0)
                d(f);
            else {
                a: {
                    if (f && typeof f.length == "number") {
                        if (n(f)) {
                            var g = typeof f.item == "function" || typeof f.item == "string";
                            break a
                        }
                        if (typeof f === "function") {
                            g = typeof f.item == "function";
                            break a
                        }
                    }
                    g = !1
                }
                ha(g ? ia(f) : f, d)
            }
        }
    }
    function v(a) {
        for (var b; b = a.firstChild; )
            a.removeChild(b)
    }
    function w(a) {
        return a.contentDocument || a.contentWindow.document
    }
    function x(a) {
        this.h = a || m.document || document
    }
    x.prototype.g = function(a, b, c) {
        var d = this.h
          , e = arguments
          , f = e[1];
        var g = String(e[0]);
        g = String(g);
        d.contentType === "application/xhtml+xml" && (g = g.toLowerCase());
        g = d.createElement(g);
        f && (typeof f === "string" ? g.className = f : Array.isArray(f) ? g.className = f.join(" ") : ka(g, f));
        e.length > 2 && ma(d, g, e);
        return g
    }
    ;
    function y() {
        this.j = this.j;
        this.l = this.l
    }
    y.prototype.j = !1;
    y.prototype.dispose = function() {
        this.j || (this.j = !0,
        this.h())
    }
    ;
    y.prototype[Symbol.dispose] = function() {
        this.dispose()
    }
    ;
    y.prototype.h = function() {
        if (this.l)
            for (; this.l.length; )
                this.l.shift()()
    }
    ;
    function z(a, b) {
        this.type = a;
        this.g = this.target = b;
        this.defaultPrevented = !1
    }
    z.prototype.h = function() {
        this.defaultPrevented = !0
    }
    ;
    var na = function() {
        if (!m.addEventListener || !Object.defineProperty)
            return !1;
        var a = !1
          , b = Object.defineProperty({}, "passive", {
            get: function() {
                a = !0
            }
        });
        try {
            var c = function() {};
            m.addEventListener("test", c, b);
            m.removeEventListener("test", c, b)
        } catch (d) {}
        return a
    }();
    function A(a, b) {
        z.call(this, a ? a.type : "");
        this.relatedTarget = this.g = this.target = null;
        this.button = this.screenY = this.screenX = this.clientY = this.clientX = 0;
        this.key = "";
        this.keyCode = 0;
        this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;
        this.state = null;
        this.pointerId = 0;
        this.pointerType = "";
        this.I = null;
        a && this.init(a, b)
    }
    q(A, z);
    A.prototype.init = function(a, b) {
        var c = this.type = a.type
          , d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;
        this.target = a.target || a.srcElement;
        this.g = b;
        b = a.relatedTarget;
        b || (c == "mouseover" ? b = a.fromElement : c == "mouseout" && (b = a.toElement));
        this.relatedTarget = b;
        d ? (this.clientX = d.clientX !== void 0 ? d.clientX : d.pageX,
        this.clientY = d.clientY !== void 0 ? d.clientY : d.pageY,
        this.screenX = d.screenX || 0,
        this.screenY = d.screenY || 0) : (this.clientX = a.clientX !== void 0 ? a.clientX : a.pageX,
        this.clientY = a.clientY !== void 0 ? a.clientY : a.pageY,
        this.screenX = a.screenX || 0,
        this.screenY = a.screenY || 0);
        this.button = a.button;
        this.keyCode = a.keyCode || 0;
        this.key = a.key || "";
        this.ctrlKey = a.ctrlKey;
        this.altKey = a.altKey;
        this.shiftKey = a.shiftKey;
        this.metaKey = a.metaKey;
        this.pointerId = a.pointerId || 0;
        this.pointerType = a.pointerType;
        this.state = a.state;
        this.I = a;
        a.defaultPrevented && A.B.h.call(this)
    }
    ;
    A.prototype.h = function() {
        A.B.h.call(this);
        var a = this.I;
        a.preventDefault ? a.preventDefault() : a.returnValue = !1
    }
    ;
    var B = "closure_listenable_" + (Math.random() * 1E6 | 0);
    var oa = 0;
    function pa(a, b, c, d, e) {
        this.listener = a;
        this.proxy = null;
        this.src = b;
        this.type = c;
        this.capture = !!d;
        this.H = e;
        this.key = ++oa;
        this.A = this.G = !1
    }
    function D(a) {
        a.A = !0;
        a.listener = null;
        a.proxy = null;
        a.src = null;
        a.H = null
    }
    ;function E(a) {
        this.src = a;
        this.g = {};
        this.h = 0
    }
    E.prototype.add = function(a, b, c, d, e) {
        var f = a.toString();
        a = this.g[f];
        a || (a = this.g[f] = [],
        this.h++);
        var g = F(a, b, d, e);
        g > -1 ? (b = a[g],
        c || (b.G = !1)) : (b = new pa(b,this.src,f,!!d,e),
        b.G = c,
        a.push(b));
        return b
    }
    ;
    function G(a, b) {
        var c = b.type;
        if (c in a.g) {
            var d = a.g[c], e = fa(d, b), f;
            (f = e >= 0) && Array.prototype.splice.call(d, e, 1);
            f && (D(b),
            a.g[c].length == 0 && (delete a.g[c],
            a.h--))
        }
    }
    function F(a, b, c, d) {
        for (var e = 0; e < a.length; ++e) {
            var f = a[e];
            if (!f.A && f.listener == b && f.capture == !!c && f.H == d)
                return e
        }
        return -1
    }
    ;var H = "closure_lm_" + (Math.random() * 1E6 | 0)
      , I = {}
      , qa = 0;
    function J(a, b, c, d, e) {
        if (d && d.once)
            return K(a, b, c, d, e);
        if (Array.isArray(b)) {
            for (var f = 0; f < b.length; f++)
                J(a, b[f], c, d, e);
            return null
        }
        c = L(c);
        return a && a[B] ? a.g.add(String(b), c, !1, n(d) ? !!d.capture : !!d, e) : ra(a, b, c, !1, d, e)
    }
    function ra(a, b, c, d, e, f) {
        if (!b)
            throw Error("Invalid event type");
        var g = n(e) ? !!e.capture : !!e
          , h = M(a);
        h || (a[H] = h = new E(a));
        c = h.add(b, c, d, g, f);
        if (c.proxy)
            return c;
        d = sa();
        c.proxy = d;
        d.src = a;
        d.listener = c;
        if (a.addEventListener)
            na || (e = g),
            e === void 0 && (e = !1),
            a.addEventListener(b.toString(), d, e);
        else if (a.attachEvent)
            a.attachEvent(ta(b.toString()), d);
        else if (a.addListener && a.removeListener)
            a.addListener(d);
        else
            throw Error("addEventListener and attachEvent are unavailable.");
        qa++;
        return c
    }
    function sa() {
        function a(c) {
            return b.call(a.src, a.listener, c)
        }
        var b = ua;
        return a
    }
    function K(a, b, c, d, e) {
        if (Array.isArray(b)) {
            for (var f = 0; f < b.length; f++)
                K(a, b[f], c, d, e);
            return null
        }
        c = L(c);
        return a && a[B] ? a.g.add(String(b), c, !0, n(d) ? !!d.capture : !!d, e) : ra(a, b, c, !0, d, e)
    }
    function va(a, b, c, d, e) {
        if (Array.isArray(b))
            for (var f = 0; f < b.length; f++)
                va(a, b[f], c, d, e);
        else
            (d = n(d) ? !!d.capture : !!d,
            c = L(c),
            a && a[B]) ? (a = a.g,
            b = String(b).toString(),
            b in a.g && (f = a.g[b],
            c = F(f, c, d, e),
            c > -1 && (D(f[c]),
            Array.prototype.splice.call(f, c, 1),
            f.length == 0 && (delete a.g[b],
            a.h--)))) : a && (a = M(a)) && (b = a.g[b.toString()],
            a = -1,
            b && (a = F(b, c, d, e)),
            (c = a > -1 ? b[a] : null) && N(c))
    }
    function N(a) {
        if (typeof a !== "number" && a && !a.A) {
            var b = a.src;
            if (b && b[B])
                G(b.g, a);
            else {
                var c = a.type
                  , d = a.proxy;
                b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(ta(c), d) : b.addListener && b.removeListener && b.removeListener(d);
                qa--;
                (c = M(b)) ? (G(c, a),
                c.h == 0 && (c.src = null,
                b[H] = null)) : D(a)
            }
        }
    }
    function ta(a) {
        return a in I ? I[a] : I[a] = "on" + a
    }
    function ua(a, b) {
        if (a.A)
            a = !0;
        else {
            b = new A(b,this);
            var c = a.listener
              , d = a.H || a.src;
            a.G && N(a);
            a = c.call(d, b)
        }
        return a
    }
    function M(a) {
        a = a[H];
        return a instanceof E ? a : null
    }
    var O = "__closure_events_fn_" + (Math.random() * 1E9 >>> 0);
    function L(a) {
        if (typeof a === "function")
            return a;
        a[O] || (a[O] = function(b) {
            return a.handleEvent(b)
        }
        );
        return a[O]
    }
    ;function P(a) {
        y.call(this);
        this.i = a;
        this.g = {}
    }
    q(P, y);
    var wa = [];
    function Q(a, b, c, d) {
        Array.isArray(c) || (c && (wa[0] = c.toString()),
        c = wa);
        for (var e = 0; e < c.length; e++) {
            var f = J(b, c[e], d || a.handleEvent, !1, a.i || a);
            if (!f)
                break;
            a.g[f.key] = f
        }
        return a
    }
    function xa(a) {
        t(a.g, function(b, c) {
            this.g.hasOwnProperty(c) && N(b)
        }, a);
        a.g = {}
    }
    P.prototype.h = function() {
        P.B.h.call(this);
        xa(this)
    }
    ;
    P.prototype.handleEvent = function() {
        throw Error("EventHandler.handleEvent not implemented");
    }
    ;
    function R(a, b, c) {
        this.C = c;
        this.v = this.j = null;
        this.g = 1;
        this.u = a ? new x(a.nodeType == 9 ? a : a.ownerDocument || a.document) : r || (r = new x);
        this.D = new P(this);
        a = this.u;
        c = a.g("DIV", "switcherOuter");
        b.appendChild(c);
        this.o = a.g("DIV", "switcherContent", a.g("TABLE", "switcherTable", a.g("TBODY", null, this.J = a.g("TR"))));
        c.appendChild(this.o);
        b = a.g("DIV", "switcherArrows");
        c.appendChild(b);
        this.l = a.g("DIV", "switcherArrow", a.g("B", null, ">"));
        b.appendChild(this.l);
        this.i = a.g("DIV", "switcherArrow", a.g("B", null, "<"));
        b.appendChild(this.i);
        Q(Q(Q(Q(Q(Q(this.D, this.i, "mouseover", this.M), this.l, "mouseover", this.N), this.i, "mouseout", this.K), this.l, "mouseout", this.L), this.i, "mousedown", this.F), this.l, "mousedown", this.F);
        this.h = 0;
        this.m = null
    }
    function ya(a, b) {
        var c = a.J.cells.length
          , d = a.J;
        d.insertCell(c);
        var e = d.cells[c];
        v(e);
        e.appendChild(a.u.h.createTextNode(String(b.name)));
        e.item = b;
        e = d.cells[c];
        e.className = "switcherItem";
        b.initialSheet && S(a, b, e, !1);
        Q(a.D, e, "click", function() {
            return void S(a, b, e, !0)
        });
        return e
    }
    function S(a, b, c, d) {
        b != a.j && (a.j != null && (a.v.className = "switcherItem"),
        a.j = b,
        a.v = c,
        c.className = "switcherItemActive",
        a = a.C,
        a != null && a(b, d))
    }
    function za(a) {
        a.o.scrollLeft += 1 * a.g * a.h
    }
    R.prototype.M = function() {
        var a = this;
        this.g = 1;
        this.h = -1;
        this.m = window.setInterval(function() {
            return void za(a)
        }, 10)
    }
    ;
    R.prototype.N = function() {
        var a = this;
        this.h = this.g = 1;
        this.m = window.setInterval(function() {
            return void za(a)
        }, 10)
    }
    ;
    R.prototype.K = function() {
        window.clearInterval(this.m);
        this.h = 0
    }
    ;
    R.prototype.L = function() {
        window.clearInterval(this.m);
        this.h = 0
    }
    ;
    R.prototype.F = function() {
        this.g < 4 ? this.g++ : this.g = 1
    }
    ;
    R.prototype.cleanup = function() {
        this.C = null
    }
    ;
    function T() {
        y.call(this);
        this.g = new E(this);
        this.D = this;
        this.u = null
    }
    q(T, y);
    T.prototype[B] = !0;
    T.prototype.removeEventListener = function(a, b, c, d) {
        va(this, a, b, c, d)
    }
    ;
    T.prototype.h = function() {
        T.B.h.call(this);
        if (this.g) {
            var a = this.g, b = 0, c;
            for (c in a.g) {
                for (var d = a.g[c], e = 0; e < d.length; e++)
                    ++b,
                    D(d[e]);
                delete a.g[c];
                a.h--
            }
        }
        this.u = null
    }
    ;
    function U(a, b, c, d) {
        b = a.g.g[String(b)];
        if (!b)
            return !0;
        b = b.concat();
        for (var e = !0, f = 0; f < b.length; ++f) {
            var g = b[f];
            if (g && !g.A && g.capture == c) {
                var h = g.listener
                  , C = g.H || g.src;
                g.G && G(a.g, g);
                e = h.call(C, d) !== !1 && e
            }
        }
        return e && !d.defaultPrevented
    }
    ;function V(a, b) {
        T.call(this);
        this.i = a;
        this.F = !!b;
        this.v = Aa(this);
        this.v || (this.m = J(this.i, "load", this.C, !1, this),
        this.o = window.setInterval(p(this.C, this), 100))
    }
    q(V, T);
    V.prototype.m = null;
    function Ba(a) {
        a.o && (window.clearInterval(a.o),
        a.o = null)
    }
    V.prototype.h = function() {
        delete this.i;
        Ba(this);
        N(this.m);
        V.B.h.call(this)
    }
    ;
    function Aa(a) {
        var b = !1;
        try {
            var c = w(a.i).body;
            b = a.F ? !!c && !!c.firstChild : !!c
        } catch (d) {}
        return b
    }
    V.prototype.C = function() {
        if (Aa(this)) {
            Ba(this);
            N(this.m);
            this.m = null;
            this.v = !0;
            var a = this.u;
            if (a) {
                var b = [];
                for (var c = 1; a; a = a.u)
                    b.push(a),
                    ++c
            }
            a = this.D;
            c = "ifload";
            var d = c.type || c;
            if (typeof c === "string")
                c = new z(c,a);
            else if (c instanceof z)
                c.target = c.target || a;
            else {
                var e = c;
                c = new z(d,a);
                ja(c, e)
            }
            e = !0;
            var f;
            if (b)
                for (f = b.length - 1; f >= 0; f--) {
                    var g = c.g = b[f];
                    e = U(g, d, !0, c) && e
                }
            g = c.g = a;
            e = U(g, d, !0, c) && e;
            e = U(g, d, !1, c) && e;
            if (b)
                for (f = 0; f < b.length; f++)
                    g = c.g = b[f],
                    e = U(g, d, !1, c) && e
        }
    }
    ;
    function Ca(a) {
        if (typeof a !== "function")
            if (a && typeof a.handleEvent == "function")
                a = p(a.handleEvent, a);
            else
                throw Error("Invalid listener argument");
        Number(20) > 2147483647 || m.setTimeout(a, 20)
    }
    ;function Da(a, b, c) {
        var d = this;
        this.h = a ? new x(a.nodeType == 9 ? a : a.ownerDocument || a.document) : r || (r = new x);
        this.g = this.j = null;
        var e = this.h
          , f = e.g("DIV", "widget-sheet-container");
        e = e.g("DIV", {
            style: "height:26px;background-color:#eee"
        });
        b.appendChild(f);
        b.appendChild(e);
        this.i = f;
        this.l = a = new R(a,e,function(g, h) {
            return Ea(d, g, h)
        }
        );
        if (c.length) {
            b = null;
            for (f = 0; f < c.length; f++)
                e = ya(a, c[f]),
                f == 0 && (b = e);
            a.j == null && S(a, c[0], b, !1)
        }
        J(this.h.h.defaultView, "message", function(g) {
            g = g.I;
            var h = g.origin
              , C = h.length - 11;
            C >= 0 && h.indexOf(".google.com", C) == C && g.data == "SendKeyboardEvents" && (d.j = g.origin,
            W(d, d.h.h),
            d.g && W(d, w(d.g)))
        })
    }
    function Ea(a, b, c) {
        Ca(function() {
            return void Fa(a, b, c)
        })
    }
    function Fa(a, b, c) {
        var d = b.pageUrl
          , e = a.i;
        v(e);
        a.g = null;
        d = a.h.g("IFRAME", {
            id: "pageswitcher-content",
            style: "display: block; width: 100%; height:100%;",
            frameBorder: "0",
            marginHeight: "0",
            marginWidth: "0",
            src: d
        });
        var f = new V(d,!0);
        K(f, "ifload", function() {
            a.g = f.i;
            f.dispose();
            a.j && a.g && W(a, w(a.g))
        });
        e.appendChild(d);
        c && b.gid !== void 0 && (window.location.hash = "#gid=" + b.gid)
    }
    function W(a, b) {
        J(b, ["keydown", "keyup", "keypress"], function(c) {
            if (a.j) {
                var d = a.h.h.defaultView.parent;
                d && d.postMessage && d.postMessage(JSON.stringify({
                    type: c.type,
                    ctrlKey: c.ctrlKey,
                    altKey: c.altKey,
                    shiftKey: c.shiftKey,
                    metaKey: c.metaKey,
                    keyCode: c.keyCode
                }), a.j)
            }
        })
    }
    Da.prototype.cleanup = function() {
        this.l.cleanup();
        this.l = null;
        v(this.i);
        this.i = null
    }
    ;
    function Ga(a, b, c, d, e, f, g, h) {
        return new Da(b,c,h)
    }
    for (var X = ["_getWGTPageSwitcher"], Y = m, Z; X.length && (Z = X.shift()); )
        X.length || Ga === void 0 ? Y[Z] && Y[Z] !== Object.prototype[Z] ? Y = Y[Z] : Y = Y[Z] = {} : Y[Z] = Ga;
}
).call(this);

/* armenian */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl1pynSEg.woff2) format('woff2');
  unicode-range: U+0308, U+0530-058F, U+2010, U+2024, U+25CC, U+FB13-FB17;
}
/* bengali */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl3pynSEg.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1;
}
/* canadian-aboriginal */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlKpynSEg.woff2) format('woff2');
  unicode-range: U+02C7, U+02D8-02D9, U+02DB, U+0307, U+1400-167F, U+18B0-18F5, U+25CC, U+11AB0-11ABF;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlopynSEg.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlhpynSEg.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* devanagari */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlkpynSEg.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
/* ethiopic */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl0pynSEg.woff2) format('woff2');
  unicode-range: U+030E, U+1200-1399, U+2D80-2DDE, U+AB01-AB2E, U+1E7E0-1E7E6, U+1E7E8-1E7EB, U+1E7ED-1E7EE, U+1E7F0-1E7FE;
}
/* georgian */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl6pynSEg.woff2) format('woff2');
  unicode-range: U+0589, U+10A0-10FF, U+1C90-1CBA, U+1CBD-1CBF, U+205A, U+2D00-2D2F, U+2E31;
}
/* greek-ext */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlppynSEg.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlmpynSEg.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* gujarati */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl-pynSEg.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0A80-0AFF, U+200C-200D, U+20B9, U+25CC, U+A830-A839;
}
/* gurmukhi */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlGpynSEg.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0A01-0A76, U+200C-200D, U+20B9, U+25CC, U+262C, U+A830-A839;
}
/* hebrew */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlnpynSEg.woff2) format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* khmer */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlupynSEg.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
/* lao */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlspynSEg.woff2) format('woff2');
  unicode-range: U+0E81-0EDF, U+200C-200D, U+25CC;
}
/* malayalam */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl9pynSEg.woff2) format('woff2');
  unicode-range: U+0307, U+0323, U+0951-0952, U+0964-0965, U+0D00-0D7F, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A832;
}
/* oriya */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl8pynSEg.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0B01-0B77, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC;
}
/* sinhala */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl4pynSEg.woff2) format('woff2');
  unicode-range: U+0964-0965, U+0D81-0DF4, U+1CF2, U+200C-200D, U+25CC, U+111E1-111F4;
}
/* symbols */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJkLpynSEg.woff2) format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* tamil */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlzpynSEg.woff2) format('woff2');
  unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC;
}
/* telugu */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJl5pynSEg.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0C00-0C7F, U+1CDA, U+1CF2, U+200C-200D, U+25CC;
}
/* thai */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlxpynSEg.woff2) format('woff2');
  unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}
/* vietnamese */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlqpynSEg.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJlrpynSEg.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/googlesans/v69/4Ua_rENHsxJlGDuGo1OIlJfC6l_24rlCK1Yo_Iqcsih3SAyH6cAwhX9RFD48TE63OOYKtrwEIJllpyk.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

