From 15a399937832a4f7e3fe63f364cadcecac3ee222 Mon Sep 17 00:00:00 2001 From: yxw <17074267@qq.com> Date: Sun, 29 Oct 2023 16:52:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/app.css | 356 ++ css/bootstrap.min.css | 6 + css/roundslider.min.css | 2 + images/dotline.png | Bin 0 -> 201548 bytes js/jquery-3.7.1.js | 10716 ++++++++++++++++++++++++++++++++++++++ js/roundslider.min.js | 2 + login.html | 61 + network.html | 95 + password.html | 82 + test.html | 114 + volume.html | 178 + 11 files changed, 11612 insertions(+) create mode 100644 css/app.css create mode 100644 css/bootstrap.min.css create mode 100644 css/roundslider.min.css create mode 100644 images/dotline.png create mode 100644 js/jquery-3.7.1.js create mode 100644 js/roundslider.min.js create mode 100644 login.html create mode 100644 network.html create mode 100644 password.html create mode 100644 test.html create mode 100644 volume.html diff --git a/css/app.css b/css/app.css new file mode 100644 index 0000000..c540553 --- /dev/null +++ b/css/app.css @@ -0,0 +1,356 @@ +body, +html { + height: 100%; +} + +body { + background-color: #1B1D1E; + color: #fff; +} + +.content-warp { + background-color: #1E1F21 !important; +} + +.dotblock { + background-image: url(../images/dotline.png); + max-height: 80px; + color: #fff; + font-size: 16px; + font-weight: bold; + background-size: cover; +} + +.login { + width: 600px; + background-color: #1E1E1E; +} + +.login-title { + font-size: 30px; + font-weight: bold; +} + +.login-form { + width: 400px; +} + +.login input { + /* background-color: #000; */ + color: #fff; +} + +.login input::placeholder { + color: #888888; + font-size: 0.8em; +} + +.login input { + border: none; + background: #000; + box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.35), 0 2px 0 rgba(255, 255, 255, 0.15); + color: #fff; +} + +.login button { + border: none; + background: #191919; + box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.15), 0 2px 2px rgba(0, 0, 0, 0.35); + color: #fff; +} + +.nav { + border-top: 2px solid black; + border-bottom: 2px solid black; + background-color: #282828; + font-size: 14px; +} + +.nav>div { + border-left: 2px solid black; + padding: 10px 25px; +} + +.nav>div.last { + border-right: 2px solid black; +} + +.nav>div.active { + background-color: #000; + /*设置发光效果*/ + box-shadow: #1BC8F2 0px 0px 14px inset; + color: #1BC8F2; + background: linear-gradient(to bottom, #000, #353535, #000); +} + + +.nav>div:hover { + background-color: #000; + /*设置发光效果*/ + /* box-shadow: #1BC8F2 0px 0px 14px inset; */ + color: #1BC8F2; + background: linear-gradient(to bottom, #000, #353535, #000); + cursor: pointer; +} + +.nav a { + text-decoration: none; +} + +.nav a:visited { + color: #fff; +} + +.password-form { + width: 800px; +} + +.form input { + border: none; + background: #000; + box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.35), 0 2px 0 rgba(255, 255, 255, 0.15); + color: #fff; +} + +.form input::placeholder { + color: #888888; + font-size: 0.8em; +} + +.col-form-label { + text-align: end; +} + +.form button { + border: none; + background: #191919; + box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.15), 0 2px 2px rgba(0, 0, 0, 0.35); + color: #fff; +} + + + +.ruleraxisy { + /* position: absolute; */ + background-color: #303030; + background-size: 20px 50px; + background-image: linear-gradient(0deg, #696969 0, #696969 2%, transparent 2%), linear-gradient(90deg, #303030 50%, transparent 50%), linear-gradient(0deg, transparent 50%, #696969 50%, #696969 52%, transparent 52%), linear-gradient(90deg, #303030 70%, transparent 70%), linear-gradient(0deg, transparent 10%, #696969 10%, #696969 12%, transparent 12%, transparent 20%, #696969 20%, #696969 22%, transparent 22%, transparent 30%, #696969 30%, #696969 32%, transparent 32%, transparent 40%, #696969 40%, #696969 42%, transparent 42%, transparent 60%, #696969 60%, #696969 62%, transparent 62%, transparent 70%, #696969 70%, #696969 72%, transparent 72%, transparent 80%, #696969 80%, #696969 82%, transparent 82%, transparent 90%, #696969 90%, #696969 92%, transparent 92%); + background-repeat: repeat-y; + width: 20px; + height: 300px; + /* left: 30px; */ + /* top: 50px; */ + min-height: 20px; +} + +.scaley { + list-style-type: none; + /* position: absolute; */ + left: 0px; + top: -25px; + margin: 0; + padding: 0; + width: 50px; + height: 100%; + overflow: hidden; + white-space: nowrap; + color: #b1b4b4; + font-size: 0; + text-shadow: 0px 1px 1px #000; + -moz-user-select: none; + /*火狐*/ + -webkit-user-select: none; + /*webkit浏览器*/ + -ms-user-select: none; + /*IE10*/ + -khtml-user-select: none; + /*早期浏览器*/ + user-select: none; + z-index: 1; +} + +.scaley li { + writing-mode: vertical-lr; + height: 50px; + text-align: center; + font-size: 11px; +} + +.container { + padding-top: 40px; + position: relative; + display: inline-block; + top: 100%; + left: 50%; + transform: translate(-50%, -100%); + padding-bottom: 20px; + } + @media (min-height: 500px) { + .container { + position: absolute; + top: 50%; + transform: translate(-50%, -50%); + padding-bottom: 0; + } + } + + .range-slider { + display: inline-block; + width: 40px; + position: relative; + text-align: center; + height: 300px; + max-height: 100%; + } + .range-slider:before { + position: absolute; + top: -2em; + left: 0.5em; + content: attr(data-slider-value) "%"; + color: white; + font-size: 90%; + } + .range-slider__thumb { + position: absolute; + left: 5px; + width: 30px; + height: 30px; + line-height: 30px; + background: white; + color: #777; + font-size: 50%; + box-shadow: 0 0 0 4px #3d3d4a; + border-radius: 50%; + pointer-events: none; + } + .range-slider__bar { + left: 16px; + bottom: 0; + position: absolute; + background: linear-gradient(dodgerblue, blue); + pointer-events: none; + width: 8px; + border-radius: 10px; + } + .range-slider input[type=range][orient=vertical] { + position: relative; + margin: 0; + height: 100%; + width: 100%; + display: inline-block; + position: relative; + writing-mode: bt-lr; + -webkit-appearance: slider-vertical; + } + .range-slider input[type=range][orient=vertical]::-webkit-slider-runnable-track, .range-slider input[type=range][orient=vertical]::-webkit-slider-thumb { + -webkit-appearance: none; + } + .range-slider input[type=range][orient=vertical]::-webkit-slider-runnable-track { + border: none; + background: #343440; + width: 8px; + border-color: #343440; + border-radius: 10px; + box-shadow: 0 0 0 2px #3d3d4a; + } + .range-slider input[type=range][orient=vertical]::-moz-range-track { + border: none; + background: #343440; + width: 8px; + border-color: #343440; + border-radius: 10px; + box-shadow: 0 0 0 2px #3d3d4a; + } + .range-slider input[type=range][orient=vertical]::-ms-track { + border: none; + background: #343440; + width: 8px; + border-color: #343440; + border-radius: 10px; + box-shadow: 0 0 0 2px #3d3d4a; + color: transparent; + height: 100%; + } + .range-slider input[type=range][orient=vertical]::-ms-fill-lower, .range-slider input[type=range][orient=vertical]::-ms-fill-upper, .range-slider input[type=range][orient=vertical]::-ms-tooltip { + display: none; + } + .range-slider input[type=range][orient=vertical]::-webkit-slider-thumb { + width: 30px; + height: 30px; + opacity: 0; + } + .range-slider input[type=range][orient=vertical]::-moz-range-thumb { + width: 30px; + height: 30px; + opacity: 0; + } + .range-slider input[type=range][orient=vertical]::-ms-thumb { + width: 30px; + height: 30px; + opacity: 0; + } + + .theme1 { + background: linear-gradient(pink, deeppink); + } + + .theme2 { + background: linear-gradient(tomato, red); + } + + .theme3 { + background: linear-gradient(yellow, orange); + } + + #handle1 .rs-handle { + background-color: transparent; + border: 8px solid transparent; + border-right-color: black; + margin: -6px 0px 0px 14px !important; + border-width: 6px 104px 6px 4px; +} +#handle1 .rs-handle:before { + display: block; + content: " "; + position: absolute; + height: 22px; + width: 22px; + background: black; + right: -11px; + bottom: -11px; + border-radius: 100px; +} +#handle1 .rs-tooltip { + top: 75%; + font-size: 11px; +} +#handle1 .rs-tooltip div { + text-align: center; + background: orange; + color: white; + border-radius: 4px; + padding: 1px 5px 2px; + margin-top: 4px; +} +#handle1 .rs-range-color { + background-color: #DB5959; +} +#handle1 .rs-path-color { + background-color: #F0C5C5; +} + + + +.progress-4 { + width:120px; + height:20px; + -webkit-mask:linear-gradient(90deg,#000 70%,#0000 0) 0/20%; + background: + linear-gradient(#000 0 0) 0/0% no-repeat + #ddd; + animation:p4 2s infinite steps(6); + } + @keyframes p4 { + 100% {background-size:120%} + } + \ No newline at end of file diff --git a/css/bootstrap.min.css b/css/bootstrap.min.css new file mode 100644 index 0000000..f5910ac --- /dev/null +++ b/css/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/css/roundslider.min.css b/css/roundslider.min.css new file mode 100644 index 0000000..887c287 --- /dev/null +++ b/css/roundslider.min.css @@ -0,0 +1,2 @@ +/*! roundSlider v1.6.1 | (c) 2015-2020, Soundar | MIT license | http://roundsliderui.com/licence.html */ + .rs-ie,.rs-edge,.rs-handle{-ms-touch-action:none;touch-action:none}.rs-control{position:relative;outline:0 none}.rs-container{position:relative}.rs-control *,.rs-control *:before,.rs-control *:after{-webkit-box-sizing:border-box;box-sizing:border-box}.rs-animation .rs-transition{transition:all 0.5s linear 0s}.rs-bar{-webkit-transform-origin:100% 50%;-ms-transform-origin:100% 50%;transform-origin:100% 50%}.rs-control .rs-split .rs-path,.rs-control .rs-overlay1,.rs-control .rs-overlay2{-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.rs-control .rs-overlay{-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.rs-rounded .rs-seperator,.rs-split .rs-path{-webkit-background-clip:padding-box;background-clip:padding-box}.rs-disabled{opacity:.35}.rs-inner-container{height:100%;width:100%;position:absolute;top:0;overflow:hidden}.rs-control .rs-quarter div.rs-block{height:200%;width:200%}.rs-control .rs-half.rs-top div.rs-block,.rs-control .rs-half.rs-bottom div.rs-block{height:200%;width:100%}.rs-control .rs-half.rs-left div.rs-block,.rs-control .rs-half.rs-right div.rs-block{height:100%;width:200%}.rs-control .rs-bottom .rs-block{top:auto;bottom:0}.rs-control .rs-right .rs-block{right:0}.rs-block.rs-outer{border-radius:1000px}.rs-block{height:100%;width:100%;display:block;position:absolute;top:0;overflow:hidden;z-index:3}.rs-block .rs-inner{border-radius:1000px;display:block;height:100%;width:100%;position:relative}.rs-overlay{width:50%}.rs-overlay1,.rs-overlay2{width:100%}.rs-overlay,.rs-overlay1,.rs-overlay2{position:absolute;background-color:#fff;z-index:3;top:0;height:50%}.rs-bar{display:block;position:absolute;bottom:0;height:0;z-index:10}.rs-bar.rs-rounded{z-index:5}.rs-bar .rs-seperator{height:0;display:block;float:left}.rs-bar:not(.rs-rounded) .rs-seperator{border-left:none;border-right:none}.rs-bar.rs-start .rs-seperator{border-top:none}.rs-bar.rs-end .rs-seperator{border-bottom:none}.rs-bar.rs-start.rs-rounded .rs-seperator{border-radius:0 0 1000px 1000px}.rs-bar.rs-end.rs-rounded .rs-seperator{border-radius:1000px 1000px 0 0}.rs-full .rs-bar,.rs-half .rs-bar{width:50%}.rs-half.rs-left .rs-bar,.rs-half.rs-right .rs-bar,.rs-quarter .rs-bar{width:100%}.rs-full .rs-bar,.rs-half.rs-left .rs-bar,.rs-half.rs-right .rs-bar{top:50%}.rs-bottom .rs-bar{top:0}.rs-half.rs-right .rs-bar,.rs-quarter.rs-right .rs-bar{right:100%}.rs-handle.rs-move{cursor:move}.rs-readonly .rs-handle.rs-move{cursor:default}.rs-classic-mode .rs-path{display:block;height:100%;width:100%}.rs-split .rs-path{border-radius:1000px 1000px 0 0;overflow:hidden;height:50%;position:absolute;top:0;z-index:2}.rs-control .rs-svg-container{display:block;position:absolute;top:0}.rs-control .rs-bottom .rs-svg-container{top:auto;bottom:0}.rs-control .rs-right .rs-svg-container{right:0}.rs-tooltip{position:absolute;cursor:default;border:1px solid transparent;z-index:10}.rs-full .rs-tooltip{top:50%;left:50%}.rs-bottom .rs-tooltip{top:0}.rs-top .rs-tooltip{bottom:0}.rs-right .rs-tooltip{left:0}.rs-left .rs-tooltip{right:0}.rs-half.rs-top .rs-tooltip,.rs-half.rs-bottom .rs-tooltip{left:50%}.rs-half.rs-left .rs-tooltip,.rs-half.rs-right .rs-tooltip{top:50%}.rs-tooltip .rs-input{outline:0 none;border:none;background:transparent}.rs-tooltip-text{font-family:verdana;font-size:13px;border-radius:7px;text-align:center;color:inherit}.rs-tooltip.rs-edit{padding:5px 8px}.rs-tooltip.rs-hover,.rs-tooltip.rs-edit:hover{border:1px solid #AAA;cursor:pointer}.rs-readonly .rs-tooltip.rs-edit:hover{border-color:transparent;cursor:default}.rs-tooltip.rs-center{margin:0px!important}.rs-half.rs-top .rs-tooltip.rs-center,.rs-half.rs-bottom .rs-tooltip.rs-center{transform:translate(-50%,0)}.rs-half.rs-left .rs-tooltip.rs-center,.rs-half.rs-right .rs-tooltip.rs-center{transform:translate(0,-50%)}.rs-full .rs-tooltip.rs-center{transform:translate(-50%,-50%)}.rs-tooltip.rs-reset{margin:0px!important;top:0px!important;left:0px!important}.rs-handle{border-radius:1000px;outline:0 none;float:left}.rs-handle.rs-handle-square{border-radius:0}.rs-handle-dot{border:1px solid #AAA;padding:6px}.rs-handle-dot:after{display:block;content:"";border:1px solid #AAA;height:100%;width:100%;border-radius:1000px}.rs-seperator{border:1px solid #AAA}.rs-border{border:1px solid #AAA}.rs-path-color{background-color:#FFF}.rs-range-color{background-color:#54BBE0}.rs-bg-color{background-color:#FFF}.rs-handle{background-color:#838383}.rs-handle-dot{background-color:#FFF}.rs-handle-dot:after{background-color:#838383}.rs-path-inherited .rs-path{opacity:.2}.rs-svg-mode .rs-path{stroke:#FFF}.rs-svg-mode .rs-range{stroke:#54BBE0}.rs-svg-mode .rs-border{stroke:#AAA} \ No newline at end of file diff --git a/images/dotline.png b/images/dotline.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc97269f841103b8a025567616cd6c003691256 GIT binary patch literal 201548 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 literal 0 HcmV?d00001 diff --git a/js/jquery-3.7.1.js b/js/jquery-3.7.1.js new file mode 100644 index 0000000..1a86433 --- /dev/null +++ b/js/jquery-3.7.1.js @@ -0,0 +1,10716 @@ +/*! + * jQuery JavaScript Library v3.7.1 + * https://jquery.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2023-08-28T13:37Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket trac-14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var version = "3.7.1", + + rhtmlSuffix = /HTML$/i, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + + // Retrieve the text value of an array of DOM nodes + text: function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += jQuery.text( node ); + } + } + if ( nodeType === 1 || nodeType === 11 ) { + return elem.textContent; + } + if ( nodeType === 9 ) { + return elem.documentElement.textContent; + } + if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + isXMLDoc: function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Assume HTML when documentElement doesn't yet exist, such as inside + // document fragments. + return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +} +var pop = arr.pop; + + +var sort = arr.sort; + + +var splice = arr.splice; + + +var whitespace = "[\\x20\\t\\r\\n\\f]"; + + +var rtrimCSS = new RegExp( + "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", + "g" +); + + + + +// Note: an element does not contain itself +jQuery.contains = function( a, b ) { + var bup = b && b.parentNode; + + return a === bup || !!( bup && bup.nodeType === 1 && ( + + // Support: IE 9 - 11+ + // IE doesn't have `contains` on SVG. + a.contains ? + a.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); +}; + + + + +// CSS string/identifier serialization +// https://drafts.csswg.org/cssom/#common-serializing-idioms +var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + +function fcssescape( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; +} + +jQuery.escapeSelector = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + + + + +var preferredDoc = document, + pushNative = push; + +( function() { + +var i, + Expr, + outermostContext, + sortInput, + hasDuplicate, + push = pushNative, + + // Local document vars + document, + documentElement, + documentIsHTML, + rbuggyQSA, + matches, + + // Instance-specific data + expando = jQuery.expando, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" + + "loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + + whitespace + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + ID: new RegExp( "^#(" + identifier + ")" ), + CLASS: new RegExp( "^\\.(" + identifier + ")" ), + TAG: new RegExp( "^(" + identifier + "|[*])" ), + ATTR: new RegExp( "^" + attributes ), + PSEUDO: new RegExp( "^" + pseudos ), + CHILD: new RegExp( + "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + bool: new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + needsContext: new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + if ( nonHex ) { + + // Strip the backslash prefix from a non-hex escape sequence + return nonHex; + } + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + return high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes; see `setDocument`. + // Support: IE 9 - 11+, Edge 12 - 18+ + // Removing the function wrapper causes a "Permission Denied" + // error in IE/Edge. + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && nodeName( elem, "fieldset" ); + }, + { dir: "parentNode", next: "legend" } + ); + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android <=4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { + apply: function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + }, + call: function( target ) { + pushNative.apply( target, slice.call( arguments, 1 ) ); + } + }; +} + +function find( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE 9 only + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + push.call( results, elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE 9 only + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + find.contains( context, elem ) && + elem.id === m ) { + + push.call( results, elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when + // strict-comparing two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( newContext != context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = jQuery.escapeSelector( nid ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrimCSS, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties + // (see https://github.com/jquery/sizzle/issues/157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by jQuery selector module + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + return nodeName( elem, "input" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) && + elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11+ + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a jQuery selector context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [node] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +function setDocument( node ) { + var subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + documentElement = document.documentElement; + documentIsHTML = !jQuery.isXMLDoc( document ); + + // Support: iOS 7 only, IE 9 - 11+ + // Older browsers didn't support unprefixed `matches`. + matches = documentElement.matches || + documentElement.webkitMatchesSelector || + documentElement.msMatchesSelector; + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors + // (see trac-13936). + // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`, + // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well. + if ( documentElement.msMatchesSelector && + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 9 - 11+, Edge 12 - 18+ + subWindow.addEventListener( "unload", unloadHandler ); + } + + // Support: IE <10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + documentElement.appendChild( el ).id = jQuery.expando; + return !document.getElementsByName || + !document.getElementsByName( jQuery.expando ).length; + } ); + + // Support: IE 9 only + // Check to see if it's possible to do matchesSelector + // on a disconnected node. + support.disconnectedMatch = assert( function( el ) { + return matches.call( el, "*" ); + } ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // IE/Edge don't support the :scope pseudo-class. + support.scope = assert( function() { + return document.querySelectorAll( ":scope" ); + } ); + + // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only + // Make sure the `:has()` argument is parsed unforgivingly. + // We include `*` in the test to detect buggy implementations that are + // _selectively_ forgiving (specifically when the list includes at least + // one valid selector). + // Note that we treat complete lack of support for `:has()` as if it were + // spec-compliant support, which is fine because use of `:has()` in such + // environments will fail in the qSA path and fall back to jQuery traversal + // anyway. + support.cssHas = assert( function() { + try { + document.querySelector( ":has(*,:jqfake)" ); + return false; + } catch ( e ) { + return true; + } + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter.ID = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find.ID = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter.ID = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find.ID = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find.TAG = function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else { + return context.querySelectorAll( tag ); + } + }; + + // Class + Expr.find.CLASS = function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + rbuggyQSA = []; + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + documentElement.appendChild( el ).innerHTML = + "" + + ""; + + // Support: iOS <=7 - 8 only + // Boolean attributes and "value" are not treated correctly in some XML documents + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: iOS <=7 - 8 only + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: iOS 8 only + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ + // In some of the document kinds, these selectors wouldn't work natively. + // This is probably OK but for backwards compatibility we want to maintain + // handling them through jQuery traversal in jQuery 3.x. + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE 9 - 11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ + // In some of the document kinds, these selectors wouldn't work natively. + // This is probably OK but for backwards compatibility we want to maintain + // handling them through jQuery traversal in jQuery 3.x. + documentElement.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + } ); + + if ( !support.cssHas ) { + + // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ + // Our regular `try-catch` mechanism fails to detect natively-unsupported + // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`) + // in browsers that parse the `:has()` argument as a forgiving selector list. + // https://drafts.csswg.org/selectors/#relational now requires the argument + // to be parsed unforgivingly, but browsers have not yet fully adjusted. + rbuggyQSA.push( ":has" ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a === document || a.ownerDocument == preferredDoc && + find.contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b === document || b.ownerDocument == preferredDoc && + find.contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + }; + + return document; +} + +find.matches = function( expr, elements ) { + return find( expr, null, null, elements ); +}; + +find.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return find( expr, document, null, [ elem ] ).length > 0; +}; + +find.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return jQuery.contains( context, elem ); +}; + + +find.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (see trac-13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + if ( val !== undefined ) { + return val; + } + + return elem.getAttribute( name ); +}; + +find.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +jQuery.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + // + // Support: Android <=4.0+ + // Testing for detecting duplicates is unpredictable so instead assume we can't + // depend on duplicate detection in all browsers without a stable sort. + hasDuplicate = !support.sortStable; + sortInput = !support.sortStable && slice.call( results, 0 ); + sort.call( results, sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + splice.call( results, duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +jQuery.fn.uniqueSort = function() { + return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) ); +}; + +Expr = jQuery.expr = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + ATTR: function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" ) + .replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + CHILD: function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + find.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) + ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + find.error( match[ 0 ] ); + } + + return match; + }, + + PSEUDO: function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr.CHILD.test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + TAG: function( nodeNameSelector ) { + var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return nodeName( elem, expectedNodeName ); + }; + }, + + CLASS: function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + ")" + className + + "(" + whitespace + "|$)" ) ) && + classCache( className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + ATTR: function( name, operator, check ) { + return function( elem ) { + var result = find.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + if ( operator === "=" ) { + return result === check; + } + if ( operator === "!=" ) { + return result !== check; + } + if ( operator === "^=" ) { + return check && result.indexOf( check ) === 0; + } + if ( operator === "*=" ) { + return check && result.indexOf( check ) > -1; + } + if ( operator === "$=" ) { + return check && result.slice( -check.length ) === check; + } + if ( operator === "~=" ) { + return ( " " + result.replace( rwhitespace, " " ) + " " ) + .indexOf( check ) > -1; + } + if ( operator === "|=" ) { + return result === check || result.slice( 0, check.length + 1 ) === check + "-"; + } + + return false; + }; + }, + + CHILD: function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + nodeName( node, name ) : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || ( parent[ expando ] = {} ); + cache = outerCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + cache = outerCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + nodeName( node, name ) : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + outerCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + PSEUDO: function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // https://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + find.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as jQuery does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + not: markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrimCSS, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element + // (see https://github.com/jquery/sizzle/issues/299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + has: markFunction( function( selector ) { + return function( elem ) { + return find( selector, elem ).length > 0; + }; + } ), + + contains: markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // https://www.w3.org/TR/selectors/#lang-pseudo + lang: markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + find.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + target: function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + root: function( elem ) { + return elem === documentElement; + }, + + focus: function( elem ) { + return elem === safeActiveElement() && + document.hasFocus() && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + enabled: createDisabledPseudo( false ), + disabled: createDisabledPseudo( true ), + + checked: function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + return ( nodeName( elem, "input" ) && !!elem.checked ) || + ( nodeName( elem, "option" ) && !!elem.selected ); + }, + + selected: function( elem ) { + + // Support: IE <=11+ + // Accessing the selectedIndex property + // forces the browser to treat the default option as + // selected when in an optgroup. + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + empty: function( elem ) { + + // https://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + parent: function( elem ) { + return !Expr.pseudos.empty( elem ); + }, + + // Element/input types + header: function( elem ) { + return rheader.test( elem.nodeName ); + }, + + input: function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + button: function( elem ) { + return nodeName( elem, "input" ) && elem.type === "button" || + nodeName( elem, "button" ); + }, + + text: function( elem ) { + var attr; + return nodeName( elem, "input" ) && elem.type === "text" && + + // Support: IE <10 only + // New HTML5 attribute values (e.g., "search") appear + // with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + first: createPositionalPseudo( function() { + return [ 0 ]; + } ), + + last: createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + eq: createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + even: createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + odd: createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + lt: createPositionalPseudo( function( matchIndexes, length, argument ) { + var i; + + if ( argument < 0 ) { + i = argument + length; + } else if ( argument > length ) { + i = length; + } else { + i = argument; + } + + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + gt: createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos.nth = Expr.pseudos.eq; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rleadingCombinator.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrimCSS, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + if ( parseOnly ) { + return soFar.length; + } + + return soFar ? + find.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + if ( skip && nodeName( elem, skip ) ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = outerCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + outerCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + find( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, matcherOut, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || + multipleContexts( selector || "*", + context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems; + + if ( matcher ) { + + // If we have a postFinder, or filtered seed, or non-seed postFilter + // or preexisting results, + matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results; + + // Find primary matches + matcher( matcherIn, matcherOut, context, xml ); + } else { + matcherOut = matcherIn; + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element + // (see https://github.com/jquery/sizzle/issues/299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrimCSS, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find.TAG( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: iOS <=7 - 9 only + // Tolerate NodeList properties (IE: "length"; Safari: ) matching + // elements by id. (see trac-14142) + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + push.call( results, elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + jQuery.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +function compile( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +} + +/** + * A low-level selection function that works with jQuery's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with jQuery selector compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find.ID( + token.matches[ 0 ].replace( runescape, funescape ), + context + ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && + testContext( context.parentNode ) || context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +} + +// One-time assignments + +// Support: Android <=4.0 - 4.1+ +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Initialize against the default document +setDocument(); + +// Support: Android <=4.0 - 4.1+ +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +jQuery.find = find; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.unique = jQuery.uniqueSort; + +// These have always been private, but they used to be documented as part of +// Sizzle so let's maintain them for now for backwards compatibility purposes. +find.compile = compile; +find.select = select; +find.setDocument = setDocument; +find.tokenize = tokenize; + +find.escape = jQuery.escapeSelector; +find.getText = jQuery.text; +find.isXML = jQuery.isXMLDoc; +find.selectors = jQuery.expr; +find.support = jQuery.support; +find.uniqueSort = jQuery.uniqueSort; + + /* eslint-enable */ + +} )(); + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (trac-9521) + // Strict HTML recognition (trac-11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to jQuery#find + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.error ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the error, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getErrorHook ) { + process.error = jQuery.Deferred.getErrorHook(); + + // The deprecated alias of the above. While the name suggests + // returning the stack, not an error instance, jQuery just passes + // it directly to `console.warn` so both will work; an instance + // just better cooperates with source maps. + } else if ( jQuery.Deferred.getStackHook ) { + process.error = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the primary Deferred + primary = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + primary.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return primary.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); + } + + return primary.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error +// captured before the async barrier to get the original error cause +// which may otherwise be hidden. +jQuery.Deferred.exceptionHook = function( error, asyncError ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, + error.stack, asyncError ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See trac-6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (trac-9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see trac-8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (trac-14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (trac-11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (trac-14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (trac-13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (trac-15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (trac-12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (trac-13208) + // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (trac-13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", true ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, isSetup ) { + + // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add + if ( !isSetup ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + if ( !saved ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + this[ type ](); + result = dataPriv.get( this, type ); + dataPriv.set( this, type, false ); + + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + return result; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering + // the native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved ) { + + // ...and capture the result + dataPriv.set( this, type, jQuery.event.trigger( + saved[ 0 ], + saved.slice( 1 ), + this + ) ); + + // Abort handling of the native event by all jQuery handlers while allowing + // native handlers on the same element to run. On target, this is achieved + // by stopping immediate propagation just on the jQuery event. However, + // the native event is re-wrapped by a jQuery one on each level of the + // propagation so the only way to stop it for jQuery is to stop it for + // everyone via native `stopPropagation()`. This is not a problem for + // focus/blur which don't bubble, but it does also stop click on checkboxes + // and radios. We accept this limitation. + event.stopPropagation(); + event.isImmediatePropagationStopped = returnTrue; + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (trac-504, trac-13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: true +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + + function focusMappedHandler( nativeEvent ) { + if ( document.documentMode ) { + + // Support: IE 11+ + // Attach a single focusin/focusout handler on the document while someone wants + // focus/blur. This is because the former are synchronous in IE while the latter + // are async. In other browsers, all those handlers are invoked synchronously. + + // `handle` from private data would already wrap the event, but we need + // to change the `type` here. + var handle = dataPriv.get( this, "handle" ), + event = jQuery.event.fix( nativeEvent ); + event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; + event.isSimulated = true; + + // First, handle focusin/focusout + handle( nativeEvent ); + + // ...then, handle focus/blur + // + // focus/blur don't bubble while focusin/focusout do; simulate the former by only + // invoking the handler at the lower level. + if ( event.target === event.currentTarget ) { + + // The setup part calls `leverageNative`, which, in turn, calls + // `jQuery.event.add`, so event handle will already have been set + // by this point. + handle( event ); + } + } else { + + // For non-IE browsers, attach a single capturing handler on the document + // while someone wants focusin/focusout. + jQuery.event.simulate( delegateType, nativeEvent.target, + jQuery.event.fix( nativeEvent ) ); + } + } + + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + var attaches; + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, true ); + + if ( document.documentMode ) { + + // Support: IE 9 - 11+ + // We use the same native handler for focusin & focus (and focusout & blur) + // so we need to coordinate setup & teardown parts between those events. + // Use `delegateType` as the key as `type` is already used by `leverageNative`. + attaches = dataPriv.get( this, delegateType ); + if ( !attaches ) { + this.addEventListener( delegateType, focusMappedHandler ); + } + dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 ); + } else { + + // Return false to allow normal processing in the caller + return false; + } + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + teardown: function() { + var attaches; + + if ( document.documentMode ) { + attaches = dataPriv.get( this, delegateType ) - 1; + if ( !attaches ) { + this.removeEventListener( delegateType, focusMappedHandler ); + dataPriv.remove( this, delegateType ); + } else { + dataPriv.set( this, delegateType, attaches ); + } + } else { + + // Return false to indicate standard teardown should be applied + return false; + } + }, + + // Suppress native focus or blur if we're currently inside + // a leveraged native-event stack + _default: function( event ) { + return dataPriv.get( event.target, type ); + }, + + delegateType: delegateType + }; + + // Support: Firefox <=44 + // Firefox doesn't have focus(in | out) events + // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 + // + // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 + // focus(in | out) events fire after focus & blur events, + // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order + // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 + // + // Support: IE 9 - 11+ + // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch, + // attach a single handler for both events in IE. + jQuery.event.special[ delegateType ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + dataHolder = document.documentMode ? this : doc, + attaches = dataPriv.get( dataHolder, delegateType ); + + // Support: IE 9 - 11+ + // We use the same native handler for focusin & focus (and focusout & blur) + // so we need to coordinate setup & teardown parts between those events. + // Use `delegateType` as the key as `type` is already used by `leverageNative`. + if ( !attaches ) { + if ( document.documentMode ) { + this.addEventListener( delegateType, focusMappedHandler ); + } else { + doc.addEventListener( type, focusMappedHandler, true ); + } + } + dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + dataHolder = document.documentMode ? this : doc, + attaches = dataPriv.get( dataHolder, delegateType ) - 1; + + if ( !attaches ) { + if ( document.documentMode ) { + this.removeEventListener( delegateType, focusMappedHandler ); + } else { + doc.removeEventListener( type, focusMappedHandler, true ); + } + dataPriv.remove( dataHolder, delegateType ); + } else { + dataPriv.set( dataHolder, delegateType, attaches ); + } + } + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (trac-8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Re-enable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + + // Unwrap a CDATA section containing script contents. This shouldn't be + // needed as in XML documents they're already not visible when + // inspecting element contents and in HTML documents they have no + // meaning but we're preserving that logic for backwards compatibility. + // This will be removed completely in 4.0. See gh-4904. + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew jQuery#find here for performance reasons: + // https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var rcustomProp = /^--/; + + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (trac-8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "box-sizing:content-box;border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is `display: block` + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + isCustomProp = rcustomProp.test( name ), + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, trac-12537) + // .css('--customProperty) (gh-3144) + if ( computed ) { + + // Support: IE <=9 - 11+ + // IE only supports `"float"` in `getPropertyValue`; in computed styles + // it's only available as `"cssFloat"`. We no longer modify properties + // sent to `.css()` apart from camelCasing, so we need to check both. + // Normally, this would create difference in behavior: if + // `getPropertyValue` returns an empty string, the value returned + // by `.css()` would be `undefined`. This is usually the case for + // disconnected elements. However, in IE even disconnected elements + // with no styles return `"none"` for `getPropertyValue( "float" )` + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( isCustomProp && ret ) { + + // Support: Firefox 105+, Chrome <=105+ + // Spec requires trimming whitespace for custom properties (gh-4926). + // Firefox only trims leading whitespace. Chrome just collapses + // both leading & trailing whitespace to a single space. + // + // Fall back to `undefined` if empty string returned. + // This collapses a missing definition with property defined + // and set to an empty string but there's no standard API + // allowing us to differentiate them without a performance penalty + // and returning `undefined` aligns with older jQuery. + // + // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED + // as whitespace while CSS does not, but this is not a problem + // because CSS preprocessing replaces them with U+000A LINE FEED + // (which *is* CSS whitespace) + // https://www.w3.org/TR/css-syntax-3/#input-preprocessing + ret = ret.replace( rtrimCSS, "$1" ) || undefined; + } + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0, + marginDelta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + // Count margin delta separately to only add it after scroll gutter adjustment. + // This is needed to make negative margins work with `outerHeight( true )` (gh-3982). + if ( box === "margin" ) { + marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta + marginDelta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + animationIterationCount: true, + aspectRatio: true, + borderImageSlice: true, + columnCount: true, + flexGrow: true, + flexShrink: true, + fontWeight: true, + gridArea: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnStart: true, + gridRow: true, + gridRowEnd: true, + gridRowStart: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + scale: true, + widows: true, + zIndex: true, + zoom: true, + + // SVG-related + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeMiterlimit: true, + strokeOpacity: true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (trac-7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug trac-9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (trac-7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // Use proper attribute retrieval (trac-12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classNames, cur, curValue, className, i, finalValue; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classNames = classesToArray( value ); + + if ( classNames.length ) { + return this.each( function() { + curValue = getClass( this ); + cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + if ( cur.indexOf( " " + className + " " ) < 0 ) { + cur += className + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + this.setAttribute( "class", finalValue ); + } + } + } ); + } + + return this; + }, + + removeClass: function( value ) { + var classNames, cur, curValue, className, i, finalValue; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classNames = classesToArray( value ); + + if ( classNames.length ) { + return this.each( function() { + curValue = getClass( this ); + + // This expression is here for better compressibility (see addClass) + cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + + // Remove *all* instances + while ( cur.indexOf( " " + className + " " ) > -1 ) { + cur = cur.replace( " " + className + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + this.setAttribute( "class", finalValue ); + } + } + } ); + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var classNames, className, i, self, + type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + classNames = classesToArray( value ); + + return this.each( function() { + if ( isValidValue ) { + + // Toggle individual class names + self = jQuery( this ); + + for ( i = 0; i < classNames.length; i++ ) { + className = classNames[ i ]; + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (trac-14686, trac-14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (trac-2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (trac-9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (trac-6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ).filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ).map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // trac-7653, trac-8125, trac-8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + +originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes trac-9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + 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" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (trac-10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket trac-12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // trac-9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (trac-11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // trac-1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see trac-8605, trac-14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // trac-14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + \ No newline at end of file diff --git a/volume.html b/volume.html new file mode 100644 index 0000000..57ccb3a --- /dev/null +++ b/volume.html @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + +
+
+
+
GEAZAN
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
50%
+
+ +
+ +
+
50%
+
+ +
+ +
+
50%
+
+ +
+ +
+
50%
+
+ +
+
+
    +
  • +
  • 50
  • +
  • 100
  • +
  • 150
  • +
  • 200
  • +
  • 250
  • +
  • 300
  • +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+ +
+
+
+ +
+
+
Geazan
+
www.geazan.com
+
+
+
+ + + + + \ No newline at end of file