From ed4a4d169cf4200524ffa1dda3d62fc69957b292 Mon Sep 17 00:00:00 2001 From: Max Base Date: Sat, 7 Dec 2024 09:56:41 +0330 Subject: [PATCH] Revert "feat(add): add front to project" This reverts commit 8eed58c899e634c21eeefb489eb99300e17e6693. --- front/assets/css/index.css | 3035 ----- front/assets/fonts/Estedad-Black.ttf | Bin 80584 -> 0 bytes front/assets/fonts/Estedad-Bold.ttf | Bin 80252 -> 0 bytes front/assets/fonts/Estedad-Light.ttf | Bin 78120 -> 0 bytes front/assets/fonts/Estedad-Medium.ttf | Bin 79864 -> 0 bytes front/assets/fonts/Estedad-Thin.ttf | Bin 79152 -> 0 bytes front/assets/images/admin.png | Bin 28155 -> 0 bytes front/assets/images/arrow-right.svg | 4 - front/assets/images/favicon.ico | Bin 15406 -> 0 bytes front/assets/images/loading.png | Bin 330 -> 0 bytes front/assets/images/salam.svg | 14 - front/assets/images/salam_logo.png | Bin 7887 -> 0 bytes front/assets/js/apexcharts.js | 14 - front/assets/js/dataTables.js | 13607 --------------------- front/assets/js/jquery-3.7.1.js | 10716 ---------------- front/assets/salam/manifest.json | 19 - front/assets/salam/salam-wa.js | 4663 ------- front/assets/salam/salam-wa.wasm | Bin 361658 -> 0 bytes front/assets/salam/script/script.js | 289 - front/index.html | 108 - front/salam/manifest.json | 19 - front/salam/salam-wa.js | 4663 ------- front/salam/salam-wa.wasm | 0 front/salam/script/script.js | 278 - resources/views/editor.blade.php | 4 + resources/views/user/dashboard.blade.php | 2 +- 26 files changed, 5 insertions(+), 37430 deletions(-) delete mode 100644 front/assets/css/index.css delete mode 100644 front/assets/fonts/Estedad-Black.ttf delete mode 100644 front/assets/fonts/Estedad-Bold.ttf delete mode 100644 front/assets/fonts/Estedad-Light.ttf delete mode 100644 front/assets/fonts/Estedad-Medium.ttf delete mode 100644 front/assets/fonts/Estedad-Thin.ttf delete mode 100644 front/assets/images/admin.png delete mode 100644 front/assets/images/arrow-right.svg delete mode 100644 front/assets/images/favicon.ico delete mode 100644 front/assets/images/loading.png delete mode 100644 front/assets/images/salam.svg delete mode 100644 front/assets/images/salam_logo.png delete mode 100644 front/assets/js/apexcharts.js delete mode 100644 front/assets/js/dataTables.js delete mode 100644 front/assets/js/jquery-3.7.1.js delete mode 100644 front/assets/salam/manifest.json delete mode 100644 front/assets/salam/salam-wa.js delete mode 100644 front/assets/salam/salam-wa.wasm delete mode 100644 front/assets/salam/script/script.js delete mode 100644 front/index.html delete mode 100644 front/salam/manifest.json delete mode 100644 front/salam/salam-wa.js delete mode 100644 front/salam/salam-wa.wasm delete mode 100644 front/salam/script/script.js diff --git a/front/assets/css/index.css b/front/assets/css/index.css deleted file mode 100644 index 8a7d843..0000000 --- a/front/assets/css/index.css +++ /dev/null @@ -1,3035 +0,0 @@ -*, :before, :after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / .5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / .5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: -} - -*, :before, :after { - box-sizing: border-box; - border-width: 0; - border-style: solid; - border-color: #e5e7eb -} - -:before, :after { - --tw-content: "" -} - -html, :host { - line-height: 1.5; - -webkit-text-size-adjust: 100%; - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - font-family: Figtree, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol, "Noto Color Emoji"; - font-feature-settings: normal; - font-variation-settings: normal; - -webkit-tap-highlight-color: transparent -} - -body { - margin: 0; - line-height: inherit -} - -hr { - height: 0; - color: inherit; - border-top-width: 1px -} - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted -} - -h1, h2, h3, h4, h5, h6 { - font-size: inherit; - font-weight: inherit -} - -a { - color: inherit; - text-decoration: inherit -} - -b, strong { - font-weight: bolder -} - -code, kbd, samp, pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace; - font-feature-settings: normal; - font-variation-settings: normal; - font-size: 1em -} - -small { - font-size: 80% -} - -sub, sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline -} - -sub { - bottom: -.25em -} - -sup { - top: -.5em -} - -table { - text-indent: 0; - border-color: inherit; - border-collapse: collapse -} - -button, input, optgroup, select, textarea { - font-family: inherit; - font-feature-settings: inherit; - font-variation-settings: inherit; - font-size: 100%; - font-weight: inherit; - line-height: inherit; - letter-spacing: inherit; - color: inherit; - margin: 0; - padding: 0 -} - -button, select { - text-transform: none -} - -button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]) { - -webkit-appearance: button; - background-color: transparent; - background-image: none -} - -:-moz-focusring { - outline: auto -} - -:-moz-ui-invalid { - box-shadow: none -} - -progress { - vertical-align: baseline -} - -::-webkit-inner-spin-button, ::-webkit-outer-spin-button { - height: auto -} - -[type=search] { - -webkit-appearance: textfield; - outline-offset: -2px -} - -::-webkit-search-decoration { - -webkit-appearance: none -} - -::-webkit-file-upload-button { - -webkit-appearance: button; - font: inherit -} - -summary { - display: list-item -} - -blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { - margin: 0 -} - -fieldset { - margin: 0; - padding: 0 -} - -legend { - padding: 0 -} - -ol, ul, menu { - list-style: none; - margin: 0; - padding: 0 -} - -dialog { - padding: 0 -} - -textarea { - resize: vertical -} - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - color: #9ca3af -} - -input::placeholder, textarea::placeholder { - opacity: 1; - color: #9ca3af -} - -button, [role=button] { - cursor: pointer -} - -:disabled { - cursor: default -} - -img, svg, video, canvas, audio, iframe, embed, object { - display: block; - vertical-align: middle -} - -img, video { - max-width: 100%; - height: auto -} - -[hidden]:where(:not([hidden=until-found])) { - display: none -} - -[type=text], input:where(:not([type])), [type=email], [type=url], [type=password], [type=number], [type=date], [type=datetime-local], [type=month], [type=search], [type=tel], [type=time], [type=week], [multiple], textarea, select { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - background-color: #fff; - border-color: #6b7280; - border-width: 1px; - border-radius: 0; - padding: .5rem .75rem; - font-size: 1rem; - line-height: 1.5rem; - --tw-shadow: 0 0 #0000 -} - -[type=text]:focus, input:where(:not([type])):focus, [type=email]:focus, [type=url]:focus, [type=password]:focus, [type=number]:focus, [type=date]:focus, [type=datetime-local]:focus, [type=month]:focus, [type=search]:focus, [type=tel]:focus, [type=time]:focus, [type=week]:focus, [multiple]:focus, textarea:focus, select:focus { - outline: 2px solid transparent; - outline-offset: 2px; - --tw-ring-inset: var(--tw-empty,); - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: #2563eb; - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - border-color: #2563eb -} - -input::-moz-placeholder, textarea::-moz-placeholder { - color: #6b7280; - opacity: 1 -} - -input::placeholder, textarea::placeholder { - color: #6b7280; - opacity: 1 -} - -::-webkit-datetime-edit-fields-wrapper { - padding: 0 -} - -::-webkit-date-and-time-value { - min-height: 1.5em; - text-align: inherit -} - -::-webkit-datetime-edit { - display: inline-flex -} - -::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { - padding-top: 0; - padding-bottom: 0 -} - -select { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); - background-position: right .5rem center; - background-repeat: no-repeat; - background-size: 1.5em 1.5em; - padding-right: 2.5rem; - -webkit-print-color-adjust: exact; - print-color-adjust: exact -} - -[multiple], [size]:where(select:not([size="1"])) { - background-image: initial; - background-position: initial; - background-repeat: unset; - background-size: initial; - padding-right: .75rem; - -webkit-print-color-adjust: unset; - print-color-adjust: unset -} - -[type=checkbox], [type=radio] { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - padding: 0; - -webkit-print-color-adjust: exact; - print-color-adjust: exact; - display: inline-block; - vertical-align: middle; - background-origin: border-box; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - flex-shrink: 0; - height: 1rem; - width: 1rem; - color: #2563eb; - background-color: #fff; - border-color: #6b7280; - border-width: 1px; - --tw-shadow: 0 0 #0000 -} - -[type=checkbox] { - border-radius: 0 -} - -[type=radio] { - border-radius: 100% -} - -[type=checkbox]:focus, [type=radio]:focus { - outline: 2px solid transparent; - outline-offset: 2px; - --tw-ring-inset: var(--tw-empty,); - --tw-ring-offset-width: 2px; - --tw-ring-offset-color: #fff; - --tw-ring-color: #2563eb; - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) -} - -[type=checkbox]:checked, [type=radio]:checked { - border-color: transparent; - background-color: currentColor; - background-size: 100% 100%; - background-position: center; - background-repeat: no-repeat -} - -[type=checkbox]:checked { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e") -} - -@media (forced-colors: active) { - [type=checkbox]:checked { - -webkit-appearance: auto; - -moz-appearance: auto; - appearance: auto - } -} - -[type=radio]:checked { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e") -} - -@media (forced-colors: active) { - [type=radio]:checked { - -webkit-appearance: auto; - -moz-appearance: auto; - appearance: auto - } -} - -[type=checkbox]:checked:hover, [type=checkbox]:checked:focus, [type=radio]:checked:hover, [type=radio]:checked:focus { - border-color: transparent; - background-color: currentColor -} - -[type=checkbox]:indeterminate { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); - border-color: transparent; - background-color: currentColor; - background-size: 100% 100%; - background-position: center; - background-repeat: no-repeat -} - -@media (forced-colors: active) { - [type=checkbox]:indeterminate { - -webkit-appearance: auto; - -moz-appearance: auto; - appearance: auto - } -} - -[type=checkbox]:indeterminate:hover, [type=checkbox]:indeterminate:focus { - border-color: transparent; - background-color: currentColor -} - -[type=file] { - background: unset; - border-color: inherit; - border-width: 0; - border-radius: 0; - padding: 0; - font-size: unset; - line-height: inherit -} - -[type=file]:focus { - outline: 1px solid ButtonText; - outline: 1px auto -webkit-focus-ring-color -} - -.container { - width: 100% -} - -@media (min-width: 640px) { - .container { - max-width: 640px - } -} - -@media (min-width: 768px) { - .container { - max-width: 768px - } -} - -@media (min-width: 1024px) { - .container { - max-width: 1024px - } -} - -@media (min-width: 1280px) { - .container { - max-width: 1280px - } -} - -@media (min-width: 1536px) { - .container { - max-width: 1536px - } -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0 -} - -.fixed { - position: fixed -} - -.absolute { - position: absolute -} - -.relative { - position: relative -} - -.inset-0 { - top: 0; - right: 0; - bottom: 0; - left: 0 -} - -.-bottom-16 { - bottom: -4rem -} - -.-left-16 { - left: -4rem -} - -.-left-20 { - left: -5rem -} - -.end-0 { - inset-inline-end: 0px -} - -.right-0 { - right: 0 -} - -.start-0 { - inset-inline-start: 0px -} - -.top-0 { - top: 0 -} - -.z-0 { - z-index: 0 -} - -.z-10 { - z-index: 10 -} - -.z-50 { - z-index: 50 -} - -.col-auto { - grid-column: auto -} - -.\!row-span-1 { - grid-row: span 1 / span 1 !important -} - -.m-0 { - margin: 0 -} - -.-mx-3 { - margin-left: -.75rem; - margin-right: -.75rem -} - -.mx-5 { - margin-left: 1.25rem; - margin-right: 1.25rem -} - -.mx-auto { - margin-left: auto; - margin-right: auto -} - -.my-3 { - margin-top: .75rem; - margin-bottom: .75rem -} - -.my-4 { - margin-top: 1rem; - margin-bottom: 1rem -} - -.-me-2 { - margin-inline-end: -.5rem -} - -.-ml-px { - margin-left: -1px -} - -.-mt-2 { - margin-top: -.5rem -} - -.-mt-px { - margin-top: -1px -} - -.mb-0 { - margin-bottom: 0 -} - -.mb-12 { - margin-bottom: 3rem -} - -.mb-2 { - margin-bottom: .5rem -} - -.mb-3 { - margin-bottom: .75rem -} - -.mb-4 { - margin-bottom: 1rem -} - -.mb-6 { - margin-bottom: 1.5rem -} - -.ml-1 { - margin-left: .25rem -} - -.ml-12 { - margin-left: 3rem -} - -.ml-2 { - margin-left: .5rem -} - -.ml-3 { - margin-left: .75rem -} - -.ml-4 { - margin-left: 1rem -} - -.mr-2 { - margin-right: .5rem -} - -.ms-1 { - margin-inline-start: .25rem -} - -.ms-2 { - margin-inline-start: .5rem -} - -.ms-3 { - margin-inline-start: .75rem -} - -.mt-1 { - margin-top: .25rem -} - -.mt-1\.5 { - margin-top: .375rem -} - -.mt-2 { - margin-top: .5rem -} - -.mt-3 { - margin-top: .75rem -} - -.mt-4 { - margin-top: 1rem -} - -.mt-6 { - margin-top: 1.5rem -} - -.mt-8 { - margin-top: 2rem -} - -.block { - display: block -} - -.inline-block { - display: inline-block -} - -.flex { - display: flex -} - -.inline-flex { - display: inline-flex -} - -.table { - display: table -} - -.grid { - display: grid -} - -.\!hidden { - display: none !important -} - -.hidden { - display: none -} - -.aspect-video { - aspect-ratio: 16 / 9 -} - -.size-12 { - width: 3rem; - height: 3rem -} - -.size-5 { - width: 1.25rem; - height: 1.25rem -} - -.size-6 { - width: 1.5rem; - height: 1.5rem -} - -.h-10 { - height: 2.5rem -} - -.h-12 { - height: 3rem -} - -.h-16 { - height: 4rem -} - -.h-4 { - height: 1rem -} - -.h-40 { - height: 10rem -} - -.h-5 { - height: 1.25rem -} - -.h-6 { - height: 1.5rem -} - -.h-8 { - height: 2rem -} - -.h-\[100vh\] { - height: 100vh -} - -.h-\[120px\] { - height: 120px -} - -.h-\[32\.5rem\] { - height: 32.5rem -} - -.h-\[35\.5rem\] { - height: 35.5rem -} - -.h-\[45px\] { - height: 45px -} - -.h-\[50px\] { - height: 50px -} - -.h-full { - height: 100% -} - -.max-h-32 { - max-height: 8rem -} - -.min-h-screen { - min-height: 100vh -} - -.w-0 { - width: 0px -} - -.w-3\/4 { - width: 75% -} - -.w-4 { - width: 1rem -} - -.w-48 { - width: 12rem -} - -.w-5 { - width: 1.25rem -} - -.w-6 { - width: 1.5rem -} - -.w-8 { - width: 2rem -} - -.w-\[100px\] { - width: 100px -} - -.w-\[120px\] { - width: 120px -} - -.w-\[21px\] { - width: 21px -} - -.w-\[22px\] { - width: 22px -} - -.w-\[8rem\] { - width: 8rem -} - -.w-\[98\%\] { - width: 98% -} - -.w-\[calc\(100\%\+8rem\)\] { - width: calc(100% + 8rem) -} - -.w-auto { - width: auto -} - -.w-full { - width: 100% -} - -.min-w-0 { - min-width: 0px -} - -.max-w-2xl { - max-width: 42rem -} - -.max-w-6xl { - max-width: 72rem -} - -.max-w-7xl { - max-width: 80rem -} - -.max-w-\[450px\] { - max-width: 450px -} - -.max-w-\[877px\] { - max-width: 877px -} - -.max-w-full { - max-width: 100% -} - -.max-w-xl { - max-width: 36rem -} - -.flex-1 { - flex: 1 1 0% -} - -.flex-none { - flex: none -} - -.flex-shrink-0, .shrink-0 { - flex-shrink: 0 -} - -.flex-grow { - flex-grow: 1 -} - -.basis-1\/2 { - flex-basis: 50% -} - -.basis-1\/4 { - flex-basis: 25% -} - -.basis-\[65px\] { - flex-basis: 65px -} - -.origin-top { - transform-origin: top -} - -.origin-top-right { - transform-origin: top right -} - -.translate-y-0 { - --tw-translate-y: 0px; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.translate-y-4 { - --tw-translate-y: 1rem; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.scale-100 { - --tw-scale-x: 1; - --tw-scale-y: 1; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.scale-95 { - --tw-scale-x: .95; - --tw-scale-y: .95; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) -} - -.cursor-default { - cursor: default -} - -.cursor-pointer { - cursor: pointer -} - -.resize-none { - resize: none -} - -.resize { - resize: both -} - -.grid-cols-1 { - grid-template-columns:repeat(1, minmax(0, 1fr)) -} - -.grid-cols-2 { - grid-template-columns:repeat(2, minmax(0, 1fr)) -} - -.\!flex-row { - flex-direction: row !important -} - -.flex-col { - flex-direction: column -} - -.items-start { - align-items: flex-start -} - -.items-center { - align-items: center -} - -.items-baseline { - align-items: baseline -} - -.items-stretch { - align-items: stretch -} - -.justify-start { - justify-content: flex-start -} - -.justify-end { - justify-content: flex-end -} - -.justify-center { - justify-content: center -} - -.justify-between { - justify-content: space-between -} - -.justify-items-center { - justify-items: center -} - -.gap-2 { - gap: .5rem -} - -.gap-3 { - gap: .75rem -} - -.gap-4 { - gap: 1rem -} - -.gap-6 { - gap: 1.5rem -} - -.space-x-16 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(4rem * var(--tw-space-x-reverse)); - margin-left: calc(4rem * calc(1 - var(--tw-space-x-reverse))) -} - -.space-y-1 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(.25rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(.25rem * var(--tw-space-y-reverse)) -} - -.space-y-2 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(.5rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(.5rem * var(--tw-space-y-reverse)) -} - -.space-y-6 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)) -} - -.divide-y > :not([hidden]) ~ :not([hidden]) { - --tw-divide-y-reverse: 0; - border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); - border-bottom-width: calc(1px * var(--tw-divide-y-reverse)) -} - -.self-center { - align-self: center -} - -.overflow-auto { - overflow: auto -} - -.\!overflow-hidden { - overflow: hidden !important -} - -.overflow-hidden { - overflow: hidden -} - -.overflow-x-auto { - overflow-x: auto -} - -.overflow-y-auto { - overflow-y: auto -} - -.overflow-y-hidden { - overflow-y: hidden -} - -.overflow-x-scroll { - overflow-x: scroll -} - -.truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap -} - -.break-words { - overflow-wrap: break-word -} - -.\!rounded-\[15px\] { - border-radius: 15px !important -} - -.\!rounded-xl { - border-radius: .75rem !important -} - -.rounded { - border-radius: .25rem -} - -.rounded-\[10px\] { - border-radius: 10px -} - -.rounded-\[15px\] { - border-radius: 15px -} - -.rounded-\[20px\] { - border-radius: 20px -} - -.rounded-\[35px\] { - border-radius: 35px -} - -.rounded-full { - border-radius: 9999px -} - -.rounded-lg { - border-radius: .5rem -} - -.rounded-md { - border-radius: .375rem -} - -.rounded-sm { - border-radius: .125rem -} - -.rounded-l-md { - border-top-left-radius: .375rem; - border-bottom-left-radius: .375rem -} - -.rounded-r-md { - border-top-right-radius: .375rem; - border-bottom-right-radius: .375rem -} - -.\!border-0 { - border-width: 0px !important -} - -.border { - border-width: 1px -} - -.border-0 { - border-width: 0px -} - -.border-2 { - border-width: 2px -} - -.border-b { - border-bottom-width: 1px -} - -.border-b-2 { - border-bottom-width: 2px -} - -.border-l { - border-left-width: 1px -} - -.border-l-2 { - border-left-width: 2px -} - -.border-l-4 { - border-left-width: 4px -} - -.border-r { - border-right-width: 1px -} - -.border-t { - border-top-width: 1px -} - -.border-\[\#FF6100\] { - --tw-border-opacity: 1; - border-color: rgb(255 97 0 / var(--tw-border-opacity, 1)) -} - -.border-gray-100 { - --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)) -} - -.border-gray-200 { - --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)) -} - -.border-gray-300 { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)) -} - -.border-gray-400 { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)) -} - -.border-indigo-400 { - --tw-border-opacity: 1; - border-color: rgb(129 140 248 / var(--tw-border-opacity, 1)) -} - -.border-transparent { - border-color: transparent -} - -.border-l-red-500 { - --tw-border-opacity: 1; - border-left-color: rgb(239 68 68 / var(--tw-border-opacity, 1)) -} - -.bg-\[\#2c74ff\] { - --tw-bg-opacity: 1; - background-color: rgb(44 116 255 / var(--tw-bg-opacity, 1)) -} - -.bg-\[\#D1FF6E\] { - --tw-bg-opacity: 1; - background-color: rgb(209 255 110 / var(--tw-bg-opacity, 1)) -} - -.bg-\[\#FF2D20\]\/10 { - background-color: #ff2d201a -} - -.bg-\[\#FF5C00\] { - --tw-bg-opacity: 1; - background-color: rgb(255 92 0 / var(--tw-bg-opacity, 1)) -} - -.bg-\[\#FF6100\] { - --tw-bg-opacity: 1; - background-color: rgb(255 97 0 / var(--tw-bg-opacity, 1)) -} - -.bg-\[\#ff620021\] { - background-color: #ff620021 -} - -.bg-gray-100 { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) -} - -.bg-gray-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)) -} - -.bg-gray-200\/80 { - background-color: #e5e7ebcc -} - -.bg-gray-50 { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)) -} - -.bg-gray-500 { - --tw-bg-opacity: 1; - background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1)) -} - -.bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)) -} - -.bg-indigo-50 { - --tw-bg-opacity: 1; - background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1)) -} - -.bg-red-500\/20 { - background-color: #ef444433 -} - -.bg-red-600 { - --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)) -} - -.bg-white { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) -} - -.bg-gradient-to-b { - background-image: linear-gradient(to bottom, var(--tw-gradient-stops)) -} - -.from-transparent { - --tw-gradient-from: transparent var(--tw-gradient-from-position); - --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); - --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) -} - -.via-white { - --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); - --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to) -} - -.to-white { - --tw-gradient-to: #fff var(--tw-gradient-to-position) -} - -.to-zinc-900 { - --tw-gradient-to: #18181b var(--tw-gradient-to-position) -} - -.fill-current { - fill: currentColor -} - -.fill-red-500 { - fill: #ef4444 -} - -.stroke-\[\#FF2D20\] { - stroke: #ff2d20 -} - -.object-cover { - -o-object-fit: cover; - object-fit: cover -} - -.object-top { - -o-object-position: top; - object-position: top -} - -.p-0 { - padding: 0 -} - -.p-1 { - padding: .25rem -} - -.p-2 { - padding: .5rem -} - -.p-3 { - padding: .75rem -} - -.p-4 { - padding: 1rem -} - -.p-5 { - padding: 1.25rem -} - -.p-6 { - padding: 1.5rem -} - -.p-\[15px\] { - padding: 15px -} - -.px-1 { - padding-left: .25rem; - padding-right: .25rem -} - -.px-10 { - padding-left: 2.5rem; - padding-right: 2.5rem -} - -.px-2 { - padding-left: .5rem; - padding-right: .5rem -} - -.px-3 { - padding-left: .75rem; - padding-right: .75rem -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem -} - -.px-5 { - padding-left: 1.25rem; - padding-right: 1.25rem -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem -} - -.px-\[10px\] { - padding-left: 10px; - padding-right: 10px -} - -.px-\[35px\] { - padding-left: 35px; - padding-right: 35px -} - -.px-\[40px\] { - padding-left: 40px; - padding-right: 40px -} - -.py-1 { - padding-top: .25rem; - padding-bottom: .25rem -} - -.py-10 { - padding-top: 2.5rem; - padding-bottom: 2.5rem -} - -.py-12 { - padding-top: 3rem; - padding-bottom: 3rem -} - -.py-16 { - padding-top: 4rem; - padding-bottom: 4rem -} - -.py-2 { - padding-top: .5rem; - padding-bottom: .5rem -} - -.py-3 { - padding-top: .75rem; - padding-bottom: .75rem -} - -.py-4 { - padding-top: 1rem; - padding-bottom: 1rem -} - -.py-5 { - padding-top: 1.25rem; - padding-bottom: 1.25rem -} - -.py-6 { - padding-top: 1.5rem; - padding-bottom: 1.5rem -} - -.pb-1 { - padding-bottom: .25rem -} - -.pb-12 { - padding-bottom: 3rem -} - -.pb-3 { - padding-bottom: .75rem -} - -.pe-4 { - padding-inline-end: 1rem -} - -.ps-3 { - padding-inline-start: .75rem -} - -.pt-1 { - padding-top: .25rem -} - -.pt-2 { - padding-top: .5rem -} - -.pt-3 { - padding-top: .75rem -} - -.pt-4 { - padding-top: 1rem -} - -.pt-5 { - padding-top: 1.25rem -} - -.pt-6 { - padding-top: 1.5rem -} - -.pt-8 { - padding-top: 2rem -} - -.text-left { - text-align: left -} - -.text-center { - text-align: center -} - -.text-right { - text-align: right -} - -.text-start { - text-align: start -} - -.align-baseline { - vertical-align: baseline -} - -.font-mono { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace -} - -.font-sans { - font-family: Figtree, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol, "Noto Color Emoji" -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem -} - -.text-\[15px\] { - font-size: 15px -} - -.text-\[18px\] { - font-size: 18px -} - -.text-\[25px\] { - font-size: 25px -} - -.text-\[26px\] { - font-size: 26px -} - -.text-base { - font-size: 1rem; - line-height: 1.5rem -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem -} - -.text-sm { - font-size: .875rem; - line-height: 1.25rem -} - -.text-sm\/relaxed { - font-size: .875rem; - line-height: 1.625 -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem -} - -.text-xs { - font-size: .75rem; - line-height: 1rem -} - -.font-bold { - font-weight: 700 -} - -.font-medium { - font-weight: 500 -} - -.font-semibold { - font-weight: 600 -} - -.uppercase { - text-transform: uppercase -} - -.leading-4 { - line-height: 1rem -} - -.leading-5 { - line-height: 1.25rem -} - -.leading-7 { - line-height: 1.75rem -} - -.leading-tight { - line-height: 1.25 -} - -.tracking-wider { - letter-spacing: .05em -} - -.tracking-widest { - letter-spacing: .1em -} - -.text-\[\#276EF6\] { - --tw-text-opacity: 1; - color: rgb(39 110 246 / var(--tw-text-opacity, 1)) -} - -.text-\[\#FF5C00\] { - --tw-text-opacity: 1; - color: rgb(255 92 0 / var(--tw-text-opacity, 1)) -} - -.text-black { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity, 1)) -} - -.text-black\/50 { - color: #00000080 -} - -.text-blue-500 { - --tw-text-opacity: 1; - color: rgb(59 130 246 / var(--tw-text-opacity, 1)) -} - -.text-gray-200 { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)) -} - -.text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) -} - -.text-gray-400 { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} - -.text-gray-50 { - --tw-text-opacity: 1; - color: rgb(249 250 251 / var(--tw-text-opacity, 1)) -} - -.text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} - -.text-gray-600 { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)) -} - -.text-gray-700 { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)) -} - -.text-gray-800 { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)) -} - -.text-gray-900 { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)) -} - -.text-green-600 { - --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity, 1)) -} - -.text-indigo-600 { - --tw-text-opacity: 1; - color: rgb(79 70 229 / var(--tw-text-opacity, 1)) -} - -.text-indigo-700 { - --tw-text-opacity: 1; - color: rgb(67 56 202 / var(--tw-text-opacity, 1)) -} - -.text-red-500 { - --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity, 1)) -} - -.text-red-600 { - --tw-text-opacity: 1; - color: rgb(220 38 38 / var(--tw-text-opacity, 1)) -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} - -.underline { - text-decoration-line: underline -} - -.antialiased { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale -} - -.placeholder-gray-300::-moz-placeholder { - --tw-placeholder-opacity: 1; - color: rgb(209 213 219 / var(--tw-placeholder-opacity, 1)) -} - -.placeholder-gray-300::placeholder { - --tw-placeholder-opacity: 1; - color: rgb(209 213 219 / var(--tw-placeholder-opacity, 1)) -} - -.placeholder-gray-400::-moz-placeholder { - --tw-placeholder-opacity: 1; - color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1)) -} - -.placeholder-gray-400::placeholder { - --tw-placeholder-opacity: 1; - color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1)) -} - -.opacity-0 { - opacity: 0 -} - -.opacity-100 { - opacity: 1 -} - -.opacity-75 { - opacity: .75 -} - -.shadow { - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-\[0_0_20px_-10px_\#FF6100\] { - --tw-shadow: 0 0 20px -10px #FF6100; - --tw-shadow-colored: 0 0 20px -10px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-\[0px_14px_34px_0px_rgba\(0\,0\,0\,0\.08\)\] { - --tw-shadow: 0px 14px 34px 0px rgba(0, 0, 0, .08); - --tw-shadow-colored: 0px 14px 34px 0px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-lg { - --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); - --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-sm { - --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05); - --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.shadow-xl { - --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1); - --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) -} - -.\!outline-0 { - outline-width: 0px !important -} - -.outline-0 { - outline-width: 0px -} - -.ring-1 { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) -} - -.ring-black { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1)) -} - -.ring-gray-300 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1)) -} - -.ring-gray-900\/5 { - --tw-ring-color: rgb(17 24 39 / .05) -} - -.ring-transparent { - --tw-ring-color: transparent -} - -.ring-white { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1)) -} - -.ring-white\/\[0\.05\] { - --tw-ring-color: rgb(255 255 255 / .05) -} - -.ring-opacity-5 { - --tw-ring-opacity: .05 -} - -.drop-shadow-\[0px_4px_34px_rgba\(0\,0\,0\,0\.06\)\] { - --tw-drop-shadow: drop-shadow(0px 4px 34px rgba(0, 0, 0, .06)); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) -} - -.drop-shadow-\[0px_4px_34px_rgba\(0\,0\,0\,0\.25\)\] { - --tw-drop-shadow: drop-shadow(0px 4px 34px rgba(0, 0, 0, .25)); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(.4, 0, .2, 1); - transition-duration: .15s -} - -.transition-all { - transition-property: all; - transition-timing-function: cubic-bezier(.4, 0, .2, 1); - transition-duration: .15s -} - -.duration-150 { - transition-duration: .15s -} - -.duration-200 { - transition-duration: .2s -} - -.duration-300 { - transition-duration: .3s -} - -.duration-75 { - transition-duration: 75ms -} - -.ease-in { - transition-timing-function: cubic-bezier(.4, 0, 1, 1) -} - -.ease-in-out { - transition-timing-function: cubic-bezier(.4, 0, .2, 1) -} - -.ease-out { - transition-timing-function: cubic-bezier(0, 0, .2, 1) -} - -* { - direction: rtl -} - -* ::-webkit-scrollbar { - width: 8px -} - -* ::-webkit-scrollbar-track { - border-radius: 1000px -} - -* ::-webkit-scrollbar-thumb { - background: #ff5c00; - border-radius: 1000px -} - -[x-cloak] { - display: none -} - -.cus-bg { - background-color: #ff5c000f -} - -.cus-shadow { - box-shadow: 0 4px 72px #0000001a -} - -input { - border-color: #eaeaea !important -} - -.auth_body input { - border-color: transparent !important -} - -input:focus:not(.invalid) { - border-color: #276ef6 !important; - box-shadow: 0 0 50px #276ef633 -} - -input.invalid { - border: 2px solid #FF5C00 !important; - box-shadow: 0 0 50px #ff320033 -} - -table.code_dataTable thead th, table.code_dataTable thead td, table.code_dataTable tfoot th, table.code_dataTable tfoot td { - text-align: right !important -} - -table.code_dataTable > thead > tr > th, table.code_dataTable > thead > tr > td, div.dt-container.dt-empty-footer tbody > tr:last-child > *, table.dataTable.row-border > tbody > tr > *, table.dataTable.display > tbody > tr > *, table.dataTable.stripe > tbody > tr:nth-child(odd) > *, table.dataTable.display > tbody > tr:nth-child(odd) > * { - border: 0 !important -} - -#myTable_wrapper { - border-radius: 15px !important; - overflow: hidden !important -} - -div.dt-container div.dt-layout-row { - margin: 0 !important -} - -#codes-table_wrapper > .row:first-child { - display: none -} - -.selection\:bg-\[\#FF2D20\] *::-moz-selection { - --tw-bg-opacity: 1; - background-color: rgb(255 45 32 / var(--tw-bg-opacity, 1)) -} - -.selection\:bg-\[\#FF2D20\] *::selection { - --tw-bg-opacity: 1; - background-color: rgb(255 45 32 / var(--tw-bg-opacity, 1)) -} - -.selection\:text-white *::-moz-selection { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} - -.selection\:text-white *::selection { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} - -.selection\:bg-\[\#FF2D20\]::-moz-selection { - --tw-bg-opacity: 1; - background-color: rgb(255 45 32 / var(--tw-bg-opacity, 1)) -} - -.selection\:bg-\[\#FF2D20\]::selection { - --tw-bg-opacity: 1; - background-color: rgb(255 45 32 / var(--tw-bg-opacity, 1)) -} - -.selection\:text-white::-moz-selection { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} - -.selection\:text-white::selection { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) -} - -.default\:col-span-full:default { - grid-column: 1 / -1 -} - -.default\:row-span-1:default { - grid-row: span 1 / span 1 -} - -.hover\:rounded-b-md:hover { - border-bottom-right-radius: .375rem; - border-bottom-left-radius: .375rem -} - -.hover\:rounded-t-md:hover { - border-top-left-radius: .375rem; - border-top-right-radius: .375rem -} - -.hover\:border-gray-300:hover { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)) -} - -.hover\:bg-gray-100:hover { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) -} - -.hover\:bg-gray-100\/75:hover { - background-color: #f3f4f6bf -} - -.hover\:bg-gray-50:hover { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)) -} - -.hover\:bg-gray-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) -} - -.hover\:bg-red-500:hover { - --tw-bg-opacity: 1; - background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1)) -} - -.hover\:text-black:hover { - --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity, 1)) -} - -.hover\:text-black\/70:hover { - color: #000000b3 -} - -.hover\:text-gray-400:hover { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)) -} - -.hover\:text-gray-500:hover { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} - -.hover\:text-gray-700:hover { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)) -} - -.hover\:text-gray-800:hover { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)) -} - -.hover\:text-gray-900:hover { - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity, 1)) -} - -.hover\:underline:hover { - text-decoration-line: underline -} - -.hover\:ring-black\/20:hover { - --tw-ring-color: rgb(0 0 0 / .2) -} - -.focus\:z-10:focus { - z-index: 10 -} - -.focus\:border-blue-300:focus { - --tw-border-opacity: 1; - border-color: rgb(147 197 253 / var(--tw-border-opacity, 1)) -} - -.focus\:border-gray-300:focus { - --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)) -} - -.focus\:border-indigo-700:focus { - --tw-border-opacity: 1; - border-color: rgb(67 56 202 / var(--tw-border-opacity, 1)) -} - -.focus\:bg-gray-100:focus { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) -} - -.focus\:bg-gray-50:focus { - --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)) -} - -.focus\:bg-gray-700:focus { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) -} - -.focus\:bg-indigo-100:focus { - --tw-bg-opacity: 1; - background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1)) -} - -.focus\:text-gray-500:focus { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} - -.focus\:text-gray-700:focus { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)) -} - -.focus\:text-gray-800:focus { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)) -} - -.focus\:text-indigo-800:focus { - --tw-text-opacity: 1; - color: rgb(55 48 163 / var(--tw-text-opacity, 1)) -} - -.focus\:outline-none:focus { - outline: 2px solid transparent; - outline-offset: 2px -} - -.focus\:ring:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) -} - -.focus\:ring-2:focus { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) -} - -.focus\:ring-indigo-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1)) -} - -.focus\:ring-red-500:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1)) -} - -.focus\:ring-offset-2:focus { - --tw-ring-offset-width: 2px -} - -.focus-visible\:ring-1:focus-visible { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) -} - -.focus-visible\:ring-\[\#FF2D20\]:focus-visible { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 45 32 / var(--tw-ring-opacity, 1)) -} - -.active\:bg-gray-100:active { - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) -} - -.active\:bg-gray-900:active { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)) -} - -.active\:bg-red-700:active { - --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1)) -} - -.active\:text-gray-500:active { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)) -} - -.active\:text-gray-700:active { - --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity, 1)) -} - -.active\:opacity-80:active { - opacity: .8 -} - -.disabled\:opacity-25:disabled { - opacity: .25 -} - -@media (min-width: 640px) { - .sm\:col-span-1 { - grid-column: span 1 / span 1 - } - - .sm\:col-span-2 { - grid-column: span 2 / span 2 - } - - .sm\:-my-px { - margin-top: -1px; - margin-bottom: -1px - } - - .sm\:mx-auto { - margin-left: auto; - margin-right: auto - } - - .sm\:ms-10 { - margin-inline-start: 2.5rem - } - - .sm\:ms-6 { - margin-inline-start: 1.5rem - } - - .sm\:mt-10 { - margin-top: 2.5rem - } - - .sm\:flex { - display: flex - } - - .sm\:hidden { - display: none - } - - .sm\:size-16 { - width: 4rem; - height: 4rem - } - - .sm\:size-6 { - width: 1.5rem; - height: 1.5rem - } - - .sm\:w-full { - width: 100% - } - - .sm\:max-w-2xl { - max-width: 42rem - } - - .sm\:max-w-lg { - max-width: 32rem - } - - .sm\:max-w-md { - max-width: 28rem - } - - .sm\:max-w-sm { - max-width: 24rem - } - - .sm\:max-w-xl { - max-width: 36rem - } - - .sm\:flex-1 { - flex: 1 1 0% - } - - .sm\:translate-y-0 { - --tw-translate-y: 0px; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) - } - - .sm\:scale-100 { - --tw-scale-x: 1; - --tw-scale-y: 1; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) - } - - .sm\:scale-95 { - --tw-scale-x: .95; - --tw-scale-y: .95; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) - } - - .sm\:items-center { - align-items: center - } - - .sm\:justify-start { - justify-content: flex-start - } - - .sm\:justify-between { - justify-content: space-between - } - - .sm\:gap-6 { - gap: 1.5rem - } - - .sm\:rounded-lg { - border-radius: .5rem - } - - .sm\:p-12 { - padding: 3rem - } - - .sm\:p-8 { - padding: 2rem - } - - .sm\:px-0 { - padding-left: 0; - padding-right: 0 - } - - .sm\:px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem - } - - .sm\:py-5 { - padding-top: 1.25rem; - padding-bottom: 1.25rem - } - - .sm\:pt-0 { - padding-top: 0 - } - - .sm\:pt-5 { - padding-top: 1.25rem - } - - .sm\:text-3xl { - font-size: 1.875rem; - line-height: 2.25rem - } -} - -@media (min-width: 768px) { - .md\:row-span-3 { - grid-row: span 3 / span 3 - } - - .md\:block { - display: block - } - - .md\:inline { - display: inline - } - - .md\:flex { - display: flex - } - - .md\:hidden { - display: none - } - - .md\:min-w-64 { - min-width: 16rem - } - - .md\:max-w-80 { - max-width: 20rem - } - - .md\:flex-row { - flex-direction: row - } - - .md\:items-center { - align-items: center - } - - .md\:justify-between { - justify-content: space-between - } - - .md\:gap-2 { - gap: .5rem - } - - .md\:px-36 { - padding-left: 9rem; - padding-right: 9rem - } -} - -@media (min-width: 1024px) { - .lg\:col-start-2 { - grid-column-start: 2 - } - - .lg\:block { - display: block - } - - .lg\:inline-block { - display: inline-block - } - - .lg\:h-16 { - height: 4rem - } - - .lg\:w-\[12rem\] { - width: 12rem - } - - .lg\:max-w-7xl { - max-width: 80rem - } - - .lg\:grid-cols-2 { - grid-template-columns:repeat(2, minmax(0, 1fr)) - } - - .lg\:grid-cols-3 { - grid-template-columns:repeat(3, minmax(0, 1fr)) - } - - .lg\:flex-col { - flex-direction: column - } - - .lg\:items-end { - align-items: flex-end - } - - .lg\:justify-center { - justify-content: center - } - - .lg\:gap-8 { - gap: 2rem - } - - .lg\:p-10 { - padding: 2.5rem - } - - .lg\:px-8 { - padding-left: 2rem; - padding-right: 2rem - } - - .lg\:px-96 { - padding-left: 24rem; - padding-right: 24rem - } - - .lg\:pb-10 { - padding-bottom: 2.5rem - } - - .lg\:pt-0 { - padding-top: 0 - } - - .lg\:text-2xl { - font-size: 1.5rem; - line-height: 2rem - } - - .lg\:text-base { - font-size: 1rem; - line-height: 1.5rem - } - - .lg\:text-sm { - font-size: .875rem; - line-height: 1.25rem - } - - .lg\:text-\[\#FF2D20\] { - --tw-text-opacity: 1; - color: rgb(255 45 32 / var(--tw-text-opacity, 1)) - } - - .default\:lg\:col-span-6:default { - grid-column: span 6 / span 6 - } -} - -.ltr\:origin-top-left:where([dir=ltr],[dir=ltr] *) { - transform-origin: top left -} - -.ltr\:origin-top-right:where([dir=ltr],[dir=ltr] *) { - transform-origin: top right -} - -.rtl\:origin-top-left:where([dir=rtl],[dir=rtl] *) { - transform-origin: top left -} - -.rtl\:origin-top-right:where([dir=rtl],[dir=rtl] *) { - transform-origin: top right -} - -.rtl\:flex-row-reverse:where([dir=rtl],[dir=rtl] *) { - flex-direction: row-reverse -} - -@media (prefers-color-scheme: dark) { - .dark\:block { - display: block - } - - .dark\:hidden { - display: none - } - - .dark\:border { - border-width: 1px - } - - .dark\:border-gray-500 { - --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity, 1)) - } - - .dark\:border-gray-600 { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)) - } - - .dark\:border-gray-700 { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)) - } - - .dark\:border-gray-800 { - --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity, 1)) - } - - .dark\:border-gray-900 { - --tw-border-opacity: 1; - border-color: rgb(17 24 39 / var(--tw-border-opacity, 1)) - } - - .dark\:border-indigo-600 { - --tw-border-opacity: 1; - border-color: rgb(79 70 229 / var(--tw-border-opacity, 1)) - } - - .dark\:border-l-red-500 { - --tw-border-opacity: 1; - border-left-color: rgb(239 68 68 / var(--tw-border-opacity, 1)) - } - - .dark\:bg-black { - --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)) - } - - .dark\:bg-gray-200 { - --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)) - } - - .dark\:bg-gray-700 { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) - } - - .dark\:bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)) - } - - .dark\:bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)) - } - - .dark\:bg-gray-900\/80 { - background-color: #111827cc - } - - .dark\:bg-gray-950\/95 { - background-color: #030712f2 - } - - .dark\:bg-indigo-900\/50 { - background-color: #312e8180 - } - - .dark\:bg-red-500\/20 { - background-color: #ef444433 - } - - .dark\:bg-zinc-900 { - --tw-bg-opacity: 1; - background-color: rgb(24 24 27 / var(--tw-bg-opacity, 1)) - } - - .dark\:via-zinc-900 { - --tw-gradient-to: rgb(24 24 27 / 0) var(--tw-gradient-to-position); - --tw-gradient-stops: var(--tw-gradient-from), #18181b var(--tw-gradient-via-position), var(--tw-gradient-to) - } - - .dark\:to-zinc-900 { - --tw-gradient-to: #18181b var(--tw-gradient-to-position) - } - - .dark\:text-gray-100 { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)) - } - - .dark\:text-gray-200 { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)) - } - - .dark\:text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) - } - - .dark\:text-gray-400 { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)) - } - - .dark\:text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)) - } - - .dark\:text-gray-600 { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity, 1)) - } - - .dark\:text-gray-800 { - --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity, 1)) - } - - .dark\:text-gray-950 { - --tw-text-opacity: 1; - color: rgb(3 7 18 / var(--tw-text-opacity, 1)) - } - - .dark\:text-green-400 { - --tw-text-opacity: 1; - color: rgb(74 222 128 / var(--tw-text-opacity, 1)) - } - - .dark\:text-indigo-300 { - --tw-text-opacity: 1; - color: rgb(165 180 252 / var(--tw-text-opacity, 1)) - } - - .dark\:text-red-400 { - --tw-text-opacity: 1; - color: rgb(248 113 113 / var(--tw-text-opacity, 1)) - } - - .dark\:text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) - } - - .dark\:text-white\/50 { - color: #ffffff80 - } - - .dark\:text-white\/70 { - color: #ffffffb3 - } - - .dark\:ring-1 { - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) - } - - .dark\:ring-gray-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity, 1)) - } - - .dark\:ring-zinc-800 { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(39 39 42 / var(--tw-ring-opacity, 1)) - } - - .dark\:hover\:border-gray-600:hover { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)) - } - - .dark\:hover\:border-gray-700:hover { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)) - } - - .dark\:hover\:bg-gray-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) - } - - .dark\:hover\:bg-gray-800:hover { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)) - } - - .dark\:hover\:bg-gray-800\/75:hover { - background-color: #1f2937bf - } - - .dark\:hover\:bg-gray-900:hover { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)) - } - - .dark\:hover\:bg-white:hover { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) - } - - .dark\:hover\:text-gray-100:hover { - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity, 1)) - } - - .dark\:hover\:text-gray-200:hover { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)) - } - - .dark\:hover\:text-gray-300:hover { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) - } - - .dark\:hover\:text-gray-400:hover { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)) - } - - .dark\:hover\:text-gray-500:hover { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)) - } - - .dark\:hover\:text-white:hover { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity, 1)) - } - - .dark\:hover\:text-white\/70:hover { - color: #ffffffb3 - } - - .dark\:hover\:text-white\/80:hover { - color: #fffc - } - - .dark\:hover\:ring-zinc-700:hover { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(63 63 70 / var(--tw-ring-opacity, 1)) - } - - .dark\:focus\:border-blue-700:focus { - --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity, 1)) - } - - .dark\:focus\:border-blue-800:focus { - --tw-border-opacity: 1; - border-color: rgb(30 64 175 / var(--tw-border-opacity, 1)) - } - - .dark\:focus\:border-gray-600:focus { - --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)) - } - - .dark\:focus\:border-gray-700:focus { - --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)) - } - - .dark\:focus\:border-indigo-300:focus { - --tw-border-opacity: 1; - border-color: rgb(165 180 252 / var(--tw-border-opacity, 1)) - } - - .dark\:focus\:bg-gray-700:focus { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) - } - - .dark\:focus\:bg-gray-800:focus { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)) - } - - .dark\:focus\:bg-gray-900:focus { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)) - } - - .dark\:focus\:bg-indigo-900:focus { - --tw-bg-opacity: 1; - background-color: rgb(49 46 129 / var(--tw-bg-opacity, 1)) - } - - .dark\:focus\:bg-white:focus { - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) - } - - .dark\:focus\:text-gray-200:focus { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity, 1)) - } - - .dark\:focus\:text-gray-300:focus { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) - } - - .dark\:focus\:text-gray-400:focus { - --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity, 1)) - } - - .dark\:focus\:text-gray-500:focus { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity, 1)) - } - - .dark\:focus\:text-indigo-200:focus { - --tw-text-opacity: 1; - color: rgb(199 210 254 / var(--tw-text-opacity, 1)) - } - - .dark\:focus\:ring-indigo-600:focus { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity, 1)) - } - - .dark\:focus\:ring-offset-gray-800:focus { - --tw-ring-offset-color: #1f2937 - } - - .dark\:focus-visible\:ring-\[\#FF2D20\]:focus-visible { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 45 32 / var(--tw-ring-opacity, 1)) - } - - .dark\:focus-visible\:ring-white:focus-visible { - --tw-ring-opacity: 1; - --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1)) - } - - .dark\:active\:bg-gray-300:active { - --tw-bg-opacity: 1; - background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)) - } - - .dark\:active\:bg-gray-700:active { - --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) - } - - .dark\:active\:text-gray-300:active { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity, 1)) - } -} - -textarea.code { - line-height: 35px; -} diff --git a/front/assets/fonts/Estedad-Black.ttf b/front/assets/fonts/Estedad-Black.ttf deleted file mode 100644 index d89abb0891aae6131bafb7c81102f9b94b594d13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80584 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 diff --git a/front/assets/fonts/Estedad-Bold.ttf b/front/assets/fonts/Estedad-Bold.ttf deleted file mode 100644 index b893aaa0fef82b6598d49c4dcf6faa05c94b8462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80252 zcmeFa34Bz=wl7>&d++W{BsbQ|6;Eo+#LV)Z2lHfJEQH0dWM*SUtQ7E#WYuh{3-T)C+jJ4%sA;bD*z4IRa7R#| zptZpv!F?jaB4*+aXCh)%I-g~k&Nj}o&T9H*ne?c0i_w7d@5p6Rne!~}ZlQA2r0ZGK0F~AM$y&Hu z?L4c4G8_Krsp~Jg>+Zu{(|H-Ky8Erq89h^rPOM?0<%W7FrB#K$dguub7c9mdSK3f& zj7An?RP;w7XJs1_=XBdOM#|RzId{3U&KKM{`j&X6Id)_9yT*4L z^0FQ%z`3-c>}EMxulirNMy$11=bL)l~TD`8<#)ZgUiD9 zvL}&0h%1mCVn>ia%1)rpi?~ABNnHNyC0wEGG%m;i@MQx>$;b)T9G74%a49bA5MG4D zh$=CnNsO2zM$8f;9ugy-5+h!~M0eneu;3%H;4Meq1S2m+c|Tmfa{S(M{7u*ZTz(P@ zJ`xN55(^fIg#d{Ki^M`8u(0wPENBu79>BtrXqiUqEyrn*BebxWaS1t2Z+r(zih%BL z6N*U3+-72&Cd_^Z%zPKud=_IKX!gP|hW_B|<$xqs&PKAFjWo>0HqaVDkOQ0_VFkeV zOTYkOw>Nsdo8%8GVdJDsyoO*MA2T%Z|GC7%it5$fPhl^RpKncFG@}9eOdZ}Oh1%qquSh8mfXBn zeJie79N2ji<3G#Zh30jfpWrX@ll&!q3R)P4_Cojz182y?TvJL^OfYwMeQth-;Ei?0 z0$xh#7wHaP%9MUVI^q|l^s52W9DNZqZxcN10{e)4%sye?aep4kOQ9c5;XA=`aZ_VSiY-!*OvB{eNLd~w>levy*oMxGbMSGr_0Jbe2r#%5;IOzgVWrWO@&ch_9CEI)a&Rkm)9wJ}A?NWx8FakIJWZ z$#jqIqxjWc^|MFzxQ|B4-7`i#UbDvJ-4ilBDbrJwHd_5X5|If^rvBv&$Ge*+#f8^NzDLH1$7)fCF8Y50|%^Le}CCC0VT#+#M|Gnlx z5dQDUF%FFydM32YQqn4+_uefvN`Gl3l7&lGb9|~@-|iBP2TI8qB-1jPmdkVxr409_ zjua%*GMSdkbPuKSzFmh^p;KBW({h>ap%jq#!#a5T22FTUg9eN`8E*X-_Kf>dnYZjA zRv)4dVfivYN#<`HE%_VaJVaj^(C#%JOd38fkZD($c9UsOvS|K`tq<5f(nHMQtsp4K zdW(}b-nEv&wKfE-JnqLMxQ!2HTsK zBr$4W@kZN3;+4C#r~fm2;@`DU8rvrQ|7Yg;|NS%nzc17Olbpo4$hn9&<|G`xSCTk> zkU6$`sZ(0d0W-k?GyfgwA!W^9NuO)DBx@>L7w}5@g3JE3bP#~b2C4F~tnY;#tv2uy z_L6>|W$?)!z%HQ59MWs5OYelhKGEN~B7GNv)sbhLb4uZXQ(fP}tE4Ok4xK)JfjVWvWU}VwOG`h3Qlq+jjK4B5Nx~pJ;(>CA0LXQ9bfJIc1p} zLhMokemEkzhMh(;>UsiFL;lcs^C9hKu~lq4dkTK2E8G_|VV0wcm1(?$CjmPx&+=s1 zzKO@t__+HH`ERVURY(rty5DY^9-$uxFH|xJKfxM?IuS3<^9;^^9LyeScJz zAn!;>xY4SL+5|(QOl7OMLzplDM#6J~#GF;8NwUNZDO#lQ68?CcY&l-0iLPE~Ua=D@ z@y2*8$G!tk=1t*s=Im?s0n(q~Q>4AnrtlY*uwiTpJjol_E_jUvv8|ur%9KIM2xW{iQJJdDQWhx7l)II+%0^|2vP0ReJf$2`UQkXduPSdT=adV|XUgA{ zZu-;_F4s2-}X8l*<3acZ)fre>;b)O@vzTBP<-2dG2Tk?J^gvN~Ozqb^dHtE<%Y z>SlGTx>Mb&?pF`1$JA5m8TG7sUj10Tq<*b_r(RY6P<2h!yfl9;M2pfAw5D21t+ke? z*|b8fL@U(>YQwZDty-I+&D7>;OSF~RYHb53=4sXmX&B~#!}m@!bWHa`>Z=zsENu!j%FWWKFEBa(SB~wvDt%>ht`c6Zh2m>t`sp?2T zUZ#AbESG(W3%Uo&tEfb5lFx1-j%h$>KxII#nCY%!u6qG#<7ekN2BAd4$rsf++)!OJ z7TNway+{m*T`bBy_G|m9!`_q8qpMuDEWUJn2)wl=jIjtx4Vc+gf*(;GG~OzLhqaYy zgoJIbynBgKLFjNnE5hYlFi1C0XB?eMyatXZc1d62>Z+AfGbQS7_cF&xJt)E*k#9 z@ip#lk+dOaP5f4e_@ZlQ)#x0#dx~+B zFXr|TujW(uOg@h2Rmys0v$9p$sq9tuD~FY1$|>cHa#lI7e5_njzE-|dt}1^hx~i&Ps=ped zMyUyEQ?;eqTFp~!YN1-9mZ}5QVQQ6Htxi#As`Jz(>PmIBxQSBPjOq!1tpoM8MTB6om%g}PP_F93~UF)TlX@j&8+8Ax3 zHdULYEzp)}cWZ04joKE_|I-TX@P}zvF-vyS1IRzGenWX$3qq(}kguh@GEX4>k{?uS zD6f#zou@)mHo#X3q#yrEYlqY>DE&}5%(yv9)LcqUXrFJScC>iyOWci6r=Z8?%A2@*hd6`u2XO=?o+27G4=Ur39ue;& zeTT}8)PPwH70{<$@Egz?Q2nX`16sUVj?`j;RMEm{?CJ*XN2J3|*?1~UM53<(h1xu* z-BzC-QAs~))E8eUex|z;64}0zEn-j-t1d>mNO>A<-bHQl<}w{7+pm&XO;}Q1Lj73 zDbv{fC~v8RBbB}Lji#l@Uy~A4jZ4_?CIuy)*Heo!OHka=FX~aGA1T16K}E_9W8~j! zcL29l;#1W5O6`yIH|2LKQ7L-!D{T&ysJqe24P$qeTvEz#SEj(mFUY^9!eTH|k*8E( z)&dX#+(3bkfcCD?Sd=LZsp$$)qcTNOwM@;c#YdQ_H41m9E-I~-v}&Z1VgWx%LYW%W z3;039MhdR;Ct&bXpcf0Xup=!~cTkD?9iaL{(%!vV5c2O3h4WW6VAY^=lzxiGgN)+(CTr2HkAni%cx0Q0vo{fp-4=+5hiKDGdIeGPaX7j>nIY@%T2T zLOY}QdO8KsI2s?;2TDySr?@@^^|VHHO`|F&PG`wu#!s$fY2zo4pUyHTjvrge+DsZ< zHJ%kr#ShR6JxlTT)B>f{7tt!k;?r-kIw)q)gow#776*@12E3UzJlO|Y=NLBG_1rMy zoA<&qqz7y_zD1hrdp}x6xza}Vz?A`L(UU*4W|O8K*ya2{gzHvY=lpB7uLgJL?)hsKeB+gLfToTMKUc$s_-(N!87pP-}PPY z`W`611s^W!j*#he)D(P%OlQfbXS-_6mA~e>p55d6-s}24;Hq^{KKX)d>nKu=*t!D1 zRK$w`M}J<<2co|b@Mq27v-oU27aH##__7Z0gZu^9NgN(y4~#qtk(W)ev)3A2#3si^ zaCMfg7s<3(ro&}ALZ&as^e9qz$?JQi-l$~(zK~NN33wY~0jELVz5{->`Fs&yTE8!P zH@}y!<@fQ8`~kj&Z{s`oV|+J%f9$y2V-y7V&l)uAEct1XXci|QA z#|^?6m2-R;@5B#D`gxOm2}=43R${oc60NWj!(b~$z)Hky!IDYlw*!_Lz{Nbi5ZeEp z@bRsIm+yY~`5uC&?-BU=9tVb=gum|~dN_(}C~SdZ-WO>v;B+7_L_0<`A^NZtV? zHMqEhM@V?g5*|MZPl$vkOu`c(;fa#)Sn))RY=dNn%89PyZ@&uh-|!$egr&`5Vap!B00Tc~h3WDod!(S7gp4zGE0USONkss8`10Q)&qOBz{fiCy-9$$B<5_zw?s3^P;?ST;8E}x`OHr3YY^vO%WGEz?Y}EpTho& zfT#T}q<^D9h>92eo(qH&kq(Ad9NU!qINMTU`_P3GyL+0qjn#|Ez zG?~*7Yy3C%9s2>R9h?py52^`2l}fP5QjR*Rx?CIsluXOg9sq7)jBn*bHb%e`3DuG) z0)LBGoZng_OCCYisZ&lHD%9&d2GwE5zC5$%`YL_3zFyy;Z`QZy+x4CLZhf!5Pk&0^ zuOHHn=*RSv`f2@){+9kOB2F&o7xhc}-}Ec`clrVyzhJIE*r+=V-tbe9o*1y)jk+5HNI-OrSPdV2)Z`W7bU$7srKWX1<-(%lt zf7JeneT#jKeWiVleU^QSeX_mUKH5IQKEz&OA80SPm)ZN;``CNid)U*zi1{Mui-7nH z?W*>Lc3yi;JFUH}y`Vj-E!L)Mm8w;_T^WZxnjc{meJ{Qf-->@=*XHlyYw;C4J6~cC z=L>O3d=5X)r`XZ?M0_khg4gFm?C-oU&Wrcp1FFGp&pYC*cpDy}H?jBgx;P_VGiZtE z>Hoq%lORowh9Fl&qY)T79~F@9cdI|+NkhY=^O}Z!=ndFjjvk zxLi2)^CGe8q9MIvSsaT8-?KuxCP8|nK%;2}K9$PSaC)dE&R1nX2gtTouKRbqI{aW?8Mb`QG`r=zyAM{yQsC#2?MI2pBvJ%RI3`*1erY3Pyr z;h8?jp2az#!|;wi2d(lb&iRs$bSk{8quF@mX0b=WW68TdQ+i!jO5f@<{AO${yF-2( z$wcXi-3`vOn2mzI?Eag?<|8{2I_#Zn6V4xda1$`brUZRp~{${&=EyLdW zQg$yayEV{%*TKJgKeS--@or%cvxlGs(;w|=(BB;63#kAGnW)nGgDaX@b6X0^6qpX+ z_?(M!CZGhX$noAdDs9qKR8uUPDKs_95^qV0x5Rf5ae5-(tdGt!0drBo!lvt%#V4%fc^@vF2R!f#>os$_7WJ=&q+wFD5)kQ_s ze6rfrKCZe)kLn_DxOK{05vZ;7Pk}A~FSox*+9Cqy{@ygT)sBF!V%Y>+6F*;XFI6cD z55qoTkK+B2eFoYhyv>4pdI*sEC@+&h_ro<+C`!EO6=_SLER}LajHQZzvz)#;8*V() zyTTR_8xtKB8DX(l0I|gq;NuaSs-*;4v*QEf@d;JvlNB7V#N(3^7|)U8=YF2{1JCNA zU*c7>e;&u(DCLm#dtmhM1VD@aFL`W*SflMhL;CERxeF7GNj>bdSj$ zj!721L!yJCB)ToWJUED3@_BY^o)sL!gRQNTQ!J__$X783TeDj#*;zp$p_W8T>wKOo zx{a8?7Y?Y@??3d+WqY3<{FzpzQ|5L)G-A))eeClm>g^W4F-Pgf_xem5zChoj4-THv zZ;?9V3G1(i2P}xzvli>;dMp@P*xc*>^#Cgv z;J)AwiCFiy+kA=I6t0@FBhOV#V=SgI2~`+eV&n0U$*h^6oCscNkd)c1Rzi=6RWYNa z91Deu@i)|Os8wO}P7Df4#3$LqBPNxH@)RCqvL+;F6BU|UCnuPKgF>=0b8cR$yzr%? z@=Jctqcdkb_Q=)k`#KJ>bxd#BQ7OKzKs!6$-e zBzi@sC8Z{59+9b>W;WSMg9!EHG}#zSQm8ovLrlzWotx4U_wz+oW{e1?IS3{pGRf`rmRa=IYZ>nmWl2=jG>c>F4GPm8Z zu5CsQ?cTe6-FJLbiy?($mYEmNuIyO%;89grJp68-@~J$L)enYW)CK4L`66)*BRm%re1 zUR?2@{<=O-e@#ALis!u>KOdMI5)d3D%qckm{-U)0ajpM~7xm?rztETCd7cZqudRH3 ztJtHw1ODdAqHN*5O?>ob0hg*T;h$`KIGdy_QPzMK(rnFWg{$RgSpjnbR~rjL zCswKwKSmXAa3qVxOw%45Z?RgykEM89}Z|CC!ViV>&v8lHZdr|V>C&eH!0`?VG1 zGvEfQd!UTTw@8pU9FmymTd^oW2SChLmehR;pbXK*MnO)Dggs(r zfi(F{F6mg_D=>h-$Z<)9QBopAN@0LXfV0H;ta4WJ4bwre_Ds2m#kaIDjb#UxSLHme zuEUy&gjSIZ#-J#&^~9bkcCw`OPh!2IqY@LMQlnF&{WWx`CLkOpU(1Zqf_&Aa%zW>%o+dAhBTfTDZ z!etA$u3SDWuknvf+y3Brzi%D1<;;~cTM;C|0b`Ar1v>I)&1}iOm|tFk-BCy*ri?e3 zn-H<07sl+*{461@G>`Dqz?9s~e6<6|lCYS}W5kTq^i)d|VYe4ls_YaOzLpm0Eeh>1 zY9~J^ak39}0`L&cTH9KIngsd)W933!gf0|=k!W01^gw_D@kdVsML+p;jvuo&}ZzZ`H8>VZOe%6Q#)I? zJvjG`#f6>czBFC`+xz;92297*`GBbv>txIK7I{tb{6gPWPm5NF_N)`XUVq!@TOSYay9HZs-({(wDa@Z6O> z${)MCtXqfPLkgle;_V9Vl>BWEsJSox(IFz~+7UE^{_KQ?;6W3Ai2 zIeqBnsxC3@rXIUv**$kmyL0W!bIYr4Bi#w}r#^}K6VQ6w+1h~URWBr>1R@Gl5AMuh zJFBWxd@zv;q?pn~0mG2|LdAo^!y_aW?w$Bxt6aaBSH)j1R|+4sJIchNtNa@=%JJ}N z{R!TGr}B@wT+9y5>2Y-^`i*5hY=xc>{Hh`}bW73^d%r-U8BPrnmk=H<&C6txVlqkX z#aU!{SZJWd$BUR2i{-Hrh6Ixt>Pv9E8S9?#$l?t&8psnJ%68;#>!hrAlm!i}e8N6g zzvN`MAD*6X|NMb_H!0max3-BL@BI|9>5m5;`bS-7JydaN%X53_WjGQ~$JN=G?6H| zw){i1Q7^r>%YLX2Hf`}o`rUE0A8_LZO9^k5u%*RA`@wp^tU~aUWg*c3gkS@{62ycV zj0#N*N(?Z0M5Xe^>Pm>Dci;e_Ho-w^9K?N2t|9KFv^Oc?Lrx7Xolsq-cU^2>^w6lW z8%5Zlr7*|~^{b@!t@EdQ&CM}PbE z*rcyJw0dqp;a$_acb~Dcu>3i|XYkra^Gmy>(U?u>;VKjtMJ>VXVyc-+T+KZk*Gxlq zx#|370(2!o>Mu!hO(&=1(u&UY1y5!!6-E=o8qKd*apU~zUo@WI9e+8$JfQLX!sa*# zyX%0O1DnIb`Y7WpX8PvCSim!kA5q5b&rW>?o2GmiGIH1DX{QH&7WI>vUv8*TTN%eJ zsJ%bbRarhow3E)9Vyn8Jmg_+%btJz$5&SFS=j)sJ`1!i8x_>d$>D`O@N3!kV>^yXW zL4bvJc-o+Kl9qPa`VnUvqxt=I3Cc~|4@~id`m%36AFpqk&#yA)V%l$5tdqHi`73tT zD3?IXX|T6Jfso!LB`|ZKKrj>77wQ5~-ZGG&l$Q%d zR_0%{pP3C-|J$}ujeD>Hli(iN+yr7&Ofg_MT1oMKf2f^l7>Fdpt}4uF}c_#gC+7WD_2z5B01~RtFTL(oYtAm zn#RXQMFa-;crhEdc@wL{;tf??MoD&Sk(?N(nxMP~s9BlNc&!Q8qVNx3C}mJ$N&Jzn z4-p7i%>xY;CKx(QR%X6XL(1-&)-5}i_h>s}!{Q72r|`~Qys-EaKJmTkrClG~{H}hN z{@cS_xHtBHw&UZqCBAslV^vR$S$S~y6L*&me4vKM$EFM{YCCCoUbF5!TPBy3-sJ>%?b9iAERicH9d4^ zCvf3KMsf*o!4yM-17nqfQ?k>rkS5+{jbXz`lcG`t`v(x~3^hTfE3{hULd`9?_~n!D zzyD;!J)I7}qJO#SyGN&HXHR|fyHz~l7hYL|D<(f;?n`uR_vzj|N) zqxa;I2_$)bjrs@h*93B_g{`?pS~XlnuzqOqxbfxZi`^W5-(bIB&@)80$)IP2$TZ%f z!S|C1i%Vp${%+@#?CdE!zgw-R^O_Go{OWIi(+>7o_2R`}F21;`k9PUJ+EY9jvr6Y1 z44u}DzP*WCL57mX2#=Lp*D)cGvynF2*i3>tYk`gAgV5w4`ZhPe9ISW|<$N_6hBq-E1$z~#e$Zy!%+Nfn_-?qHRyoQ9Yrf-Y{Y`EWLu5NKWJB z${+UM93$<&iLEq^YC-J@w2Hk&;zQbD&~PBELmH_|6@WB!S=LFsS5SDkY>vgn&|=cy^e$BUM4i8tpxZi3V84| z{m->uT#ut5NR3omQx6#XSVb^5Vg5IgYp(SSMr@6UqxI|(WYUfXHAvZIMWK{ph7jvr z*sYg+{y=@79f#{1NwDEN+vh(%TrcBChs|`{uJn`GbMZcPALu5B{0}I=ijz7er0oKb zx|{hm827C+6XIf`!$J};abegVa5*!z7-&ES=c~8vlUkZwh5%Pr+cz$~Vm5Q@)?IX6A&geSN}HGrIMe zlwY=bM3>m4o|7LQGIRax>OG}CVa;0>_Ns0_a>ux~w|(MTr|Mb+zTZVv?PDxnLHkxBc7}Gb1%p9mmDu3$OIaQJqC*$)b47>{2Ab^=SS3%Vp@&H-zTL1kMIYXbc(Dg~F-Q}< znD7b6384W21~1l#7aRY$))e~cZd{-8f9Rp;cOWjS9-1x+948Q@f7Nkbq&a-+#{u8L zLF`OM+ak~f8Ku`?1Rc0ALi`js(RiG$+I0o_3SjxHqmS6HWI7%-+9O{N&A%tfa0R|P ztST;`g2AaHJ=oG4Pc&h8>^zw#*tYc8fgs@Dfgi0(T~N18sjOY1RKg2zr1tTe=hT6i zyW#Ky=AvygX}V~^#mMU0HoS6pDM*}K(qwb_d2dvzQ3fWF>dG;ech``J?mWH-AS=-qMOkWEh)PPu<$&*bE) zvLS=`tikGS!?U{H!_N*}Q=T5#u5@-cz2AoqcC;0A+p}T7-4*S^mC8?^0*(?D& zrP4RW{K3Eclj9W956P)0wf=+@K5Qcw8#g)GCcAz5AC(V{Du|3M81+!)pVP#C{lF`) z@LsRf4S{y`+Na&7KfHb4BU`3+yGXDbwh+TSMza)KVqgH4p7dr5PFxhQVkuUlA{_hH zq-IvB*n|>hUCJ^%grrTI{7G+AVlH?3+m7n}GfR__`p$f&`jM|~my@ge&tJP{!GN(m zeZ<213a3B#=-!e`J>t zX9HIt{9Sif;?L!VPf`ef0YIP|f5~xxHBPf;lRa-J{GpaCWza@l-?$0GR4mG<1E=LeqLqT z-#-W4Rh;2#56KwVp>26)I8Caq%eZTppQ20tu zMKO3Yp%ZC6m?t?@wI1ZfL}b`(-74#l{}p#FCiV&fNj%B>YSeMT-wg13V;{-0-li+w zpN2`Y7_5r1c(-{M*-*xZyG*`{!#6Yf#1-C2_v3F<=vuDbuBJIII$r0?^7R+A%XP0~ zR*k;@12%1q_8Zn-EbC{3-JnAJfSg?%H`qj*ZBnEeZyP^W%!Gm@aS zM}96Fa0LBY+LyG%3})289>W6z4Wo*9cxH}2Gh~Y7jY1r@uU%8OM!)O)Gc)@pC6&(H zf8NF1m1V@dYY>LLvv9_PJNG{N;B;a;lDPxPwC-DA-5Y&FCSngygkzT6GZe|(Ok6H$ z!%Nc>?9!@9p6=oUic4L9k5c+^Ts5xa>4r>9l5^&kh%mn0GEu+ndY)b{6wkiiX!$xe z5Y7O1ndDbemcxrId}wRe#it@^a8h_nKIMi=QLIE?v2GS68IxpD*VMR9me(^UY&$nd zqk36%gDh{vgZ}(ROl$-?pfYGooCJ+YJA;THG)6uJaCneC7B9t!#V5%5CJJwdNF``b z7HgILj#rXL&b%8$eBXVSpM3!DA28ZGuKW{on0*U76N7B9Gcz+F*djuL$Uz|OOhY*f zjZquzAsd^YDbmiAyUfZZ`?2A}`rnZ=V(HL=+(EPEcN+NcvYz(0Mvoi0Ai-8%RGb~3 zT|RwQ#{rub7Kx9Z=#ty6yRRvzRp)6vdM+qy8=f|J%h>1pbS~)at9pe-XS6G8RXnF} zZdhtLq#x;8@J^U>W|Kf%5agh$Y9m2_P%^PS;d84h z(8^H7_f}P?6)1jx(Fdt@*rMbZo?E#}w+OS@PA9b|P)#dLeU-ZR}09aU_oq)PlI8AN%L=p?#NK>^6#F8gu1Uo~vi`1Bh_?7O~Z5_(A;2 z<>_i?$8(Mk`ThC?(MmCqYlqv5$=Lo5Jj!w6d{vu96{wI?sFgYa99~*9l zzu0Y(Q^2ReOX8y}&B!7M%vZB5t?SuIkU0b<7!k0f-_|Xalqzd-UQF2L$=kMhDkDcK zp4+xf-W(Q_muywSJiNl9Gvj#B=)2xiJoQgkRaLFhKlM~tY`)1DU``M(l#t6u-J2QiF>q|MT7pcj$QDcMT&z4- zpbL#AMhO+C{%R0nqA>{lJ2?n$r9r@rLxa%2a}R>E4(bS{saAp5?Lujnw}V_!{K1_C z2vRBXBgd!VdmT@nbj~VhlYqbAhY6>uLTL+1`T%GHimb5|X(^afNMQ+$ z;i7AJx9BlVXBP~vNNFAy)kWq94o+^Ne%PUF+R(9Gqb+T^qz$d?5*0|N8xQIuurFU= z@x%Fz(Q4pHsS}DLYM|WxCi)(YV~+<}9QkSdd_dDN(E%1L(m0Sh#mQ0(4jVY*X&>4Uda**~AqU@A7fJo%zNnvV{h`N*N6 z!wx-iM<{KwXP$GLjJ-#^52aW7c+?euE1q?+b&8DvGpEf)Y)%VUhhq`M!#panR~*w5 zrjDWx2RDSffwQQHPz2%mOA|*1V8`=#FS)4)SqSDE9AqZf5=^q34jhIKNLz-&V0W*y zS-0=M_Z0_gFN9}AB`#cecFX!xA-^}tQ!n*v>u_w`-!`MB#xJOF|3;y#t~s#6+8*`_ z>0xDBqH0hLUQU8;VsH%N zk_PYKq4kFjA4Xz$2nG4@Tx;I!+8?=b{Ze0q7uxZHs+`3u?D$I;y?Lg9vdhAqk15-< zPZ0~$gPpN?AwEiL@A54)hXBXx3lUVLu|*g&4v@ipEh{D(ESdJ?h!ig`?Z116{g*|&ZICXA*c3|oPhtO7Gn{VC>B(i6INPH&Og zJjt366b$nO0sbb2}-AIGcq z!4qGz`JETcC~vKF z5Jlb6k^`0Hnay>jqUXJtu_jM2?)@;J4_n`_c|`k)J4*-lx;Hc4nP{QFqXv<0@-|Xaz8T7+m5y+C*kIE2YU>*;SK-38g!bd=ndL~UXRbUE88#ifv zLqkGCtVu~$avVzTX*jYtqViqq8|tbIaZL0N$U*E!2=>wC&OsmoL*fzxvSFOVHdpF) zt8aad5d)y*0oGWG-%R?ixz#Te}X;HPcAH8e1V_d zrvI^F1NYc=#|Ik+4&3+w@sZ(5H!)ZH8nm3wrrInq7(Iqe(ExrFRs_wq83;3pX{v(7 zxrp!pH`I9WJ?S!ONuCv26e3+7)wrP^H6}*aS6AUX^GdWNCO3nd$}<|GG1<`P!5M>M zIAQ}SD8@x{hKsc!n3aDO)pAm0R?fn$eocJ3BwPC3F?3G$;7J`*V+%Vio1E68Z(3^K z;+AT1soE|tvE|sN+5TPwViSuemUS4M6{cpl$QYSh)-p7tMQIMm0JMYnF1)XAzkdpX zD_6_&DzUf${hqzAoP!#yu|h*755*D|96ot)QRA=%Xac7-B5gP_DfsdmZou?MOZ8jI zr6NUtMP@$UM9{{0Kq^O_y+4nM;Ot$%xTnZvsg{Y`#Q*EiU2LZsqc z_x2rnIQEax-&9)dUp8n>^18Gox=JC1_lNYD<=dn99>FAuzG+i&`sp6J-c@8*@WKH zd-tBM)lz<~{to@<4Wtqr*rP#=Kj;H+=)o2`f9vvX>A@~NX1Fo}XB581tYP1@35bE0 zU=ISS7o7lcIl7HSLb@{+30lCL%2O=C2_{ccbBRv`2l>gJrzF>*5c6=cU_jZD?k{t$ z596UBmbU4m6)m7@%A}EFI_#P}@zybj?26TIM#S; zLO@e^s61m*1Ff#Z1jO9sGL(V<+scLtE4O&xo;?*L zvbDsr$rJnbYSX4y--(mU5;8OLGbZDcNpRk#PUai6?=UCzX91KH-gf94L$&YP>PHc+ z1RcBXgaUT~3uHLq<^eaS1_fKw48IySFn~@Ox)iVUvRVS*>U0OUkm;F1k{TugQMtnG z_QiV(vhDW5iaB?Y2{&%MZ`~#HosQJOl?!p$&+sKtT$vehW$>z^ci1G_crZU^8V>%B zunw$wtLT*+4|TvAN3LHER^<;H1ZUyol^}z5c~-nQJ!AO#^}}cIx{F;d&ba5x`SZWL zN8GMn+NyuEwRW57;GaE}wRipf?z^raW)5_fE5`C1rHVYN&huiULEmDdi@rG<>CnYc z@PI%Dy2V~yT%e&V;e1>X@B|$mMC4N8Tg1~D3?lD9Idq&7gF_m!87|+Ho$c=EGJIM| z{@4YXeal-sFj(K4pA*+%d%Gb;FOARclNvM{?O^0(N*mr=I|PY0p?JSH*gd_nfZs_$ ze6B-=lDiuo3>@rp7vn8d6m&TRcZ@jlX)%?-tKlZt+~eEuIU!#dATocrN%B z&qe&@b1t6@*sy>k0Fjc2P(Z0TThJRm8TX&f2j#BaT2F){W@qJ+dRexLPoAuPGkJ(( z89yND!^Phq8xZRSdLcQL3OSX`;vuEXES}$smQ*%hUu@1W^#*r}#9^icHc?VbWjrR2 zR0vt4+PGc&DwCLnYG?gQ5FkM z-p546SRyTv5#eOo1O}iRI^5C(n@f`1V9ewztz9QvtT4=>kYn?lhJ^Sx9y)(mVq$`~ zm)+iVxM|J^J80VSt=-8SN6)E==hQ=|xPO!E=B=C7?iFwP*G@kD>8JNAd3C??d-ZAE zW^0RPgHz1c`3ho~-Mniuy_G!N3& zu)WNotzoz(Gt4#>_$tSjJU*kc-m#GMvFWib(^8u^v&PZBSz;=;{4(N0L%*1{*ZD;h5XcO-rGdH328cW1q^=N3`W0 zUU@hvo5)ROAMV|x4OhL*K!OR18lAxG$Z%xE!_&M74|;fd0TpI{Zc?Bx_;95OSIW_x zx7x&eyr1Tay$w)`%EscBLRPlIq0w}$Z^6f;n0%n}HEzj=G>^Y*2*mGdr^1$kW4=&= zGBeU!rZ$U>jtCEf>g${1m*d^Uy9wI#l6IX7;Yp3D$CC_X*BJ@IK5dwQqe+VcEEr5T zE6BKy^BSS%&l_l~F6p-0M)w=lWw(9$3)63VaoU(M(_Xv{S^MrTqx$hyG$RR(2~Amj zy2qflBi~$hV$ks2qj!v|+CF;sh(RZoyp3expt*w-}dVQVz`Z_cD*MCvRr@l@nzVhaE%rDm0spL6g zjH|CPjr%gMtglnew-|NsX6$R~c)V0!XDZ(%a;P2D$&r$Xd<->ait!Y9M*y@7ShFOM z={*8iQ{X_tL+YKHbc4hoFyF(252u(bIBOLJFWPpQ?g17rm`CISrI21Fo^%}p-Y zmwAkGp{}XEbdUancu(!%ND!Yn64btqXZ0;L{C0f}1?c9S(&_zFnR<|nu}){*Y+Vo? zqPCzI>kuFKJa{m?2;c-TUqHu;ux)Pa?no86LGWfS zXyY~fzLV#t&T@xngDz-q*DPtLsf%_pegjA>m0g;BkI(Lpw$tg2$*c)A`x;b)0Xao!>nO9-~et=i(dc zTt=Ns5+0*Ywe$XK;Q{5*+NuE!T3EE<=fX52&VWL)O(r(n0~0NMMecy8fB@L8(E-tL z$U$hypaU8d2`LP0DAQpR49e7;7tuvr6^{-l{40$;FELHHo-fiC3t@l1Ka?@o_DWpgM$C zqs~lz^)KoWUX41P_=cO;kvzhvQ^^Z%!Xwa^#Jy3cn(w}WM^v%ZN@u0i|8eHekEut_ zoj7-*MW=HoEGwA5GlG9j`4*j8baMGwj$owntku_&ePAKte^@uo!TDdZ)0)xjHM78_ z5F6mzgll+*P!xH3OQLaP9y`}usf6^vas^ueN3v`ieWx zQ;sR`Ir5iM#PS3D0mLsqI7^&b^6}!gUapg?^Y95|9Wslvb8?*?SKpBHhd^~Xf9tNN zXRKwaL-S|UndzFFYu7T>q4_iFbi&&kNLJiXN6w8=rKca;f$h^+ixIzEK(-@nq{ifgW1kXsR4ib&kUmd(_X0N~bOugO1$ijXeJcAljWoAxo19UY7#|k{ z-FV30!}jbkdnb(FGcGs5ijt5q$!!ag!V+!m2X~*?J^hj}c?1RrH1E(fvT4r|ZL){8 zv_{5cMU0zrq4rs|xbMcfJ$lUERNAthky(Al=B4+}YY`LdZQ_#l5Ep5> z6ExGsMSE#@6OIS;i~XDBTC1+9hEAjLa)0FT(e@0vPhbA6qucsKeyqt3hr{&3v%5@G?oSqF^lSn>WuP*!Ll_d;YS z!_I)lnkK*~w{kPrN+R8Nysy7gVLXWUD|&f)3C~5Ka8Fj@%{}qLI8P1Qt(O-9d7gNBG{?s&afqY+%1({~+z{=hqZO12o` zdiSmE`NVCjrcGP*!lv%iN^+unlnGr%k9pn*;v;=3Sfx14mb4#}Xob%Tr`{3w^Gf2> zS@n8TtNCqxZr^>fO2#2J3i6bEnc|VU$+gklwKj5YplPEHtqr5jOrG}_b!crEbvofq zkJqm;*^Z=pqfRww`g*z_51nQm;7MVfoxiiq78AwJf$nj>xPGlx%Q^&)5mz_USu6YE z4RsK2T_b`_rD&&uLC?OtlIeu+t<*SdmVxa%XlqqDfad0Bu)zLz*9Ua z$B`HTXObao<uc2#5*Up^iET8I$?3Qzl!P7mL|Xd z^apng#U_D><85?)%MdTg#}Mmi@&<1D%K5Cs`>_rHf56QFH*b++l5<|_n)9ri&XvtX zI5z6c}!aGXC~f-NpoJ`4)mt^s6%I(DaJ9|mWen+#fUS6mL!!XiDZdxcPO3=GHe_Z zZp0758z!ZI+$x2Kn&07yslP@1pvb=_q#hB3(tkj3Yv(b31MX_>Z>$U9S{F>}Kztbd z=k9ox`oO9Bw=-2CN*3O5!>%&5!We@wMsWX7@PrU}d$G?1*C6f3gO;@6bVL^;ZisY1 zX)p^Smw5f_j9kXNEAm~j(7T;Xt&H=!Vo%-6_kOdJPAu>I=H4++9eP$fXq?}z>3i?V zPk#F3j++O|7|%4kSFpRSs}-L4CXm|jXhR;AFb^-N10Lkl z1AvI`*0dBEIc$h{P`-ypW=6{v9%&wF3C*mDNr4C(K-9L2gEbC|PpLmQaGVQtA06c@g9)Wq7nH+_Ac*}-f!~4E_r!%Yg}&z>D7;!FY|K;oA&Wap*iDB>}H3!n=HAa2#z7AU2K!Xb9G2E}fnd z@Ap_Ss8{8{n50&1w^c361x)~$CVjPR54()gHWJr<<3X%iVAlWhBQrdoqJ z55=5cG|vKGe^<(*Ke)g15yKzge1zs4b-FmtC5F3CH80i|?=~%-olDqY&Q{X(SShYD+ z$8lIKq3^m0Y6;-`7Io!Ydejp1O$w0AP`l2vrc=rRs_Vr6{3P4Y63ble%V)$g*E2HX zeny2Z3|KBG+yCO(NII9IY;XLm^wLvn00-@4)%~E2P*%uxhUwn|PK3!AW75BswYa+u z_N20G8PwrLui=>S3z)sYR3EZLRGxpLxY8+0T>}2_${O;(m;pV-JZo9oA#_~Zs7R?yguU+f}-?{4|NAFtGH|i@VODY*OYRZ!Ct9Q4m zAEPGm>lms6uMJ~V4NP!m!@NyXUWUyeLW-dfzs))JAfu#Vbi zqz47kRvLEPH4+D-F>EF(p&5x_(W^yLLRvF}8^~?66VJPaoM;E#^G4ZN~>Ee<$kF+NCR|g(s@kolAJeC$2uXrhoU(s$O_v z$;fC^uFV#>>$S_5CavA|^FhoDAH4Gh$3*j?2VOY3emk&cd|)){hKLVRoVJwRf1^pD zyLhE00etxj60-K8Ed^g#ha`a>5TVx40|AnR9Plbe`W(AJXOZ+LB}UBG>ICcti-l51 zfUSqI86f5(X(XETrTQ4L2`O>$oL@PyY{CocZ}@00#G72cVF*Rybgg4z+>Q7Dqh{+} zchuc}lXu$>jy`Qw8MA%+hra}4QaetG^PAQ^bhNSjHSwyW$KU#C>yKKO%uDTmVnc6 z3UOgHvo9QK3f?r#9bAQ-2o%srFo?nQVKTd#c4#wAeVQpL*35hdLn`E$i#Vo-W9<#B z9t&!b1L3c1Uk5ir(tPtwn4Di`S+(cKKN)!`Yu{Th@2PXV{rE3CKmV-zm8T9g-m+)? zrkb4(w^r@iuuOCCE;%|SaNnlI^|21W)Y`5a*B=;f_;f?k+TG7w_MqswHtp`q`kuLR zd2Cq;(aUJjbGzZV&Q-@Di7y@efmez1{F@1}D?j z4>T1_lRWwRtjfxlCMvrtNfuyt?$IA0ehNEu>tSy&4T8&pj%^@^G}%*s&>hi*u{05y z&*<)WQ}Y?p!jvkz&V5GBhC1~000zUJ>E49=M57kq@nmMC$C^TdF=K&A5pCN>`v=0( z!uMC4^5~@0CSS&Qa{jSf8+KA8n*o+%k1%n8oSTzvW_@_RL;{`q+z{WYr>;qB%pU7lv!*xg-85aq9^wsEt<4Rli zufF`wh5K47S0ybjeAd=wUf$3++P`+uf=(MmBpZH%7x2ff@P%P;1V}+Lxe;jsQJ_$p z66edjGg=bM)m>HqdEq1^h^cG+Cn~nyeSCe>BX?}6`02aFm2ccswX45S7je$I_rp5| zvQyUWJhtKQV*b|6e_eUyL#b^?Fhh%UP4?vd+Rf5wl$*qM*#*NeWdYObL=7g|D7t1w z$;4&*n-a{-MJs?AWg92ccrN*jETo^K!{jYOh)wJeD~+bImg`ov9&XKC(zUht;H|My z;q4PQqK{szjh!E^UzuHO6@v;!cegFA+jVPQ%e5;L3+5X3(E`kC-WJm}f${Mz-82W8 z`16Kzkja8o7>6tb13eb=8)wZBv@kzNa}6dwgbLW@$6wFpa-kE38H3ad^O`d!)GHKh z3`veAO_;V)tLo(c}vIcd_#=N4-L&1BY*o+#=@Mdi;J(x z&U3u|@@?3|P09)k%)(A2XKsCkc(@S0V-05h7!mu!N}@QkBvq1o%O>$Efg>2S#F$t( zC)h_;b+F;rqR;8<9l$ferh)OXQjPE0^wgDwYl;%n^A`{F)TU*vzp-h>6%9+|0BzUv zQ}-2!*Z=W{4{Tjql>Vh5G^cLs@|E{q+qAfK_m&?tS@!+u&Y{FJor*pBqi&<7*cU!1 z|2^r;ev>XUPGUbt_yoV4%mFX)owut=nwLQBiaktEJ6_a%BD`ie27mU<^e=@+p%2dB zOk%c|1kF08ppG`UkZX8X}4ue+zen3)W#EBec-R@UX+ zvnH_ro{;(e!D(rR#WlqR?Hdoj)&C>MhfBMwHuNnXSXbOUw>RL&NogUmme2qUgG0|v zdpNwsxzm3px&-m;AN>rtmz<5~TsZqjg|xHrj5O@cVZi*)-xz4qe`RiEK!`5>jx@)m zX$GzBNou3gv`q9H-p5F6m=MRP4-fV6)}XsZ4xP({!qixD>KMfrr!wq(>hyarOcJB# zY2mf$KQlT&57(%S4xlE8j(_PvuVE8r&*U-8Qm_I9@esr}vBBSRs)@ZA^9L1JyF@)g zAdD`dIXE;Xo>U~^8o<3Sh^#VyoGD7`m|?xm0vf)^{Hw?qrrv@kW zFf6e!mx&G52w?t6GuWts)QB3)IX3yKQsb}8{?CeICnv;ZCDt!on3%BWsh@4#`m-$t z-NO3({Q3vB&@ax5v${{=DLx4ITHytHs8F}y$Z||^LFX8@n`%qld|I-CRnp2Ba|~<0 z#0yNSR(qvH{mT0J?0vGIsK*g3n$6`3n!U1mQHxTz(pUpYIM&DQ-)P=()Gu5 z)IZSV!V+qxn(n)=Y03~#{N8)Tjz>{bRl?1XqdL@|KaGJfd4f!xS9wOyxjvr$M*jd< z-%tu0VnZ^RgA zUGNa2Hm^%jx^nm-{)KZf08KM@sn6sqLc{A!zLF+4459pqzOm0Q-;^o#O9SGv2FKk~ zWN*n~c}X!jS|UJ>&XO=il1iA{a~T&+2g zZ;2|YyL`01YOQ_b(CQ_gjz2kW5Idyp;)+Vg+bD?Rs@sHfNm6LsJv0y=mso9yiZpua zgymRi2C5AaQ%rQU*&b_Oo;1rCpcGhyyhBdb(7p0|zgnbnim{qsC z@%Fa1LxEuoy@c4gp>b*R)A9mBea;1G!^dhO)->(fk$KB4MVl{g$+OucV0&0>mO8}Y z%58fVRMaHYuHSSt_->AO6?nV?Jf1JCdn^=gF|FYy)<%LRihq+w#>2~u!EBlYeEaai z`3O0Ka2<(`l2Qqe<8yPN5Aw|y=10f+1^SWqFTz}qAEeyK@l3@zD&#QxO0OKh;qFJC ze5<=#%y+z4|KqC~n#wKNy7GyF>ZO$v``4A!PNcWq@vGwdcMN@4+Egj^6flBSRvcUb}7jsJ52j7h4#Ou>g_>>`Npp_nJe?5ET>y#oE*u z(j7R_f%PM>^_usv8bgLn^^vh-W;({gLYU}@<8Q6Pd7~9g0IR1MP zR(zinV^$~A6q5?f`}hmW!x^oGe%^D8=*1{4Er?ngbSWl2n~YL?u0K|SguJllr~Bgn zV!rBUyI(xF|5{!7Eq0uJwZ!o!F&d||S3G(P&hT1-Q}77xF~Ci5g-dP%oLvT27oQU* z1}q4ZLJYM1vX?vDnp^B*vG}|g@AxmrBFB@D-Xbm*pLZ&sU3bZ(Q*mL*-A+g4rP-P2upd_R?)Ds9xXVLZ!Ez)p(FW<#`ZK2{XdvB}ia#fcZh z?n@~7icl8M#7Yh^>xN*@Tx0;(o?ez<#NEY=hN_?U5+&K67h=+w>|ixOeoA52O-mbzVGG;00y zURrH#)3sMUapmv2f9T(f^2HdfQ? zgUluCu3a>JvssTEJ^-*!!yAi7!(+g8F5U0ol;Rw*Ejz14+ zDKbO>tu%zQu+$gf?eFRVD1AFDy$<2AtQ_qTwLg%#BxiPip#IvQ|F+Ni%%gkjk{c_t zUw!@bFCY5i9o{)O<1xE)u=7thZOlw;zT(Ngwx@o&wF)lsJNq6$)xyTVj5A-`=XZnOLqN2Yivtj#H58d9f4kEn2DRpSQ!2I?y44mqhneNxPZ@kZaF z@J3gm@P<7QZ$t*?E!{!PeL_ql2s;YT74^(=s1ca>XgIex9EbugAe|jykt)V#$C^X5 zIzAatiOKBXv|jf}!Tz^8aqQ{0nT|Ug@2$LMM`eVivaG%O(xqv^3R|R4IDz4bky)?3 zTk-B^JHA?eZ`pMZ9&gNDSCSJm&kNhyb5pc1B?%EIET4np>h4;khL!X)x7DcSS;*UStke1ZE^T~eESM1$& zjpIzm{`=oNcDI<-S$oMncd$M!;&R$|v_jJspz>mcWZ*4rzX%i5V!r0F@KdS5B*|R5YT07d zGolzif1WA}8@1kyFIP;S0AD^=`7%kfvz`3aTmzd8zJlLMzX-o4*>9!ag5TKcMyU_< zMey69{w9APztJB9&#JL+%;)fDB88U1Aa74SoS`ruxJ2Pt1goK)Gn6h1xi2(0P4RNp z#MFUBwuV}Dq?IJhhi!hs6laPHVEqLg`(^UgAPklhoypISL8GLBR~CX6&xHF={OR*t zdA%5P$zZOvaaG^Er1bX68-x2=pOo5Sb|X8xD{t>~;SF4^4SV;Q;41QG@Lk zo=Ao5_9s%z>Ddd?sYAfxkP?Q6f@m=ld28@?{Nam$E}V;l-_o23i^*?(OyJ!=T76|% zbYFbt<*l1<`rXf;uKM9sCGU&UtJjZw(a{kVZ;Y(U+awkouDbWeow-jXzE}Rw7akG! z9m#w3l10xumb~%I-w3ag>0_F2L8mONF7(H$a!4XX8#`lrdSJ{3=l4(<0TbNR zDxxL*!OA;CUfjISLT}pjB+y@wMOjO(4m2ccLomc+G=RngXbP->b{-@JDq#jt<$}BZ z?YM34JNGLG~5v)29`9px2$e7Wfx?dmLy828$a0Ib46#J zCDYp=hK7~hmOi^ol;bQD-=H)^oH=))zS;4(U{)p@)ud%d-0jti#l?wBSb>eJTiTnY z)9LBAm4$_h2JcKuUFQ`&+dm+>L8s=hZZ~wCMLa>;R74=r?R|>!K85%~V}0yLqgCG zdHXs|+;t`WTJL_MLz=>V@%>U0OM}6CzW=hW{~AZ=HGacV#W49#?+J@FcVJZ=|!M4Jhl9ZA#y)4IMmd73Ls_4@FBPKmKGQ{6AAgL@hXLZKB zjH_b8BfWG6ALE>mjJmAWooR%tB=l=mNq6b4M_(dH!1w{M=g|@1={mmw$8^SM_2`0< z;-YSw+Yz18U9(Qz)LwSp@tWZ2N7HH2P5LhIz>nf6(6D&93C_J9%@K~h_|fs>`mVDt z)2CJ9&!wMBE0GqXDR`k)2=p#01gKL*XiyQ@dn0I-)FuA>@L|eVGyQ8#mvjg*8jR%5 zhsg1vESPpS2#PJv&kG60V`u1SogT3q#mKZkS4mOnePIhzcZ#rNV-_Yc*qimBMqu-Lh2sPxkEt2b4+?H3A=5wOu;VXk55e^OSc5NZx~ zEz5no(1@f}*InYig{(BN;enmy7uZ6U`2D;TAU(k5IU*i}xSB|74Tn+EbY8?J#8T=1=QYr<6s#!kwj9|lqcpzU&(kE{#`N|K*wA_Cbj6Y z04&>tRFc@{y*a*`xaZUzt<{G&u+=q9&n>AKy8W&rciu5lp>Axgxr{bz#*Wu09(omh zIL&pgeK_%Id|*DRvk#X&b)W88O&@l~g2VioI~D*K^e9PCxVnby9{;Ov|lVQ?Z8IBzmI z>r^;XBNvB5{;%F!=}TNgeF^cWD$diaFM+r`Y=;!j(}+nd&5;YHIj*Ex&(ct5ocCK4 zIIz{PYrZv<5zf-7=`T>$bIvqhaQooXLC+XX2j>jPf63#Mh0h0 zfiqu$^9FwtfDc!|`TI@xG-(}h#f?vOd1J3Bu{Zy$_?GF{% zU=JXh*O#W#u%GfxCF@(+{S6(PGcvhPR|q(-tNhWoDsXg#3LN$@1LuIA;V~7X+s@#; zq_xt0a=X?FI5gjo!*)pfSpMgy{ORuKcBHc35sp;Axl)BQMRQ@OpXW%W2ZBQn3?Bw(^>@PA z^`F3DF`Mgj1FZb@=;snXT8)|RlTT{Qz=w1M=541G!Q4T?)-3UP(l zNCU>KIwL&>niJ6pc;fIPsb>LyE49(j!aAP_M+hO228=MEGvPW-#5HOm=foJTYBMsb5E|jY5meL zV{-Ymt=l#JnTwXT++Zzks;?`TVbPByKn*9 z%;q9a@--{*CX1w==sHqNA$3fkelCmoJKvevZk+A^o`hr2gq3V)UUjJb+pD8 zu|nh-(wW%(DZ?1<2H{=LY$}trvt<4CNcS;)$LyMGr>_I-Gve!x{{n1kx7R5u%<*3g zHqWE`i05Hxk032;<1EPx+(XVZUy46-;KZJB>_g!=1~4qmR2R+TbEY{X9{FY`hw}|< zEKdBcbf)=AJUl&zrFLO+KzTP1m1Cf z#m>_Rag+x0^eHYGHGP*`n!A)VyzTCAwp}(`A8^oio%8g!tBr|(jh zI!~Ybj&rCi&5mZ2j5l7L8qu#jyzUZBtvU zx~R$SL6c?T>VfApH#0fSn)>~WKgN7d^1nD<%9?=b-7{_K+=os-_q;StKZ>Vu;?A0x zQ=jUiA;E7=eWCr5?vwXvzXYA6SDEZ-cWeX@@U>r@~{Ub&$RYVmglU7&AUGLh-OHs z1D3#tmnGc~Eb;Xe+j3EmWRDAW}tn6a#=j?ty-rN`YT*ZMA z062_*8939rWh{Tamd$ycJS#cq_qj(The8X76Q<(hpa;T-9vB=qpRdsIF7oZf2Ug#X zcPSO&?4V;axIg!}BL!*5f8%LVT+*n%8c##MnM)eTGmX>1zr^fxoStLB_O@7^fvv#c zNYStt%nEwiH0*`{ZM3e@%I9n^$iPNm32cpqo=qFL*cuHSx(D|_)_7rd=J{(i7OdKJ z?a{lejyGnn)mXJIu5d%S11GqicKqf1B^y_cG&L-abX&3!6qdO#c0yd#@x{%wY(ufh z#3T3)@C{=kj5sQiCZfY0Vz<%f+^8Vz9BYIM>q(Z{$mRZOtps{rm%Bv4qJC( zSYV7?Qn#bFb5t7r>rHj{yyrM|7i@FZ4Szqer@B1NanHic_IUC6g8rQ?OL82)`!uyB zy|Ua4a~-~LNorE?gAxByaYCKIZX-fwjtvhB!q_scFbB8sgh{$=PerHO8lPao-i>T{ z5wjG6aTSOKYR!)Cs#|o#QnpZUwmfT5jDiZc{DkI{7~Hj z?d@M*Rs4M4z+YN#*?y>dWAGE7{yE&75?PRvnR%$He8ut?I#(==%@QB!oSH7ET^KeO zz8UCbWh?7y254Ok?NH0xiR-!=ieX?j9G{1=+}n%h=b%azH_|Vd=I4kQj^O^VG_&Mp zMToz=yrOSajU!1}c=OU#De*xQQI4zZv)0~duG3aAerIVSfQK_qqKP10GC%!K#%&Vj zw+c8n+24nv!qtlx<uFF}3sjEzsCS}O z^vJmQIeg8|(sc34-M`3mII4`d&d;bp{bWJLL`0D9{QUX8 zK@sdJB1ZO}uTMLh<{_?m@Wbxz()=B0R7)2Bs_R5~U#P#2kAG-i`3e5)8yH_29w(-o z9dBgwK7;<(peJ7_DJ+~9=nJ)k&GYq=VY#P>eJ}T7r%59s^ zPj2Y6{pdWBBjU0`Jtx9LeCNMZSzf*KKJ(u%y*es!VsLQ7hS@YHEU!#IaiVZwetwU^e~6xNMLZT{ZHZO zfBl_s4tzfx*hX3l^*HL!6MIu(wNQ#>4s=zJ7iuvw41sZsPT&!W44X<~2SB}z`eXda zMNEB6iHq?IHpfPjc$zULLETPMj5#-i7JTvj8TP znh$S$Vkk6o>pPd<_b*!bb>J9V_;qCsR>bYx`oYQHiu%+)vqfB)EoYA&UpqdutT1Y# ztu3YRi5+Va`LeGJvE%OR9h0rJ?8~+ZEWkWj;?7%W6%lpi!=85Cp`<3Z@;>vw`a zy&&m(bOtmzmriarM5@nfU?lUM>>$V zSTiB+7gs;P7I$58_?e%tzT@M{&D0gvXe~u8kB%)bE=;^+Wampc1y7Amgcv^jD_iJg zy}z%#(6!T+6G1vU`8JU@{0KD#CHs0BB9hGo9!%ujm-%rH z>e*VqmK%Fl<;4XWrRu_2>;1B`I{te3-yAZQ{AqlA=LN@vCWHiK7SCGux2-97qNis< zt$*#WfH&JMzHosSv$)tu7AACI0VYig*OJN9wDGCeqF{;+4GHk|zyu8n)flL{X{&+) z*asR*q~(a@hnWlX3Ke^2twwa9O2yv|9~)Vj6r^PojJ@Q(C=p^RX#+#eQ5lip40$f6 zx;Wq&j` z%Sj=VH@4PN#BieGQ&D_b@e5HWEREw?T8}B-bfGlhhie-2n_b~RCgG=QZ$$JXMo6Pw z6N6B<3FgQ^Ew+G%V_?9bB{mEZbfk{45hkje94W-eX1X)Uej&-GST>#0eW|9e87?L! z(a_>JVxBAp<3vJ=m|?!jHpln}Pv7%v>*R0Setu+Et+?!lL*jd)Ty^8Fl_ULQj?W!F z2gjObv@t?j>ay%_g;_o1gwB-ZY!ziudaLdx4woKzR7@tYUy ztN1yZCpFta52*3N7+{z;pCQDW7+hnGu#*f6tWA$|=T>McNr=J$g@GIPx#II<_BFN;&!-YvUK?kszvjOf}lSf;DTU@-EGno+fZWeX7FWNNHlDoFJ@ROInbUY2L zvi6L$91{HxUtL&!$-2c?NDbYC^YR;a*6irnyvU!F}Vru`QN|4{0H$!yc482Xt&aZR-4SES5*hhOa1g z#D=ffI$r(T&}DJ(*s=B`2Cg|R?DwsbXn~#IBhJ)~hFtY6(c&>N^rI}NiaoWPx??HPKwhp zD>e%++S|rC7&aTZpE&+}$?bcC1A@#cWeZ;3mOT2Sj+*mOTz+reeZOnVO3w?LJ24oa z5ujsO@-ZcE)PD?(iG&1$Q`j00OE=i8MU4$~Ab2`6xRhe{3v{mG=3SVJtd7pky7{*L zfGtN}*?8U(>B&>SC|){|b=5oj$}g}?n$M~FBjUGng=kv41iMdOxzr9pWc@2IBV5+G z;#``d$Hrzz+zeb--e!)Nux=*1_>v{&GR@7C-OmnQ&1t2!Djf%{fkdm1;w1z6?C~Ez z)Y2R(17|ur$A46jR!4uXOi7zaOWys_*w{x@*n&m(YDy-bzAt~l#27_vfG@4})@5L= zcNEro=M*jgTWKFA2}kHiFbo=UYVRxfBJhR-tqVQ9YucxLuUlReODn%KTh|u&cqpsA z!`UkElKy=a9Yq=G(WNcjdlh@}q2!fr!Mm@`^zqJ#D5VJ?_caz(*xii)6a z?i^1cOblZ_7!A$x8Z&TKx=@CqJdEhZU{}loe8>-?|4C^ z8?RfJ@8My}y5+CiIuCpY?iIsVRTQTzg@@~gKkIL^v0UFcOh6U<42alcl|A3HZ=6h& z;(LkzP-66=Gd9or3>4Z{(qKH~PO=k|4bE6RPeUPil0!B|s|}(#inO8;?kPoONC5Yu zeWS@sm%8k05;))F&-d1%)%vjYP={25G!w5tgUP%B#3U(o^WGy-MdI7nzn@-Po_E=0 zt8?<#@7h~wn24DZo4i|kAZnwf)!Shi=$jj~pnCK2>Rs!qQs=hMo%+oaX$u4mwMCjc zk2!b&=BDpg^xV8EKZJz^tIGIRRb) z(FO`_(_Up187dHUBw_Jrwb5`=FlP^*3WfXdm4uMC$3vw`Yr6}E>nrohMcu-(M?CAQ zC;!s2!rEP*zxc^Vo>;VMdvnK<#5cy5|7Fedj?<7zNf@(Mrni{pUGYUu-p2Lgn|wV7 z4-DAzGD{ygQ4|!DpWoOrR($jC;v>tb;iDfr^^WFUO$PX#DdZJqCt)L*6mLZNAe;EJ z5A6uM?+87JBGE<1P1{MWr2~N=OON zII(0vAPKc1+C;zjw2~gF>yqNjQ+K|1oxHRhh-a0g>!OR-|FG$>z2(p&&GUyUl9qRk zo-VklY{BhsO%zs53mXr9c(n#tYdVhHHB|bu!yU(VuJOO*2hr_!T~-@QvctyzuIa#vYkJbnbn$5gHd` z5C7-J#-}kptNB)sy~Eh}?7hJ0IpDI&zZttykC%iKBTdYR_+jk?Gw7sutlXZ*$iYD-+9L$Vzfgn;YDSln zE17e(0W>8QOAdJ$DqechdSvO+?3Kx3hN+vrJ@n?Z@I%q?@~VmErUOe`wqBC{m*>Tk z13&bd;}ba7kQZ!!T1QzfM^CnL{U9|K*@sHxcPDdfh zs^bgn7vbZn#kl`h*zSXN$G{vI@Ro*b1nyIDN5FszM)| zxrY8r2Bk3;1J0L1u+#}SNXzk&ItdQ!fl2oYmf&1TeUoDdb7Jo_%oU4|)ucu`h8>Ts z6xSQByuSXe9Uo9yHZCsx1Mx(RSJ8fqVzoIm1crs&NztlII*X1n`2}lfBSshrHW13j z@Aw))GJ$v}$HJpA#N~Lz)m1ot+j-D2QvVxPQ6dY zK>T{ef()l(Rra?r=eJ#Q)xfQnN(=aM#HpWFc30W-PW`HEb5pzflIo0D|2foaq4|7< zM$J~V@ig+J=Y_(bNRFoQK<8Y4+SEj}V)F_zZGJ)K)Es3KBXqaOs=-(Xz!tkM#N_sx z*)$N@;1kB3)Pi| zFY`5tb2k6@*!%AvyL+=?LgD)XhPR3M9!eu~5nw*qWiTH*XW%qj7;E6o!gbzWawOIk z&I|PSGI^WK%+p|7^l<`ovoTh@3-QI$5<>2MMUo*xrT4 zg_-H`W>d7kuNUSF!TuWE>~D0CN$sq;EO&Od$J$3!YkZNRPw%Y04|pUW|-VRJdAPHH}f&B6RYB_86O!$A+2 z;qdMBySf@N6;3PKJzLv?we6aThaP%p4=!XwyMb)ZyY;}wYmzRRyZ9^VhaU7+`2D(V za3lrc9r4vgj%Uvu@$xl3j-UJ^eLz01hreya-!jLuQ*U{(T_)&*`k(l=^qEjfzodt8 zJ&4OD9Fy)94(aa@I(5akP6)#~51|t={X^1fp$b>Mwomx6=0lu``n9l`-OmUe+Ay5+ z`IXQq{YB{1{ubAV$m@suv$)>FbqlU1_%kcRCOnFLuF@z!-L=U=m4~-5Pxpq9sf$Hk ztbx`gA^k>v>0ZLSc;NAz(5bnfKhrn;CwN|s>y(hG#j`$)-*vutSB@(c7hrn$0$vNQ zHMsCz+J$n@3E{X`NhdKS^VaFVNnXN`)`s#<;OYdN6S%ernVMXoN_!gbhEV=FVTbtd z=`Gr|92b2He~)jJp7LgDfWLMX@JvNMSnH437xgJ<@Tt3iEK7;8l$8#QRy7;eNdPDR5TmLA|3M zYWOw%s`%XWM|$jkuhs+Ah3iH2r9XmqR2Qxn>H^lFQ~M|`;`;?I{g+6Si3|1MdZ8YA za9t{%n?8lR!1#XZN&5C}fu}&h5nI zc~Hn^SCf$A*)8Pg{w~z9D?rH8;nE~e@7BMA_a6dQ24J-d+2BvMUeC)w*$Yu_HeER7 z_C;LJ0#CI0X#*~qKRYnlXF46<&MNOCabJQUN+Z!j7vW2nA&*~#GvTZAp59G-VV4Wu zx(^guX5pf}4YD~2T#Q1A6PF61O4U|OPp!uKNnBbVeqk5x-C`lG=fJnW3N_k7pFYY`(bhvj+gKG74jHG&V>lF9LRY1;7{ zy*Hj4r*})or*~_CpRQHtG(09`;roB%`>Tcq;C>6}IxxLkw+Z#U8h2a-NB=t^NAov4 z?*T5Z&$pru{e)c2E@7c$0&L8mb1hTVtH#4ZwpSV8Lk2E%0k1ElMj?*DX%x0|7#tqn zZ|8XO-&CIKZ`Ws6yf5~wy&dOP<087~GHyeiqW`b|_4IDnXV1q`_tkjcF}>UMS&y+= zof&k-;hW2|cC)ZRy9o4s4F0-2yYUrrrt(<-Hl9_Uy3~yhZ9^Lj7=HkK@K@z4(aq%U zU6cWS6OUYZtu3AYLf1O|g|?K{?Ydd_PPCaXlnZT$JuCNVidwMbi~TcwwzuQjr!K+~e>)jXs5LYuGsvG!eE zrtWs#Nqvm|fc{?nQ~Edcrwx*!)1%sBo5$}w=XT|M{ax&QWE=DW|= z;g|1M?YG|VcE6+8Ev?jlm;d_#ivv0XUJT3&911)f_+sGMp!A^iK@SI=4E73c!oTj| z;~^d)?IHJuycl{Q^!|C4c@NKfeBP;fUxaN6+ZXm!*l)tU!rQ`!!XFI(H2mxNsq?>{ z?}#u)Y>hY@`Ap>Nksm~!iPA;|My7>e1L|kiJf85Tv>*MZ?dpur<_m5AAABjJe;G6Jp!kI*E zVprn5iJv7pl6;e5lCqMPC$%PRN;;TyJn6;cxa7R#OOv-H-=6$4i)<;i9I-r;VoaHz zvMc3=l%pxXN_juEAa!f%>!}}L>$2{&!LP$i6-MWcJ6|U+0A7?8$jB zXCl`tH!`;^w>x(vcVF(!xkvN-^J4QXd0Baj^Gfro^NuW(7w%fPf8q5DZ&m)io$r$$ zmLHd2n%|zkC;xE%gZWS8f4XS#qM=1sFS>Wpsl}0tTNm$J{Nmzw7N1_?vm|p#>5|n; zx|eKSa$t#l$=gfL7R)awEa)t_y5LB`?+X6Cw0>#J()OhzOZP3kdFfx5{<~0Lm{&Mh z_>00n6n;^7wn!+7E6OiwEb1!ST(rOF_M)E^oh*8@=;NZVi#>|NiY>*B#a+dli}x4b zTl`G%JH=;8f=lvC)|U*H>?*mTR4T15y}R^y>5HZBlm(Y1l(m%gmYpuIFMqN8bcIhv zX2reBJeF-*cJ;DbmmR6}sBEn~S@~w=$CY0%U%&ill}A-rm8Ghns;;WNYNYDAst2o{ zt4^vOtbVS>t0u2zu;!K8$l4vX2W#)HJzncr(YxZ!x`ev)y5)79bvx<~*45@KL$et`G4`UKI;B0L2OUo-C;kHV9<$P=f(2K?gB5_&Bsm1m6*E6{Fa^q*Gn z!g>w7XoF48R|}KrJ$`1UWMnXcl;rHa3MMl(LtZ40jC5H?M+UlkfN#R4jMTi; zj6@}M3PG7+!~bV_#Tl>gnONR2FxUfzx7&IL#w@b6zmr~Cdxr;P>n3YYueH6`CbR0a z%H>5XW$Q@3v3q1>Fh4DAxMQeiaAY`jxTiN2EKgfeUTriQQ~vk=8ChM|mDS4SD{33% z>dKO`+J-XMs+Lpa%pAGg);=_99ohmJP0#&*RiLr1zO1OGxVj8%vB?_-K({>5#pLch znUfPhV4_TtIx-*+kM#77_F6~4oPnX<&as|Oo3Ycj30xfPLu()?9Rs~!-@uS{q-T>& z?xIF8I5cpntz%@^!a$4;4h{^Bu+rGqjv*V;4)hysU0wLVP_cGcJ8gYE9js=0d-^ww z_Mqqv0PpJ??e7`su>ly>8gK&iO~6C8%3VV?-1<9>)HLx6Z4YQ}l+lXEx_dgh88*Xm zpLGi=ULNiSQJuW*`v?erAmyNSXrv#_th;BBH|PPh$Dv`?cx^J60WpEl3^M|pEte?4 zs{sN$il%G{Il3_XOGeZ#iiO}61w88v2Pg;{`XM=#2tjQv|=XpWvuoasa~_|swSCv@7OReA{# zTOZU{Cq2zV1Bj&!4DsT)&;#DEs-P79g4f;F5mwZYqT-DG;4qqvf-ccb=+4H3A+7M9 z>TKrwu*KLtFb4Sm2XU352veBL)8xudsk5Ue5 z0`IJ-PgSSR=vldQ09aFD*1^HvEk>ke3>@efWl)$vf|Su=;w_l3zyxso=oxY)0Af*E zR$f_K*;u)vw!s)vPV%nm_88#M1=%6FATYx=)AqeZejQ;%B)dapJMY|%beA0`k-@2eyyFX zQH=~(P}9A(5lDf>NbO^^9ZG0qlwQawDXOxN@rh}e0oV+@X7b9lsSDCvzZz$=0JXA3 z?&!AmgE1Q*XG48f(ttzsn$)B!f$q#8i8c1y#$;Rnrk0_T2^f9T=l31GhS1r3U(k^Nq%gM7h=m*HCfo+)#%a z8d4>u2Q}Y=e6VJtXe2YjV?l$KosxqLvxORsTQzEm$p9={Zx<>hGx57~x>Dv;Tq-ox zbht5%8M2Gp3np7+kQIYrv%>IFg+MX%Q)P0?2^RtG0lnwWH`FnlT&9&qNR7Gb_+cbu zwoFxQowCADQhg)PWGPk{PmKd1_NTzN=w!}ZHy%h84-64AN!vjA4-E_s z^^iBy2PDxlW|H^WMv!p?K1GkMw{w{Jf|QR60El*|F?eEJle?Mk0U)d7QS2{lSr3%; zrXJfEw~tgfq;&|jvjCzoa9(v@yiSmf;qIoVjnv8D<^p_Mj#O46xiKsqp{+FO*+sKYyf?)4noC-0L(X+>ofp65%I^k-J^xy|njB$1=LekA0wn5gMtsNWt2gcwwp-;uRq^Li%=@~rE zV;6lQ!%A6PkRIZF3A}~(FuQt;Gt~p$WOLrQDG5b+kq-$XW|R}TfXrW|*LZ}U?zLHr zeWSz7k8(AVs0TPnsJQdpA+7{jCeA`P>&nwJn+EiU+}b64m<#(}&=>!i??sY9uvJGy zR(vnxjPK>f2{5RUtW0eY`CIP2x^^2hCOLMa5C*D*O#?mf=(|_}ij1jRN7c^cyBdjV zw0FQRt!yZ%E~>04t2Z_-E93pKh85+FYl`a2dLZGi(FY-QoX9QvbI7l zM!wn=)Z?qEYy{B86)dX)s{orMRHwHePd&wzjgiydI^L)s)pX8i7^Gin`|d%8F%;7G!F~ON-oCUsPIF zQ&eANAq-c5fdD)8UQlu^}1NKGeNpf^RIOCs1 zE-k7lsvrtfxRi`jV4UFqajK%MwyeIW+9Eg9m6cS|16WsCUseJHkrM0%@pubJ@F^O~ zR<6Peq%$f-pbnOmG1P%`5&kbB(V%)ja!^Qc8duaeI#F3u*-&PYi|Q*Iz#e0H{fZg@ zM^zvPRr)Hh5M@EcIKEUZ^p3u<4!Tnykcx5}Ipa#pimCw+a#4GJ+SH2&53sg)Ko}IZ z2t$|=utDe+Mg$qV?{{FumyB75=|TqP^QS0Jd3e{3w6ahn^dWseduqpK0iF0o`3eQA z^2Lgj{C$p)2WTn682gvX%CjNw2p|n2%`i$O98yv00CHO}pJfd2M(|!1>RAdK@Y}@T z$wE0&QEpkNWu@8hR0b#`?7J1XqymBwk;ZO78OGO{91Y0Zg_L8+IfV4GlA;&)4*c#% zdcs;3M)BN<=OH{3CX}{8s1&MkU%~Ju>SrKVyFswv+iI4381D&RoQ?;)=yJ!k7+-r) zk_w6LL#PQVFCUkCYFSXz^RJoUYX<(!)X>G!&&DQ`VIvERP{s)Ub%7(JxDPO{asDQN z=Y(+{OPe?gmlP*17m|kmU#>{<{!hx4tHisPt4cYwuR+KomvCyIy?8T*7AK?jN#50z zR(u)8H+sJbR}X$ui|%D|Inz3=NKp=Lu#%-5fy5diKO|3scuvE=VYDmKErWPB3^}6q z(2F~l@-(!iaBs)Ui$jaIjZf?XoZi~m5?(V?f8Qzc<>O*>xLu&CSg;VFHcvAk3gmkcU{YLGMyVWZZ7yN)7U)H>m*NQOAZ zqsT`%k)9&{j^deXF?!Pn$n?8Qd8g83RA}UNLOQ4&Ik}fG!{J`W87sq#aHM)92s4-x z=Tyn=M+%Z6(v2j=sz1bO>ce}IW0Gd#h0J^qlJObJ2xH=G2hwpm)Drs{Cfw&B33rur z-flJmD&;3RBuU`hA*x75NH=pHk%ZE>PW)5feK$9_6r_PF@^@yabJg@5Klm``2A3HPsZvi? zoXf4+nqBeanDZ}07nM(S?=IDW|W$UzfZ`qvkx{Z#4?b0Eb#T(U1TrWb6JjzN->Qt)1kDY#+%A z)!&e?5${NvxV9MvOw!$|bnu$wy4%S3t?CS}#Rrgn2s!B2427g0NFxx%1l!&J;w_Ti z&#q;zZAkxd9Uk)^^}H@t52`G=w(?=f8`)=fO-*&8Qcl>BZXrIacEX4pWc%EEsAL5Q zV`>T9U*Pqk;=Te9s6R_mO4et#-*z#)RVh%t4(?B=Jvc5+<-mvck7i4yYV*n4AbUxv zh(4-c@^db1iM~(%!pVFQiXZ`!Na`b+fdKq;}ZGg8@s&D?5d>CqNR60+s;>x-2T0`Wq zxO3VyjS-sUyQP4)6>5*v?x-9tG2{Vo{Y$Nn*CD5j*Olr`&Txds2fj-(R2@r}k32US zfBRu~NIwz{svN5|Tg3QAycmKeraoPz()i0Xy zw7KkXN#GF}k`J}sxQ%zGdH_&K50M;jSuo-k=K^Ug)&6`x-7_U|--mvyp6(XKFX38{ zzVMo(7!m!N@%H#PRU=Toi+g>PmgI-q2x`f_46>SAjS{G7$ljgrX>;Aodo~xNmipJk z+nJ~vl}$Ro-PvPP`K)q^TA$iyP+J+5Mfmc*6g>~Kc!Lo!DzeD6-~^8va+y_OU0m9@ zH$=KeZAn}P2ny+KDw)dTeKYFM6ORaw*_wwqO{uBRGh65Iw)1_OntS%#+N+*DwJz6Q z2FHu)s!OrbnT+!PeVG@lv-3SJZWTzTFWl?6xTJ9phdBAa>0gknd{+;Hyeew5Gp&w$ z4AjPX%cPoAWr1Q?1I*i>NzdzxN4~jt%wxeb?Spc2ZQ|}%rvh>#zVW^dK_ofi9GdO1 z5f|L$Q}y}?PvTAr?z{&|wvRN_X8fJ)+jXPekd*WzJ?S;F%`=fX!iC2uNHw=J*;XZlO z5ym;T$6+V|Pl0PmFR3jI&m%KmoKZ$#B|AMpw=bLNERNjT`^LNL+W~5q;ync7w z%gAbhN+%no%KXJ;f=f`NvoBK%9ihgzzH6+G+CBF%Nym}4q7jr{ms;8c9#gcHWQa7( z4Ch_-&1_$X`?9KDCdi~|DLSpzHMj2^Z|Y+;Ko?d6>q=-0>X8xF%kV^&OC29;z*9Ni zuR%H*VUk%snTVVY|Vz7oV0!YbTl1x7v6(b!uv-Vkik zt+nh|71C4hkJ?0;(4>rMQ6G^~*5fZ>TF1uhs7#V<%0X1D!f$%6z`J6lyjtXNglQw*&y>n3Q?aT<8eU#Gu;6?t0Sz4IBEY6O0tBm>l~0k)MwCmrC?9c-FfGDW zhrjjsN+XP`kc)oN+f}&NAsruaB*=snVM{U6TEM7h_X0{8VZcd&@B+o=`0lE;CTb)>GLW51N;-T7gH}km#?*KY~no zNxRR+gW^~#kcLVn*u}VW-V@hoOwyG*yvAqbkFYL9DTFW4JyYkd_!8%5*MX7YJzEA; znIc$JJH(G_#)Ss(uMGGTB>slzCg~yhE>Sp0?r?Dn6_m4 z4M&RZ*V9kyL$qtApLUoqGl2cmeX41r%Pv@CyRfRMtXY<;P6$3LtL*xQmL_{vxILk{ ztxMj&s>v>ytxtMj+mVhAQ+s%Hv|VVn3niw~qgbz4(pH>e7cF+Vtt-VYSxnKU=oGsK z>j;i%0)vF&5_>?2+}2h+E(MkpkDE0mcB!OsvuyV=;i1IZY1h_mK8h{a0LC6|n;%VY zkNO0O#q(u6nu?F&;52+Q*@e0$Tk}yIl+6m%TI`x+dr(Oem1hqwDNz!H%bl|QWSw0b z*K#yL^e!puD6{L!nxgF*b94RLCL|8u-z3}X>hP+tIb62q(NkV?vpmjI1EU1IQhv$y zbo!o7DNoil$>7F*t86#cHMQZ5Oy7+3ltWKBZQ*Ur&CTK9mffqQ!!Fb}*@Y@f9F5;N zs63LMBCD(?e1#55aY84wH#c`$o9$w9bF)H0v)l=KOvTM9cAZ5olkHlw6*L)2>YD5Z zQ?cE{RE!!xmbMhTp0OL8kUPf>?Zq;EByz(!`t;YXX)Ein>yo1Ju|(c4??+kV={hqw zw6dwKF5Ft*++=EwZkFwZ4NdqKPJB^NNwFI&cF&UJqgW`*xbA_UreYJs#Z+vyOYL2D zu>*+M4M{0>Pm4_0`hYC0(2gX)x3I05lC+gFY>k$qo<2fJS#eUdQ*h>3+y%*tLlKjK zLJ3H3lgsv-tW>Ft*+Mu~h+Pf`k}8&{T9dVu7vX)8?DkmXLS`pvu9rpVwy z2N1XWm9)wG+hn^R*p_1Vw^TJYjcYqgn`77p=v1zhr815Ut|zx%9^uf9zr~>Oy0#YZ|9^2zC|kM-8J`-=t_0vZ>FI z2l`G~(30tEGbpJ5{uOxZURf8Z!f_mWYyy)@>_Wj&?2N_aA;=ST3{s zK>WN-5IKlqAl|eAhbKZqMQr9DAQTrD6DIO6dL-MgO%9KNoCky0pyU*Lh-F-) zdng!B_j#6a4c)^m<663hTgG*CpKlr0(>=m6ZlHUlW!!`AQI>H}x+hz}7G4o{eH&PA zl2h&CI%+m4c8kl$VCTon_{S8Nk8#eAL;Ry`5$to5FGeuY`WUB`2z8||8uZD)D+ct@ z-30pR9t-;DZU%jHj{|*lj|Y8pPXK*%PXv8*PXc{(PqoO4S&K@ufW@J0GPIxAM#5pm z-JVLqn{KhECEL@`Ff-65Dj>QSY?&r&o{2R4ccy?`rr0ypx*qq@myzh%Gm^%2Vo+HV zv?JBx0vGmNEKQb0&Sscr0~&`@cD}xV8oD61^j-+2qvQmkw7`@%o+SnmtvTQa2)JOL zHnbXRUWz@}k{Yr&#h&+lNg?4KNWKtNBm|q~RJnq516W(Re}9Fk0=lRP77*$erYTRv z27BOeK9pFnJp{?L(5q&aY}`vIw$CX^w(UJTZDuL ze-)KFQx=3}vC0b>80g{@UYHhxO-r1g>_+GiSuQtKP@z z_7Z;ypw6nW>&^I8iBC=^hF9YGlGkQZY6~VH#lBQ6jd5S8t~T;?W|OQ|aUt|aDsi#g z9#Ya&7Y^epFK$j9PZtBxZj0Q$)`!=*eJytTs^)ctH#|F#z-bHj^muS!c!~eq?0(C(9%-T@;E`|mT@DD4oN?g{QsFq zS6oQI{x?!g{3boN*pwF@?IJJH%?h3sP{8@gDp!`_*P`TTsx#t?LXDFJm0&>-Z}xCg z(82>!?Kx=W%P;c23gE=R0DCUdR9ox|ajPLNmVw=JIjphDty&8Sw7mvwUST;Z2<3RF z!-GfW>`eouslca3N<$B;C=ETVrZn`h#&Qh0umn#{|4&cnvC}XRgkc+} zDG?kH5{Dp8k%Ax~9)KjqG7?8X90;#D-4jg$a`2QIZ=km?&x3eSr zFy4y;LX!s-GF4N@MnO6@M$hEzI6a{WdP0-*gr>M>AGB%iNtofDgjw!Mn4{AVDAFO6 z=n&@V5Ei5^7qlpKk(Q(`(z4V=T9LX)t5O$fP3j`8OI@T5+~c0w11wAA+nCr?>;-P| zrc?7BMBC`KKsq~$bautz1f4xB&epQ-OC&1}6uIJ1k@^wxWHsfnB83x03a4;$wR~q1 zNxpMM>KBUCFR?PG`K}ZxTq{zzft#=8yOl`t-6>MPSETM?WnS|=C{lP-r0|rfB;*y> zk0dMjuzVj*Pv~U@r^Anxd@D6@@ZZoo*Z_tvdC zbStlOq}T}XVEu|8KA z+Z#V)YFT-^hYxRL>?1$iPoIGc!FgH%eiMALGiJ}Po$FItj^DEwGe^yuGo>t`$9Jgv z`3A<6t+UH&tCe=X-5C2a3iYF^%4Sb}?Zx9>_-zM_b=7m`&3C@TrlS8B>3;RxsntCX zeb9;Vq#5}A3_gS{_U`^2f0o}97U$6SMSkHid8ZA2tYw>-U;#{F=W*?29144dUBLOP z>`mNxi+zjp?^pw_H*#;rc^lq_DZDMu#Cb2?n+e{B55svr&&PQIAC2=dd<@RV^07EC z<`Z#V%8%mw7=Hrir}?vJ;W_>?T2=vrz=t4pf4o=;+rg9pgYrhPfU>z|lUdZPviVhP zfUM1$noyGi?_yBj5mC%9w+JPuj_ZnS4W+C@T!KGWeRby4xmB#aEMsPu&7H|Q&7L`X zCQFyk2-mX)6e^z7n2DL?JrCx|yjT#6VDZe(a@YvKH^)BVccVZVN zOkOk&CvWLMgvWM!&x$2YkC8BchPm!q~mea zXlK-trL2X!l}&Hx@3gv(wr)J=zPk^1-KI~_s=MFjGoxo}vB|`k(Q->YTu6o9~#1frK%mFg|xq8sw(cb|UOsx-j-(9po z;=a=AoABovldF$wux`MM`c#K7fHtLbsshQvDEc8!rvoBx^~be}ezai7t* z#52*@ja8CqH~EwGzyVDwZgR8LC0VcX-)@gaLU2-hZXRgW3{EBIp{3vVC)>jq!4?1V zuW7h(`{sSpJ;_%l10Rx)O(_5NTa7m3&Bezz)CKL;jeV2aCnQSpp8hI^s}RA`X>x!=XtY5iA9ViKXH&L!zbQsSF&RtOpJ+){|v2 zZ`KQk%6j8y!}{Q83yC^_`LKaF{MaBI7B&Qj9~+9pACfMI`LbLbR+f(=fEBXgI3K}A zqRuEBzN`pGARB`th>gYJ%Zec#gV{J70c<>uU^W3q2&-djFp6!E?1J6P_5iB;aI|6j z*g-sX2!|hg2#19|%pS%02^>~-lAXr+Q|v72Jc}ckJ%_`OJ&z-py@&&P0CL&DQ9RBB z>x4tFt~eAIb_g#*Vnme~(IiGp5+i1b5f6zGPl*vPU}6aHMObJfvEVI7-WDStf$Jl2 z_{i~l%kj5mqjC63EVPkW@RL}uNG$kEELbEKtiZzBYp|e6EO-D5kD_H7t+yPfMUK$I zUce#bIKA<0l^g-v;U*l>4YW`L9|K4tB{kwDHM)Qr z_kq_4f^^{gH0uX^KMxELb_>w!deT2EkIj%e@fwD8UTXQ-v=v;v!ad*Qcd{YX^&M18 zuSQ!c_{tw;Fb=`m<4{;O4roWTPWLpxOZG@h4b@eHtOb8uZ%_4kENU{)Cr0wlA@($^ z7Wd~O)4`9g@*nsQ>^0akudp{{`Iam{A$iI^mE{#y&dRx!)w6mYAj=`L%#|hX;qENv zU=BVJ5Dg_6g)fB_N=Ze&sdg;TM%A_O878 zo-E&&WvklUM_##kt>#u-wK%ZzD#rf?dkdD=WBfQj!B6tX`6*ao9M%irF9eby6SSt1 zxR_ub;`-eD4#6AQ6bX2#q+et^d@4)&1?`AmRMM{&Omp-_(7aCYu#4;ic8UF&UFCi} zln;V^IEk0>$$T1L$QSX&dDZ@=vmSN0#q`J6EvxWcj`twl#VCHLO zd50|Tl;sv#ZjgtLucY>WoMI%SUL)!<_Z*}1KN9VkdydihJMzkZ^&F$VTyv~xT+=xA@0nvX zE3Tbm`}BR7V^scIbByZb%9`#uHoR##<`|W;WI0Ec{}po#W90Y9`LkR0xR*xC-4vr9 zubE@=?r~Y3l;tTZTg@@T+5amP`_D+l{~n4NbL>AyG18X*tH=Jk^q4_0(!lOHMv~&1 zIrcwFkNsz)B4O_Td&`3${Ez7|4vQLgCalasWL3iMT`w(4Kj|fshf7B%d@5bv?kgI% zO3fJ{%OSGNmE~?K8SYCPDL|G(WSJ|=-Bil^^*X!?oysAy%$4PCDglWfyo1+ou!PH6 zEMU}0a@)V~XWWO%yk!rO`gnaj%aZ4_<@t@HT`Zqh&{qPh*ehx8OHS$k2gmdo?D z+*fK$e`$RNlI6{V+pTfY6;aM0M zYVBX#h%Lh!GH}+~@A%jFGrST5i#Pfv60h8CJ^lB{iQns?wDwJk{+IIn|9;B<$94LD zQj#<+Z(7bKVVZ=KknfjJzWu;YO<}Y7-2xvXrgj4q?Is7zxiY5_2|L#>p#gNYNsV zm+;4nG(C@zS%#CzgH@rk%1z7;=+ zdW9(_rH$gRgeVb8tkOwIQqq;)N{9kA zhm<4AN#%_4oN``yO?g|nsC=Y+rhKJ*ul%GmszUWpebfN8y&9#)t6kJ&wTGIe4p4K{ zLUpt{UY)GYP^;AW>Oyt7x?0_!ZdG@vd({2v!|E~hl=`%KPJKmvLw!fRq+V9PP_L^0 zP=8T%P1U?KKP^ZL(_*v^TB4S!WomY9kd~*7(8g*LwQ{XetJZ3?#af-VR=ZQ%2HYQI zeNl#hpE+X9DEZU67fK&JmvQkConvJl*OkTkGF(4_wHlloS7aIIjKY;xC4X18W0Y6) zDm*1i@keS+d?U*@Th6hVPVF0|>Wsm;x$z>Na>(nlFL6=#!1Z#vBDTwCcaelJAT*#d zAXm(E7cF2F#DLTF>|$pLu1Glf@&>0Hs%yp~+rOq4i2?B-3v-XXbziM}bX}J%i%*^J z18+SEW2`-u2F&aq1V1m4<0>b3SWj8Dm#{68cP~>Z2pukH#Wd#zT#==LNdrPYMb?+) zjaM*g!nVwKaM9GC>SOhV+P?up1KZb@&a-YRxUNgc4ftJc9*}(Uf%9S1^k`|{Jw}Ov zl`SQ2qB<^UTh+hG6?5a?0cWv}OcJ9sXeVBj@XPYXEBpZ6b(O7oPx6~`i|k#N1|ME? z#i)}e>&VhohjMGUVw5-qJh3gM!MB3epSY{MKr@0<9s@XEUccdras#amF6EbHeS`Xv z8(UNPMlKS@ESM>uGRl{T?yYHI@PLblzjc0rySpTBNUDjS8Yf@Jt4&RfsPiC|2AnR~ zNHS3V$pvKWVBrM0I&sL-31bO7f=93n*dm#%2Xb{rv25hz9A#tp^ZW&NgujG!7Rm=w z*x%U?>{omvxd|W2G-;3PjCZAy{h_)1g1rX_{GkabE2aZhj`G+WpVzQV+YYC>Q0G?dmtpR|;^>xdy%BdP@25hAT!LyXnE}>a@Nh>#$9&`jYLi z8~XaqIzsxY%*as!+yTgi`i^}MsqjzsBm0T{%zl9kZb1IiY5pWX!=HktdxoFo&q_>< z0EWimGZ7!+3|jlI#-|1!l96@zti|U}e750p4?cVGc@Uq&_#DTF=KfiHUPSL)eez$F z>|fq({VY?@pdF+B?FxC-IW85$D z3;Zqq9{-Sk!msdevDR8IkgO!y2!9bGB1Ej{B$7nB=q>t*AtGOl5+!1im?mb4xuRAq z6)VMhu~|68F0oG>5=X>IaYj5R&WqQ?+v1}5NPH%~65orTM57`U55-3bP}(a|O1#oV zNmhC&S;_zIikLI#DfGE7fYXMqRAd zscY3c)otoM>R$Ch^{{$eJ*}QqUsNxsZ>jI8AF7|ISJZFSAJlq{X(p|W=C6fl5n8O) zNlVhwwcc7kZHShyjnYcAN!m1RmNr+b)s|{2we{L&&7tiA{~uLoMLR_M2WVAq+KKZg z)vxHB=7JFF0Gv0_xw2Rw-;keB|48QwY2C#t<|l7Zirl5(8ri&`E6}n0bFCN3dO_v; z$|=UpVIm6@2JATBD6kT2zEhnIezOZm6kx!C9!IGeRGQE}cThW8wDu|PwpXjsV<+WR z++84ELHVsXjVqoa95qiUGfB$vr~(68v^oZ*#RRRQ zh0xg5ZQ6GzOHFBbDnx{$uYL-(c|x1hT%K0RK6*`E?e2>&6aS>U5)#?Ik|rW>B~rZ| z<#GjCi0V3OlXsHkMA?41#A-JsnCgfTfMKJlC(hq60TTX_$s45s^UKOWoXb*h^-VXl z{AGgKC=JMYZ-U<_m0k+6{dm3hIZ6ZOR(&b+*xk6EsI)^Vd*=?*3Y=e45>&0Pu%Ar| zu6SP0ElRDRJewcXr%-;N0G|dIDL0Iff1@n`Zp+1AQ0H^C2<1=8&vZqlY{k#Dg>*$d zgkEkKyX(qPWfbmSrV`lr0p~BP&=W=}GL>Rn_t%In?^z~HOEE*54{k8+f{kFKa! z0o5;(_cm$)IDeBkoS)Z#RfErQ1(KMbS3xzUBk_D|DjWRIOQg1vr7;&E>8_xCqx_!c z1>3KVl(_u~EqtSVjk^XXf2;W5%4s<-BoExk36NkJsPm@U9h|mQ0lkcQ#Lr?T3Pc*N z)%Fq4_N3=~N{j{lMp`tIM+&hO{h|Ec_)#NvU`Owdz-RPX^+ zf!`)r3D=Zv{`mJ;`wUk8D7K%q&c~0C`S^CGVh&J#J?(;MosAD~3|CFKPI-L_>S?X& znx>S^n$O~=RaBL+E)`W3^I7t&is@yn$Ly))6|CP}`~WA?vy^{NEl^2)(by;#pMH~{ zLOFvbWK4#zDEJ{sh-TXHWFf5ZX{^fi9Cja2ee6!)G8VYk_!eDU-^b80>?Ng#?13wz z(V{1Vd5BogYV~R3u6h~Y&_!CN>zl0VSK$35qt7hlTDI&8sD{nI81_ExtZ*Qv`XFZ7 zDP$&|Lp(B_cSo5a%Pd)Dqg411p2U;zJ=FD`>-x@<--3^nbw|l^25JgkADjJY zbL6jT*R#7_-+Nr&54vg{lusU!Z5>6)kz1Dzn6h{_;26qtc^>*3g&1E2pT%eMIq(8@ zBfj?_Kgf^JE)GPDJuvbxWL|c_%3dnC&MwDBaAnBWvt*eq%aO7iCCekSJc<%g^5$Nt zH)>fx;-oic0!~3L;B@#PGZAaN1<}R@&Fi8|`R#lqU&Gh)jeIk|i#zyEzKh?-_wfV# z5b_2O^GBicUV;wnFC*|Ta62E&b9fIv3^B@l>`^(-NANU$Nb=9C>{IZ^=kS`_Nw3)k zuQ>$1b9;ErpcXQI_W=Uk2}N75uY1;Gu1SkG36N+HUx14}e||@j~FW z5b@Y7J^*E3&^MR&#Fd9|Jss_N0g^WX$sciW36GHQm?b>E5}qIlPl$x4y@V%B!ehe| z5wZ=EH7Y*^>Q9qrw8w|e1mJ+ZhZ#Wp5(Pbz3f>uuy))Zny{GW>kMiu9=Ch~enbf`f zEY5%76i@gOALuIh+H~cNyh43GDbGw&-nB;$@vIA{w!Y`o&fhup@SUvxPg(Z|+1fvF z)!o`ZWiNCEHPH`)m;Vdo4oMfz{PF385B+iGbq&YT{4nN&KX|D>xN3yVV4dRPR^rT^ zpt-@1=UcUi7^6Zzuj)qM0feej-4M14!)lA9W^30`C_(}Yl%#Wj-#E+pYMQ>8q@Wrjl~r@3u7w$c#8Zi$M~~gaW(Poe5A-QwJ`;n zLQRpTOjD6*jH$#_ZCYwtZMxgE!*suCzv&^$(ubJL3y=(e4 zs%=!esPN0;viWjILvh3Gh9wPmG;C?OyWzfu0}YoNzHDf6W;_4kY}9Yj7wEU?i}WS> zGQCb;sjt@8>KpVs^{x6geTTkF->dJ}59tru z0{ojA?sCC@rNQaU`c3%P1OCl`-=W{5??E=@gU#?C*H7tZ^t1Xo{k(obe?xy;e^0-p zf24n+f1!UR;r~ZdQ`4tS=bE-O-J;)Ff2RI;{iF2{*FRLhzy5*x`|EerZ>nEgzp%cx zzPi4uzOsI5{iOQw^~LpL>&MiOsvlloSYJ>-w7%QN5g!M9>>r&J-6c9!`$BtHdqsOn zJFPvT9nl`rZq;UJMQX4zRT+;ptWU9$^|81t{wn^0RjogZOX34WzTU?g*Sq2!@h8N= z{)iQ?H^m#`bwtHp#roGD#4F-u#K>O4YS;_noOm7)vuCk3_KbL1kiY+b_n%3SWk3zD-B=597D zp}z2=`okg|2wgWA*62{!hPjB44}))201ZAI7R5+d)J2fHW1tObztlKL#tE=mOW7n= zhT*NoUa58L4t5uIOYLC~U~kTTXwd`MDfJM01pA{7W3SFp*p)2?FMu^;J0y1^59H{Jzn15e_|^K|8!zuR2DR${Gv1=|Q8aue*~Er@^L z4Xc=9;Jesv>^wRr>(QDI{Vg=UPzqp>iE^z7Qqs&i*%NS0ffSw&?ZU+vCZK*)oFPe! znN6CCYKlcO1$R!dL|fvbEztu+lpf1>=$LTzj|@;>muVS4iEw$o3|oxjcE{NCDOU}5dxaofhH zYEPW;>{GrSq+*VykFkos4;W}GE!&Rlk9IHOMun?pk(YbS6C_SRMUz=GRS>h58Egim z5t~I1V`j5^?4h~Gynb)>NHrhTgMM#yU^dhq2QV4JniV&Jrv-}Q;$pkEH6S1WpCAv9 zh|WBiCvfn7d>Tyxb838yDIh30{U(=`zpQoEtmR3Y-q^hHoefn5a|;XS7AS46`Kj&8 zs$Y_&j+nl6>-4ERcTDS5G?3g-JB%zelAUoZze9(x#8}NEv~ygrIl*M3A%Jxf62VnjJS8~@ ze50CqdRj_=#wCxXBx6AdEN6=`1qK8w$I6!$tvY$Gp+nAyw1N&D3Jz55c)oo`k1>6^ z@qWD=`XBTM$Cd0}f5%$`3kz(O#gk@bIMxihCI90`1}vB`FuJl^UDl|(%3fTUGA=i> zm#v+iHF4FSYWOET7fq<$D&CAu9$46Y=)9`26Nl0q;v_@Zk5VRC?S9}AC;`SIc)rC? zU@BNsEVg?~O0*SD}{r)?W=FHa9hS%FtS5Y!PY-^x9LJ6kg}ONu2fSOc2P2^mks@c1g85Tk$a#MskM zj6J0eoH2=~>lY@?C~L4c;GZ0CEnBTrC^eA4UF;oU`*L**T83~#3JZs=`X6{k9na8deY#fvJ70>JhA&G#0Zc;H z(p2##tP*QPl5ho%F+{9P$ZMPpFFt9rN>nGLr^SHT4F(bK_FwE6oYF5RqGvb#@2Phz zS)DO>%%}kiEBjGD{28S}WRrZihe0f(!7=!fwByk7#K($70g3>2no{BP1)z1fOwXbi z24CCEh~D@?q9Ky!Tm1=$beG1dmD(mtDjMUtl}#Tj4k>d?C!iUU8culxnqT;Li&w!g~Sae2b5_UbKbBEG0EjiNVThgivFUkd&n*M`)ND z{L1F}xygZn$+`1!k`fr0lFR)MZks==u`!XL(P_*XJuCp~EBTGxeRIr%Lw~6t|ebU-nO%6xiIyI^e*#rJzY5h~{ zm#BkmP^8pHE(q`~@DRpQ?cKp)0)1eCiVJml3r;kys&cY{E$~zr3kwJcv6!Ix<3Kcs zhtxz7<3q|OOC&?-_-S1EwsC^Uej|NcRc+O{bVtF82ai9vqCjudSzX;}e$w&wh-EqP z@j1&zR35GB-Mi{&rT+cXx-@D46KKN#Q!2~1=Y}8&Pr`)7AozWnnH0rx4=|EhV`jpG zn{XzRTTgJ7(!F!Xg!q^!i?5d_>ZS5jPmiF^Jeiayi7r5@q!6e9CUXRIr;lQbNfZ!s zK`F^u0+l-RG!eSy{yp<+cRP|t&Z*5VxO-vF_+h2DWKLYNvj5lv>qa`BTHCLBV)`>% zhbl>HX4Wp6w_xbPQJJAh#al}z9PFBWVabTK#aW>#WqZrlZ4B>SIe5pOI^sJ}a42Z% z1$_vNw=qLH^E?a*G8*$*#ny2}0c9nldwXMMxAks|+Ft&c-5z9Y1={57=0szz4t?6; z93^%ia5#VEf2h-+xW^jfu8<6@4TNIB0Z>Zo0GO==Nzq$YF zp~|I)H(UtZclaf)^r=2xsfX|{3y&8n!AUvua!NMk921XS8*nM zR*zDGbBBz(YjttjW}e5hL>k}@N-GLw{u*0gA{ENYdp zot=+v5E&Y;n_vGylKLfNCXN3+jK3YUKfEn_7jLd;m?s)+e+}ZHMcE7CR`vk_vF*YF zO+*snc~cY_EE!VQ%V`^6;sHTXF4Ax^V_;M!r;AUgY_8WU8#YeKnU*x}o^$t%>o&uA z;yxa;=hVWbkBP|IZ*QyCZxIdYpU*w`=RY5u_eEOA)1_Gpre|kQUywEFw4PJ5etpf# zQzyjWaZ8tuTUcEUv35QELP4%J5IUeEat8B2J(5BKhL}M$(9cCl7%kV+j|T{tE(sZ! zyZ#wCV`RjnL}9jPB&xO;X}2hi*Ah^75&@Bh7| zA7LZ(1T3_Y)B~-PrmUB(pKj`5G=HpKf^yULtqGo3ia3(TZ`0T0@z;4wA;s_u^&B(< zI>Db+j(}GapeLb)AcSFmzz!pmQe6r*TM1n$87xBNTZ21A#FI5?m3AZqEQwZO_EDv3 z$dEJ1upF7oN?u_~Dce1H`EwH^Gke8HCnSej9UXG}Cl1KmTC-$1f{#+UE04r>AGUsW z_QL1prcWG_+%70QC9N=N*zyUPkzI!kTzCJPh4JByx4SF=@RnX?K8K71D0B(DD#H%m@o_p^xUJ&lY4l?k<2iaF_Xz= zf;H3`c8Ds>YQ^uUU2KmG4B%{7?%;vFd!;6K>lz;$5f)GsSk%UgS-G_h=^~gDfv_h? z-(*-5c><6XtYF5akdhMdv9=f$>d8L{5-1}WTpjDh{o3=`D7C#yU&SZ*aH+Mx?P^fQ z^hrZHCyy@8=sux1+cP?4&bZ05S&4OPUP93F z?z?p?k*w$C&buQAPQGhQ>H65LgAZmlD zrlWne6l9l{lU54yMr!#Uuq7hHtribI4_|LjlZwh_55ri1tq^Sqv_u|(Y5ssdh zI0|H4?VT_$m?+i2`O@Z4uuwsf9Z%pSz~3X#GZ3K_;KM}tK&U7g{en@!xISD3ZbXv) zGxx0LTyLshb!q2}?uEOW*a5vv;|;g-?jnLG)eXJ<_*=K$)%Zd+I>p%0zw#wcy-8;g z)nR=gQbkK7M0^txTw7V1t=$@!nwDtSNBOexkTTYpCC)js>gvc&AY8X@-;>$wQPe&p zRjc;FC#`ua8h(<|Bu{Y22J@ZAjpkf*`Wxt!z|!q0A;B=aK_;vsA%><+2ciV|380rt z*TzZZjh9c^;yT6~o>*F(#V{=;>5_wj&54+@l6YB4AC7o*$H-x~p1QS#h%3JzJ}dLg zRD+7+R*mfLFN*7g{^z{9+EK~P6fMjtNzF278ksh_wC@8Lm&C2QLE<*r9sv!4^hPnA zC>$ZB8ayYOR2Bq|U;&W%NPZ%sfXYt}hqJrGA>O13CAK>&;6zjC(P)z=piM>kVAAO@ zP$+$F;4cN3a~QPk({xolfm2`dsGzQCX1kt{sDevn3ye|VrDSvHYS`K6Jpi2DCqJvG zSMktz$KQ^xjHr%kmpMCMH8=eFlAPDZxVFi0McKo>;R0h!JWr7WBh!fnX7x8hktv?= z&CPOL%AcNht`fIB<-EL^Aass*MvDbI^%$H&3bo=z&E)|SnxM=ms$e)e$WpafR0^|! zN#IO_>m0;x^)maPc-fQ#xY{t_yN#y`VZ#w}p&=u(CmZp%AbLPjj4&P%E49u0DmfJz0c3)KmHf*Nqqr%it>r$!WY?jdL7y zS{(<)H$+DDSVJKiE;MW{Z6^5G19rK4&SQ#7-gUW8u!_ArG3TwG;a=h3Zx8Mv=REOh zlxxz1lcS^z5`UKLi5*L3z5a)~OFIn#q}RJekrrt1CLba~_~5#Hmmn%==3g44A&Urq zWIs`a1ELA9y_yb-m`gz<#k6#AExv6KS3yNnw249mB$6SVIaoM3$PdDpC-BvVIChX6 z{{B&Yp@yAQkizv%+KS8inGYo%o|Aa+!Hl-s`-D)aM&m5B9fiyC+H+;76o)sW#?KcE z_+h>YehE+yKHR4nHBik;hBe*dmWsk`gwa}~>7P$7`F_-uS~sRj#%>w4ao^SE8Slnb zIgc2me|;Y!qitL$o3~T{uKdWLhnBRUtu@X0}yMeLjgcc}(%AF|BOp_-<+CBswvka-i^-MW9acZ6( z2bYY3Rgh88>389IE5q|-!hm@dMLN>Z3)a9u_hiMGDAGWZk9;k~=@`ELnYW)=Kiu&) zPkvil(KvX<$wh+)FFH8`e*ED3o_Xdz*}mIuGEw^`60Q{7rCtpAXYnJsN|q8nYV989 z`@5VM_wb7(3Lpl$5{#V?Gnot+o8=X?A|(}BU9z2Kc||ReC?%oAO)uZ8mmRn%6i~d7|N@@&uS*b;GK<)hca zLK#z|hGk>3hzNZi-}tjMXc}%e+8WvPk#a~o0R3w^0k)(#HqTHFt#)=_9Wy{%fu%pm zyZrC&{+fG{(o>pM(2r=Wr9Z?Kz{V+-a=uZY_cNfcUs9*iv_@M+>Nqh|JBAoU`^QY> z1MI%w4@~NzxLFfOk?hAzYyhVqwlzh}9Q4vlgFYUm-qqvRUwa_&3eV$D&^!MWmLQ-1 z*D+sej6#Uw9_KWN1G(sIiMoJqLVkJkc)3~0;G6Q!=cxyic<&_A8%q)UIH4whkGr!P zyLV?~_Jl)jGIvx9Z?;5~P?(lu6iA}Sa*o-oP;@te=&C}#t12xI+41tr->ir#RNF1S zu;de)5E~re9~UE+e9|DMTni%U+#UC{1O(d*uZ;X(1Q>&jaHIG&JA2~ZIdey^->D}$ z2FzKtVa=QYv0JU4Jx@&C_)zaDYwpO)vagz2zLM82^6FldpEqV5|220}PKORTi*ogm zuPhvpm6Nx3`Ox_}NdX>v$CQ>zG)tM&OVT}@6`u-kgXzFsfxS?SR>}q$62-WIH>uaa z(4qFo>+fRrP?eU!dUmv7snnk|2lIoR@{5mB$X299p$J9VwDAc%;Sf(ebVz^uki(Jo z_>$7?rP=M;W#enf<7whqecR`s^I2asj>Fu0u3}O4jLmoNzkAb+>_rvCCltRr0vd)g z_(0xXn0|&HYoU{HMd3S=Crp7)iqDz+U^r$3OUD<>PzduR2PsF^jySpf(4p-oN38An z+Pc#FX6D57n0=;Z-RsJb9(R8MIJWngzA(FD!_LBKPwgqC^>!ovL~BWA*hIyrLcPE~ zEx6M(;0^+UmRu#zh%%C3F5F#rSK_Y4j4HN!T7f(_?&6~Wa+GFEGeDMHfi>C`rIhdn z{PCapAw4Vu3`QW3=o`*I6U!_Qty{a_&w6hA-AB8hJG1q( zwS?2sy|aheM9!{f&*~o^d$eFqY3(nM5>kQPdkXu4uF#|6Fz||X75H~BkX=z_tSG?8 zBhwCXWoet>rj=1t+hUD2!o+|koP;YRw=FG&)|bR1PsL~RX#KB_En7Ctf@9XF`}(TJ zsmi@o>&rG7xX_0xKLQtKWS-2n`*v;*Li!_^XyFRtz($liifWdb00H`TPib=7B(vER z%!pWsY1{<76z`EVHzq^tYQ=W1j&SZkTeC+v=7m99tUF3OMaCbqL?5h^x_xyxe9d$| zFtxGlCo|m(AOZiTby(Q&aM% zPU!3$ELQAT|G-@`#)y*7&`u-9Xkl~u$O2)OPu^} zKNa}Xwu5JEtl$*Z4HV$dV3a__omEzb5Hx{fhJ`^!bf~=@x`;+>f*gG^loFcnQ6_-R z3OvX7ky@~(1Y-Rl*pQMfm~KY7#kR#!vj5`X_)X<`^ZRx3am+5CJjW&hK(jGLEU zSW(>BnI}%psarLx<=Z_*@G@Pu1_0v6c2(tC#ATm~R9b6Q!wuJuzU7utLjM6f8WK$Rjf-H$(f^~~%Z zF*!5uJ8Ot+{<0ww52*>Id!CwBxN}2Awp(o5NRC6FknG-~Pf&ZwIq#C)7;3ZLgW)EH zwVchyf*{3lZJN}3E)gInzSN4>)VNM|8+tD;#f2o7)`Pq4)_eN78)bL1;=4|EJ2wJ7 z6q}yll2}xg2H0E4 zp!ys!?>fn2*tPpqtKmPuVm6|dtc*->fGj7AH9AImIy4h{VXYE!hM0cA2c3s*dH^%` z%$d6P4?4e*{7g2$e9$q0B_SG*qz2C9$^u09QjpX=(3Zu;Q2&5XezF-ra0;@u9&})Zx~v8$JRR*40UY$a*X)${Fh_cesvf+7_ZhtFSG&nYPu*;s8I!$eI=` z0MEueCkNj(&q=JyIcP;BjYDx>%4Q|{3x?cw>u=usw@(jzrdoN!w@O;$t7!RxlHPd1 zz!%zA2crEJpOZQ;@Z$DsT|Osyn=ZGLD;u#k$@iSrpViNv=6m#<)7YbGb^c8^@k9Dp z?89xRXG(f>gS=7EzJH99w1D9=$fE zt5;_&?AbRmvaW8{a30XF#Ns={ z*HY4t2MnKG*IU23ZG7j&L-ngsp_0d8FSNv!U4aasu_c#l3k7X|xdixW{w-(?zi>P2 z1hwJk5)}+Tw*`JHh!8|zM)E*2oHfLnC1EfSTJ@&rSNToAheJGTxPG-6e*G%J&jTd< zJivf|s9K?fX@$r?=pp^wt|SrKLV$_9HZtiB;tYGw;KwrT?KTjsu;I2in~j_q=|xL7 z2Dx?+lI8?b#KB~Xr;7_C66WU-ql)9ZM~CNVg|Q{2{UiJ{2E~>X z_X`i`Lu=9cW~@b9Exw4IPF1bXNt;WYR;_Zy7k-w$O|IWYlRfU&7W^6!9$>}fiv}Ab zLr?<9rVt~`6&Qr*nKnuV9El{ZVvF zaLR8}$Z3y&gvI|ERmwa(B0Ui3w^-xgUio<!!h`m_*$b6nN?~&RUCr*5^_VB#@2j(5FeQBbY<+6p8 zNtg3qoG|`{{L5R;zq|$K$AT5(=`-0E{uO%`Usp9m+@76t{qoL5GsV5KX03D7k`!)h9DA7a`I{YI;|htsOy5 zWj=e=?qx&5QD4M&D7-@p_jn~BGGsKi99>~k7EA@Oj97}iX_HWvVrg8aN-=9o2KyhX0D%i=bY6+aRY|xS&sE{ zs_$5QN9WA3eFk<4+q`+mf^}Qh)eLd0zkJ8y4W0Uo=`)~H==$|Z1r^mjGv~}G=%&mT zQzj114B+D?M0JY_@pT?6oj9>HJ;Q493ToFmHMi@5as5^fUz!sam$P(u>4XWTX*~i> zZGuC)q~|5>E3&WXJ8NiiaB%X_S(I~9sxA_lTD)I3X5n4bMJew?`dFHDIx})$)I~<# z$!U24qEo)o*QQ?DivM3BFqFsV_o@&11P_`)w-RQ(oa z9x1JTe%iF>YfF!0E{w10IeXWx**&Wo%W5v*|Jcanp%-duF6f_Q|I_Ceq7Ly8YzhrQ zpz8{@bzKn&d4mh*pMLwv`Gte?5>xKGb^d)RL$SXj;6iQf1?=y7N56XEw%aaf8o;N`Nb=X;<^nR&_A~%EHNuPx>Np;&T8y<)3Oe!-h;xr zj+kCBth|F}Pf1Np>Da$>c-z3v`6*2kKz8s7@|jdmbt7U2ksOhC?E8qs4bth~DtkpX zR;dT&9&3Yf2V)uwehcQmz-AwOm4XwPD3G44;Mf9j-3_?jsMfqhOF?a0TDj8O!Jnzq zkG@H{QAX}D`lOsFwV4Nf;j_kKZ_;qdg@cm0NsXs>p5$SFj6mRcIcj60p;CbrQ%&_i zI1Q8BteT7+HP}rl$mkP%c(lbD8v~{cAZ0`h2`>9ht|Qeh6H5`%wjqhrwGfy4J6Mh< zK9W~np7#iUZ{fw24&Ha|+1bUS-@nasdg!P@gNvLS^SJqACG>$sdh|l=XF6Z6zq`1oXmJq`O!R4boATSi8=#LKh`5puZpfIC9_X@PDwIm3 zF?@(UXvWGl_Qzn^M<|f~uoo!CiFpBrBIBhS#|ls|B3_;p-Ndqju{#ESqK$IJAx*#H z{`zbl5aMqyx0fv5yLf=|VoAx*A-3qW^z^g|GiFQ}I{+g^pZrJk8O8eAvpk?UX@wOF z1q>?+?tEDjl3-0pf;F3^0{|dgZYn0HHQMIyAL8%l;faWlyK8h$J47J$Y3bT<5C~B( zl+^64>DLcMNuP;*`gD{3Cic-f4x2V@*zmN}5%g_KPal+Cf)CQ+NVkSi&!Ip583#Q%ZHSB)0ih5YH&FA6|JUKZnzYb=j(Eh;w=7%6uR?5 zq_dbnn%N=~)C_O2*JINwavY9;u0_2z9wPT{ch1O;jW3$xo#T=U1|{6P24s-&4Yfb) z5D&`CMOYQO8}yqFL5ENX_2k*Q`_!3)$pBZ|F7efP2B7G=Xe|9r91(LTB!g}TbkYx z4ugw?!^P8_&DK4{NW_S(EM9VSsMXU$!G1%q4fYk{3p1MW;a#I?YXMDVt6Mu~7)gvs zFx}g0(V*#bhb5Qa)-A87>)oUDy;+&@_I;~ zET!Ttyre|^p`^@tC;nq9Ifqh9X5Fl?Qv>^6r}=MB3Z`XT4}rK)ME`c9qPwUE~Eq4*-Up=;gepVufJPE~k1e>M-% z#tgympeh~u?dE6X_^il>u9TxIwYo-UK{ktPa3+k?c|7c~GjLhguK-3I-$wBqqc~BY`0(&^0*kn+^`c;SfA{jRZu!6g;#0E+qEdSx_ZtnBiD}Y zhP_s0>oaw*kJN3T?|IWGxv#*2owjQw29{W`bFw@4@NC1|nvpBg7Os@4&d%~R|PB+50j?{8M9m&1Nq-pHMgzs)qLPZ0F^2>9U;04QLFF*+MAG( z*0pnogt%DXB{VqD>fd^=f}hLFMG)aSdbe1^sTopKYqJo=7CAuFW!Fp#qE<0%;e3SVRrs1Im7wREpz7N%^X`d zc2?e;>RYM~6rNdebac_t6=w<$kj!{e->iHkedic;`t`mu?#rADk2K7sSjHe(`ty76 zCN|H<@c;6P5hPh|Qm2OR{*5}Kxt+e;e)Br!Q_XeC*f(ODtFLLT`!a86u2YG3AILg* z>+>~rJf3K-GnbDS>C_JDq)TZi5N~CsOOVkDq#^R4uy+<(m9~JJ%+tY4!h?zF&xLLbgi86aomq-K$rb~jRcYG>jHW_gAy|m@ndPX3 zf78Hzf-K-zCEsT2X6tC|Tr^2938_MI366}c1S4{BU9#-MW&i4hhP>jH90d#V|pmO3>}mu_AM z@4{mIZyo~e^le)F8+E=#oeO{`fmJqb7Sme#a>D~#0P!8|W$>8=8V9iyPctpGVRs6+ zi$dnKhYPU?m?31mA$aGH{m=g4{^4QmgP}(Je6gL<3ofR`OJ-xYWE~?WVUa9H>Bz`J zR?=JN9_t^Yt+(|T-FeCS&)SOSBxJFqPONk;uG2LmJ=v)nbX1=*zYqL(mvk&+KZrHJ z8_{u%YwlsKLYpaRo$R9ZyEn|?>+96;i@#BaXl=C9moK_`9VrWpI%T}W4YEM?CHcXq zQ^_~oAPdT|JN55MN56y2kKd)9e*5g(XS?=&`>bUR^TY1XFX+5$->!XKKKp5mRPI~( zLW&7Uhsvglrdiq}(hulJ6tp1Cp<`s2zfW6k#*1IzpDB6Byg}NeEB^tZ6UYymp;&_O z^ym;D+Rnq*(>F##;*clh{4z@_k73A@;qllE3rUaQMwE<+S&Za%wZ8Gwl^6es%u*AQ zOiPrGtNCYndi@kRPxY@Kc_HuRwZ@$7eM0%EQD2QWHMKd$AJCuFfB36IY5SC;(0TF- zP1b@#PZvJ-9B(ft?uT-|QjVUaVGkD#H{3YSuB%hSH~&T*qM^}FU!HvPI+8v{ok~9F zhWQE$O}$;h(_6w*!}G6g2Xkl%WXx5}Av2=*WKUx?2=*k2X-y`2$TT0Bn$i&lbxW?N zUpyuTS@6-We4S`+<)%B29=#LsI|n!AtX(iRIeF}YwK)jpom|U();1<;EA&4`^_{qK z*UE`~qtFlfmisXK$+t>eOJYqGvR44okM->k9~~7QDsywA)5z9yi(ruGw_jLnXwQPKp>h3&cT33X9v0Xxrf)*cirZ@&K2yVTSIx@K zp1C?VsW2fj)Ydnydv;>Gq(NhodlaR|Sn%>9;s=>WW?BR~4sh{<7v3V`0sVe#hnxd9 zsZ+y!exuHi=63qxZ6h~tC#bnj8Qx)X-stQ6HGOGsH`l4e`$G;>9dYdNHFZqR<~noP z>v$K5th3lXZ!s>@Ls(aBgZHcqWao^n-N9+t#t{d13~xMVA^w7USz*R$d7*aK9q;S! z6dMoX|JF8X*mS!bj)BICy*ZMNytw8yy$u#Vjh#{nGIc{Kqm?8i8igW6>wX5P##0s8 z#!4?o`xg%t+e6y69njC7-8QRjR*&>p|5$8+ii?Z(p_g^EO14XbKjunUYDu*NTeS*f z;a5;_x{=5fXJk212Hu4Gs^^qdKfJ^8#GPAD40`LSZ6EbXd40{QBPEVUCmHE?l$tlF z;+gKtuE;#6#w)HYDE_5a*O|j|Mz5Ju{=gH%=a(*@SF>c_(sAqZ;yfJ4#v4PadPN2M zjU=c#Bu9b2Fn@CONSWi-h3pz5$1Nn-2Zjyo8pQr!MlVMR7jPP?%UDJN%TKg*wn1KE z8~?QnE+i{&G;wICt@GcKADMftjWgxm@!hUZhAXLQyJ~A|14pjaxN_sb^RzDCDCY&7 zD{1#e+`!M**Qw#rzfp(gh0#u5@bmTaLbfA$-l$WFH~n4D^YeksHGqfgnqSxsi;;ii zLHj40=jpAevs%`vX==E6ou+?4H+h)~&n-Br*<)%kBG$mH@K@$VjeZ@~ntI`YPUkuBr4Q(rKVz8Ws+Sq97OIL5^JvEy#J zBF7|YKEg%w_BW-~kFDy|@SF3+kHB#}-rYpJ)0aJW^LDhx<~n6~gOa2(%0Mv-Hm7ExPke(e7BXg(EDVqYdZZjEtwVg|%D$>44Rne=ngR*I(Ib|$Bp<9l3PATAA|2shyQ#cs|*wloulLKh{N~SczNEv3VX`U#Et5_>DS5 zBcq+ZcsDl9%NyE}^U|nO$v%?!=k9p`cw}CLglD{j$E_Qi+kyRZ6uA?{(tZhNz3e?g zgJhC2jDA@D;9Z%ODUqzuS}(TTs;W(e>4;bolC3?$J;N#6GNd^RIin^0SeiFkoDXzm zAwPRf0y3o}H|Jv2waPwrZbZlu3CSR=dkoq|;KCRK>0CKCglleKmctI>@OsH#wnIKp z>{R+IEx8JK=@mspG2UDlX4r8AH5*DRu`rDBu*}UxfC-XcT5hGZ%@GJt6zO9l7u{sS z`wQDsNHmyobK@+SuKv=;Fs@xuq2b`MXk*!jVVmFgmk zj{o^Ze?$G&*bZ5D%S#Pg=Dm5ME(effKAHVs6POWWPh*4Z{X1ilv=0#6GZ5}S@&JSv z_r!v+jMSRTJh<7MfKV-EVG*#{z~k%do93Gqi*)SR7^_t-7&F%@cJTG7#ICK$?hI{L zLL^*;CtR!AJFm|#zVp+5nJ?YZoV&gLd}ikP^->Ef2V4u?x3****Hl+7c4r2bF0Pb6 zWd3o}ACOlryyg1|eLbSY?sfE5;SdBCtPIYl)&`Gup! zqV(j4`VSe>r)2sV9elyG?!sp7%KQ<3?I~k(i9SFsRu-WDSAjqvf>r^9ql;p~JDW@( zjIjB~SS;x#bC`^z@&F&rObHJu7T7mI8ig5QTMJughr!uX2lZG`Q8J;@UaUW|u`0Xc zbnR+fWkdBUW+jJFnIUk@@M5Vp*t*D_JA2F_O#)Pk1q zNJ$GeykkI&V#dZPX>8HzXhyImB|7jc9v;;ndAh6DT%0co%D ziHnIQ+H&wu0*qXD9uVo446KHvi1WAK*Jt|Jjw$&)CJtCylr?p9myEG#`me~1`r)3) z(DXrhqeexBCTIP6R$V9Q8U>>K$y^0__Lh{%zi_{%`;Aye)BQwO(0-m%SK_t#p#3lW ztn(mfe-*)887Fccbk&J+PU3%3zd@Z}*{@AcqYm0L>NGv=sxw#j)CQ<;P&>lxLe&kO=&NvjOdS zx%+g=)k)NWEhzr3rkr{;wXtdHxijmFGAB89zIp5xJv+Tiak=l^ZS(J)nLj`*-u}ank8jFx z{Ji^$?zLfJO#ZxMGsiu!bbisu%&0w<#drAK^5~p)pYM$yI-z3G-J|9{SlDV@n#8Gd zf(l%=j7v2}Piy>4>8or+lo@-NX;$z&tGD1eIFTkY*ua(`#b}WK_1+D?eDwI3EqjZX zFOHiz>%PNx?p8M5rGK`)WYys4=*^*}BW8WJQsP(kp-G-`_EVn$92edARiAO;cd@fk zJS4_I^qWo~xeV*28R$Xp^(v$oI=eZXKG>(*C3Yd$Acj`>0LxH1G;hb{o>Bm zz0*tmW4EVd?^@9$YTJvY&wy{yZuQ%lEoOc+)3@Kl6~hE3A{ z`qzh_%b2l$TIGr_4VufbYW)ZwB3>OJzh6^2&^Nzb=>YtEh>CJfr~`l>X@Ga26Remh zbb{O9=oz}V$M<*(Z&$nz7MXvY!-U2WFL0Ka1L|H)4jg-*RtaQ6{iBEu# zguqOXm5W8v*uFWEGRV;~axSn{4$-snGT%iZ~B4vPG`!%t7X0YxPnO8o9v zwED!Qs)@-nYZh|LyYD`6cmDDb86o!Sr&o;Yd=vD{tot(k%T8TgtVu92q)2bl$XnQ@P16buCTL9r1*Q>PxhN;MAQ^X{wDliRR zsTGQKRX=PxvRTYfSaDmaZRPoKf7J0h4!n=_`4#`C zy>|hxs<`@x_ul7{a0nsygoK2hoZNGAB{xC{xt)aELlPi?069qxNia805^e$_QbnYQ zNRJAr*s8UPdV-4RYrWs9wraK3`nFcB?d#uaZLJq7;pF?RnZ3^?fcAaA=Xw9n_dK6? zvS;r-d(E0PYt~w`X3fm&*Yy>}8hV!JUUA(ucI~RE-~I6VyY>$r9V@hpQpkLhsd!=B zvbHSCN!F(rZn^-%fBF_}5b%Fr#a|o5@E3)R=i;eLYbX(z=>%NHtAMhA}Zdj#&#Xy^A$y+CXA)z7~xl0Ff zTXS&Z?a$vcaALu^5Haqp3x2zLw-M!&}eg)})T))`x1{bc)=XJ_WgzhBd4{LS$(; zYR02WVD!QD%Cio6lQ{;vERCba2l)4QKU?~A&LWk*&gJ0-`T}1NcWMiT% zEEK!PforhzA2TaxH38a{2Pct<8k?5BDu5ArVPJrdzYdZ_hd{${$Qmtn1HeYI3Ea|A z)@g)b0IM_Dt&ye6%LhwK)*ia^vQ2gAv4^5@h(X=apCnYATa~zG@ullqT9zy-_E(sJ7{h}l`kb?H z((7jwflwM5Fqg?n#wVhca2Fa)2?5L)Q&!Z`BwjF~i*5|Tr>(U2-u23G%k9?_Kd}4}Qu4ro9 z-C|m}s(W%xJ;C9a}-EESU@qtB{1RsO}J?7tc)mn>@)h8lQ(V3&favR{aF12 zO-&EfAG4phYLBzeWa@M7AWI)pp7J^x$>hA>Og6QN} zEljxts4F(>N@l(eTR=j)24{eNy#1t|?VSa^Ys!&}fOI-N1TIqiid zTRVr=gocG=n)^$wPwvibofzG<#^kK{>7lZx#RY>7+fRm8n1L4SJF|3)GywsyHTnIN zKf5PcWth?u4bMF}r3DS~p7*6GtKyC3a4-MY@=G6nGRrL+|x3&drx+yv~JSw+9 ze{W9vC5L{w`sTr=4U0Ecb@vrsvbt>L-1g9$vvZ?Tv!f$&7+t0Vo%2Nf^lMZnK|J%@ zKp$Ky&LnXPocXO%tusliT7ozop!-62R(}SvL)jxW7~`H>5}jj-`ZFyLQGb=Dlc?@K zZ?Tx61XlA%|2Yx{Qe?n+1WjeclM%k2^DF{-bUq_!lLCgB3A4$FB*soH8V&p%SfhohW>f-WX&UPRVGQ;XLQ~?{AeC?p zCQFNKEc}2rlZ$NJg*62W;k;vOG4gV+Yl~}KT$i0)x41E`ZGLo6aLR1o)xNV+f`g)c znqxZKYS&g)uB~0sDK}Q6#TgT#;_B**Q3-KzX_btIMTjGO5s}Tlu!6H0rilzOHgX28 zY(hxbhNve|}H$S7Zq$DG~bf{%wqNR0g%x7*% z=hD*EH;=cpj!)bHF(FQCb)So~^|wKyy4I#>q}i~)C9DZRH`ZWi0cA|xnO3N<&WyDw z7>ow1d>ahM#(5*sM_VE~wiL*b^A-jypVzUtC_i?7WRCu}xWdM?h}78R+?v#RsZ>7W zEuUXv-anbuI64r*9=?wA7$-K-#W?3_qL)2&jqVFCZ36yCI(LWg?)2s0k26B}HzzrN ze8b(@kQ39@=;N>YoW)%CKd1jW=lQ2db_h=~D@-~)=Xu@@fUCdm*TNS*buiTR4`Nkc zPMW3wYEbjVvU~1X_JvPq{-6Go@1%2bb_g#^uWMq^jsXHzf#C^ve#~gXV8ksD4F$dh zI2L-aUGWoh#m^7*^d7W2e|zTs`_J4b-QIJ^YOPuJ!F^{Qc;E~`30L6HXIR(ZBLtPs z#pEi5Cek=LK=cX6FgZZd6hz`oM0?-J0o$P1B$>t19OtQXx6!w|V6QxlZx;x)rT#H! z=Lm3@RKGwJYk5q0FtH-6X+*iv09>O9rAfMAe2Nf6^%Z;CaVj_^G@gwtF*yrSUII5+ zh`$fINl>5>n_(A-4RP^_O%+A0ne%<^qVJr@ghk7Gi`P_^+3(Igs4cWDE=$c>zURu$ zg%zVs{Rohck)8KC?-jq4s*amDuDVL#nnQES^WcBPcqv<6Fw0jb)FLhw@u-*=Bc=q3 z8Nu-;ZY7>SIHE`qAB-c+2m)IQpG zaEYH^=$z1?$f&r`%G!t!fBRf*)UHhv*Yvl>Y#1vUxuhYpYUz??fzFf8`w^p4BCa?6 zDm7_obXw57Sw5Dru48ky6Rl}JJ{tJT!rF&HX14H{!uDhEjw?qP7R+VJ2+jPvaP>r$ z&W9Tn0B9~$&8fJ5@w%gwBA;bJj*Z6xCm(X7h00|2FvStJkZes-uG}KlNH;l8-*WQj zukG6+`Z~`n8Qa*D`Al(5Zu|DVI=%hW+7T^O-0P*qk z*V;_rKMOHA5v8Hg^Es!97H&qEm?#(Z*u$B2Jq!@(=m0(jg*~1mt@-KgV%1M?c3N8w z9vQB7o_n)t|CUubk3Z6)`QUcv?+;E3+pdAUov6I_(TCo)zWiED*}AJ+9)?2^lY8vM zb}dexfLww_0S`B|J=S{(wSMplz`EdGfe^7V1N-n|LwDNHmBeyDP_U0d#G*Y&>eKRr zf808>N}o}Fs3Kd_-1cYf_@U&$hW$I7UpsGco{1M{i#x=?j&*c)(GM}JYDakiLP%+# zKPF(YZVN;}uL`AJ1>cFJ@i8VDFohEq6dWmPbLD^N^qqfn z&U3CVDZznhAOErQG3S8u6PQ~!0Sw@SmUiuwCwwvrV8}A~x}^M|;DUwWk+gPB(%{qs z%}n@)&OeI(CEit1;#}j50C*fq7Uuk`6N3n)tu$y+SRP42OX=MC7+RrJc!lOgz#8LS zI|v#a|65hNKZMqXL?D}Dso|x^@IyboR^r;#2#b@8)Z_usHWE z(i!nh%%ubf*jpdmK?bPTe)QZ49}G*gfK+%scL|6O7Ud3vmuy~VZW`#_E}b!_UR%&r zU)4X*U-QsDD!W1I(3Amgpnx6Jpqt1)Oq=#&RU{oVOQTopQcwJd1#8%(K7#ow;f~cM zrHjf&{)m7|5S_!$uL?y!=a+@z>|t?sq4P`8uh99G)FI{{?K*m->!_ILeC24@5!?_U z=7)seBUYGK3f~06FFajg3yO&8MYt{C0MfCsn&KJ4!lk_2B;9id(*m=awqJhF4UgS$ z&#vuFSwU$B)BF&}c1+BgE!~iO+v4SQTU(2bA$olXMq^v+YRhj+zAd$A|M2ksB5ZZU z$DPvKLJDSp;AxD*-m6AzX33%vv^o(ZNX6rVJvc3BC3KYdg!!gq=Axcq-z%%q^5{$j z8fV0N*!tQ(wy&FE>(}kN@0tF!CvV?Y{pW4JK*aemalw3-?)>DF<4-;>Hn|4^;`E!k4}^4|RA4MK8w27E?L|@a6iq0IP29oEj8cTor>|b^ zlj>Ar=KH2Tar>F4-ls9c^v-irZ2YzG+!V$R2Ebu{tf}`E%lX_CCE&+m3A_eRd-!&z z<>?|e_V^9I;;gXpK<*P|aHfkCI6MJ3&T?*p0M7QakCT5Aw)-hTp!0juo(VpakVYJcrD74X4E3{z=q77scd^eN24)`S@Z$bhQ zgLGg%98cwjZ1PAI!I4u-PN&wxU_Ap*t{kDjLRCFZ`$$V+0*QyIFjb*+c36dQoNIKxriFzq*Pi}G|JFa8 z-1zF{4~w(jy!q_0Yb9&<&fm6=KfiZZ_pPSoX$=x}DEF7$@g*O{%;DDuRMqnfq&pvT8XYxS863CFP}G(h$U#=h!P~PK}Yx+u$lsEsN@Aq{jvq~ zu%$8TNB9D{G>JQ~7O*fsDPdl?QA>t}5BC{`#Aw3#(Mv|y%z3%0IOjejw(J)wD_oaa zn76uV*YSBtRh7Bf_3M|Kdhd8{!+$v6JY8cr=vO9&eC_yjxh-LFTWMu_wDa`F&C)OT zhsGbWrY=c{oa3VpOeyLuv;L$vZ}cz6e)*?3Q~b-Pk3M~Lv@XYAJ3Blkw{%_M-G9zt zv}E>u0z86o3hvLb`&|$i7<=H} zsos-)k9&-_K*Qa5|2k}#7-4m3XpjL8{g~i62=Irk4_7}N$I1{T!sRMfL=Vho=Gdb3 zp9sl;hZ8f+fJokC_M+pFFk^CXEOT(uFrLOI7z~85U<1Be0W9e7Fl^EK`tB8Pz}0rak4AG)T}k{wpT=zQh$*BS@#oG&z&24F`xtSZJIsUB*O z4pO5b3LVkPRtTd>;Be5uP9;-OU1kiso%MdnLb;ZAoC=>8&*vE3K6>I{0Vg8iTm_h0 zvS!|f+CJ-^W4o?eQ_xfC?0;qVVQ10ECCjt_AXaK`8m_u}bWLAj+~!Q28hLxID14}y zm)|gEKJfwgO0mt+|4}~Ob6XnsXk_9$)CaaN?xB)^_!j9C@jcjV!2)72f^lXBse3X~ zaAZbU0xjATY5zLK1jL{Pr=f*Zbaby?*=Ecu$ullVkv?gAf5*V(z0IZ^EQ5-OG#{n2 zmA&8sBpL8b-s9w^#4rYzO%t*TGy766mY1h2VL;nfuI}!TKFP{DYL3J?HFI)I&Apco z?06se11`=W!g+UCrF)trnuxU+UeD8&=jl`;$wS0sc+NQ}O2=!?VIl1&l$*b0i#p?= zek+!GeM<`}E;3&smO7tuea*@hpJCr(zgBP!NPzR1fDyN%T&3&XGalkI&Jq^{YMXnt zK~j%?FGeYllc8X{F!Dbzvyx_k2EcC`<}W0+6Ew@`C!{mRVgo#Kg0c;O(R2%3l9NY< z>*MZCENoiVm6#V9pBo#oyR&dnWcqK`kP&1;ET5*s-`z}H`nFOF{- ziJ0AD2rP{^B?iq3GA>G3*$tY*zS11gklXvz{(5vJF zWqRi9pSWzCj&$mzK;89BelBoUF&$ET?kruu{RfLzpviG&XE>`AUBUtvnBAzXuZI8m zEZ|IQpJZ@$okJW3bWyYd=hqAl;xsv&bK@6>L;6WSN73`wke(Oe4&pdZGd&MI`!I~Y z`8(?>rl(KJj^2dY0Au6tlgb#y599LU>7aSVf`LybPMsS2rbobI#JgB{n z-J7-7fnLu-A+mbu?p4}UdmSY(7GMcfo7+X29G}(n-MKVAk9h74T`Ap9U8O4poM%+} z=sOiSx>5xWOSs|eM{Fj+iPP<1*O#=+MxNTCwE)g@DjeMo6(5U=4<#5JHpbbc#IKy0 zPGoTI<5y>^vk-7#q49c6Cn|7wg2p(7DxB$u&&}7qu4!Z6KYK2SuFifZ`Wx_zc4h$1 zgbL>z%`uZ5=FFf3!J!1hhv4W|ekYtw{|+2Bo;sjg%F17-Eo1m-H3@W`dQ^k>OC}>& zduhuQd^8CPJ}iM^Ap6K3e;s3nESh12V;yr4N%66ANU&b2g+D==dmsw|*|UVKbaSAN zrtd?Q*bdJbS+DU#SP*PS{p-ISiRtaSZdJASu*qv=@k8g&kA7neiA>LLv)ivp%8!~W zsUrqHUYaquxXk&RYZet%E(lfmtxMMd{d9|q|Msx^TbaIM^}~20QLLtTGCt}+pGNbj z;|(@n-o?ix)3>lO31BJxUKx|HJbS$I0KR7)(30fY5vf~<6%cJmdPJ;`#X?YcNuWUl zjTOpCf^kCe5D9@%+)J&5#X$9EiUq+qPKOAK@EJI^0)oZKhxnKzXZ8N^h@z3sn|pk( zeEA=jv+;@~IREf_HYgd~{c*nYcO?}G_ME-%TxnJZEv)`fURs>x0lru$#0k5=7k2|2 zHaEMAF(vd1jX!o{{E;Z$%VO@%f@9%fWt_{#A6&nayh8jZW^b{F)Xdr2xpS~>Z4e7A zU{mwCED*?tjLF>m6<0(QmK><+?E4q#-IVzix9oj9>#gH&4qb+z1E9mHq29C*}4A#g68QHkA?LU24Og)!t5DDz!#Hp@wR7SnKNMT5Pj>>lT* zmkc^Tr6SEu|Jl&+o8>k3d+%i>qOC|@O0p17s~>P6qm~6aN}?5R1Z<&-o}lo2ybzz1 zo`ll~>99bf65K=~P0VqmOtNKYuoPVPw8LC6ar~6EWAd)c8(!UYYVYrN|M^UC;mX77 z>+JT1_4SvxFNscQvHh$E;gxlb&UfDH|4G}vwIQil2@y9EFGD}8I$`R3z0AgVTpfdX zSwhvtT>f7`2VdYDQ1yT1Y*FwPbc!L<7qKch^>ko*FL=;THz2ly&+c~8NcMIuHd4d& zxc*tjcdz??0$yM^Pw!P^me`I2!8$iJ`#r>SCXz1z-)zts+4X*(&A9pq@6N)&T+u&i z`m2!dBYKaS@oT3K1Y$N>{FU>MfKC1WfFcH+e`K&(-%iuf`dNI#@}59mCL>rDH{7dT zdHyNh?|hK*NT;0-0u0M@&PH)Jt~_6eC%)Om;e5k7n+v~ft~_6f_UYL?&-82+4mdtd z?=I_W>D#^X+^*!| zeSh55_gO?O;6Q7+Vrd^Z*ClP_v9#jBX~fccl%>Yfa{E)HvNSu-<|5At6`!-Y?s|#O z>*^Rj(z%_;LpBb>`P@!-9@v%`cVJ%hgQ-)leWidFkt2IpkLYyY%Jph?Axb80-S7<+*I(P?nh8%F ziMtrGtPQCD;XL%eva-vG&p?;+@#eP7XDSY?0)WFR;D$4;i(uckXd~J6j0E2s>VKc) zRO-UvM5_2WDM9#9g2C~!8B3k-;ybbtS$jL*rCgxb!_ESiJ$TBQjyz=l@jU77JT6<0 z=ONq9BM*3)eDJVOc_e9O9E+azVbRmH+YyGJEP5I~1RdtcFyU%JI4LGvGXf(KLCu43 zp<`L#(#!~IcKT;1-XRM2-;AZ+I}&Xwt5{!HcU50!W$gIlcMdQ8zQF3ZSX1HB_;9p(u^JsG7XB& z!TvLPEUw0!Eer>Wo5Q>~MTTpv6{26qMycb4qs>R(cK-d=1t!x1`&UoxZ5$YMF0C&5 zVTSl0;>|hE_ijz;%&e}6hn|mFT$)ju_>R%}XOsyW1NcyTAm#?P?trCn}NZ4~#G-8{=6t-G#78QcxwP&l$B< zp8Th!u{+~Ys;^fb7yt1*;J-q^Ii}f+m_~R9c??oe;4HW+YiY?53p^rfL>uE-TnNl7 zc4{N6JLUyW!tqftx`on$t8w*va*%f_YsPH7q{UB>mQ!6@8tWyTqo=_SY@ya=lCH8A3NO% z{M=a!zTv}@Kp`+t1OGJ*PV`E6Jb5u=M9qO~*M*+_Gos|z?=Ov9&||mfKkNKM8w-^G zwD8s+HJ1=RG)Hwn8^!3JtBD3aEPhTdE=kz`UrC!dYkg zx&r12JGkL6eqw&Clqdwv#|4J_`e47AaL|h^RWSH>gvcW(M9j%oJno#)+E79Dg`UT3@rO)^CCI`X}|3 zmPFGW`;ULTwD_{r!H0KTFkpW0vd{DXKDKt<_=gd92Paxr+O{?=JHl;r-BIb6LN4v4 zk%5{g!?`Kd$H4CfZXs)3D`8VI#E+oE_obHLuel}Js82hb=G(CHVAB=J$yYSB zU!8pEv_QswWBqR$Zu@afPEO5_Z=-8b&WhM%F+9xqe@bGnTeor9k|oPlR^P(M0i=8M zFQQIGg1NLj1$8hYkRO!_Lhuo`oI{;(xRODOUV=*LG)(x4LVh0Ai$W3RM@7!_qwz?Q zSTvi(uFj|qhIQdF5)%?iZ7B3dtrG%7)Y?m1+Dz$Gwbm3lKt3GqADS1x^oRc#N!rs! zHQd$gs^J1o342w|f!l7oy*8&fyDhWpjWGMVp*=CV_Wfmb?kcLZVEv8puCo52Qd$4- ziL(CTHd_CHy=WC*$i>$`a9crll*4iUlEaxE<8YkG49?~ME*$-f-w9{e_rsw%VXR>} zg}4MiVF^X^XJH9}lszvHfmlYIcaP=Jq(>p*u_GL|h|*hWaK}$kf+kJFf`ri2_*m+j z3B04BuL1hR_a*wUmz}Vb#K}(YE)ooX^B^MhvZ*$h}Uma@LBxc=o_*e18 z_kTFl^gG+5Y`MnIyEp&tfdO?v%VXEI<~+_8UBovX0!RIy{KVh<=Jer~a*GgCKzMp&kGOm2e-zGs4yQr7vwFZen`hXDWhAJIf)!JQ_ARZXGN{X zZmRm}y+3W*^TLX2?tifL-Vc`yJI|uWNw?LG?fCp)&+@#@`>wZ}Yv1VnpeN(1SGFv^ zYk%wYz02atSKNr+HfPStJ>|>V(mL;lxySll59*L0EEMWXYeG;5-+7ojp|C#z+j)uD z=T7vc%3wDy-vJ*DmPMk`=#%LV~gV0=jmY4G*I8Ha+do7O`^HU|U*#0TJrd+cwQ5-`gr z8mk8MN?ZH57w2&5>9IgZO7&WW^PI9sr?&jqe+|9k^mSf)qt{BD33ZjuzV;&f*qEKS zx%Lq7MEo3SPfVe*^}{f2CECCcp`BPW1fK1Jq05{-u?w*My+3yNlgQoUL#@k}4tuN{ zA}i62_#^fqG1R?s$cYvdhdj_e=)HId?KX4ykiwffEDsSPFlUM#RQ+htOd#V;5Zec5 zu5o1b8d7%JZt@s0mP{~4&I=8qcr1o;gc!ke9qm8wB}hO`Z?t{%kIbaz4Aj#{cI?cO z?V@(&)H^>sbk}}PRB!wfYOh+kn0SxzgXj7uai7XFeEk#WJ?$Z$$N4m^krJ=HP##^P zSDyXec|Z=>s@g5mztEzYv|m7Gk{liuqSxpUsI8q1{mFzcwoF3|GVVc4Qeaq` zF^QYlh~M*AI~95T}E6AH;&P2w}_v`+TI!S}wOO5jC$qaJ=Y=SH?-Ej^BJ* zT>0rW>rZUD|L7^_U(fx=b2mM|dtk-Ac^i_NH*BjIy$h?U7WLm{6_Z}>nmn*)_Yb7EXT%Y5B$G5ZYU&_Yp+)BT&BjbV>^oY;3I;^X#4gezw19+$24eBt&-cMq<*FT)<+@zbl@yTTXN43*zJIN#pd zN*rl@q_NZ5v^GD9c#-jkE}GfYliCH~vx6=kVtbl!Uew&E>tlHawFAg=y(`avTMlYI z(uK1;E41^F=a4JUJf4ToVd=0}H_c(W=B)U5f~Kl~4{PHbWnRj}*0(*Q!qKhs$g^L! zot0(OlAr21HIH_uS{By8eQ?1waL*$z_m_CBfpe8z!r;Df-kccwhEIjTm%|duH~V$# z**E9Uf3a`0Y}yOoumt)f#c93;`IUsoADnKxsIVY4B`lOSj)j$gg#wa}_WRdB+i941a{7e65^ydHWR^y zs54{SbZJcbcK-Iq9?@->gKE3+s^<9o)yucEm2^@sEL!aq(pK@Kdmm~lURPoY_tUVx z$mIp*nh=kQISblNP^?!l!a6;4R?H%>$sS2ajElxVK}eBObWDlOjJ=cCppd52E`nUo zeFwt>!sC((YqNi2i(Iv8$C|PWA=&8o?Rrygacs1o{py6=`Exm@BzW0eJ9r|FR_g`@ zN?I)4!Lmzc8e`Uju>+s_0Gau4I!=fSH6<`=M~owOiw zp=9t_si_HfT-tKy-h+G*=Vg3t=eir34Rc3E-*&CmbRHWWaj)X^W2-xR>>ajsXa{DK zYaWnZW%2qsrJ14JK2uZ*GtFH1ib5iGO^yf)4xBy9tx{+W3t8P1a!C|Z$d&+Pm1Usmg_SXj0O4Fk7NaGKYMaGSwp>YSfJ!mr=(Si;Fr))@+F@*1k!;XD{ z{gRjj$w_U>S6v`N5VisigzLQJDcfLCCt@P+Jp4k^x)qf>Mk^Mry<%^jk6rf5EIJ~6 z6mxZBWo`I^CC=0_TZCLb(NMW*Wku?oO}^*;{EH$pnu_!?#nZy}GC^w2hA z1&Kv}vwSp|pT!yNKhV&0uxNo>jmL-OE#!k*Z`&&$s21SJCpv+K^C7crl;M2>hPgTx zww1_@vt!$D-MzlKW~B77p+z0GmFXs9AA>Qa6Sh?w+MNILb3Su-Mq*gp z@uLuN24UZ+`3A@QN;y zl68$z%#x1XO}lP&e*Cxjr}`Fc*jc}I^?k7iE$i$4IJN7*U#`}n3Oeh_TSm(6KXl^l zq{FWT{JiC|>NtC4r}JOLM{K@OdK+*JXDW(Q0eE{fVR} zCR@sR=IndSrn>L!d$8|Lfd82-b@n~<7n)0B3G~1Jl{tBogZW&|5q$;bJ!wAo4&a0y z!Tkl(cPRZFd32p#dED`7N*)&HcEqQb&9SbWzR?TLjT{c;L7ZDJfa-uBE zf=#>foEy{}VROEC`^`2_INxkj;hY=Pb?WAN!ue(!hr{!LF;Eu4!D$)`C@Lm0Y_?vD zbFPF?#KJ)Ku*qBZL{L&n1lvF%QG(w-I6rS;fJX62CFSK8U~sh%TLVZLU1w}7|N8#r z_D2sdZ0PUEeD(ITpYMCF>(Y0ntFIG%o45bO`HTPh8mA)u?#sg^>+@m_)?+8@?zhMH z(VAgacimi=!4c%e#`sQ)y)PkTuw8qt9(Niz40k~chBQz=bcq^4zb&92@%8q3IUN%#r2lg+;*~qVpU!XDArEH|8}JpD^V14=Ur0N?kGH^SjywgT zc2)@Td@;+6JYP*ui+A$1|7K(%))ntm^0GDNvwlhNSUdky2p0cE@TAk?zg+Neu*9s} zz%QS}Ie#WlPh}&IfIMeZIJ$p`x>;KR=kr3s3(zEN*1%>>4IXfGh7*AEcOg>>BsiRZ zHK(OOo@Y82YxX~zl?XUzQhEL2r3|HhEJ6vAE7>c(Cow&i5%Vn?IMHg3tqxU$wou8iTlb$VHv^V_+yOLMzxAY`*4=t8c(&q)*2m8j>iATw0r`T6HSi3}f zr$fVG@c{Y1u=@$-6=>-a)|f*B13j$2WfD{rakCs2w*Zqr0mEQY-Yq%f_1*N%uuqfzUb#5qPx9IczBr)?t z6#tzNj->)FXHLEco_sPYfqSDuLk?^`NVpx`dcgSw&iDR;Y}r3Q3LNdBmpw~JJ$qTG zy{rsGZdfr1%p8mtVEe&;06m(9)8yb|oQpHO0&r3jsHh&uhv6g!X0v>JHCWDw^D7uR zO>hF4@=ch2!k1~uSS=H1z-ntmrm>(wH7pGlLHxxOtnP#1;GL)cbF+Ijc|6C2hQ)K7drI>ebjZD^Jok;b;y5UQ zRWT{pW;+^daA-X(7$_$#0lU#^Q?_l}wg*3=83-Uq^N#GPPd~hVZt+*rb-wge_|4kw zwRC+)e5KO)%Gt+fzh@wA&R^0CeCK!kUy%ELX6GyC{xJJJ28rG%|A{Y2p9+<9Bi(}^ zVsRv^@RD?ga8!STutmE~sMDPm>{^>p2jA6EX{E3OziYHZ!Xugwa7NqL!WMRY9(f~$ zJyf-SZFn#t5soEb4vGfBhyR;i{&I+x#_DW9)E2JZ+yPvQ_D+@cdSK<2{z`2U!i*;nZ zEZv6k&k8q)UrswUA9Gyv$;gZ6+ESMPddjB({+cIorSIq+PSMakDBz?T{4jH+IVY@^ z4hr+AF1Yq;dW9Oz0#18Y?q5Kw&xK;bmDTq&=z2t0uLo@DufhQ8*$r9ROSGeBbj4Xz zE7|psFd(hNPlvO{sO-1Ub{#ll>rG)u{Dsg#`Lu_HZlC)EyKfeLoxrrEYURJ_H()z`t`8EnsO>;);rY|F3BCHag^jE&s6CV)YmWlZyiTDz z(SF9yClSx6Er^FaerShr{3gV+)BnUZfYD!V2WktCpXO1t1Krbm&mY=C`?l}^wF&rp zhyF)GozEKL_32+gJ8xnA0$1Wq&9E>cWle7szZ7K67GaF8x}OO)Tp!SXE%a%u!Z=;& zhdyIff110|PV@^9w$pFcL7|WR+J*jE{X)ME?a6+@pbvhUwCPj&ckuiJz{&=!ZlO>6 z0MdG12FmV7xqbA*$$PKi2gks4AbtV(CGoWLEUrcPY4KB^S0nAOX+R&|C|sc}5q9aG z7Ita=4BDT-@1SrRaiu?`pLVve1NhrD!9u@OhyHm$XkhgMPJr>IT1T}`gfIPk3i*$4 zCVX{srcV)F*bjJXu267)U#ZIsT(n1p-RRdlv+sKFK&8DPg^ieh$)Y(+^7zO`n3i=+$)!y*>{M8}L2?@4xkF1ui$^ z+x^q0beqs_E2kf(AHmVT4xIlB@AjZgJkv+eCV@C>a5v~ExQ z%z%$Jz0ePMO-XH#2Lz{0ctC-{;L*K;C%dQeJnuczo_Jp@tvx0b(vRvzKf`vk5&T~I z7pG5ore~c(Th`-w&-5wJv>tvGT>|Qvh<6@o?H0kRU5xsD1p0cUz32+QQE9Ay3u%?6 z9&MuouWQ2q<88nPeO0v8YgetnOF3WZ0Iz~k>;Zk^2cz;A;L`%e5^BU)^p0|JA;mC-{BnCzfOuwG9_J=^i;AwIU+eVxj4Boxi@)J^13GV?>M`B|BDDmyH@Eqj0V{QMFe z{@Iv+e}Po6x}dvYV}VWicWc4R1#cI8SSS?66qXhqEc|idLxt}YPA&3ZBrnQYRJmy7 zqHT+AUG&VNzZ4mYGKyM?HWeKydSY?R;>5)ni%S=`Ebd)=|Kg_>|GHQzE-Kzrd~5OP z;$Ihkx+G{x;*!!OElYZrY+AB+$&n=|mOQcK^(7xJ`LaY`5>Zl8(p=JAGG20^E6;Kr6)?CD4ifWw5)#uhX*7w)%u0LFVSN-Ywm+OCD|F?$x zhCL1Th7%1>G`!yMVZ)b=`o@UHjK=ZCx0_5&+nPRZmYQkL1lYCWOTtQw8@EtUf*|9R z60AxVuJ;cW5CDW!i14+`)_s(J!T$OPk1EeGAQGNZ(i+6#Jg=m+n7{Z$N$Z3-_@v1C z#=vLc6U;ntA z+>;{bWMvnm<4>X7y;Uw78W@(#x~;tfa&oB!Hx^3g7pA0d-n=)^;{lWZC8rH7Wmu@Tv_$ucl#=^nJotVu0$RoQacGG1ip zA0Hnr%FG<=u?>ulk7bMv3}%4pnN3yo27@8}fBv6=wRf|*QLbugY?JG2D$I?oX3yr9 z)8(9exyssYo3Plnf={yw{$CYnXl^l=HI&zzK^CjrH-dW0BO4g+oyT`_GAfuN6St0! z$YbLJLlc9RaS&(3HrTs)px0{XwQd3xM~BcO2ujb$Ajmgjvy2aHvdSB%BaGTcHd=ee z$4m^w1depIjkD6&+a8-0c}Io~)(so*f}vvRvGiJp26|Y_3=RzUO$?yu9snO2niw7! zAFu)#wHj~&^i9A+w#XZ7R$PXA4b(kxhyDjNFOkucH}?%dkS!~mOsX~tLuT)mfSf=43+cmmzo1X4}( zg2hbo&`9sV24XhC3?-r_wt?;mhy{l5;8xiJF)%XRM^}`Edk}kgWLzE_83c=NrH4af z*1=8Iu?!h4W?+SxfNako%AgO2x5|(n1DiO}snVcNk7bz9>4sz(Bt)!35MjNPnt=uo z%N()s;yBX--k2(+6#9bJ{g!c7luZ$HhG9?`-9|x|>P_g*#DpQO(4N}N{eH}3=pWe( z{;@G^sm?&yW*xLz+#-=G$J#(9iAyY|P@NOQX1#P`z-DFa2mVpYK}+D71?{QIRky5_ zdq;pZ6=oS79o%X_UPi!?o(TqpF(j%oF-Ein@fDZ=j++6SX9d6(mFB9N#+tU8rp8u7 zTov)VD&OOP!v^pU@dbeyv$7ttVPFvDyK2cBSa!))!!k6x)s{S#av|J_fIXm(4SX|X zv0XxZH71Wu^z;)sP)TsNfpZ259GS570DUUZ1V$JDKPmEyxDkZlRc8GURf#)afqB+} zsKlFmY}DGLFf}h+wrm*Z>dOGpswma5aYzaxDe6Mdo1kl9`M@(qxLF+iU zz+|BQG0_bnG(JHOuvIIFHc&!W|6MKpn-fHp^eO!k?v<`YnY4kgn&;}?d8_!}5 zYWGHQ6WyfP)c(Bz{5!IlnhezHg_ar_9xE~!vQy+nE6hX1yz@dGV#ua)%m7+`0N+8I zO`wywna6|Xkj7*oQf~{9p=t-h) z9Fi>E0tE^S#kyr&m3I9TLzdxm*cQFanCnM^MDd7?h)L20!rwMBY8xPHW(Y{4XSlNu zS;z6=IBbdm>tOE~vjyopDgYq5A;w^daY^o_zDIzp@{OW@q00s!tTzoUgK z=yS+c5_*OTSA%dVswfrYK<`&X^Dvn#(45pS6j1;&LK%S|r2a@nkdPk5R}f6Z2weYB zrOA-WO(8Re5gX`6 z9jzCp#`pkkAYu$Ndl9m3>9LNo?riC~WO!sV%q9%0IF%Ifhd%Ab<2-WFD^jfVi3id) zK9;~!SPwIs$KY-r&?b-5#!E;j!i#K3RKhKs$OL5eDm_LLa(d8eG7L?OF+0jrNunKK zB%$HXH;1?oWFK)7dTCdlpXoH9Z}aMxuwgE2dqH0Od$t#G2EkSh5m~Xl3~t-YixMDE z8)=!wGP1Y4M|Is+NK7*9Ccq5T2%AO*V9{@21t>hGN*z@?lkIAtTBE-Mc4bX#MSWRK zgSo}fw#>}OW35e9ZL7*!%yLbu+}zT%vZm5pDaVzy;y%tKuc~QV*0iEcMvj)U#7lU&nSQNN!< zCibZUs>Y1(stmxTVi_QpmDkkQv~`%|s+zV&f>{NiWpZ;_OIuCFiu$q^xp_rPa}x%R zWsQ{p+gQ_B)q+yY4d%u+1F))SYVK&Msb1D*!bfd*Xp-An$|}tbWi53k!mtTdZjo7* z3}6WuvUw%)$*s%E>g#2^HMn5N%bMydk-OXs?8`8cA7Fdkq zOU**h=p7rNyBGqw=xYNfT&20J9st1?jpyghxVZB`sK6b)SC@NOmhdJNAAUm29lU_WnM={rt$6&77>ct#}_;pd%S1_tUE z{Cy5+n~i_&R=W5XGjYmcILX3dlrxTh8$g!{Tt^t~IF*w@dBVMrgHmBBfL4fV58q&cTkKOMxA&FFbD+MoDd&1u1#F}$PaoA4XJJ@xEC z#+~k7YC(=FNQLDr=Q#M*01hIK8bvx2|He=%$(T_*8v`d%zZk@o^Li%wR24Xh`mF(+ z{D0%0!J~gSgUcIPotkiML#iHqzk)q&#ovqdZW)-9+{|a+T0tor`V+|-lA0t%vmj6Z z@72&CG()1A(NYaUIqGBvE+i*O*7Tt*czer8ZNL*%?tQ!?Lsv2Pw zP)CG~fYO8aV~nF!EG7VTlzmIOL#>;~geM0ZJ z{^QiV1kbom-pr(T5B|DoL;ZdT`H2sy$5XrX zsV{qK>Jf#e^wzC`sU*%BR0g#mNgBdNZ2@l?MYyPK!gCQ1af~PM9pOZBis(CmG?!xZ zWC)PyeuMH%t&>5iBX1LuLEZS0TMKRq4>HPF7-obcwIe}rV@i}$IUBJ>fIwIfR}#+L zF5-0>!gJzd;%1_Stn@L1N6iRhqHGWH@p`Bw4l_)+?Li#w$?0lKbIv9{Bu?Pep;{4- zkZk5OA`Yc@z4)g-`)+D*F33c!$nJ61&QsEJ{OFyxC8cr==U<`;QG>AOEkX1nZX?>L z)|>$ta~>u-&!n!}-YRv!k0x$Pd-IUW+ZXztC`r1CxYEj6%*ObO(^hR~PGQ2Hs7qWy z^pq8fb1RWbp*p(z0a1Y4xT@^%=5;r|yj3m*ya7fdvTC{XqrO0Gaekj5Y^X=`{yEcL zy^vii1LqNZMYL9HW$zT zPqgypYE@cPLK{^<%QoWIh97C(R$vw9VP&@hCr_@615BdB1_swHFH~%(orwRq4k5`v z?ML~}Z%fY}EMH(;WI)UU@9k8FWI!QZ_wUhN{hvhw@{h~#xPNN| zcCmI)dC9YvkAdGvKYL4RY7@2QgdMdq?^nDn4fuj|pZ7?Wv;bjDJ%RTa-YzQcO`r^o zmWWG9`^>c4E{3xM-*+OKocvIRlj{%b8ySae( z73z=F@2DKkF=PR7`AfZzw;`_?Z!6WBbW?;|(%;1ys*EMgXNAs@@pl+{hvXyGLFHq$ zWy=`dh!!?T!V60~l`_;4B$4|VY_7)$I{u@L~ zZpJ&ZT6tgOwfEF;)R)QPBizZZCrmm26W7zXp4Jwxz1nscrxUL|jlxoSxZ_kHiKXhF@2|JJByRiAy=v)hRqPTj1?dfMIr0?Io!i>u?^KCE z-(B45qrAjFTt`q(9%PW!uT?LBnuqk=`Ia`9&3t5YvD(u3nrQ3xzERmE^SfOmHkHmQ zrKtC*V+OUCQCWm9A4^esjQJZ3@KTXRZUiN`_mK0f3hUzB#;qZeJ!((lJU~!LZd1ur z9v_?0c%EoPc+8YML}|)RW1g8ZhxeWDlhoX@=h|Mi?5THojxso2)K(i5EuF(^{y#7C zVr@n~PwzJ4T7h`_!lRCha~ijBh?4)4@dfe9ca1Q}s-iyY?seQ^pgzufCbgu>3*^HZ zVb;DoKW{JY0q52+_X)fE2Yt<@$;Iq=vNs7L@e!xcOpA@E;LV?^)kk;|b<%O=BT#}x z5^4+n&b00N(Qk-LhLNA-8tG=YXO5&D_fe2+rq;E&IMYo7viwQw(BA>%r?Pna5+#X` ztrvt&a)+>`66wluBYx~g{DpG^=*7xp1vpV{)G@Go z7Qq17#Ye-QqYFM_p;jbLps^b9CCLENx72dvXC*yPJ%r$1SOa?NJk_RCxq+ma4gUx? zZcV9{p5X#xA#YnW10}b)`UZ!=bw7FG+*b3j(l+XtQ`HyVRsrWm;%${fh##o7>L`M9 zih=Phr=_aNXX+2NrPVQJE^BMTmAFZTr&60seU%~=tY>(SH_o@fdEaukuBW|rVYsRu zI$s}>HYEF#>tJ<+&gCqx2}uu5E#7lU6I0uhbR-U-(H!-7svV_>QoT&hk%djNi{5Z8 zXZT)j=TNtR+pM59wSZ~`^s$MHOZqEzvwLzENB7eCP zd#Q)gJ;?x1E1NihTAO+zmxlk2mx6FnY3we^lM63CcJ+kMxr_LZ^8>ZW#q=c~&-{1% zUfjMQ>A>mcSu&M(A^rT_elIsytDe{I_InvvD^TgAqg0;1I8Sg6YIBWc8ig{Kf9t#E z>Zspy8?&)J)qwhp&tRk=)%Nz&2`jM~;*zjM54 zjMWMaP!FtYATek}Mp!RHiZquxKh}y=6`rp`KAK^Y*>^IVZ)(C^cnwBtX8dG~V#@%L zzmH>*YZcxS#3o?{uCfB71^H<1tpiU8HbosYvb#Fur_mqv3A50y%xTdWk#e@+FJaou z=Ip3U;%xeYYOwkBRtGDeJezGOm%gI!h;oE!8Gg<9+k&?=!?*%p(H%Wqfon7J@fk;gOjr@N z0WI*~k37KEPi#e?aPAGr!VCR}4S}&=$lMFP z@_J?$*gx%O^pyW)Pj(Btbys3Ht1Gow5$Rm3yK(wc-Dz#o^rz0Xhzwx=bidbZq@P1D z$qr#fySYP_>rM;)%j+Ea*46Ef+$cwKN7n{<-->pJlwf((7h8w)^ccINVq+abheN0^ zR-VMl#)_`;bcbki$Xy%K9g@iyYm7~IXt18(K}|@gP+s8(u8_OB$|t3eit@<>O@%|M zXxkz?{ESFcSb81W<}D|2njXM7Vy*LI>FG)TP_cZzjHI#rWUv^FcSeWM+-~hSi33Pk zfm)M8ljaDmXs7ZVVHFihhA6pLc0ASW&?c@vnJmt!F!z`pdUJcMLzB?avZfuGqxQAS zj^<`OD(#4p9fg!C?C6jud2V2oj7Q3y?8u_`S(Njs=5`s>*k_R)hUWGzJdx?0fl~RD z%I}Km>gec*0<|1|6+I52rQIRaQRZ0ON7XrEC>2v@IUOMMP>$0&p}V7_*V5q-(>gko z8g$6LsE@I{Bi*4h$!6K1O|YO&J{8UF4j*H=!`E1j7QiQ6=?*<3Hz*?mz*$Ga$^i-JnJ z!^h;9RgrcQi)I&01<~zYPw^VNhWOlQ7x^|jV!>ow5x-% zbX78J4W^T`{Dlg0d1|bSab}ym8Oe`B5z~M|1*+a9oA((l)ToTuLKHQKLyiKHDwb$k zqotA;G3O$mJL2&bK6X{j^CN%ae`EQBbNmF28BG*rjO|DT6VEkGN|M>pYpG0k1ej0- zS$52=sHK`AffjNE&|M4e0$6(m0#E=WiVPa`0C7iPMVGv|@3FA=D&bKQwb&yCcY0E}I?xV81y=upC%11W&qv!y^$9IGhm2JC~Q2 z6D2}`2;NPG_@+6oO^b>HpNFBcp=s%kaMPqn*9Z`vuJcTj8oEZBCbe{pGEM5}I^Q&@ zr)#un(ub}wrb%DAE-+2bqHCH7WZ@0r(0764MmfVFuBC31?l5`040FA_l)p^(c$w&W zY2zt3*D z8ZCuJlJMV|1ALk8$WhyR(qC^T)^lX1PU^%^b33FXwc4|<>i7yPCRy~a|Q?kF&2gcqkf3coKaIJ^hh z7omxSumm|nt|r+4($?(TS8c3@ENX`ag!qMOD#Tu^A)s&(gjkp(9NDyxs|hUIq@Pgk zm|c-(-IrmM<>GySx!60KoWbEa^ym#rZrRaA!liV1`-56pCr3S~P1Hqpl#|FcKzgHm zU|_83a_G_8-u)I`OHAYHNn6p?Yjo(KT_N?f6_zNZyE-5!W`1JBE&?PFgFcyPM zOI)uU2FMUut}<3rq11{c>N{2$PHBhG)}A33L$ee15`PGwuBLG46L439S1u!lH{$u6 z*JV^%3o0Ppu~aRMQD14UF0yoHR#|Q0Qpk@CqGFXJyrR813d&V3?#P(T5<}2$%e>yU zL^XT8E%$n>e(MQu<`)$vM^Tz*2K6Jgz)F*2aoRqxAMw~e^z@72h6c@WWC2Apt1_{1 zBB#6smRdQlII*U0|AdQ)-XzD0jfGLM9{dv9 zq2O5!0bG=(Qe_$L7N^Bhn-N`<+PFwi0}_PtZVxjBJv=zWk&j+pdy(gL04Ih7I|`7e z-sD(>O9N5S406j=(8emY8coE|js}pq$#hZ>s*q?#LZrlU(@Bv%X+eTLX{9{Xc-2OE zD6xX_P+}$Jp~NcFgOG(4NVOvcC682x=|Pb{Ta6TdwubVF^tO}ovD8}1$5QJkA4{#L zGR?@=MP*XLLS<5-o64j_59L{gL@(u`gq8A8Vgu!&L?6Se5~+TM7o`RmUXlF6GHGByB`=%H}A?-57K&l9XqhCn?Va z%R?_H&nA4l#07OTyJKH$;Ys>pD^F7PZGf|cgS?C(WkawvI-VfLvgLf5AQueEPlCtl`mrFUkYj~0}?Bhww zaINX&Y-Zv*^ie0V1H2idC+M<{@-&C9)uD-R-l8h>bW*Vx48GI?(^5PDb;pN)qmzP9 z`9s*@S|g-V@)47EzHg9DW8imLQoKG~!|n{_kIydkDb+rOth4cUPWj_PDf>tFkJ13R zaxz}ryBwp0z3p`0TRE9b_osaY{y?bgh?-2IN00gL!j3qldwbegPQ0N19?6hm^dTCJ af9h#*`Uei}523OvAJp~gg-Y7A^8W$4dR~+O diff --git a/front/assets/fonts/Estedad-Medium.ttf b/front/assets/fonts/Estedad-Medium.ttf deleted file mode 100644 index e4ab92d3d135f348d2bf6bc7c7e6b8ef81d9f08d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79864 zcmeFa34ByVwm)7~_ulSogmiYYC!LKgKvrZ4O$cEN0YV@I5E2MmSOsJk5Rgp?n+Ak{ zq8LCCBDf$j3^Iy6sDKKHj^ntCh{!nTXh`4uzNc`{m6KD@f4TCv^^Ea0s156t-7_aRvBiG;?v3ADdkq{gc;CV2-pB7x z7;Cqo*We*p3qDylim?te7&BcSFt}av;^Fr^z*xs&XkR>bYRL>9GAt9nk1(c1jGZ$( zs?|Mydl*kVhU=x{XH1y7Gu`hD<1M2Y^A4C$G7J4MA6$PP-)w1Z? zszVdUm6WzPzJC*AUp$2C=@U^AG)~LI@7M4H3VB z<7V8o_k&i9XW)MJ2Yd)y?85G?f05sJFX~I*m-y*P@`@LJtY#aSVE#;Dr%?9>4u#p- zX`H{w&f>~Bb`9s>vzw@|<(`alFYd(@-i+tqycaMncpqMb^Wl6r&PVVuI3LT$;=GiX z;(Q!0!}(At=Kb)hn_$l(G#`3I3ez)yd;#PGcdmjG0<8b24i+ zb@J57EM49soc9_KsJK&OCT5n`+?YFH3S<#1p4nJmmJj&GurfB&33;jUZTbk`XlX8U zd)j@V-xK}={Wk;z1`G@d4w-{1oQaT!LKmT5Kp*xZo`CQ0tz;=%;c8jk8U1{tdh~VsLDyZ+aJ8-b486LZTYqLenR=`7&-eRsN7HgdKz&Lx)URALU0;m`R5{k(o2STHp{+o8Ww%nyyz;G;$m))BVrDT~fr{oUS= zvqrEEkUwVT#$s`BmViUBmN*oaghOTRaA=Z71WUnTVyQUHkZ9?+D+7l+>xjdH-NiaF zPu3ZS%DUk2VqI}GgG9|{-mE7MAC`l|!g}NIVSRA;LelkR%~?Mjek>1%KO4vf;XI!W zMwd=9qvF8?J&2=7^exd-xV{T?VQhkmiIlSuFK43- zX5%r?8bOc_oF8FX!1t@b0AY6kp1PLw56fi}rA}-@u#OKKe%5UQRWEn(oBU2Tq`JP9 zTIn;;mkPS_MHz%cun-&y>xKi`5xvtj4e*jZ($GS6wjgW47xf|3p2wmk!~DcZ+S$vF z!D?}RE-@YS_$I%>Z?Lyu&)C@+S)P;SXCzPA=d!%aN?9rQV>PUX`^&OGmW8sMA+OG3 z6|90Ul;xAMtdiwE*=E0Nb4-@UWqCrDC#l3Z-n{LZf_(-#Q3eR8q+hvpx%fq;iCvJj z7iIarEE~1v-m>P-t?GMmw&K9fn;8EYb`F-;ANXmmU!mGp~jhtFk6zn~rQi%R;{fN73r5j1ZTJnRztfPKjR!me^3 z9?J7!A5P&@`7}P0ujH%vYQBcQ#NTDyBTGVQVu9SQEYRARK6cvx_)g1y-;_^zOO|g- zyquHg@5u69S-vOB^Rm1E>Riq)%JO|#UXt}6$nrzk!(U|ik?jAkviz8|KKq+2Kau69 zviwrs^_6V@wXC^Zx1nwW`$pDZk@ero^Q-dwJBgudRPtt2k68jd+=s4mKYfNigZs-e zSY8d4^u1nR@Y%AQC(DJhTrAt)FUu9Oe2_-O%VoKdVCE0Y za*Hgt$#RD*AD88m@~$db?$f<=FTP)%AC%=G`IHyr`B4eUG5r<&6@FZnCuDh&%Kx1) z%O5gsG1 zXv$+x=ud#hsQgzvMr{gZOBas~sv86zqjH`s7s~SA!DARBuaf+;Pd;%!jg-4)jGowp z$K=)HvOFQnlTL?Ak&6F4GiLDEe{IG{TmG*e`|r|Y#*C2$cJUZViY7ev zKT41NSEM3g?*DtsgCP9R=`jwA8g?eE%zUycVfU_;7Nw8$63N4*qZK}7&Tm(Z#{Hz` z^p|CUEDL41k4lE?(nj)^Wq~XUWx0<^dA&x5SD{l`Aj?8o?xPZr_`o}O`!-8>YJ&xg zHtk*ZFZ>zTp)ybTgh+j)K9Xh1^QrRu_R&(j5y3+|t39lHjR%m0&$DFNQIieK=1$l2#(#LD+88r1F;N|h=JcQf$2*%at<(+QQQ!Ha4qEs!F=goL? zsWE+}^%+2xHxHCGL9!-9o`*~8IYQQC$(o+>yqDzf{_=dJv|9@PpYkaT+!&sPfuY9! z#qHQKtRVwujs1?_#$R8FQ3H#&`z8{v++{ue_sEIg>!CFEO@{pM%=7>IXZ}C0)BlT- zq;6^5Qr=jSaKv6o<1~lPvDIsx{CWwP3<;S0d$fntHNU2Pnn+2OD0>%(N_s=e{xX%j2WDj8#P-PAoHPvNwLSUWfYp%%Hg((x?hp472}!c zfqW&ijHppNiagcHIv0dkr3Cy4L~;!)jb^lU2c(Anq48!y+s$JSvB%i~#Gx*8Z_I>Q zjw(`?(Gs2*thBtq<7NLQ9!2Bht}7J3vC3BQ^2v$R7VDYD{jsu_hC0HYQJ3HxiK`tw zAwgnL;9hEH{L<>5M|CmsiiCt4y{c$UFvQAI_KGWn2@_x>JjY1PS!Ed~Yg~|`M;b5T zk4MR#qh%TEdc%FKbZzTiSHg*WA)iKSiKCHu3h)IQOw7}u^~%!m0zL@sCZ1$-%Nw}<#9zLoFfyZO_+ zn!kviPjWjy!_V^%`6v7-m&G-4L)0itF)3b(uM(_8 zD6vW_rM;4_bWyUD-b$WQpbS@vmGR0HWu`JuS*)y3)+!s63Z+tcLfNYvP@Y$gDkqdv z%3I32$|dDvPgkEo>9-MAF7|IU#VBsAJm^!T~jp=%|{E= z!n7DIQA^TNwN9E%%h7VRd~KLEN-NdMv>DnQZIQN2TdkFA4}+=>vhFB@F%KNEccQan zx(7;cy&vP^V>(Bs0_v4T`V!P1#@ZFmjT%|TIigV0sN@%9KSp_3pN6|+Dc+&p#CNhh z+i*^VfgX%fb;RIYmb^mN%V&v8x*O_CsYYy(_g0d`G$1sfG9XvXbX76eVpYh1(|PYA z$8gk0IQi0>4i{8S#v=P~@)U^yQN_YsV{iPd#!qzC%bvyOj`xALy9i?}gh~Tu_5;C> ztPUD)DZ#_;l4Xd5ZK1sS36+A-;e=LPYcOiUHgTA1PJQVd zas}n>5E|HSS~`y7UO5ZSQbKOP@1&EbB%OTVcp5F;8v1vQQDR_4L&@u?jT72N?e9=y zuKhdUEYhEImB!qO*ChP1yuF4$MOU3=W7?DSrraZ+E=z+Bo75O>(qtQ1I@|cj8l%K1 z;E8Q04Z0Py9><;KY2pY@c^#m9S$|uNa@$-RRLVb*?Ty)&)Yy2IZ>J(*aKU7Gmr=e> z^WJza3>t9K@HNL*xLPS`L(ZD`sTTP~O=z{Qt`=>os5Ibo!bXyT@^MZhg9!^s$X$v< z)>0Tt;1N86WxzJeVI7gXRLr^|N9h$-$lvB?*#Z6z)}1hmzh4s=nvwhdE6pe_n_8pa z*VX;?+Uk<5*`j_|Uo#WuoNLf4F75fzZ8b(4o2lxSHjQg!8+NGCvt&Q)wrBlnn_D%b zKXSvqhyMS8{e%6;eq#S*KSKuJL_XMS{B?eczX2`xXMP&FU8FPf@fn5>vh84TF+^7w zYz4;V;6pNU89uA=DaYqwe7529I6hVQ?8oO2KE(US@p%nc+W20k9z{P! z``=M&pJ@jeH+f@jpXX(K2A{(h@nwi4mGg)BHvTxT;`{j_egtc)uVL)x_(lE^|BPSe z*Rb|nBapl$yo9d^77-#=v=Z$_y67UZL~oHN3dC?xEXIo|Vy2iU7K;^Pt=J$cM5TB_ z>=g&Z^WvyDAx??6#Jl2>_*i@)u88a6CsC^i#ZB>6{FM+TN{Lt6D9K7kB~!^(`YHpJ zp~^^Qj51M~rp#6rC`*-<%0tQ~WvjAN*{wXSR4Xqk$CQ(bT{)wiS3XoeQNB{HDnBSc zE4r$x9;%NTsD`OAYNDE?rmCG(o0_BMs`=_Lb(C7FmZ>w;IqD*HnYvmnS07flsgJ8w z>VEZ*dPF_0zNVg5#HkJQi9%jz}thFYUB&7^s0zFM#rp~Y&gwDwxM)fKv3~146Axeu0T15+{v8xYj-=iFDO2b{j zA{5WcQmD_v+VuMJh)VX+Tk1;Jv-lG654tKLk^L)aA_6s$>isB}DhJW$8tRj`lI1Ab zf2qW3J0*zPhf&zJxSf8FGX(t!C5r6Tzr6;TCZ?d>7>#! zNvlRFDHiaPCX}T?y?`GyY?P2XzW|2j3hZKG7Bwgf)F-G$y$Yy)mbAA{^T+vFqHumn z16B<>M-3z~Kc!;Ul$J#Ejc3`Qe?DAlD_I)607-Wl{TtOuQuyCeLUa5F`uY8{|38&dC?CIo z?PiVh@grnDzKyA{&M3d0c0n}G#)tQTS`+FiuTMcctx;Rk*pex;S^W4((@I#INz*3H zX30|~O(hYV?eHrK5ZTSB9cTcLs9^v5l4LG2^QG3BDnF zwNB1&vLfw>gC*mcnaH(l*cC7XHtr(Wx3sgO0x{Jp@WYG9OgxErWESs$vWG1D%Ca9y zg%|Mlygj~$IKK;>-^1j$;G<>RVp+~cOTq7zw=N4X_2vBl#}Hn~hv9j}h-cl)=kfV`AuQf~h-Dq(hxt+XNgNSlH;gs(eP!8CmZN1^EX$*^d<7+<Rbr%}%Wav{Aw6L30m0cXM9 zo{PBJeS9fjUcWB7mapR*_-0X*}MqxxZ&8N@-836yYuHI{k+LO2PJ(8FR_L660PtOgW)TNz)Qqz!IO#S z_W+iAfr~|a39SDI5aU~qDBmN9^KD0@Zx>>Hdw`*55$`*UC%l5=ZukQI_#l*d!09la zgBrTh13kK9XU#i!=6mdYQ1M52z8jwZE%RaD0g50AMGHXT%|f|_2eEJ-#>0{ED?r(C z@Ihu{UKaAj{C>WIKL}4`BYcr9@J4pPA9)fU$v*fb2QgnS@R7jlNW>od@_{J(V}1*H zPt?4C`YiP40Z7gQl6P=$36GHQm?b>TB|L!=o?r=2h=eCh!ehl95wZ``9V#dKo+;00 zj}M&*!0{};t0cWdK^vrkc7|c^%)_$X8@T&NdG_b}GrK&KzArzG^Pl-^jcVSMHK$|^ zJ@a*WW|I0V1Tr9=wc*s)bx!^KozoM(=hXfmvh5Ao+Yk5+{RB^y>gg#|gO-4X!K?il za)+b~XTJEf!iWAi^Jqe`#2*Gf_=1)OfT~8x4A$vRY9-2i3UhAI3UJ-s7U>a}jeYq4VBIbT^p)pSj{q0Pfr z6rM@C%lL%h`E*J-?sOK$RPi&ukD?b7Wa(n8U3K7tMTW`C6krN9MVdO9hL{RX!%Z_x zi%ly{kC?WacA0jY_L&ZvUN9Xs9XFjYoiv>?oi@E?I%B$E`X#DaREwzaPl9h2-JE*! zzMBu;+<5bmn~&Xm>gItv{rf>znk4 z^{slP{W~Z@7E9L)%x@L5&f8cLVr!S>u>4jka2QJ|49Et|3bg4U)8Va*Y#Ry z1w^sO0egNU*rQE0348JHg8h1wXH;-h*eC2};myf67XtS6H#a+BzkJi-$oy5<*8=tp zfW1QBrtd@+WmP@whx8Zqqxy0Eq<%_2t)J1~)i3HF>L2T$>0jwrBSEyJ{+H*4M1ASx_^tW=74lnzEX4HN`a}Yl>=y)fCng z)C{T_STmrePffc|BR=*2)Hk}l_Jj7Rc3yi!drkY3c2s*oyI-5Fm8e$b9%UldXugM6 z^qsgWz7^kK)#hvQmG}~oozJm`^Qrhm{0(uQzhXt_FXBV-0ir(dV}0j>I4|Bq4Co!K z_M8=G#M_7ny@|D-KMT8f!=NRir~eE8OoA*q8iM4AMk6q6KB^$w@3;PpI}Hny_G=pU zp(nhLW{_#kA$2T};(qW&0>J%2ka8`so)-$P3y1cKWKk>{a?c9w8VBu>0E?z25__Z8um{;@?2g*Wp2S|9 z-O!p(VQ17n_6+tz?Z@7ngRmp35t%;BUcf$~7ZDwO30CDR*yl?z(wT^|j$@N>HjnLs zjHT%M92s?8En};*@SCv-Y_9w^iYYP@yBCt@el`~Nvg>auyAP*hV8cGZwqXC!YjlAp z@piloRzY9Jk5{Rt$=`hEuN7EZU(VLSvs(}QcO&AvkH8A17;h!p!M4K+raxNKpuYvi z7fJyPGEu4xfmAfJR<;DxDR3Pi@i`ZTOuz_MamEK=tF%c|(M+*url8g-mS{^{v?V%Q zMCq}7t3FX1Qu9o<`nK%TUU!A>(6*tmCyTU&p^lG+3lPyC{V63(Q6iN*KR=6)>K4+P zTP-OfH9a}d-xR|u?DjL=hGk|B?yAI2QgsV`N3U6(>PXcTKM7e!T(iahI zUfnmQQ2CrlHrdw9&$qd^s`U*I(-hICUv=cbVYU!=MQ~3K3`2}{Lp+ITqs=CvY0)e% z)D}ahRLeCsff}M&A$@Z(+PG&xkQ62^d9VJAGEG12 zcrJ;r+Q!o>`GzEYrz|S<)7$iZs3y&oT$ir)HVuG|Y6cF-u%&iP^EG20+W0jy0rb`} zkx;2Z$)%ZjfF|?-Or3ZD=$@02o|q6F6`{HXwT{c=X{qrEiZ>7N4-AU4;@lEp3h?*l z<^XG2l9HB!YDR1(a}D8e1|@zz52I{T=K?(iV=@5 z>SJF$BWvvZy!3Bhs(9(!#myg_I&eawc-&{rlwPCbkB;9Qth;*$CA8|Ab9efJqhmdv ztn%tLb?3b7VehaMTCXp`=6TcgG{ zvZsZ@#iZNXH?%4$vU$eF`p4oE@8%ZKng{U&?r*Zj!~eICGFN4?b(8w`wG-v(|7KiKJ}@mrl$1ilak!C zXYIjTDh%2MWhu}j@fO=3SET%l zV|j^*VQpeHx6sycLFNREC^juMBOwXIk||P>BS0*TvP7fpS3Sj*0%`=s&EI6Ewx*K+%oFP&N4wO>~F$h?BlDUZxA zF3!33{5RVRQ`XqB?knvwVOv4w^#1*m!t|K~$DdiuUr(8mKcifH8r{BY&(__iO&nC% z1L6a71R20;wB?wkw#Ec|f&?JR8H?cHWrRNPv(PDO7#~pdyv0Yj1-JG~u~;igOSR<= z%1`3hD}0)Nro9XaVmhpGp4>XlEG#~LK_(I4!#~@5@#5Z*!_%k0eS8{*dft=``s*k3 zO}KA1?)#zfeSR6f79S-c-8ao=wsD)*e~NxcAF3DXho)@colo#-xbHdfymAaO%A1AR zT6j0}^7L?bgCrH)3o`@YS)LyUgZgD?mJ~}|kcMe6CuBe3XUm6&k$gUt3c^sz9Dv1lHF+H3HfEQ zm@(BnAlhQJKyu-U$|U{M=k?Ec#PcGzQoqPsRq|FkR!G=9{qOK~J3yBMZlJag>X>}v z1d$GBgRFiMy$R`QG2nuf60b%ihmM28mtD9nOt{KZ3{l~h3%0D$-%io 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 diff --git a/front/assets/images/admin.png b/front/assets/images/admin.png deleted file mode 100644 index 82d8ab0cddc3cc4530405ddf13ed5166a9f65213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28155 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 diff --git a/front/assets/images/arrow-right.svg b/front/assets/images/arrow-right.svg deleted file mode 100644 index 0537a72..0000000 --- a/front/assets/images/arrow-right.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/front/assets/images/favicon.ico b/front/assets/images/favicon.ico deleted file mode 100644 index 4cfc55cffc3aad97a9d3263c041b5b258e72bb95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 zcmeI23A9#K6~`|ES*8i4X~W9bprMsg%TOC_Sq{}&r41`h1Y~$TKm-xN2_;1wa70K2 z9>^df3OJ--hM%_FW%pa_Tj$<$_TFdT zbM|!h*-_LiY96&}62Es&embT1Qc>^|fvL{`f&rG=JYHYGW{lVi>O9 zn(*&bDQcqsPjr>OK2U1eq3%5HQzQN28tH2Tq`MbNCtX*b#_k=ZPgch;L+*~}yaaug)X|(Dl-7w4b53_l`*tZns&L`b_--*%>FD)JOG^YJkV$CnQEB+Qg zcEg@0$2@)CUU{GNn;WESABbU? zk9j@JVYXKOIo(2kfUW(ghoyFdY)`vO9dFKtPviUdulAQtyGc6u9I06o)ep~WgW9lF z$lZ&bsj~mk_QyVD{yxlWSbSTiJ~l`;o5;Ezagp@XtE8@DqvmMd^IV3Oo^q<(V6p!!15})Ao6< zE-}vjJ>7ny^X2H=_mnhoUJUbD)0elmN~b2`u5$Q{eY~@q|5u5a^b00?{C+efrX8X) z{cqBgCrV-Nu{e9&Bc**I++^Rqi=>&)#5lz5?{1ThzcTJi!ux0T4LjuDX|V}Utt{M!QNnp(Y++i1J9P$y)HEm#OF!4ETDU(%C)vlEAQy0W?Nenb(MkzlYZ)dm2_)t4D&Ry!xo4lVjDduHo&zD8-qn)Iq?YxX#%z`QU zi?u0apn?o!CID2MwySh zNbU>CL2>5h?7nP`yK~)D{CK*Y$^3Ix%N=Qr$@@CXOJ?N}$oY`V<(|0HEiQ+-Wvl6l z?bWW5CvqFdS-vHUZ{JT&bJ0qd2g;I(y^PlQ$E3xpqyzd$zq5Qad6|t{q;se2nr}GD z)~xI3%KVehdD-$9-#kAXmRton*w;3@`(g4Q>;*Yda*>Ign2#39V!uAY3Zky2emgeWi z+kU_Io@=xAJVZ0Ak2nC`7R~I`*1+vvM@jV^`mA zc*cLSZp*`<$J|L}>79qm+j6(beeKdU5_x@(hyGG~hJ0OTe$MyjY40*$jb0sNv_tT{ z&F^E^()tmCt<=Z)Z;stdu+D>w-{hT3^%&<%xt~w#cNX2|CgV@9boY*J`iJ>H%u?$^`th7Z`^&Y2+?eB2uIi+N&_ z5PrIkGa+#THkgTuU}X%T}GKa70H&NXHO(&N0d=JS?2`_$0& z_wtUQc|&D*xFc6C+6y7SDx zP{)hjVn?yr2HD)COKW&BcqH5vU)gP6j2x`x%^P|pT(49_3I^Gid zGx!}lR~kO6vVJ!P&!IW+H`L%Sc}bdKd%&5KGamGC7srqa#Ig7MX_T zhYgkzdB}ZE?2tEoGv_82)5{M zRdoKL^fxZeXR_$V;`pWO?uV>j`(Bj0QGd3aaaN>>>({(Ofz;yAS56PibGz7nFWB*x zoi~Z8S1e$QqTOzT-%8JW(q-Q$m(AE0!=n}_u - - - - - - - - - - - - - diff --git a/front/assets/images/salam_logo.png b/front/assets/images/salam_logo.png deleted file mode 100644 index 7edb056c34a21b1716cc281b619d964c43d174e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7887 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 diff --git a/front/assets/js/apexcharts.js b/front/assets/js/apexcharts.js deleted file mode 100644 index 06cedbc..0000000 --- a/front/assets/js/apexcharts.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * ApexCharts v3.53.0 - * (c) 2018-2024 ApexCharts - * Released under the MIT License. - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ApexCharts=e()}(this,(function(){"use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,a=Array(e);i>16,o=i>>8&255,n=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(t){return t&&"object"===x(t)&&!Array.isArray(t)&&null!=t}},{key:"is",value:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;e1&&void 0!==arguments[1]?arguments[1]:2;return Number.isInteger(t)?t:parseFloat(t.toPrecision(e))}},{key:"randomId",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:"noExponents",value:function(t){var e=String(t).split(/[eE]/);if(1===e.length)return e[0];var i="",a=t<0?"-":"",s=e[0].replace(".",""),r=Number(e[1])+1;if(r<0){for(i=a+"0.";r++;)i+="0";return i+s.replace(/^-/,"")}for(r-=s.length;r--;)i+="0";return s+i}},{key:"getDimensions",value:function(t){var e=getComputedStyle(t,null),i=t.clientHeight,a=t.clientWidth;return i-=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),[a-=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),i]}},{key:"getBoundingClientRect",value:function(t){var e=t.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:t.clientWidth,height:t.clientHeight,x:e.left,y:e.top}}},{key:"getLargestStringFromArr",value:function(t){return t.reduce((function(t,e){return Array.isArray(e)&&(e=e.reduce((function(t,e){return t.length>e.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"preciseAddition",value:function(t,e){var i=(String(t).split(".")[1]||"").length,a=(String(e).split(".")[1]||"").length,s=Math.pow(10,Math.max(i,a));return(Math.round(t*s)+Math.round(e*s))/s}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isMsEdge",value:function(){var t=window.navigator.userAgent,e=t.indexOf("Edge/");return e>0&&parseInt(t.substring(e+5,t.indexOf(".",e)),10)}},{key:"getGCD",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,a=Math.pow(10,i-Math.floor(Math.log10(Math.max(t,e))));for(t=Math.round(Math.abs(t)*a),e=Math.round(Math.abs(e)*a);e;){var s=e;e=t%e,t=s}return t/a}},{key:"getPrimeFactors",value:function(t){for(var e=[],i=2;t>=2;)t%i==0?(e.push(i),t/=i):i++;return e}},{key:"mod",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:7,a=Math.pow(10,i-Math.floor(Math.log10(Math.max(t,e))));return(t=Math.round(Math.abs(t)*a))%(e=Math.round(Math.abs(e)*a))/a}}]),t}(),m=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return s(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":default:t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a){t.attr({opacity:0}).animate(e,i).attr({opacity:1}).afterAll((function(){a()}))}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&"bar"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,"line"!==h.config.chart.type||h.globals.comboCharts?s:"stroke",r,o,n,l*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){var e=t.el;e.classList.remove("apexcharts-element-hidden"),e.classList.add("apexcharts-hidden-element-shown")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr("pathFrom")),r||(r=t.attr("pathTo"));var c=function(t){return"radar"===h.config.chart.type&&(o=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){v.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),y=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains("apexcharts-marker")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a,s=this.w,r=i.blur,o=i.top,n=i.left,l=i.color,h=i.opacity;if((null===(a=s.config.chart.dropShadow.enabledOnSeries)||void 0===a?void 0:a.length)>0&&-1===s.config.chart.dropShadow.enabledOnSeries.indexOf(e))return t;var c=t.flood(Array.isArray(l)?l[e]:l,h).composite(t.sourceAlpha,"in").offset(n,o).gaussianBlur(r).merge(t.source);return t.blend(t.source,c)}},{key:"dropShadow",value:function(t,e){var i,a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=e.top,o=e.left,n=e.blur,l=e.color,h=e.opacity,c=e.noUserSpaceOnUse,d=this.w;if(t.unfilter(!0),v.isMsEdge()&&"radialBar"===d.config.chart.type)return t;if((null===(i=d.config.chart.dropShadow.enabledOnSeries)||void 0===i?void 0:i.length)>0&&-1===(null===(a=d.config.chart.dropShadow.enabledOnSeries)||void 0===a?void 0:a.indexOf(s)))return t;return l=Array.isArray(l)?l[s]:l,t.filter((function(t){var e=null;e=v.isSafari()||v.isFirefox()||v.isMsEdge()?t.flood(l,h).composite(t.sourceAlpha,"in").offset(o,r).gaussianBlur(n):t.flood(l,h).composite(t.sourceAlpha,"in").offset(o,r).gaussianBlur(n).merge(t.source),t.blend(t.source,e)})),c||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),t}(),w=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"roundPathCorners",value:function(t,e){function i(t,e,i){var s=e.x-t.x,r=e.y-t.y,o=Math.sqrt(s*s+r*r);return a(t,e,Math.min(1,i/o))}function a(t,e,i){return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}}function s(t,e){t.length>2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}t.indexOf("NaN")>-1&&(t="");var o=t.split(/[,\s]/).reduce((function(t,e){var i=e.match("([a-zA-Z])(.+)");return i?(t.push(i[1]),t.push(i[2])):t.push(e),t}),[]).reduce((function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t}),[]),n=[];if(o.length>1){var l=r(o[0]),h=null;"Z"==o[o.length-1][0]&&o[0].length>2&&(h=["L",l.x,l.y],o[o.length-1]=h),n.push(o[0]);for(var c=1;c2&&"L"==g[0]&&u.length>2&&"L"==u[0]){var f,p,x=r(d),b=r(g),v=r(u);f=i(b,x,e),p=i(b,v,e),s(g,f),g.origPoint=b,n.push(g);var m=a(f,b,.5),y=a(b,p,.5),w=["C",m.x,m.y,y.x,y.y,p.x,p.y];w.origPoint=b,n.push(w)}else n.push(g)}if(h){var k=r(n[n.length-1]);n.push(["Z"]),s(n[0],k)}}else n=o;return n.reduce((function(t,e){return t+e.join(" ")+" "}),"")}},{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"butt";return this.w.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":o,"stroke-linecap":n})}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,"stroke-width":null!==n?n:0,stroke:null!==l?l:"none","stroke-dasharray":h}),c.node.setAttribute("fill",r),c}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none";return this.w.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i})}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t<0&&(t=0);var i=this.w.globals.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,f=void 0===u?null:u,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":f,"stroke-width":o,"stroke-dasharray":x,class:g})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w.globals.dom.Paper.group();return null!==t&&e.attr(t),e}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[" L",t,e].join(" "):"H"===i?a=[" H",t].join(" "):"V"===i&&(a=[" V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){var o=["C",t,e,i,a,s,r].join(" ");return o}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,o){var n="A";arguments.length>7&&void 0!==arguments[7]&&arguments[7]&&(n="a");var l=[n,t,e,i,a,s,r,o].join(" ");return l}},{key:"renderPaths",value:function(t){var e,i=t.j,a=t.realIndex,s=t.pathFrom,r=t.pathTo,o=t.stroke,n=t.strokeWidth,l=t.strokeLinecap,h=t.fill,c=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,f=t.className,p=t.shouldClipToGrid,x=void 0===p||p,b=t.bindEventsOnPaths,v=void 0===b||b,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new y(this.ctx),C=new m(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,M=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);M?e=s:(e=r,A.globals.animationEnded=!0);var I=A.config.stroke.dashArray,T=0;T=Array.isArray(I)?I[a]:A.config.stroke.dashArray;var z=this.drawPath({d:e,stroke:o,strokeWidth:n,fill:h,fillOpacity:1,classes:f,strokeLinecap:l,strokeDashArray:T});if(z.attr("index",a),x&&z.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(z,a);else if(A.config.chart.dropShadow.enabled&&k){var X=A.config.chart.dropShadow;S.dropShadow(z,X,a)}v&&(z.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,z)),z.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,z)),z.node.addEventListener("mousedown",this.pathMouseDown.bind(this,z))),z.attr({pathTo:r,pathFrom:s});var E={el:z,j:i,realIndex:a,pathFrom:s,pathTo:r,fill:h,strokeWidth:n,delay:c};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(d(d({},E),{},{speed:g})),A.globals.dataChanged&&P&&M&&C.animatePathsGradually(d(d({},E),{},{speed:u})),z}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return this.w.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}))}},{key:"drawGradient",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf("#")&&(e=v.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=v.hexToRgba(i,s));var d=0,g=1,u=1,f=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,f=void 0!==n[3]?n[3]/100:null);var p=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==f&&t.at(f,e,a)})):c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),p){var x=c.globals.gridWidth/2,b=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?r.attr({gradientUnits:"userSpaceOnUse",cx:x,cy:b,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?r.from(0,0).to(0,1):"diagonal"===t?r.from(0,0).to(1,1):"horizontal"===t?r.from(0,1).to(1,1):"diagonal2"===t&&r.from(1,0).to(0,1);return r}},{key:"getTextBasedOnMaxWidth",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute("selected","true"),o="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===o){var d=i.config.states.active.filter;if("none"!==d)a.applyFilter(t,s,d.type,d.value);else if("none"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if("none"!==i.config.states.active.filter.type)if("none"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e={};return t&&"function"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&o.attr("transform",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),k=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"getStackedSeriesTotals",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.w,i=[];if(0===e.globals.series.length)return i;for(var a=0;a0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"getStackedSeriesTotalsByGroups",value:function(){var t=this,e=this.w,i=[];return e.globals.seriesGroups.forEach((function(a){var s=[];e.config.series.forEach((function(t,i){a.indexOf(e.globals.seriesNames[i])>-1&&s.push(i)}));var r=e.globals.series.map((function(t,e){return-1===s.indexOf(e)?e:-1})).filter((function(t){return-1!==t}));i.push(t.getStackedSeriesTotals(r))})),i}},{key:"setSeriesYAxisMappings",value:function(){var t=this.w.globals,e=this.w.config,i=[],a=[],s=[],r=t.series.length>e.yaxis.length||e.yaxis.some((function(t){return Array.isArray(t.seriesName)}));e.series.forEach((function(t,e){s.push(e),a.push(null)})),e.yaxis.forEach((function(t,e){i[e]=[]}));var o=[];e.yaxis.forEach((function(t,a){var n=!1;if(t.seriesName){var l=[];Array.isArray(t.seriesName)?l=t.seriesName:l.push(t.seriesName),l.forEach((function(t){e.series.forEach((function(e,o){if(e.name===t){var l=o;a===o||r?!r||s.indexOf(o)>-1?i[a].push([a,o]):console.warn("Series '"+e.name+"' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes."):(i[o].push([o,a]),l=a),n=!0,-1!==(l=s.indexOf(l))&&s.splice(l,1)}}))}))}n||o.push(a)})),i=i.map((function(t,e){var i=[];return t.forEach((function(t){a[t[1]]=t[0],i.push(t[1])})),i}));for(var n=e.yaxis.length-1,l=0;l0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0){var u=function(t,e){var i=s.config.yaxis[s.globals.seriesYAxisReverseMap[e]],r=t<0?-1:1;return t=Math.abs(t),i.logarithmic&&(t=a.getBaseLog(i.logBase,t)),-r*t/o[e]};if(r.isMultipleYAxis){l=[];for(var f=0;f0&&e.forEach((function(e){var o=[],n=[];t.i.forEach((function(i,a){s.config.series[i].group===e&&(o.push(t.series[a]),n.push(i))})),o.length>0&&r.push(a.draw(o,i,n))})),r}}],[{key:"checkComboSeries",value:function(t,e){var i=!1,a=0,s=0;return void 0===e&&(e="line"),t.length&&void 0!==t[0].type&&t.forEach((function(t){"bar"!==t.type&&"column"!==t.type&&"candlestick"!==t.type&&"boxPlot"!==t.type||a++,void 0!==t.type&&t.type!==e&&s++})),s>0&&(i=!0),{comboBarCount:a,comboCharts:i}}},{key:"extendArrayProps",value:function(t,e,i){var a,s,r,o,n,l;(null!==(a=e)&&void 0!==a&&a.yaxis&&(e=t.extendYAxis(e,i)),null!==(s=e)&&void 0!==s&&s.annotations)&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),null!==(r=e)&&void 0!==r&&null!==(o=r.annotations)&&void 0!==o&&o.xaxis&&(e=t.extendXAxisAnnotations(e)),null!==(n=e)&&void 0!==n&&null!==(l=n.annotations)&&void 0!==l&&l.points&&(e=t.extendPointAnnotations(e)));return e}}]),t}(),A=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e}return s(t,[{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute("transform","rotate(-90 ".concat(n," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener("mouseenter",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener("mouseleave",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener("click",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=!1,r=this.w;if(this.annoCtx.invertAxis){var o=r.globals.labels;r.config.xaxis.convertedCatToNumeric&&(o=r.globals.categoryLabels);var n=o.indexOf(a),l=r.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(n+1)+")");i=l?parseFloat(l.getAttribute("y")):(r.globals.gridHeight/o.length-1)*(n+1)-r.globals.barHeight,void 0!==e.seriesIndex&&r.globals.barHeight&&(i=i-r.globals.barHeight/2*(r.globals.series.length-1)+r.globals.barHeight*e.seriesIndex)}else{var h,c=r.globals.seriesYAxisMap[e.yAxisIndex][0];if(r.config.yaxis[e.yAxisIndex].logarithmic)h=(a=new k(this.annoCtx.ctx).getLogVal(r.config.yaxis[e.yAxisIndex].logBase,a,c))/r.globals.yLogRatio[c];else h=(a-r.globals.minYArr[c])/(r.globals.yRange[c]/r.globals.gridHeight);h>r.globals.gridHeight?(h=r.globals.gridHeight,s=!0):h<0&&(h=0,s=!0),i=r.globals.gridHeight-h,!e.marker||void 0!==e.y&&null!==e.y||(i=0),r.config.yaxis[e.yAxisIndex]&&r.config.yaxis[e.yAxisIndex].reversed&&(i=h)}return"string"==typeof a&&a.indexOf("px")>-1&&(i=parseFloat(a)),{yP:i,clipped:s}}},{key:"getX1X2",value:function(t,e){var i,a="x1"===t?e.x:e.x2,s=this.w,r=this.annoCtx.invertAxis?s.globals.minY:s.globals.minX,o=this.annoCtx.invertAxis?s.globals.maxY:s.globals.maxX,n=this.annoCtx.invertAxis?s.globals.yRange[0]:s.globals.xRange,l=!1;return i=this.annoCtx.inversedReversedAxis?(o-a)/(n/s.globals.gridWidth):(a-r)/(n/s.globals.gridWidth),"category"!==s.config.xaxis.type&&!s.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||s.globals.dataFormatXNumeric||s.config.chart.sparkline.enabled||(i=this.getStringX(a)),"string"==typeof a&&a.indexOf("px")>-1&&(i=parseFloat(a)),null==a&&e.marker&&(i=s.globals.gridWidth),void 0!==e.seriesIndex&&s.globals.barWidth&&!this.annoCtx.invertAxis&&(i=i-s.globals.barWidth/2*(s.globals.series.length-1)+s.globals.barWidth*e.seriesIndex),i>s.globals.gridWidth?(i=s.globals.gridWidth,l=!0):i<0&&(i=0,l=!0),{x:i,clipped:l}}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),t}(),S=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new A(this.annoCtx)}return s(t,[{key:"addXaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2("x1",t),o=r.x,n=r.clipped,l=!0,h=t.label.text,c=t.strokeDashArray;if(v.isNumber(o)){if(null===t.x2||void 0===t.x2){if(!n){var d=this.annoCtx.graphics.drawLine(o+t.offsetX,0+t.offsetY,o+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,c,t.borderWidth);e.appendChild(d.node),t.id&&d.node.classList.add(t.id)}}else{var g=this.helpers.getX1X2("x2",t);if(a=g.x,l=g.clipped,!n||!l){if(a12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(g))).replace(/(^|[^\\])H/g,"$1"+g)).replace(/(^|[^\\])hh+/g,"$1"+l(u))).replace(/(^|[^\\])h/g,"$1"+u);var p=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(p))).replace(/(^|[^\\])m/g,"$1"+p);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(x))).replace(/(^|[^\\])s/g,"$1"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(b)),b=Math.round(b/10);var v=g<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+b)).replace(/(^|[^\\])TT+/g,"$1"+v)).replace(/(^|[^\\])T/g,"$1"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+m)).replace(/(^|[^\\])t/g,"$1"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?"Z":y>0?"+":"-";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+":"+l(k)}e=e.replace(/(^|[^\\])K/g,"$1"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],"g"),o[A])).replace(new RegExp(n[0],"g"),n[A])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),n=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=v.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),L=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.tooltipKeyFormat="dd MMM"}return s(t,[{key:"xLabelFormat",value:function(t,e,i,a){var s=this.w;if("datetime"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new C(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:"defaultGeneralFormatter",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:"defaultYFormatter",value:function(t,e,i){var a=this.w;if(v.isNumber(t))if(0!==a.globals.yValueDecimal)t=t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal);else{var s=t.toFixed(0);t=t==s?s:t.toFixed(1)}return t}},{key:"setLabelFormatters",value:function(){var t=this,e=this.w;return e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(v.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&"numeric"===e.config.xaxis.type){if(v.isNumber(e.config.xaxis.decimalsInFloat))return t.toFixed(e.config.xaxis.decimalsInFloat);var i=e.globals.maxX-e.globals.minX;return i>0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),P=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"getLabel",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?"":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new L(this.ctx),f=l;o&&(h=u.xLabelFormat(c,l,f,{i:a,dateFormatter:new C(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new C(this.ctx).formatDate,w:n})));var p,x;e.length>0?(p=e[a].unit,x=null,e.forEach((function(t){"month"===t.unit?x="year":"day"===t.unit?x="month":"hour"===t.unit?x="day":"minute"===t.unit&&(x="hour")})),g=x===p,i=e[a].position,h=e[a].value):"datetime"===n.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();var b=new w(this.ctx),v={};v=n.globals.rotateXLabels&&o?b.getTextRects(h,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):b.getTextRects(h,parseInt(r,10));var m=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&("NaN"===String(h)||s.indexOf(h)>=0&&m)&&(h=""),{x:i,text:h,textRect:v,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.xa.length||a.some((function(t){return Array.isArray(t.seriesName)}))?t:i.seriesYAxisReverseMap[t]}},{key:"isYAxisHidden",value:function(t){var e=this.w,i=e.config.yaxis[t];if(!i.show||this.yAxisAllSeriesCollapsed(t))return!0;if(!i.showForNullSeries){var a=e.globals.seriesYAxisMap[t],s=new k(this.ctx);return a.every((function(t){return s.isSeriesNull(t)}))}return!1}},{key:"getYAxisForeColor",value:function(t,e){var i=this.w;return Array.isArray(t)&&i.globals.yAxisScale[e]&&this.ctx.theme.pushExtraColors(t,i.globals.yAxisScale[e].result.length,!1),t}},{key:"drawYAxisTicks",value:function(t,e,i,a,s,r,o){var n=this.w,l=new w(this.ctx),h=n.globals.translateY+n.config.yaxis[s].labels.offsetY;if(n.globals.isBarHorizontal?h=0:"heatmap"===n.config.chart.type&&(h+=r/2),a.show&&e>0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=l.drawLine(t+i.offsetX-a.width+a.offsetX,h+a.offsetY,t+i.offsetX+a.offsetX,h+a.offsetY,a.color);o.add(d),h+=r}}}}]),t}(),M=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new A(this.annoCtx),this.axesUtils=new P(this.annoCtx)}return s(t,[{key:"addYaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=t.strokeDashArray,o=this.helpers.getY1Y2("y1",t),n=o.yP,l=o.clipped,h=!0,c=!1,d=t.label.text;if(null===t.y2||void 0===t.y2){if(!l){c=!0;var g=this.annoCtx.graphics.drawLine(0+t.offsetX,n+t.offsetY,this._getYAxisAnnotationWidth(t),n+t.offsetY,t.borderColor,r,t.borderWidth);e.appendChild(g.node),t.id&&g.node.classList.add(t.id)}}else{if(a=(o=this.helpers.getY1Y2("y2",t)).yP,h=o.clipped,a>n){var u=n;n=a,a=u}if(!l||!h){c=!0;var f=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),n-a,0,t.fillColor,t.opacity,1,t.borderColor,r);f.node.classList.add("apexcharts-annotation-rect"),f.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(f.node),t.id&&f.node.classList.add(t.id)}}if(c){var p="right"===t.label.position?s.globals.gridWidth:"center"===t.label.position?s.globals.gridWidth/2:0,x=this.annoCtx.graphics.drawText({x:p+t.label.offsetX,y:(null!=a?a:n)+t.label.offsetY-3,text:d,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});x.attr({rel:i}),e.appendChild(x.node)}}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.forEach((function(e,a){e.yAxisIndex=t.axesUtils.translateYAxisIndex(e.yAxisIndex),t.axesUtils.isYAxisHidden(e.yAxisIndex)&&t.axesUtils.yAxisAllSeriesCollapsed(e.yAxisIndex)||t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),I=function(){function t(e){i(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new A(this.annoCtx)}return s(t,[{key:"addPointAnnotation",value:function(t,e,i){if(!(this.w.globals.collapsedSeriesIndices.indexOf(t.seriesIndex)>-1)){var a=this.helpers.getX1X2("x1",t),s=a.x,r=a.clipped,o=(a=this.helpers.getY1Y2("y1",t)).yP,n=a.clipped;if(v.isNumber(s)&&!n&&!r){var l={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},h=this.annoCtx.graphics.drawMarker(s+t.marker.offsetX,o+t.marker.offsetY,l);e.appendChild(h.node);var c=t.label.text?t.label.text:"",d=this.annoCtx.graphics.drawText({x:s+t.label.offsetX,y:o+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:c,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(d.attr({rel:i}),e.appendChild(d.node),t.customSVG.SVG){var g=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});g.attr({transform:"translate(".concat(s+t.customSVG.offsetX,", ").concat(o+t.customSVG.offsetY,")")}),g.node.innerHTML=t.customSVG.SVG,e.appendChild(g.node)}if(t.image.path){var u=t.image.width?t.image.width:20,f=t.image.height?t.image.height:20;h=this.annoCtx.addImage({x:s+t.image.offsetX-u/2,y:o+t.image.offsetY-f/2,width:u,height:f,path:t.image.path,appendTo:".apexcharts-point-annotations"})}t.mouseEnter&&h.node.addEventListener("mouseenter",t.mouseEnter.bind(this,t)),t.mouseLeave&&h.node.addEventListener("mouseleave",t.mouseLeave.bind(this,t)),t.click&&h.node.addEventListener("click",t.click.bind(this,t))}}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var T={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},z=function(){function t(){i(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,stepSize:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:void 0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return s(t,[{key:"init",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"",locales:[T],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,nonce:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0,targets:void 0},stacked:!1,stackOnlyBar:!0,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",categoryFormatter:void 0,valueFormatter:void 0},png:{filename:void 0},svg:{filename:void 0},scale:void 0,width:void 0},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,allowMouseWheelZoom:!0,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{line:{isSlopeChart:!1},area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,borderRadiusApplication:"around",borderRadiusWhenStacked:"last",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:"#373d3f",fontSize:"12px",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,borderRadius:4,dataLabels:{format:"scale"},colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+"%"}}},barLabels:{enabled:!1,offsetX:0,offsetY:0,useSeriesColors:!0,fontFamily:void 0,fontWeight:600,fontSize:"16px",formatter:function(t){return t},onClick:void 0}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{size:7,fillColors:void 0,strokeWidth:1,shape:void 0,offsetX:0,offsetY:0,customHTML:void 0,onClick:void 0},itemMargin:{horizontal:5,vertical:4},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",offsetX:0,offsetY:0,showNullDataPoints:!0,onClick:void 0,onDblClick:void 0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,hideEmptySeries:!1,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},stepSize:void 0,tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),X=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.graphics=new w(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new A(this),this.xAxisAnnotations=new S(this),this.yAxisAnnotations=new M(this),this.pointsAnnotations=new I(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return s(t,[{key:"drawAxesAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-svg":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:n||"12px",fontWeight:h||"regular",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),M=L.globals.dom.baseEl.querySelector(b);M&&M.appendChild(P.node);var I=P.bbox();if(s){var T=this.graphics.drawRect(I.x-m,I.y-C,I.width+m+w,I.height+A+C,f,d||"transparent",1,g,p,u);M.insertBefore(T.node,P.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?".apexcharts-svg":g,f=i.globals.dom.Paper.image(a);f.size(h,d).move(r,n);var p=i.globals.dom.baseEl.querySelector(u);return p&&p.appendChild(f.node),f}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new z,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=v.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),f=this.helpers.addBackgroundToAnno(u,g);return f&&l.insertBefore(f.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:v.randomId(),method:r,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){for(var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations"),a=e.globals.memory.methodsToExec.length-1;a>=0;a--)"addText"!==e.globals.memory.methodsToExec[a].label&&"addAnnotation"!==e.globals.memory.methodsToExec[a].label||e.globals.memory.methodsToExec.splice(a,1);i=v.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),E=function(t){var e,i=t.isTimeline,a=t.ctx,s=t.seriesIndex,r=t.dataPointIndex,o=t.y1,n=t.y2,l=t.w,h=l.globals.seriesRangeStart[s][r],c=l.globals.seriesRangeEnd[s][r],d=l.globals.labels[r],g=l.config.series[s].name?l.config.series[s].name:"",u=l.globals.ttKeyFormatter,f=l.config.tooltip.y.title.formatter,p={w:l,seriesIndex:s,dataPointIndex:r,start:h,end:c};("function"==typeof f&&(g=f(g,p)),null!==(e=l.config.series[s].data[r])&&void 0!==e&&e.x&&(d=l.config.series[s].data[r].x),i)||"datetime"===l.config.xaxis.type&&(d=new L(a).xLabelFormat(l.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new C(a).formatDate,w:l}));"function"==typeof u&&(d=u(d,p)),Number.isFinite(o)&&Number.isFinite(n)&&(h=o,c=n);var x="",b="",v=l.globals.colors[s];if(void 0===l.config.tooltip.x.formatter)if("datetime"===l.config.xaxis.type){var m=new C(a);x=m.formatDate(m.getDate(h),l.config.tooltip.x.format),b=m.formatDate(m.getDate(c),l.config.tooltip.x.format)}else x=h,b=c;else x=l.config.tooltip.x.formatter(h),b=l.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:x,endVal:b,ylabel:d,color:v,seriesName:g}},Y=function(t){var e=t.color,i=t.seriesName,a=t.ylabel,s=t.start,r=t.end,o=t.seriesIndex,n=t.dataPointIndex,l=t.ctx.tooltip.tooltipLabels.getFormatters(o);s=l.yLbFormatter(s),r=l.yLbFormatter(r);var h=l.yLbFormatter(t.w.globals.series[o][n]),c='\n '.concat(s,'\n - \n ').concat(r,"\n ");return'
'+(i||"")+'
'+a+": "+(t.w.globals.comboCharts?"rangeArea"===t.w.config.series[o].type||"rangeBar"===t.w.config.series[o].type?c:"".concat(h,""):c)+"
"},F=function(){function t(e){i(this,t),this.opts=e}return s(t,[{key:"hideYAxis",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.hideYAxis();return v.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"slope",value:function(){return this.hideYAxis(),{chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!0,formatter:function(t,e){var i=e.w.config.series[e.seriesIndex].name;return null!==t?i+": "+t:""},background:{enabled:!1},offsetX:-5},grid:{xaxis:{lines:{show:!0}},yaxis:{lines:{show:!1}}},xaxis:{position:"top",labels:{style:{fontSize:14,fontWeight:900}},tooltip:{enabled:!1},crosshairs:{show:!1}},markers:{size:8,hover:{sizeOffset:1}},legend:{show:!1},tooltip:{shared:!1,intersect:!0,followCursor:!0},stroke:{width:5,curve:"straight"}}}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square"}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"funnel",value:function(){return this.hideYAxis(),d(d({},this.bar()),{},{chart:{animations:{easing:"linear",speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:"around",borderRadius:0,dataLabels:{position:"center"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:7,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=function(){var t=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-t};return s.globals.comboCharts?"rangeBar"===s.config.series[i].type||"rangeArea"===s.config.series[i].type?r():t:r()},background:{enabled:!1},style:{colors:["#fff"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var e=E(d(d({},t),{},{isTimeline:!0})),i=e.color,a=e.seriesName,s=e.ylabel,r=e.startVal,o=e.endVal;return Y(d(d({},t),{},{color:i,seriesName:a,ylabel:s,start:r,end:o}))}(t):function(t){var e=E(t),i=e.color,a=e.seriesName,s=e.ylabel,r=e.start,o=e.end;return Y(d(d({},t),{},{color:i,seriesName:a,ylabel:s,start:r,end:o}))}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"dumbbell",value:function(t){var e,i;return null!==(e=t.plotOptions.bar)&&void 0!==e&&e.barHeight||(t.plotOptions.bar.barHeight=2),null!==(i=t.plotOptions.bar)&&void 0!==i&&i.columnWidth||(t.plotOptions.bar.columnWidth=2),t}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"rangeArea",value:function(){return{stroke:{curve:"straight",width:0},fill:{type:"solid",opacity:.6},markers:{size:0},states:{hover:{filter:{type:"none"}},active:{filter:{type:"none"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(t){return function(t){var e=E(t),i=e.color,a=e.seriesName,s=e.ylabel,r=e.start,o=e.end;return Y(d(d({},t),{},{color:i,seriesName:a,ylabel:s,start:r,end:o}))}(t)}}}}},{key:"brush",value:function(t){return v.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"stackedBars",value:function(){var t=this.bar();return d(d({},t),{},{plotOptions:d(d({},t.plotOptions),{},{bar:d(d({},t.plotOptions.bar),{},{borderRadiusApplication:"end",borderRadiusWhenStacked:"last"})})})}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return v.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return v.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square"}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{opacity:1,gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:5,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
\n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
"):'
')+"
".concat(a[0],': ')+r+"
"+"
".concat(a[1],': ')+o+"
"+(n?"
".concat(a[2],': ')+n+"
":"")+"
".concat(a[3],': ')+l+"
"+"
".concat(a[4],': ')+h+"
"}}]),t}(),R=function(){function t(e){i(this,t),this.opts=e}return s(t,[{key:"init",value:function(t){var e=t.responsiveOverride,i=this.opts,a=new z,s=new F(i);this.chartType=i.chart.type,i=this.extendYAxis(i),i=this.extendAnnotations(i);var r=a.init(),o={};if(i&&"object"===x(i)){var n,l,h,c,d,g,u,f,p,b,m={};m=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","rangeArea","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(i.chart.type)?s[i.chart.type]():s.line(),null!==(n=i.plotOptions)&&void 0!==n&&null!==(l=n.bar)&&void 0!==l&&l.isFunnel&&(m=s.funnel()),i.chart.stacked&&"bar"===i.chart.type&&(m=s.stackedBars()),null!==(h=i.chart.brush)&&void 0!==h&&h.enabled&&(m=s.brush(m)),null!==(c=i.plotOptions)&&void 0!==c&&null!==(d=c.line)&&void 0!==d&&d.isSlopeChart&&(m=s.slope()),i.chart.stacked&&"100%"===i.chart.stackType&&(i=s.stacked100(i)),null!==(g=i.plotOptions)&&void 0!==g&&null!==(u=g.bar)&&void 0!==u&&u.isDumbbell&&(i=s.dumbbell(i)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(i),i.xaxis=i.xaxis||window.Apex.xaxis||{},e||(i.xaxis.convertedCatToNumeric=!1),(null!==(f=(i=this.checkForCatToNumericXAxis(this.chartType,m,i)).chart.sparkline)&&void 0!==f&&f.enabled||null!==(p=window.Apex.chart)&&void 0!==p&&null!==(b=p.sparkline)&&void 0!==b&&b.enabled)&&(m=s.sparkline(m)),o=v.extend(r,m)}var y=v.extend(o,window.Apex);return r=v.extend(y,i),r=this.handleUserInputErrors(r)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a,s,r=new F(i),o=("bar"===t||"boxPlot"===t)&&(null===(a=i.plotOptions)||void 0===a||null===(s=a.bar)||void 0===s?void 0:s.horizontal),n="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,l="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,h=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return o||n||!l||"between"===h||(i=r.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new z;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=v.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[v.extend(i.yAxis,t.yaxis)]:t.yaxis=v.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=v.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes"),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new z;return t.annotations.yaxis=v.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new z;return t.annotations.xaxis=v.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new z;return t.annotations.points=v.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}]),t}(),D=function(){function t(){i(this,t)}return s(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasXaxisGroups=!1,t.groups=[],t.barGroups=[],t.lineGroups=[],t.areaGroups=[],t.hasSeriesGroups=!1,t.seriesGroups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.lastWheelExecution=0,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0,t.multiAxisTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,isSlopeChart:t.plotOptions.line.isSlopeChart,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null,niceScaleAllowedMagMsd:[[1,1,2,5,5,5,10,10,10,10,10],[1,1,2,5,5,5,10,10,10,10,10]],niceScaleDefaultTicks:[1,2,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,12,12,12,12,12,12,12,12,24],seriesYAxisMap:[],seriesYAxisReverseMap:[]}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=v.extend({},t),e.initialSeries=v.clone(t.series),e.lastXAxis=v.clone(e.initialConfig.xaxis),e.lastYAxis=v.clone(e.initialConfig.yaxis),e}}]),t}(),H=function(){function t(e){i(this,t),this.opts=e}return s(t,[{key:"init",value:function(){var t=new R(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new D).init(t)}}}]),t}(),O=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0,this.patternIDs=[]}return s(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");w.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:n+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",o),w.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:n+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w,i=e.config.chart.type;return("bar"===i||"rangeBar"===i)&&e.config.plotOptions.bar.distributed||"heatmap"===i||"treemap"===i?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),"function"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=t.fillType?t.fillType:this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color),o||(o="#fff",console.warn("undefined color - ApexCharts"));var h=o;if(-1===o.indexOf("rgb")?o.length<9&&(h=v.hexToRgba(o,l)):o.indexOf("rgba")>-1&&(l=v.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),"pattern"===n&&(a=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:a,fillColor:o,fillOpacity:l,defaultColor:h})),"gradient"===n&&(s=this.handleGradientFill({fillConfig:t.fillConfig,fillColor:o,fillOpacity:l,i:this.seriesIndex})),"image"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:"",g="pattern".concat(e.globals.cuid).concat(t.seriesNumber+1).concat(d);-1===this.patternIDs.indexOf(g)&&(this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(u=v.getOpacityFromRGBA(g));var f=void 0===r.gradient.opacityTo?i:Array.isArray(r.gradient.opacityTo)?r.gradient.opacityTo[s]:r.gradient.opacityTo;if(void 0===r.gradient.gradientToColors||0===r.gradient.gradientToColors.length)o="dark"===r.gradient.shade?h.shadeColor(-1*parseFloat(r.gradient.shadeIntensity),e.indexOf("rgb")>-1?v.rgb2hex(e):e):h.shadeColor(parseFloat(r.gradient.shadeIntensity),e.indexOf("rgb")>-1?v.rgb2hex(e):e);else if(r.gradient.gradientToColors[n.seriesNumber]){var p=r.gradient.gradientToColors[n.seriesNumber];o=p,p.indexOf("rgba")>-1&&(f=v.getOpacityFromRGBA(p))}else o=e;if(r.gradient.gradientFrom&&(g=r.gradient.gradientFrom),r.gradient.gradientTo&&(o=r.gradient.gradientTo),r.gradient.inverseColors){var x=g;g=o,o=x}return g.indexOf("rgb")>-1&&(g=v.rgb2hex(g)),o.indexOf("rgb")>-1&&(o=v.rgb2hex(o)),l.drawGradient(c,g,o,u,f,n.size,r.gradient.stops,r.gradient.colorStops,s)}}]),t}(),N=function(){function t(e,a){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"setGlobalMarkerSize",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new w(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(o.globals.cuid,")")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0)||r||d){v.isNumber(l.y[g])?f+=" w".concat(v.randomId()):f="apexcharts-nullpoint";var p=this.getMarkerConfig({cssClass:f,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(p.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(p.pointStrokeColor=o.config.series[n].data[u].strokeColor)),void 0!==a&&(p.pSize=a),(l.x[g]<-o.globals.markers.largestSize||l.x[g]>o.globals.gridWidth+o.globals.markers.largestSize||l.y[g]<-o.globals.markers.largestSize||l.y[g]>o.globals.gridHeight+o.globals.markers.largestSize)&&(p.pSize=0),(s=c.drawMarker(l.x[g],l.y[g],p)).attr("rel",u),s.attr("j",u),s.attr("index",e),s.node.setAttribute("default-marker-size",p.pSize),new y(this.ctx).setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:"getMarkerConfig",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.radius,o=void 0===r?null:r,n=t.size,l=void 0===n?null:n,h=t.strokeWidth,c=void 0===h?null:h,d=this.w,g=this.getMarkerStyle(i),u=null===l?d.globals.markers.size[i]:l,f=d.config.markers;return null!==s&&f.discrete.length&&f.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(g.pointStrokeColor=t.strokeColor,g.pointFillColor=t.fillColor,u=t.size,g.pointShape=t.shape)})),{pSize:null===o?u:o,pRadius:null!==o?o:f.radius,pointStrokeWidth:null!==c?c:Array.isArray(f.strokeWidth)?f.strokeWidth[i]:f.strokeWidth,pointStrokeColor:g.pointStrokeColor,pointFillColor:g.pointFillColor,shape:g.pointShape||(Array.isArray(f.shape)?f.shape[i]:f.shape),class:e,pointStrokeOpacity:Array.isArray(f.strokeOpacity)?f.strokeOpacity[i]:f.strokeOpacity,pointStrokeDashArray:Array.isArray(f.strokeDashArray)?f.strokeDashArray[i]:f.strokeDashArray,pointFillOpacity:Array.isArray(f.fillOpacity)?f.fillOpacity[i]:f.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(t){var e=this.w,i=new w(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),W=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled}return s(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new w(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(o.x))for(var c=0;cf.maxBubbleRadius&&(u=f.maxBubbleRadius)}var p=o.x[c],x=o.y[c];if(u=u||0,null!==x&&void 0!==a.globals.series[r][d]||(g=!1),g){var b=this.drawPoint(p,x,u,r,d,e);h.add(b)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,r){var o=this.w,n=a,l=new m(this.ctx),h=new y(this.ctx),c=new O(this.ctx),d=new N(this.ctx),g=new w(this.ctx),u=d.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:n,dataPointIndex:s,radius:"bubble"===o.config.chart.type||o.globals.comboCharts&&o.config.series[a]&&"bubble"===o.config.series[a].type?i:null}),f=c.fillPath({seriesNumber:a,dataPointIndex:s,color:u.pointFillColor,patternUnits:"objectBoundingBox",value:o.globals.series[a][r]}),p=g.drawMarker(t,e,u);if(o.config.series[n].data[s]&&o.config.series[n].data[s].fillColor&&(f=o.config.series[n].data[s].fillColor),p.attr({fill:f}),o.config.chart.dropShadow.enabled){var x=o.config.chart.dropShadow;h.dropShadow(p,x,a)}if(!this.initialAnim||o.globals.dataChanged||o.globals.resized)o.globals.animationEnded=!0;else{var b=o.config.chart.animations.speed;l.animateMarker(p,b,o.globals.easing,(function(){window.setTimeout((function(){l.animationCompleted(p)}),100)}))}return p.attr({rel:s,j:s,index:a,"default-marker-size":u.pSize}),h.setSelectionFilter(p,a,s),d.addEvents(p),p.node.classList.add("apexcharts-marker"),p}},{key:"centerTextInBubble",value:function(t){var e=this.w;return{y:t+=parseInt(e.config.dataLabels.style.fontSize,10)/4}}}]),t}(),B=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"dataLabelsCorrection",value:function(t,e,i,a,s,r,o){var n=this.w,l=!1,h=new w(this.ctx).getTextRects(i,o),c=h.width,d=h.height;e<0&&(e=0),e>n.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var f=n.globals.dataLabelsRects[a][u];(t>f.x+f.width||e>f.y+f.height||e+de.globals.gridWidth+b.textRects.width+30)&&(n="");var v=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(v=e.globals.dataLabels.style.colors[o]),"function"==typeof v&&(v=v({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(v=g);var m=d.offsetX,k=d.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(m=0,k=0),e.globals.isSlopeChart&&(0!==o&&(m=-2*d.offsetX+5),0!==o&&o!==e.config.series[r].data.length-1&&(m=0)),b.drawnextLabel){if((x=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+m,y:s+k,foreColor:v,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"})).attr({class:p||"apexcharts-datalabel",cx:a,cy:s}),d.dropShadow.enabled){var A=d.dropShadow;new y(this.ctx).dropShadow(x,A)}c.add(x),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}return x}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new w(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,"transparent"!==i.config.chart.background&&i.config.chart.background?i.config.chart.background:"#fff",a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new y(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;i0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=v.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:"highlightSeries",value:function(t){var e=this.w,i=this.getSeriesByName(t),a=parseInt(i.getAttribute("data:realIndex"),10),s=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis"),r=null,o=null,n=null;if(e.globals.axisCharts||"radialBar"===e.config.chart.type)if(e.globals.axisCharts){r=e.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(a,"']")),o=e.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(a,"']"));var l=e.globals.seriesYAxisReverseMap[a];n=e.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(l,"']"))}else r=e.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(a+1,"']"));else r=e.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(a+1,"'] path"));for(var h=0;h=t.from&&(r0&&void 0!==arguments[0]?arguments[0]:"asc",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(t,a){return t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(a)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[a].type)>-1)?a:-1})),r="asc"===t?0:s.length-1;"asc"===t?r=0;"asc"===t?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getBarSeriesIndices",value:function(){return this.w.globals.comboCharts?this.w.config.series.map((function(t,e){return"bar"===t.type||"column"===t.type?e:-1})).filter((function(t){return-1!==t})):this.w.config.series.map((function(t,e){return e}))}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),V=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new k(this.ctx)}return s(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new G(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new G(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,r=0;r=5?this.twoDSeries.push(v.parseNumber(t[e].data[r][4])):this.twoDSeries.push(v.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new C(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar="rangeBar"===a.chart.type&&s.isBarHorizontal,s.hasXaxisGroups="category"===a.xaxis.type&&a.xaxis.group.groups.length>0,s.hasXaxisGroups&&(s.groups=a.xaxis.group.groups),t.forEach((function(t,e){void 0!==t.name?s.seriesNames.push(t.name):s.seriesNames.push("series-"+parseInt(e+1,10))})),this.coreUtils.setSeriesYAxisMappings();var n=[],l=f(new Set(a.series.map((function(t){return t.group}))));a.series.forEach((function(t,e){var i=l.indexOf(t.group);n[i]||(n[i]=[]),n[i].push(s.seriesNames[e])})),s.seriesGroups=n;for(var h=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var d=t[c].data.map((function(t){return v.parseNumber(t)}));s.series.push(d)}s.seriesZ.push(this.threeDSeries),void 0!==t[c].color?s.seriesColors.push(t[c].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),e.xaxis.convertedCatToNumeric)new F(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o0&&s==i.length&&e.push(a)})),t.globals.ignoreYAxisIndexes=e.map((function(t){return t}))}}]),t}(),j=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"scaleSvgNode",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,"width")),a=parseFloat(t.getAttributeNS(null,"height"));t.setAttributeNS(null,"width",i*e),t.setAttributeNS(null,"height",a*e),t.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"getSvgString",value:function(){var t=this;return new Promise((function(e){var i=t.w,a=i.config.chart.toolbar.export.width,s=i.config.chart.toolbar.export.scale||a/i.globals.svgWidth;s||(s=1);var r=t.w.globals.dom.Paper.svg(),o=t.w.globals.dom.Paper.node.cloneNode(!0);1!==s&&t.scaleSvgNode(o,s),t.convertImagesToBase64(o).then((function(){r=(new XMLSerializer).serializeToString(o),e(r.replace(/ /g," "))}))}))}},{key:"convertImagesToBase64",value:function(t){var e=this,i=t.getElementsByTagName("image"),a=Array.from(i).map((function(t){var i=t.getAttributeNS("http://www.w3.org/1999/xlink","href");return i&&!i.startsWith("data:")?e.getBase64FromUrl(i).then((function(e){t.setAttributeNS("http://www.w3.org/1999/xlink","href",e)})).catch((function(t){console.error("Error converting image to base64:",t)})):Promise.resolve()}));return Promise.all(a)}},{key:"getBase64FromUrl",value:function(t){return new Promise((function(e,i){var a=new Image;a.crossOrigin="Anonymous",a.onload=function(){var t=document.createElement("canvas");t.width=a.width,t.height=a.height,t.getContext("2d").drawImage(a,0,0),e(t.toDataURL())},a.onerror=i,a.src=t}))}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){var t=this;return new Promise((function(e){t.cleanup(),t.getSvgString().then((function(t){var i=new Blob([t],{type:"image/svg+xml;charset=utf-8"});e(URL.createObjectURL(i))}))}))}},{key:"dataURI",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o="transparent"!==a.config.chart.background&&a.config.chart.background?a.config.chart.background:"#fff",n=r.getContext("2d");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s),e.getSvgString().then((function(t){var e="data:image/svg+xml,"+encodeURIComponent(t),a=new Image;a.crossOrigin="anonymous",a.onload=function(){if(n.drawImage(a,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL("image/png");i({imgURI:e})}},a.src=e}))}))}},{key:"exportToSVG",value:function(){var t=this;this.svgUrl().then((function(e){t.triggerDownload(e,t.w.config.chart.toolbar.export.svg.filename,".svg")}))}},{key:"exportToPng",value:function(){var t=this,e=this.w.config.chart.toolbar.export.scale,i=this.w.config.chart.toolbar.export.width,a=e?{scale:e}:i?{width:i}:void 0;this.dataURI(a).then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.fileName,s=t.columnDelimiter,r=void 0===s?",":s,o=t.lineDelimiter,n=void 0===o?"\n":o,l=this.w;i||(i=l.config.series);var h,c,d=[],g=[],u="",p=l.globals.series.map((function(t,e){return-1===l.globals.collapsedSeriesIndices.indexOf(e)?t:[]})),x=function(t){return"function"==typeof l.config.chart.toolbar.export.csv.categoryFormatter?l.config.chart.toolbar.export.csv.categoryFormatter(t):"datetime"===l.config.xaxis.type&&String(t).length>=10?new Date(t).toDateString():v.isNumber(t)?t:t.split(r).join("")},b=function(t){return"function"==typeof l.config.chart.toolbar.export.csv.valueFormatter?l.config.chart.toolbar.export.csv.valueFormatter(t):t},m=Math.max.apply(Math,f(i.map((function(t){return t.data?t.data.length:0})))),y=new V(this.ctx),w=new P(this.ctx),k=function(t){var i="";if(l.globals.axisCharts){if("category"===l.config.xaxis.type||l.config.xaxis.convertedCatToNumeric)if(l.globals.isBarHorizontal){var a=l.globals.yLabelFormatters[0],s=new G(e.ctx).getActiveConfigSeriesIndex();i=a(l.globals.labels[t],{seriesIndex:s,dataPointIndex:t,w:l})}else i=w.getLabel(l.globals.labels,l.globals.timescaleLabels,0,t).text;"datetime"===l.config.xaxis.type&&(l.config.xaxis.categories.length?i=l.config.xaxis.categories[t]:l.config.labels.length&&(i=l.config.labels[t]))}else i=l.config.labels[t];return null===i?"nullvalue":(Array.isArray(i)&&(i=i.join(" ")),v.isNumber(i)?i:i.split(r).join(""))},A=function(t,e){if(d.length&&0===e&&g.push(d.join(r)),t.data){t.data=t.data.length&&t.data||f(Array(m)).map((function(){return""}));for(var a=0;a0&&!s.globals.isBarHorizontal&&(this.xaxisLabels=s.globals.timescaleLabels.slice()),s.config.xaxis.overwriteCategories&&(this.xaxisLabels=s.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===s.config.xaxis.position?this.offY=0:this.offY=s.globals.gridHeight,this.offY=this.offY+s.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.xaxisBorderWidth=s.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=s.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=s.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=s.config.xaxis.axisBorder.height,this.yaxis=s.config.yaxis[0]}return s(t,[{key:"drawXaxis",value:function(){var t=this.w,e=new w(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,f=l.xaxisForeColors||this.xaxisForeColors,p=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(0===m&&v>m&&(m=v),s){var y=m>1?m-1:m;o=d.globals.gridWidth/Math.min(y,v-1),b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),d.config.xaxis.title.text&&"top"===d.config.xaxis.position&&(w+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:p,fontSize:g,fontFamily:u,foreColor:Array.isArray(f)?t&&d.config.xaxis.convertedCatToNumeric?f[d.globals.minX+s-1]:f[s]:f,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),k.on("click",(function(t){if("function"==typeof d.config.chart.events.xAxisLabelClick){var e=Object.assign({},d,{labelIndex:s});d.config.chart.events.xAxisLabelClick(t,n.ctx,e)}})),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new w(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=a.globals.timescaleLabels.slice())}return s(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new w(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new w(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2-2,e.gridWidth+a+n+o+4,e.gridHeight+a+4,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({i:e,x1:i,y1:a,x2:s,y2:r,xCount:o,parent:n});var h=0;if(l.globals.hasXaxisGroups&&"between"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d0&&"datetime"!==t.config.xaxis.type&&(s=e.yAxisScale[a].result.length-1);this._drawXYLines({xCount:s,tickAmount:r})}else s=r,r=e.xTickAmount,this._drawInvertedXYLines({xCount:s,tickAmount:r});return this.drawGridBands(s,r),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:e.gridWidth/s}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0){var l=i.globals.isBarHorizontal||"on"!==i.config.xaxis.tickPlacement||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1;i.globals.isXNumeric&&(l=i.globals.xAxisScale.result.length-1);for(var h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),"datetime"===i.config.xaxis.type)h=this.xaxisLabels[g].position,c=((null===(f=this.xaxisLabels[g+1])||void 0===f?void 0:f.position)||i.globals.gridWidth)-this.xaxisLabels[g].position;this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}}}]),t}(),q=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"niceScale",value:function(t,e){var i,a,s,r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=1e-11,l=this.w,h=l.globals;h.isBarHorizontal?(i=l.config.xaxis,a=Math.max((h.svgWidth-100)/25,2)):(i=l.config.yaxis[o],a=Math.max((h.svgHeight-100)/15,2)),v.isNumber(a)||(a=10),s=void 0!==i.min&&null!==i.min,r=void 0!==i.max&&null!==i.min;var c=void 0!==i.stepSize&&null!==i.stepSize,d=void 0!==i.tickAmount&&null!==i.tickAmount,g=d?i.tickAmount:h.niceScaleDefaultTicks[Math.min(Math.round(a/2),h.niceScaleDefaultTicks.length-1)];if(h.isMultipleYAxis&&!d&&h.multiAxisTickAmount>0&&(g=h.multiAxisTickAmount,d=!0),g="dataPoints"===g?h.dataPoints-1:Math.abs(Math.round(g)),(t===Number.MIN_VALUE&&0===e||!v.isNumber(t)&&!v.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)&&(t=v.isNumber(i.min)?i.min:0,e=v.isNumber(i.max)?i.max:t+g,h.allSeriesCollapsed=!1),t>e){console.warn("axis.min cannot be greater than axis.max: swapping min and max");var u=e;e=t,t=u}else t===e&&(t=0===t?0:t-1,e=0===e?2:e+1);var f=[];g<1&&(g=1);var p=g,x=Math.abs(e-t);!s&&t>0&&t/x<.15&&(t=0,s=!0),!r&&e<0&&-e/x<.15&&(e=0,r=!0);var b=(x=Math.abs(e-t))/p,m=b,y=Math.floor(Math.log10(m)),w=Math.pow(10,y),k=Math.ceil(m/w);if(b=m=(k=h.niceScaleAllowedMagMsd[0===h.yValueDecimal?0:1][k])*w,h.isBarHorizontal&&i.stepSize&&"datetime"!==i.type?(b=i.stepSize,c=!0):c&&(b=i.stepSize),c&&i.forceNiceScale){var A=Math.floor(Math.log10(b));b*=Math.pow(10,y-A)}if(s&&r){var S=x/p;if(d)if(c)if(0!=v.mod(x,b)){var C=v.getGCD(b,S);b=S/C<10?C:S}else 0==v.mod(b,S)?b=S:(S=b,d=!1);else b=S;else if(c)0==v.mod(x,b)?S=b:b=S;else if(0==v.mod(x,b))S=b;else{S=x/(p=Math.ceil(x/b));var L=v.getGCD(x,b);x/La&&(t=e-b*g,t+=b*Math.floor((P-t)/b))}else if(s)if(d)e=t+b*p;else{var M=e;e=b*Math.ceil(e/b),Math.abs(e-t)/v.getGCD(x,b)>a&&(e=t+b*g,e+=b*Math.ceil((M-e)/b))}}else if(h.isMultipleYAxis&&d){var I=b*Math.floor(t/b),T=I+b*p;T0&&t16&&v.getPrimeFactors(p).length<2&&p++,!d&&i.forceNiceScale&&0===h.yValueDecimal&&p>x&&(p=x,b=Math.round(x/p)),p>a&&(!d&&!c||i.forceNiceScale)){var z=v.getPrimeFactors(p),X=z.length-1,E=p;t:for(var Y=0;YW);return{result:f,niceMin:f[0],niceMax:f[f.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,r=Math.abs(e-t),o=[];if(t===e)return{result:o=[t],niceMin:o[0],niceMax:o[o.length-1]};"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,r))&&(i=this.w.globals.dataPoints-1),s||(s=r/i),s=Math.round(10*(s+Number.EPSILON))/10,i===Number.MAX_VALUE&&(i=5,s=1);for(var n=t;i>=0;)o.push(n),n=v.preciseAddition(n,s),i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"logarithmicScaleNice",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5?(a.allSeriesCollapsed=!1,a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase)):i!==-Number.MAX_VALUE&&v.isNumber(i)&&e!==Number.MAX_VALUE&&v.isNumber(e)?(a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.niceScale(e,i,t)):a.yAxisScale[t]=this.niceScale(Number.MIN_VALUE,0,t)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=Math.abs(e-t);if(e!==-Number.MAX_VALUE&&v.isNumber(e)){var r=a.xTickAmount+1;s<10&&s>1&&(r=s),a.xAxisScale=this.linearScale(t,e,r,0,i.config.xaxis.stepSize)}else a.xAxisScale=this.linearScale(0,10,10);return a.xAxisScale}},{key:"setSeriesYAxisMappings",value:function(){var t=this.w.globals,e=this.w.config,i=[],a=[],s=[],r=t.series.length>e.yaxis.length||e.yaxis.some((function(t){return Array.isArray(t.seriesName)}));e.series.forEach((function(t,e){s.push(e),a.push(null)})),e.yaxis.forEach((function(t,e){i[e]=[]}));var o=[];e.yaxis.forEach((function(t,a){var n=!1;if(t.seriesName){var l=[];Array.isArray(t.seriesName)?l=t.seriesName:l.push(t.seriesName),l.forEach((function(t){e.series.forEach((function(e,o){if(e.name===t){var l=o;a===o||r?!r||s.indexOf(o)>-1?i[a].push([a,o]):console.warn("Series '"+e.name+"' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes."):(i[o].push([o,a]),l=a),n=!0,-1!==(l=s.indexOf(l))&&s.splice(l,1)}}))}))}n||o.push(a)})),i=i.map((function(t,e){var i=[];return t.forEach((function(t){a[t[1]]=t[0],i.push(t[1])})),i}));for(var n=e.yaxis.length-1,l=0;l0?function(){var l,h,c=Number.MAX_VALUE,d=-Number.MAX_VALUE,g=c,u=d;if(e.chart.stacked)!function(){var t=i.seriesX[a[0]],s=[],r=[],f=[];n.forEach((function(){s.push(t.map((function(){return Number.MIN_VALUE}))),r.push(t.map((function(){return Number.MIN_VALUE}))),f.push(t.map((function(){return Number.MIN_VALUE})))}));for(var p=function(t){!l&&e.series[a[t]].type&&(l=e.series[a[t]].type);var c=a[t];h=e.series[c].group?e.series[c].group:"axis-".concat(o),!(i.collapsedSeriesIndices.indexOf(c)<0&&i.ancillaryCollapsedSeriesIndices.indexOf(c)<0)||(i.allSeriesCollapsed=!1,n.forEach((function(t,a){if(e.series[c].group===t)for(var o=0;o=0?r[a][o]+=n:f[a][o]+=n,s[a][o]+=n,g=Math.min(g,n),u=Math.max(u,n)}}))),"bar"!==l&&"column"!==l||i.barGroups.push(h)},x=0;x1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);var d=!1;if(r.seriesX.length>=a){var g,u=null===(g=r.brushSource)||void 0===g?void 0:g.w.config.chart.brush;(s.chart.zoom.enabled&&s.chart.zoom.autoScaleYaxis||null!=u&&u.enabled&&null!=u&&u.autoScaleYaxis)&&(d=!0)}for(var f=t;fx&&r.seriesX[f][b]>s.xaxis.max;b--);}for(var m=x;m<=b&&mh[f][m]&&h[f][m]<0&&(n=h[f][m])}else r.hasNullValues=!0}"bar"!==p&&"column"!==p||(n<0&&o<0&&(o=0,i=Math.max(i,0)),n===Number.MIN_VALUE&&(n=0,e=Math.min(e,0)))}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),"bar"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i,a=Number.MAX_VALUE;if(t.isMultipleYAxis){a=Number.MAX_VALUE;for(var s=0;st.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1);else if("dataPoints"===e.xaxis.tickAmount){if(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric){var s=t.maxX-t.minX;s<30&&(a=s-1)}}else a=e.xaxis.tickAmount;if(t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var r=[],o=t.minX-1;o0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1,0,e.xaxis.stepSize),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this,e=this.w.globals;if(e.series.length){var i=e.seriesGroups;i.length||(i=[this.w.globals.seriesNames.map((function(t){return t}))]);var a={},s={};i.forEach((function(i){a[i]=[],s[i]=[],t.w.config.series.map((function(t,a){return i.indexOf(e.seriesNames[a])>-1?a:null})).filter((function(t){return null!==t})).forEach((function(r){for(var o=0;o0?a[i][o]+=parseFloat(e.series[r][o])+1e-4:s[i][o]+=parseFloat(e.series[r][o]))}}))})),Object.entries(a).forEach((function(t){var i=u(t,1)[0];a[i].forEach((function(t,r){e.maxY=Math.max(e.maxY,a[i][r]),e.minY=Math.min(e.minY,s[i][r])}))}))}}}]),t}(),$=function(){function t(e,a){i(this,t),this.ctx=e,this.elgrid=a,this.w=e.w;var s=this.w;this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.axisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal="bar"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xAxisoffX=0,"bottom"===s.config.xaxis.position&&(this.xAxisoffX=s.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new P(e)}return s(t,[{key:"drawYaxis",value:function(t){var e=this,i=this.w,a=new w(this.ctx),s=i.config.yaxis[t].labels.style,r=s.fontSize,o=s.fontFamily,n=s.fontWeight,l=a.group({class:"apexcharts-yaxis",rel:t,transform:"translate("+i.globals.translateYAxisX[t]+", 0)"});if(this.axesUtils.isYAxisHidden(t))return l;var h=a.group({class:"apexcharts-yaxis-texts-g"});l.add(h);var c=i.globals.yAxisScale[t].result.length-1,d=i.globals.gridHeight/c,g=i.globals.yLabelFormatters[t],u=i.globals.yAxisScale[t].result.slice();u=this.axesUtils.checkForReversedLabels(t,u);var f="";if(i.config.yaxis[t].labels.show){var p=i.globals.translateY+i.config.yaxis[t].labels.offsetY;i.globals.isBarHorizontal?p=0:"heatmap"===i.config.chart.type&&(p-=d/2),p+=parseInt(i.config.yaxis[t].labels.style.fontSize,10)/3;for(var x=function(l){var x=u[l];x=g(x,l,i);var b=i.config.yaxis[t].labels.padding;i.config.yaxis[t].opposite&&0!==i.config.yaxis.length&&(b*=-1);var m="end";i.config.yaxis[t].opposite&&(m="start"),"left"===i.config.yaxis[t].labels.align?m="start":"center"===i.config.yaxis[t].labels.align?m="middle":"right"===i.config.yaxis[t].labels.align&&(m="end");var y=e.axesUtils.getYAxisForeColor(s.colors,t),w=v.listToArray(i.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-label tspan"))).map((function(t){return t.textContent})),k=a.drawText({x:b,y:p,text:w.indexOf(x)>=0?"":x,textAnchor:m,fontSize:r,fontFamily:o,fontWeight:n,maxWidth:i.config.yaxis[t].labels.maxWidth,foreColor:Array.isArray(y)?y[l]:y,isPlainText:!1,cssClass:"apexcharts-yaxis-label "+s.cssClass});l===c&&(f=k),h.add(k);var A=document.createElementNS(i.globals.SVGNS,"title");if(A.textContent=Array.isArray(x)?x.join(" "):x,k.node.appendChild(A),0!==i.config.yaxis[t].labels.rotate){var S=a.rotateAroundCenter(f.node),C=a.rotateAroundCenter(k.node);k.node.setAttribute("transform","rotate(".concat(i.config.yaxis[t].labels.rotate," ").concat(S.x," ").concat(C.y,")"))}p+=d},b=c;b>=0;b--)x(b)}if(void 0!==i.config.yaxis[t].title.text){var m=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var k=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});m.add(k),l.add(m)}var A=i.config.yaxis[t].axisBorder,S=31+A.offsetX;if(i.config.yaxis[t].opposite&&(S=-31-A.offsetX),A.show){var C=a.drawLine(S,i.globals.translateY+A.offsetY-2,S,i.globals.gridHeight+i.globals.translateY+A.offsetY+2,A.color,0,A.width);l.add(C)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(S,c,A,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new w(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var f=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var p=this.axesUtils.getLabel(h,c,f,g,this.drawnLabels,this.xaxisFontSize);f=p.x,u=p.text,this.drawnLabels.push(p.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,"title");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new w(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(r):t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new w(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new w(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute("x",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=v.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&!a.floating&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=v.listToArray(r);var o=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}]),t}(),J=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.documentEvent=v.bind(this.documentEvent,this)}return s(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=v.extend(T,i);this.w.globals.locale=a.options}}]),t}(),K=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this,r=this.w.globals,o=this.w.config,n=new _(this.ctx,e),l=new $(this.ctx,e);r.axisCharts&&"radar"!==t&&(r.isBarHorizontal?(a=l.drawYaxisInversed(0),i=n.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=n.drawXaxis(),r.dom.elGraphical.add(i),o.yaxis.map((function(t,e){if(-1===r.ignoreYAxisIndexes.indexOf(e)&&(a=l.drawYaxis(e),r.dom.Paper.add(a),"back"===s.w.config.grid.position)){var i=r.dom.Paper.children()[1];i.remove(),r.dom.Paper.add(i)}}))))}}]),t}(),tt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new w(this.ctx),i=new y(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,f=s.blur,p=s.color,x=s.opacity,b=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(b=e.drawGradient("vertical",o,n,l,h,null,c,null));var m=e.drawRect();1===t.config.xaxis.crosshairs.width&&(m=e.drawLine());var k=t.globals.gridHeight;(!v.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!v.isNumber(A)||A<0)&&(A=0),m.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:A,height:k,fill:b,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(m=i.dropShadow(m,{left:g,top:u,blur:f,color:p,opacity:x})),t.globals.dom.elGraphical.add(m)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new w(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),et=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new R({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=v.clone(i.globals.initialConfig);n.series=v.clone(i.config.series);var l=k.extendArrayProps(r,n,i);t=v.extend(l,t),t=v.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var h=0;h0&&"function"==typeof i.config.colors[0]&&(i.globals.colors=i.config.series.map((function(t,a){var s=i.config.colors[a];return s||(s=i.config.colors[0]),"function"==typeof s?(e.isColorFn=!0,s({value:i.globals.axisCharts?i.globals.series[a][0]?i.globals.series[a][0]:0:i.globals.series[a],seriesIndex:a,dataPointIndex:a,w:i})):s})))),i.globals.seriesColors.map((function(t,e){t&&(i.globals.colors[e]=t)})),i.config.theme.monochrome.enabled){var s=[],r=i.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(r=i.globals.series[0].length*i.globals.series.length);for(var o=i.config.theme.monochrome.color,n=1/(r/i.config.theme.monochrome.shadeIntensity),l=i.config.theme.monochrome.shadeTo,h=0,c=0;c2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getDatalabelsRect",value:function(){var t=this,e=this.w,i=[];e.config.series.forEach((function(s,r){s.data.forEach((function(s,o){var n;n=e.globals.series[r][o],a=e.config.dataLabels.formatter(n,{ctx:t.dCtx.ctx,seriesIndex:r,dataPointIndex:o,w:e}),i.push(a)}))}));var a=v.getLargestStringFromArr(i),s=new w(this.dCtx.ctx),r=e.config.dataLabels.style,o=s.getTextRects(a,parseInt(r.fontSize),r.fontFamily);return{width:1.05*o.width,height:o.height}}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,f(a));i=e[a.indexOf(s)]}return i}}]),t}(),rt=function(){function t(e){i(this,t),this.w=e.w,this.dCtx=e}return s(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=v.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new L(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new C(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new C(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(o=r="1");var h=new w(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasXaxisGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=v.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new w(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new w(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new w(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){s.yaxis.length>1&&function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)}(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c="right"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.right(null===(a=String(c(e,n)))||void 0===a?void 0:a.length)?t:e}),d),u=g=c(g,n);if(void 0!==g&&0!==g.length||(g=l.niceMax),e.globals.isBarHorizontal){a=0;var f=e.globals.labels.slice();g=v.getLargestStringFromArr(f),g=c(g,{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,f)}var p=new w(t.dCtx.ctx),x="rotate(".concat(r.labels.rotate," 0 0)"),b=p.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,x,!1),m=b;g!==u&&(m=p.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,x,!1)),i.push({width:(h>m.width||h>b.width?h:m.width>b.width?m.width:b.width)+a,height:m.height>b.height?m.height:b.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new w(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new P(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),nt=function(){function t(e){i(this,t),this.w=e.w,this.dCtx=e}return s(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w,i=e.config,a=e.globals;if(a.noData||a.collapsedSeries.length+a.ancillaryCollapsedSeries.length===i.series.length)return 0;var s=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},r=i.chart.type,o=0,n=s(r)?i.series.length:1;a.comboBarCount>0&&(n=a.comboBarCount),a.collapsedSeries.forEach((function(t){s(t.type)&&(n-=1)})),i.chart.stacked&&(n=1);var l=s(r)||a.comboBarCount>0,h=Math.abs(a.initialMaxX-a.initialMinX);if(l&&a.isXNumeric&&!a.isBarHorizontal&&n>0&&0!==h){var c,d;h<=3&&(h=a.dataPoints),c=h/t,a.minXDiff&&a.minXDiff/c>0&&(d=a.minXDiff/c),d>t/2&&(d/=2),(o=d*parseInt(i.plotOptions.bar.columnWidth,10)/100)<1&&(o=1),a.barPadForNumericAxis=o}return o}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new P(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),lt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new st(this),this.dimYAxis=new ot(this),this.dimXAxis=new rt(this),this.dimGrid=new nt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return s(t,[{key:"plotCoords",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.datalabelsCoords={width:0,height:0};var a=Array.isArray(e.config.stroke.width)?Math.max.apply(Math,f(e.config.stroke.width)):e.config.stroke.width;this.isSparkline&&((e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=u(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),this.gridPad.top=Math.max(a/2,this.gridPad.top),this.gridPad.bottom=Math.max(a/2,this.gridPad.bottom)),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var s=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*s,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(s>0?s:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();i.isSlopeChart&&(this.datalabelsCoords=this.dimHelpers.getDatalabelsRect()),e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||"treemap"===e.config.chart.type||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l+t.datalabelsCoords.width,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l-2*t.datalabelsCoords.width};switch("top"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=c,d();break;case"top":i.translateY=this.lgRect.height+c,d();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+l+this.datalabelsCoords.width,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-2*this.datalabelsCoords.width;break;case"right":i.translateY=c,i.translateX=l+this.datalabelsCoords.width,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-2*this.datalabelsCoords.width-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new $(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating){e.gridHeight=e.svgHeight-i.grid.padding.top-i.grid.padding.bottom;var n=e.dom.elWrap.getBoundingClientRect().width;return e.gridWidth=Math.min(n,e.gridHeight)-i.grid.padding.left-i.grid.padding.right,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2)}switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),ht=function(){function t(e){i(this,t),this.w=e.w,this.lgCtx=e}return s(t,[{key:"getLegendStyles",value:function(){var t,e,i,a=document.createElement("style");a.setAttribute("type","text/css");var s=(null===(t=this.lgCtx.ctx)||void 0===t||null===(e=t.opts)||void 0===e||null===(i=e.chart)||void 0===i?void 0:i.nonce)||this.w.config.chart.nonce;s&&a.setAttribute("nonce",s);var r=document.createTextNode("\n .apexcharts-legend {\n display: flex;\n overflow: auto;\n padding: 0 10px;\n }\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\n flex-wrap: wrap\n }\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n flex-direction: column;\n bottom: 0;\n }\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\n justify-content: flex-start;\n }\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\n justify-content: center;\n }\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\n justify-content: flex-end;\n }\n .apexcharts-legend-series {\n cursor: pointer;\n line-height: normal;\n display: flex;\n align-items: center;\n }\n .apexcharts-legend-text {\n position: relative;\n font-size: 14px;\n }\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\n pointer-events: none;\n }\n .apexcharts-legend-marker {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n margin-right: 1px;\n }\n\n .apexcharts-legend-series.apexcharts-no-click {\n cursor: auto;\n }\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\n display: none !important;\n }\n .apexcharts-inactive-legend {\n opacity: 0.45;\n }");return a.appendChild(r),a}},{key:"getLegendDimensions",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend"),e=t.offsetWidth;return{clwh:t.offsetHeight,clww:e}}},{key:"appendToForeignObject",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),n=a.config.chart.type;if("pie"===n||"polarArea"===n||"donut"===n){var l=a.config.plotOptions.pie.donut.labels;new w(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire("click")}}},{key:"getSeriesAfterCollapsing",value:function(t){var e=t.realIndex,i=this.w,a=i.globals,s=v.clone(i.config.series);if(a.axisCharts){var r=i.config.yaxis[a.seriesYAxisReverseMap[e]],o={index:e,data:s[e].data.slice(),type:s[e].type||i.config.chart.type};if(r&&r.show&&r.showAlways)a.ancillaryCollapsedSeriesIndices.indexOf(e)<0&&(a.ancillaryCollapsedSeries.push(o),a.ancillaryCollapsedSeriesIndices.push(e));else if(a.collapsedSeriesIndices.indexOf(e)<0){a.collapsedSeries.push(o),a.collapsedSeriesIndices.push(e);var n=a.risingSeries.indexOf(e);a.risingSeries.splice(n,1)}}else a.collapsedSeries.push({index:e,data:s[e]}),a.collapsedSeriesIndices.push(e);return a.allSeriesCollapsed=a.collapsedSeries.length+a.ancillaryCollapsedSeries.length===i.config.series.length,this._getSeriesBasedOnCollapsedState(s)}},{key:"hideSeries",value:function(t){for(var e=t.seriesEl,i=t.realIndex,a=this.w,s=this.getSeriesAfterCollapsing({realIndex:i}),r=e.childNodes,o=0;o0){for(var r=0;r1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"createLegendMarker",value:function(t){var e=t.i,i=t.fillcolor,a=this.w,s=document.createElement("span");s.classList.add("apexcharts-legend-marker");var r=a.config.legend.markers.shape||a.config.markers.shape,o=r;Array.isArray(r)&&(o=r[e]);var n=Array.isArray(a.config.legend.markers.size)?parseFloat(a.config.legend.markers.size[e]):parseFloat(a.config.legend.markers.size),l=Array.isArray(a.config.legend.markers.offsetX)?parseFloat(a.config.legend.markers.offsetX[e]):parseFloat(a.config.legend.markers.offsetX),h=Array.isArray(a.config.legend.markers.offsetY)?parseFloat(a.config.legend.markers.offsetY[e]):parseFloat(a.config.legend.markers.offsetY),c=Array.isArray(a.config.legend.markers.strokeWidth)?parseFloat(a.config.legend.markers.strokeWidth[e]):parseFloat(a.config.legend.markers.strokeWidth),g=s.style;if(g.height=2*(n+c)+"px",g.width=2*(n+c)+"px",g.left=l+"px",g.top=h+"px",a.config.legend.markers.customHTML)g.background="transparent",g.color=i[e],Array.isArray(a.config.legend.markers.customHTML)?a.config.legend.markers.customHTML[e]&&(s.innerHTML=a.config.legend.markers.customHTML[e]()):s.innerHTML=a.config.legend.markers.customHTML();else{var u=new N(this.ctx).getMarkerConfig({cssClass:"apexcharts-legend-marker apexcharts-marker apexcharts-marker-".concat(o),seriesIndex:e,strokeWidth:c,size:n}),f=SVG(s).size("100%","100%"),p=new w(this.ctx).drawMarker(0,0,d(d({},u),{},{pointFillColor:Array.isArray(i)?i[e]:u.pointFillColor,shape:o}));SVG.select(".apexcharts-legend-marker.apexcharts-marker").members.forEach((function(t){t.node.classList.contains("apexcharts-marker-triangle")?t.node.style.transform="translate(50%, 45%)":t.node.style.transform="translate(50%, 50%)"})),f.add(p)}return s}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.config.legend.markers.fillColors?e.config.legend.markers.fillColors.slice():e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h,c=o(a[l],{seriesIndex:l,w:e}),d=!1,g=!1;if(e.globals.collapsedSeries.length>0)for(var u=0;u0)for(var f=0;f0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=o+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.elLegendWrap.style.right=0;var e=this.legendHelpers.getLegendDimensions(),i=new lt(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendDimensions(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-series")||t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new G(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new G(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-series")||t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),dt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w;var a=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=a.globals.minX,this.maxX=a.globals.maxX}return s(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\n \n \n\n'),o("zoomOut",this.elZoomOut,'\n \n \n\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'\n \n \n \n':'\n \n \n',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};n("zoom"),n("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),o("reset",this.elZoomReset,'\n \n \n'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;lthis.wheelDelay&&(this.executeMouseWheelZoom(t),i.globals.lastWheelExecution=a),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout((function(){a-i.globals.lastWheelExecution>e.wheelDelay&&(e.executeMouseWheelZoom(t),i.globals.lastWheelExecution=a)}),this.debounceDelay)}},{key:"executeMouseWheelZoom",value:function(t){var e,i=this.w;this.minX=i.globals.isRangeBar?i.globals.minY:i.globals.minX,this.maxX=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;var a=null===(e=this.gridRect)||void 0===e?void 0:e.getBoundingClientRect();if(a){var s,r,o,n=(t.clientX-a.left)/a.width,l=this.minX,h=this.maxX,c=h-l;if(t.deltaY<0){var d=l+n*c;r=d-(s=.5*c)/2,o=d+s/2}else r=l-(s=1.5*c)/2,o=h+s/2;r=Math.max(r,i.globals.initialMinX),o=Math.min(o,i.globals.initialMaxX);var g=.01*(i.globals.initialMaxX-i.globals.initialMinX);if(o-r0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a=t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i;t.globals.isRangeBar&&(i=(t.config.chart.selection.xaxis.min-t.globals.yAxisScale[0].niceMin)/e.invertedYRatio,a=(t.config.chart.selection.xaxis.max-t.config.chart.selection.xaxis.min)/e.invertedYRatio);var s={x:i,y:0,width:a,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(s),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+o+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),w.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),w.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;"resizing"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n("x"),y:n("y"),width:n("width"),height:n("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t,e,o,n,l=i.gridRect.getBoundingClientRect(),h=r.node.getBoundingClientRect();a.globals.isRangeBar?(t=a.globals.yAxisScale[0].niceMin+(h.left-l.left)*s.invertedYRatio,e=a.globals.yAxisScale[0].niceMin+(h.right-l.left)*s.invertedYRatio,o=0,n=1):(t=a.globals.xAxisScale.niceMin+(h.left-l.left)*s.xRatio,e=a.globals.xAxisScale.niceMin+(h.right-l.left)*s.xRatio,o=a.globals.yAxisScale[0].niceMin+(l.bottom-h.bottom)*s.yRatio[0],n=a.globals.yAxisScale[0].niceMax-(h.top-l.top)*s.yRatio[0]);var c={xaxis:{min:t,max:e},yaxis:{min:o,max:n}};a.config.chart.events.selection(i.ctx,c),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,c)}),o))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){var i=a.globals.seriesYAxisMap[e][0];d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[i]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[i]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=v.clone(a.globals.initialConfig.yaxis),f=v.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(f={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),o){var p=o.getBeforeZoomRange(f,u);p&&(f=p.xaxis?p.xaxis:f,u=p.yaxis?p.yaxis:u)}var x={xaxis:f};a.config.chart.group||(x.yaxis=u),s.ctx.updateHelpers._updateOptions(x,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(f,u)}else if(a.globals.selectionEnabled){var b,m=null;b={min:h,max:c},"xy"!==i&&"y"!==i||(m=v.clone(a.config.yaxis)).forEach((function(t,e){m[e].min=g[e],m[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:b,yaxis:m})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=v.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={xaxis:{min:t,max:e}};i.config.chart.group||(l.yaxis=s),this.updateScrolledChart(l,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),a}(dt),ut=function(){function t(e){i(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return s(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var f=Math.round(g/h),p=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(f=Math.ceil(g/h),f-=1);var x=null,b=null,m=r.globals.seriesXvalues.map((function(t){return t.filter((function(t){return v.isNumber(t)}))})),y=r.globals.seriesYvalues.map((function(t){return t.filter((function(t){return v.isNumber(t)}))}));if(r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);x=(b=this.closestInMultiArray(k,A,m,y)).index,f=b.j,null!==x&&(m=r.globals.seriesXvalues[x],f=(b=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===x?-1:x,(!f||f<1)&&(f=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=p:r.globals.capturedDataPointIndex=f,{capturedSeries:x,j:r.globals.isBarHorizontal?p:f,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a<=h&&(h=a,n=i)}))})),-1!==n){var c=a[r][n],d=Math.abs(e-c);o=r,a.forEach((function(t,i){var a=Math.abs(e-t[n]);a<=d&&(d=a,o=i)}))}return{index:o,j:n}}},{key:"getFirstActiveXArray",value:function(t){for(var e=this.w,i=0,a=t.map((function(t,e){return t.length>0?e:-1})),s=0;s0)for(var a=0;a *")):this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *")}},{key:"getAllMarkers",value:function(){var t=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap");(t=f(t)).sort((function(t,e){var i=Number(t.getAttribute("data:realIndex")),a=Number(e.getAttribute("data:realIndex"));return ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(t){return this.getElMarkers(t).length>0}},{key:"getPathFromPoint",value:function(t,e){var i=Number(t.getAttribute("cx")),a=Number(t.getAttribute("cy")),s=t.getAttribute("shape");return new w(this.ctx).getMarkerPath(i,a,s,e)}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,""),e+="
".concat(i.val,"
")})),v.innerHTML=t+"",m.innerHTML=e+""};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==f&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==f?f:"");if(o&&p[0]){if(l.config.tooltip.hideEmptySeries){var w=a[e].querySelector(".apexcharts-tooltip-marker"),k=a[e].querySelector(".apexcharts-tooltip-text");0==parseFloat(c)?(w.style.display="none",k.style.display="none"):(w.style.display="block",k.style.display="block")}null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1||Array.isArray(h.tConfig.enabledOnSeries)&&-1===h.tConfig.enabledOnSeries.indexOf(e)?p[0].parentNode.style.display="none":p[0].parentNode.style.display=l.config.tooltip.items.display}else Array.isArray(h.tConfig.enabledOnSeries)&&-1===h.tConfig.enabledOnSeries.indexOf(e)&&(p[0].parentNode.style.display="none")}},{key:"toggleActiveInactiveSeries",value:function(t,e){var i=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var a=i.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group-".concat(e));a&&(a.classList.add("apexcharts-active"),a.style.display=i.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",o="",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new L(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new C(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(o)?o.join(" "):o,zVal:n}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),pt=function(){function t(e){i(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return s(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&w.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&w.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new w(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();(l=s.e.clientX-c.left)>a.globals.gridWidth/2&&(l-=s.tooltipRect.ttWidth),(h=s.e.clientY+a.globals.translateY-c.top)>a.globals.gridHeight/2&&(h-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY);isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0){var u=g.getAttribute("shape"),f=l.getMarkerPath(s,r,u,1.5*c);g.setAttribute("d",f)}this.moveXCrosshairs(s),n.fixedTooltip||this.moveTooltip(s,r,c)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray,n=new G(this.ctx),l=new w(this.ctx);e=n.getActiveConfigSeriesIndex("asc",["line","area","scatter","bubble"]);var h=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var c=i.tooltipUtil.getAllMarkers();if(null!==c)for(var d=0;d0){var b=l.getMarkerPath(s,u,p,h);c[d].setAttribute("d",b)}else c[d].setAttribute("d","")}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,h)}},{key:"moveStickyTooltipOverBars",value:function(t,e){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new G(this.ctx).getActiveConfigSeriesIndex("desc")+1);var o=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(r,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(t,"']"));o||"number"!=typeof e||(o=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(e,"'] path[j='").concat(t,"'],\n .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='").concat(e,"'] path[j='").concat(t,"'],\n .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='").concat(e,"'] path[j='").concat(t,"'],\n .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='").concat(e,"'] path[j='").concat(t,"']")));var n=o?parseFloat(o.getAttribute("cx")):0,l=o?parseFloat(o.getAttribute("cy")):0,h=o?parseFloat(o.getAttribute("barWidth")):0,c=a.getElGrid().getBoundingClientRect(),d=o&&(o.classList.contains("apexcharts-candlestick-area")||o.classList.contains("apexcharts-boxPlot-area"));i.globals.isXNumeric?(o&&!d&&(n-=s%2!=0?h/2:0),o&&d&&i.globals.comboCharts&&(n-=h/2)):i.globals.isBarHorizontal||(n=a.xAxisTicksPositions[t-1]+a.dataPointsDividedWidth/2,isNaN(n)&&(n=a.xAxisTicksPositions[t]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?l-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?l=a.e.clientY-c.top-a.tooltipRect.ttHeight/2:l+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(l=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(n),a.fixedTooltip||this.moveTooltip(n,l||i.globals.gridHeight)}}]),t}(),xt=function(){function t(e){i(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new pt(e)}return s(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new w(this.ctx),i=new N(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=f(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),o=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var n=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-n.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),o=e.config.markers.hover.size,n=0;n=0){var a=this.ttCtx.tooltipUtil.getPathFromPoint(t[e],i);t[e].setAttribute("d",a)}else t[e].setAttribute("d","M0,0")}}}]),t}(),bt=function(){function t(e){i(this,t),this.w=e.w;var a=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!a.globals.isBarHorizontal&&"rangeBar"===a.config.chart.type&&a.config.plotOptions.bar.rangeBarGroupRows}return s(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var f=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-f.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-f.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=v.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=g,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)&&(c=r.globals.svgHeight-o.tooltipRect.ttHeight);var u=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10);if(r.globals.isMultipleYAxis?r.config.yaxis[u]&&r.config.yaxis[u].reversed:r.config.yaxis[0].reversed,h+o.tooltipRect.ttWidth>r.globals.gridWidth?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var f=o.getElGrid().getBoundingClientRect();c=o.e.clientY-f.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(c=c+r.globals.translateY-o.tooltipRect.ttHeight/2,n.style.left=h+r.globals.translateX+"px",n.style.top=c+"px")}},{key:"getBarTooltipXY",value:function(t){var e=this,i=t.e,a=t.opt,s=this.w,r=null,o=this.ttCtx,n=0,l=0,h=0,c=0,d=0,g=i.target.classList;if(g.contains("apexcharts-bar-area")||g.contains("apexcharts-candlestick-area")||g.contains("apexcharts-boxPlot-area")||g.contains("apexcharts-rangebar-area")){var u=i.target,f=u.getBoundingClientRect(),p=a.elGrid.getBoundingClientRect(),x=f.height;d=f.height;var b=f.width,v=parseInt(u.getAttribute("cx"),10),m=parseInt(u.getAttribute("cy"),10);c=parseFloat(u.getAttribute("barWidth"));var y="touchmove"===i.type?i.touches[0].clientX:i.clientX;r=parseInt(u.getAttribute("j"),10),n=parseInt(u.parentNode.getAttribute("rel"),10)-1;var w=u.getAttribute("data-range-y1"),k=u.getAttribute("data-range-y2");s.globals.comboCharts&&(n=parseInt(u.parentNode.getAttribute("data:realIndex"),10));var A=function(t){return s.globals.isXNumeric?v-b/2:e.isVerticalGroupedRangeBar?v+b/2:v-o.dataPointsDividedWidth+b/2},S=function(){return m-o.dataPointsDividedHeight+x/2-o.tooltipRect.ttHeight/2};o.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:n,j:r,y1:w?parseInt(w,10):null,y2:k?parseInt(k,10):null,shared:!o.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(l=y-p.left+15,h=S()):(l=A(),h=i.clientY-p.top-o.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((l=v)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals,o=r.seriesYAxisMap[t];if(a.yaxisTooltips[t]&&o.length>0){var n=r.yLabelFormatters[t],l=a.getElGrid().getBoundingClientRect(),h=o[0],c=0;i.yRatio.length>1&&(c=h);var d=(e-l.top)*i.yRatio[c],g=r.maxYArr[h]-r.minYArr[h],u=r.minYArr[h]+(g-d);s.config.yaxis[t].reversed&&(u=r.maxYArr[h]-(g-d)),a.tooltipPosition.moveYCrosshairs(e-l.top),a.yaxisTooltipText[t].innerHTML=n(u),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),mt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w;var a=this.w;this.tConfig=a.config.tooltip,this.tooltipUtil=new ut(this),this.tooltipLabels=new ft(this),this.tooltipPosition=new pt(this),this.marker=new xt(this),this.intersect=new bt(this),this.axesTooltip=new vt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!a.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return s(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new _(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement("div");o.classList.add("apexcharts-tooltip-series-group","apexcharts-tooltip-series-group-".concat(r)),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1;var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement("div");l.classList.add("apexcharts-tooltip-text"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,["y","goals","z"].forEach((function(t){var e=document.createElement("div");e.classList.add("apexcharts-tooltip-".concat(t,"-group"));var i=document.createElement("span");i.classList.add("apexcharts-tooltip-text-".concat(t,"-label")),e.appendChild(i);var a=document.createElement("span");a.classList.add("apexcharts-tooltip-text-".concat(t,"-value")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf("bottom")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=o+"px",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip(e);if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new G(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=[];r.config.chart.group&&(g=this.ctx.getSyncedCharts());var u=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var f=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&f.length&&this.ycrosshairs.classList.add("apexcharts-active"),u&&!this.showOnIntersect||g.length>1)this.handleStickyTooltip(a,n,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var p=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=p.x,i=p.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var x=0;xl.width)this.handleMouseOut(a);else if(null!==n)this.handleStickyCapturedSeries(t,n,a,o);else if(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal){var h=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,h,o,a.ttItems)}}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);if(void 0!==s.globals.series[e][a])this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,r,a,i.ttItems)}}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new w(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,S=this.w,C=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===A&&(A=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(i),P=this.tooltipUtil.getElBars();if(S.config.legend.tooltipHoverFormatter){var M=S.config.legend.tooltipHoverFormatter,I=Array.from(this.legendLabels);I.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var T=0;T0?C.marker.enlargePoints(a):C.tooltipPosition.moveDynamicPointsOnHover(a);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(P),this.barSeriesHeight>0)){var R=new w(this.ctx),D=S.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a,i);for(var H=0;H0&&e.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(g-=h*A)),k){g=g+d.height/2-b/2-2}var C=e.globals.series[i][a]<0,L=n;switch(this.barCtx.isReversed&&(L=n+(C?c:-c)),p.position){case"center":u=k?C?L-c/2+m:L+c/2-m:C?L-c/2+d.height/2+m:L+c/2+d.height/2-m;break;case"bottom":u=k?C?L-c+m:L+c-m:C?L-c+d.height+b+m:L+c-d.height/2+b-m;break;case"top":u=k?C?L+m:L-m:C?L-d.height/2-m:L+d.height+m}if(this.barCtx.lastActiveBarSerieIndex===s&&x.enabled){var P=new w(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:s,j:a}),f.fontSize);r=C?L-P.height/2-m-x.offsetY+18:L+P.height+m+x.offsetY-18;var M=S;o=y+(e.globals.isXNumeric?-h*e.globals.barGroups.length/2:e.globals.barGroups.length*h/2-(e.globals.barGroups.length-1)*h-M)+x.offsetX}return e.config.chart.stacked||(u<0?u=0+b:u+d.height/3>e.globals.gridHeight&&(u=e.globals.gridHeight-b)),{bcx:l,bcy:n,dataLabelsX:g,dataLabelsY:u,totalDataLabelsX:o,totalDataLabelsY:r,totalDataLabelsAnchor:"middle"}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.realIndex,o=t.bcy,n=t.barHeight,l=t.barWidth,h=t.textRects,c=t.dataLabelsX,d=t.strokeWidth,g=t.dataLabelsConfig,u=t.barDataLabelsConfig,f=t.barTotalDataLabelsConfig,p=t.offX,x=t.offY,b=e.globals.gridHeight/e.globals.dataPoints;l=Math.abs(l);var v,m,y=o-(this.barCtx.isRangeBar?0:b)+n/2+h.height/2+x-3,k="start",A=e.globals.series[a][s]<0,S=i;switch(this.barCtx.isReversed&&(S=i+(A?-l:l),k=A?"start":"end"),u.position){case"center":c=A?S+l/2-p:Math.max(h.width/2,S-l/2)+p;break;case"bottom":c=A?S+l-d-p:S-l+d+p;break;case"top":c=A?S-d-p:S-d+p}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var C=new w(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),g.fontSize);A?(v=S-d-p-f.offsetX,k="end"):v=S+p+f.offsetX+(this.barCtx.isReversed?-(l+d):d),m=y-h.height/2+C.height/2+f.offsetY+d}return e.config.chart.stacked||("start"===g.textAnchor?c-h.width<0?c=A?h.width+d:d:c+h.width>e.globals.gridWidth&&(c=A?e.globals.gridWidth-d:e.globals.gridWidth-h.width-d):"middle"===g.textAnchor?c-h.width/2<0?c=h.width/2+d:c+h.width/2>e.globals.gridWidth&&(c=e.globals.gridWidth-h.width/2-d):"end"===g.textAnchor&&(c<1?c=h.width+d:c+1>e.globals.gridWidth&&(c=e.globals.gridWidth-h.width-d))),{bcx:i,bcy:o,dataLabelsX:c,dataLabelsY:y,totalDataLabelsX:v,totalDataLabelsY:m,totalDataLabelsAnchor:k}}},{key:"drawCalculatedDataLabels",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.i,r=t.j,o=t.textRects,n=t.barHeight,l=t.barWidth,h=t.dataLabelsConfig,c=this.w,g="rotate(0)";"vertical"===c.config.plotOptions.bar.dataLabels.orientation&&(g="rotate(-90, ".concat(e,", ").concat(i,")"));var u=new B(this.barCtx.ctx),f=new w(this.barCtx.ctx),p=h.formatter,x=null,b=c.globals.collapsedSeriesIndices.indexOf(s)>-1;if(h.enabled&&!b){x=f.group({class:"apexcharts-data-labels",transform:g});var v="";void 0!==a&&(v=p(a,d(d({},c),{},{seriesIndex:s,dataPointIndex:r,w:c}))),!a&&c.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(v="");var m=c.globals.series[s][r]<0,y=c.config.plotOptions.bar.dataLabels.position;if("vertical"===c.config.plotOptions.bar.dataLabels.orientation&&("top"===y&&(h.textAnchor=m?"end":"start"),"center"===y&&(h.textAnchor="middle"),"bottom"===y&&(h.textAnchor=m?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)lMath.abs(l)&&(v=""):o.height/1.6>Math.abs(n)&&(v=""));var k=d({},h);this.barCtx.isHorizontal&&a<0&&("start"===h.textAnchor?k.textAnchor="end":"end"===h.textAnchor&&(k.textAnchor="start")),u.plotDataLabelsText({x:e,y:i,text:v,i:s,j:r,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:"drawTotalDataLabels",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.realIndex,r=t.textAnchor,o=t.barTotalDataLabelsConfig;this.w;var n,l=new w(this.barCtx.ctx);return o.enabled&&void 0!==e&&void 0!==i&&this.barCtx.lastActiveBarSerieIndex===s&&(n=l.drawText({x:e,y:i,foreColor:o.style.color,text:a,textAnchor:r,fontFamily:o.style.fontFamily,fontSize:o.style.fontSize,fontWeight:o.style.fontWeight})),n}}]),t}(),wt=function(){function t(e){i(this,t),this.w=e.w,this.barCtx=e}return s(t,[{key:"initVariables",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}-1===String(this.barCtx.barOptions.columnWidth).indexOf("%")&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.translationsIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.translationsIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return l.globals.barHeight=s,l.globals.barWidth=r,{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:"initializeStackedPrevVars",value:function(t){t.w.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].prevY=[],t[e].prevX=[],t[e].prevYF=[],t[e].prevXF=[],t[e].prevYVal=[],t[e].prevXVal=[]}))}},{key:"initializeStackedXYVars",value:function(t){t.w.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].xArrj=[],t[e].xArrjF=[],t[e].xArrjVal=[],t[e].yArrj=[],t[e].yArrjF=[],t[e].yArrjVal=[]}))}},{key:"getPathFillColor",value:function(t,e,i,a){var s,r,o,n,l,h=this.w,c=this.barCtx.ctx.fill,d=null,g=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(d=a.color)}));return null!==(s=h.config.series[e].data[i])&&void 0!==s&&s.fillColor&&(d=h.config.series[e].data[i].fillColor),c.fillPath({seriesNumber:this.barCtx.barOptions.distributed?g:a,dataPointIndex:i,color:d,value:t[e][i],fillConfig:null===(r=h.config.series[e].data[i])||void 0===r?void 0:r.fill,fillType:null!==(o=h.config.series[e].data[i])&&void 0!==o&&null!==(n=o.fill)&&void 0!==n&&n.type?null===(l=h.config.series[e].data[i])||void 0===l?void 0:l.fill.type:Array.isArray(h.config.fill.type)?h.config.fill.type[a]:h.config.fill.type})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return void 0===this.barCtx.series[t][e]||null===this.barCtx.series[t][e]?this.barCtx.isNullValue=!0:this.barCtx.isNullValue=!1,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"shouldApplyRadius",value:function(t){var e=this.w,i=!1;return e.config.plotOptions.bar.borderRadius>0&&(e.config.chart.stacked&&"last"===e.config.plotOptions.bar.borderRadiusWhenStacked?this.barCtx.lastActiveBarSerieIndex===t&&(i=!0):i=!0),i}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new w(this.barCtx.ctx),c=new G(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e,i=t.barWidth,a=t.barXPosition,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new w(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,f=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.columnWidthOffset&&(f=a-d.config.series[l].data[c].columnWidthOffset/2,u=i+d.config.series[l].data[c].columnWidthOffset);var p=o/2,x=f+p,b=f+u-p;s+=.001-p,r+=.001+p;var v=g.move(x,s),m=g.move(x,s),y=g.line(b,s);if(d.globals.previousPaths.length>0&&(m=this.barCtx.getPreviousPath(l,c,!1)),v=v+g.line(x,r)+g.line(b,r)+g.line(b,s)+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),m=m+g.line(x,s)+y+y+y+y+y+g.line(x,s)+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),this.shouldApplyRadius(l)&&(v=g.roundPathCorners(v,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var k=this.barCtx;(k=this.barCtx[n]).yArrj.push(r-p),k.yArrjF.push(Math.abs(s-r+o)),k.yArrjVal.push(this.barCtx.series[h][c])}return{pathTo:v,pathFrom:m}}},{key:"getBarpaths",value:function(t){var e,i=t.barYPosition,a=t.barHeight,s=t.x1,r=t.x2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new w(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,f=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.barHeightOffset&&(u=i-d.config.series[l].data[c].barHeightOffset/2,f=a+d.config.series[l].data[c].barHeightOffset);var p=o/2,x=u+p,b=u+f-p;s+=.001-p,r+=.001+p;var v=g.move(s,x),m=g.move(s,x);d.globals.previousPaths.length>0&&(m=this.barCtx.getPreviousPath(l,c,!1));var y=g.line(s,b);if(v=v+g.line(r,x)+g.line(r,b)+y+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),m=m+g.line(s,x)+y+y+y+y+y+g.line(s,x)+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),this.shouldApplyRadius(l)&&(v=g.roundPathCorners(v,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var k=this.barCtx;(k=this.barCtx[n]).xArrj.push(r+p),k.xArrjF.push(Math.abs(s-r)),k.xArrjVal.push(this.barCtx.series[h][c])}return{pathTo:v,pathFrom:m}}},{key:"checkZeroSeries",value:function(t){for(var e=t.series,i=this.w,a=0;a2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),i}},{key:"getYForValue",value:function(t,e,i){var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3]?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[i]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[i]:0)),a}},{key:"getGoalValues",value:function(t,e,i,a,s,r){var n=this,l=this.w,h=[],c=function(a,s){var l;h.push((o(l={},t,"x"===t?n.getXForValue(a,e,!1):n.getYForValue(a,i,r,!1)),o(l,"attrs",s),l))};if(l.globals.seriesGoals[a]&&l.globals.seriesGoals[a][s]&&Array.isArray(l.globals.seriesGoals[a][s])&&l.globals.seriesGoals[a][s].forEach((function(t){c(t.value,t)})),this.barCtx.barOptions.isDumbbell&&l.globals.seriesRange.length){var g=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,u={strokeHeight:"x"===t?0:l.globals.markers.size[a],strokeWidth:"x"===t?l.globals.markers.size[a]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(g[a])?g[a][0]:g[a]};c(l.globals.seriesRangeStart[a][s],u),c(l.globals.seriesRangeEnd[a][s],d(d({},u),{},{strokeColor:Array.isArray(g[a])?g[a][1]:g[a]}))}return h}},{key:"drawGoalLine",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new w(this.barCtx.ctx),l=n.group({className:"apexcharts-bar-goals-groups"});l.node.classList.add("apexcharts-element-hidden"),this.barCtx.w.globals.delayedElements.push({el:l.node}),l.attr("clip-path","url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid,")"));var h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){if(t.x>=-1&&t.x<=n.w.globals.gridWidth+1){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)}})):Array.isArray(s)&&s.forEach((function(t){if(t.y>=-1&&t.y<=n.w.globals.gridHeight+1){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)}})),l}},{key:"drawBarShadow",value:function(t){var e=t.prevPaths,i=t.currPaths,a=t.color,s=this.w,r=e.x,o=e.x1,n=e.barYPosition,l=i.x,h=i.x1,c=i.barYPosition,d=n+i.barHeight,g=new w(this.barCtx.ctx),u=new v,f=g.move(o,d)+g.line(r,d)+g.line(l,c)+g.line(h,c)+g.line(o,d)+("around"===s.config.plotOptions.bar.borderRadiusApplication?" Z":" z");return g.drawPath({d:f,fill:u.shadeColor(.5,v.rgb2hex(a)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadows"})}},{key:"getZeroValueEncounters",value:function(t){var e,i=t.i,a=t.j,s=this.w,r=0,o=0;return(s.config.plotOptions.bar.horizontal?s.globals.series.map((function(t,e){return e})):(null===(e=s.globals.columnSeries)||void 0===e?void 0:e.i.map((function(t){return t})))||[]).forEach((function(t){var e=s.globals.seriesPercent[t][a];e&&r++,t-1})),a=this.barCtx.columnGroupIndices,s=a.indexOf(i);return s<0&&(a.push(i),s=a.length-1),{groupIndex:i,columnGroupIndex:s}}}]),t}(),kt=function(){function t(e,a){i(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!s.globals.isBarHorizontal&&s.globals.seriesRange.length&&s.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=a,null!==this.xyRatios&&(this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.invertedXRatio=a.invertedXRatio,this.invertedYRatio=a.invertedYRatio,this.baseLineY=a.baseLineY,this.baseLineInvertedY=a.baseLineInvertedY),this.yaxisIndex=0,this.translationsIndex=0,this.seriesLen=0,this.pathArr=[];var r=new G(this.ctx);this.lastActiveBarSerieIndex=r.getActiveConfigSeriesIndex("desc",["bar","column"]),this.columnGroupIndices=[];var o=r.getBarSeriesIndices(),n=new k(this.ctx);this.stackedSeriesTotals=n.getStackedSeriesTotals(this.w.config.series.map((function(t,e){return-1===o.indexOf(e)?e:-1})).filter((function(t){return-1!==t}))),this.barHelpers=new wt(this)}return s(t,[{key:"draw",value:function(t,e){var i=this.w,a=new w(this.ctx),s=new k(this.ctx,i);t=s.getLogSeries(t),this.series=t,this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var r=a.group({class:"apexcharts-bar-series apexcharts-plot-series"});i.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts");for(var o=0,n=0;o0&&(this.visibleI=this.visibleI+1);var A=0,S=0;this.yRatio.length>1&&(this.yaxisIndex=i.globals.seriesYAxisReverseMap[b],this.translationsIndex=b);var C=this.translationsIndex;this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var L=this.barHelpers.initialPositions();f=L.y,A=L.barHeight,h=L.yDivision,g=L.zeroW,u=L.x,S=L.barWidth,l=L.xDivision,c=L.zeroH,this.horizontal||x.push(u+S/2);var P=a.group({class:"apexcharts-datalabels","data:realIndex":b});i.globals.delayedElements.push({el:P.node}),P.node.classList.add("apexcharts-element-hidden");var M=a.group({class:"apexcharts-bar-goals-markers"}),I=a.group({class:"apexcharts-bar-shadows"});i.globals.delayedElements.push({el:I.node}),I.node.classList.add("apexcharts-element-hidden");for(var T=0;T0){var F=this.barHelpers.drawBarShadow({color:"string"==typeof Y&&-1===(null==Y?void 0:Y.indexOf("url"))?Y:v.hexToRgba(i.globals.colors[o]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:X});F&&I.add(F)}this.pathArr.push(X);var R=this.barHelpers.drawGoalLine({barXPosition:X.barXPosition,barYPosition:X.barYPosition,goalX:X.goalX,goalY:X.goalY,barHeight:A,barWidth:S});R&&M.add(R),f=X.y,u=X.x,T>0&&x.push(u+S/2),p.push(f),this.renderSeries({realIndex:b,pathFill:Y,j:T,i:o,columnGroupIndex:m,pathFrom:X.pathFrom,pathTo:X.pathTo,strokeWidth:z,elSeries:y,x:u,y:f,series:t,barHeight:Math.abs(X.barHeight?X.barHeight:A),barWidth:Math.abs(X.barWidth?X.barWidth:S),elDataLabelsWrap:P,elGoalsMarkers:M,elBarShadows:I,visibleSeries:this.visibleI,type:"bar"})}i.globals.seriesXvalues[b]=x,i.globals.seriesYvalues[b]=p,r.add(y)}return r}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.columnGroupIndex,n=t.pathFrom,l=t.pathTo,h=t.strokeWidth,c=t.elSeries,d=t.x,g=t.y,u=t.y1,f=t.y2,p=t.series,x=t.barHeight,b=t.barWidth,v=t.barXPosition,m=t.barYPosition,k=t.elDataLabelsWrap,A=t.elGoalsMarkers,S=t.elBarShadows,C=t.visibleSeries,L=t.type,P=this.w,M=new w(this.ctx);if(!a){var I="function"==typeof P.globals.stroke.colors[e]?function(t){var e,i=P.config.stroke.colors;return Array.isArray(i)&&i.length>0&&((e=i[t])||(e=""),"function"==typeof e)?e({value:P.globals.series[t][s],dataPointIndex:s,w:P}):e}(e):P.globals.stroke.colors[e];a=this.barOptions.distributed?P.globals.stroke.colors[s]:I}P.config.series[r].data[s]&&P.config.series[r].data[s].strokeColor&&(a=P.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var T=s/P.config.chart.animations.animateGradually.delay*(P.config.chart.animations.speed/P.globals.dataPoints)/2.4,z=M.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:l,stroke:a,strokeWidth:h,strokeLineCap:P.config.stroke.lineCap,fill:i,animationDelay:T,initialSpeed:P.config.chart.animations.speed,dataChangeSpeed:P.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(L,"-area")});z.attr("clip-path","url(#gridRectMask".concat(P.globals.cuid,")"));var X=P.config.forecastDataPoints;X.count>0&&s>=P.globals.dataPoints-X.count&&(z.node.setAttribute("stroke-dasharray",X.dashArray),z.node.setAttribute("stroke-width",X.strokeWidth),z.node.setAttribute("fill-opacity",X.fillOpacity)),void 0!==u&&void 0!==f&&(z.attr("data-range-y1",u),z.attr("data-range-y2",f)),new y(this.ctx).setSelectionFilter(z,e,s),c.add(z);var E=new yt(this).handleBarDataLabels({x:d,y:g,y1:u,y2:f,i:r,j:s,series:p,realIndex:e,columnGroupIndex:o,barHeight:x,barWidth:b,barXPosition:v,barYPosition:m,renderedPath:z,visibleSeries:C});return null!==E.dataLabels&&k.add(E.dataLabels),E.totalDataLabels&&k.add(E.totalDataLabels),c.add(k),A&&c.add(A),S&&c.add(S),c}},{key:"drawBarPaths",value:function(t){var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=i.i,g=i.j;if(c.globals.isXNumeric)e=(n=(c.globals.seriesX[d][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var u=0,f=0;c.globals.seriesPercent.forEach((function(t,e){t[g]&&u++,e0&&(a=this.seriesLen*a/u),e=n+a*this.visibleI,e-=a*f}else e=n+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[d][g],r)-r)/2),o=this.barHelpers.getXForValue(this.series[d][g],r);var p=this.barHelpers.getBarpaths({barYPosition:e,barHeight:a,x1:r,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:d,j:g,w:c});return c.globals.isXNumeric||(n+=l),this.barHelpers.barBackground({j:g,i:d,y1:e-a*this.visibleI,y2:a*this.seriesLen,elSeries:h}),{pathTo:p.pathTo,pathFrom:p.pathFrom,x1:r,x:o,y:n,goalX:this.barHelpers.getGoalValues("x",r,null,d,g),barYPosition:e,barHeight:a}}},{key:"drawColumnPaths",value:function(t){var e,i=t.indexes,a=t.x,s=t.y,r=t.xDivision,o=t.barWidth,n=t.zeroH,l=t.strokeWidth,h=t.elSeries,c=this.w,d=i.realIndex,g=i.translationsIndex,u=i.i,f=i.j,p=i.bc;if(c.globals.isXNumeric){var x=this.getBarXForNumericXAxis({x:a,j:f,realIndex:d,barWidth:o});a=x.x,e=x.barXPosition}else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var b=this.barHelpers.getZeroValueEncounters({i:u,j:f}),v=b.nonZeroColumns,m=b.zeroEncounters;v>0&&(o=this.seriesLen*o/v),e=a+o*this.visibleI,e-=o*m}else e=a+o*this.visibleI;s=this.barHelpers.getYForValue(this.series[u][f],n,g);var y=this.barHelpers.getColumnPaths({barXPosition:e,barWidth:o,y1:n,y2:s,strokeWidth:l,series:this.series,realIndex:d,i:u,j:f,w:c});return c.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:p,j:f,i:u,x1:e-l/2-o*this.visibleI,x2:o*this.seriesLen+l/2,elSeries:h}),{pathTo:y.pathTo,pathFrom:y.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues("y",null,n,u,f,g),barXPosition:e,barWidth:o}}},{key:"getBarXForNumericXAxis",value:function(t){var e=t.x,i=t.barWidth,a=t.realIndex,s=t.j,r=this.w,o=a;return r.globals.seriesX[a].length||(o=r.globals.maxValsInArrayIndex),r.globals.seriesX[o][s]&&(e=(r.globals.seriesX[o][s]-r.globals.minX)/this.xRatio-i*this.seriesLen/2),{barXPosition:e+i*this.visibleI,x:e}}},{key:"getPreviousPath",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),At=function(t){l(a,t);var e=r(a);function a(){return i(this,a),e.apply(this,arguments)}return s(a,[{key:"draw",value:function(t,e){var i=this,a=this.w;this.graphics=new w(this.ctx),this.bar=new kt(this.ctx,this.xyRatios);var s=new k(this.ctx,a);t=s.getLogSeries(t),this.yRatio=s.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),"100%"===a.config.chart.stackType&&(t=a.globals.comboCharts?e.map((function(t){return a.globals.seriesPercent[t]})):a.globals.seriesPercent.slice()),this.series=t,this.barHelpers.initializeStackedPrevVars(this);for(var r=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),o=0,n=0,l=function(s,l){var h=void 0,c=void 0,g=void 0,u=void 0,f=a.globals.comboCharts?e[s]:s,p=i.barHelpers.getGroupIndex(f),x=p.groupIndex,b=p.columnGroupIndex;i.groupCtx=i[a.globals.seriesGroups[x]];var m=[],y=[],w=0;i.yRatio.length>1&&(i.yaxisIndex=a.globals.seriesYAxisReverseMap[f][0],w=f),i.isReversed=a.config.yaxis[i.yaxisIndex]&&a.config.yaxis[i.yaxisIndex].reversed;var k=i.graphics.group({class:"apexcharts-series",seriesName:v.escapeString(a.globals.seriesNames[f]),rel:s+1,"data:realIndex":f});i.ctx.series.addCollapsedClassToSeries(k,f);var A=i.graphics.group({class:"apexcharts-datalabels","data:realIndex":f}),S=i.graphics.group({class:"apexcharts-bar-goals-markers"}),C=0,L=0,P=i.initialPositions(o,n,h,c,g,u,w);n=P.y,C=P.barHeight,c=P.yDivision,u=P.zeroW,o=P.x,L=P.barWidth,h=P.xDivision,g=P.zeroH,a.globals.barHeight=C,a.globals.barWidth=L,i.barHelpers.initializeStackedXYVars(i),1===i.groupCtx.prevY.length&&i.groupCtx.prevY[0].every((function(t){return isNaN(t)}))&&(i.groupCtx.prevY[0]=i.groupCtx.prevY[0].map((function(){return g})),i.groupCtx.prevYF[0]=i.groupCtx.prevYF[0].map((function(){return 0})));for(var M=0;M1?l=(i=h.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:-1===String(d).indexOf("%")?l=parseInt(d,10):l*=parseInt(d,10)/100,s=this.isReversed?this.baseLineY[o]:h.globals.gridHeight-this.baseLineY[o],t=h.globals.padHorizontal+(i-l)/2}var g=h.globals.barGroups.length||1;return{x:t,y:e,yDivision:a,xDivision:i,barHeight:n/g,barWidth:l/g,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.columnGroupIndex,h=t.seriesGroup,c=t.yDivision,d=t.elSeries,g=this.w,u=n+l*a,f=i.i,p=i.j,x=i.realIndex,b=i.translationsIndex,v=0,m=0;m0){var w=r;this.groupCtx.prevXVal[y-1][p]<0?w=this.series[f][p]>=0?this.groupCtx.prevX[y-1][p]+v-2*(this.isReversed?v:0):this.groupCtx.prevX[y-1][p]:this.groupCtx.prevXVal[y-1][p]>=0&&(w=this.series[f][p]>=0?this.groupCtx.prevX[y-1][p]:this.groupCtx.prevX[y-1][p]-v+2*(this.isReversed?v:0)),e=w}else e=r;o=null===this.series[f][p]?e:e+this.series[f][p]/this.invertedYRatio-2*(this.isReversed?this.series[f][p]/this.invertedYRatio:0);var k=this.barHelpers.getBarpaths({barYPosition:u,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,seriesGroup:h,i:f,j:p,w:g});return this.barHelpers.barBackground({j:p,i:f,y1:u,y2:a,elSeries:d}),n+=c,{pathTo:k.pathTo,pathFrom:k.pathFrom,goalX:this.barHelpers.getGoalValues("x",r,null,f,p,b),barXPosition:e,barYPosition:u,x:o,y:n}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.columnGroupIndex,l=t.seriesGroup,h=t.elSeries,c=this.w,d=e.i,g=e.j,u=e.bc,f=e.realIndex,p=e.translationsIndex;if(c.globals.isXNumeric){var x=c.globals.seriesX[f][g];x||(x=0),i=(x-c.globals.minX)/this.xRatio-r/2*c.globals.barGroups.length}for(var b,v=i+n*r,m=0,y=0;y0&&!c.globals.isXNumeric||w>0&&c.globals.isXNumeric&&c.globals.seriesX[f-1][g]===c.globals.seriesX[f][g]){var k,A,S,C=Math.min(this.yRatio.length+1,f+1);if(void 0!==this.groupCtx.prevY[w-1]&&this.groupCtx.prevY[w-1].length)for(var L=1;L=0?S-m+2*(this.isReversed?m:0):S;break}if((null===(T=this.groupCtx.prevYVal[w-M])||void 0===T?void 0:T[g])>=0){A=this.series[d][g]>=0?S:S+m-2*(this.isReversed?m:0);break}}void 0===A&&(A=c.globals.gridHeight),b=null!==(k=this.groupCtx.prevYF[0])&&void 0!==k&&k.every((function(t){return 0===t}))&&this.groupCtx.prevYF.slice(1,w).every((function(t){return t.every((function(t){return isNaN(t)}))}))?o:A}else b=o;a=this.series[d][g]?b-this.series[d][g]/this.yRatio[p]+2*(this.isReversed?this.series[d][g]/this.yRatio[p]:0):b;var z=this.barHelpers.getColumnPaths({barXPosition:v,barWidth:r,y1:b,y2:a,yRatio:this.yRatio[p],strokeWidth:this.strokeWidth,series:this.series,seriesGroup:l,realIndex:e.realIndex,i:d,j:g,w:c});return this.barHelpers.barBackground({bc:u,j:g,i:d,x1:v,x2:r,elSeries:h}),{pathTo:z.pathTo,pathFrom:z.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,o,d,g),barXPosition:v,x:c.globals.isXNumeric?i:i+s,y:a}}}]),a}(kt),St=function(t){l(a,t);var e=r(a);function a(){return i(this,a),e.apply(this,arguments)}return s(a,[{key:"draw",value:function(t,e,i){var a=this,s=this.w,r=new w(this.ctx),o=s.globals.comboCharts?e:s.config.chart.type,n=new O(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=s.config.plotOptions.bar.horizontal;var l=new k(this.ctx,s);t=l.getLogSeries(t),this.series=t,this.yRatio=l.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var h=r.group({class:"apexcharts-".concat(o,"-series apexcharts-plot-series")}),c=function(e){a.isBoxPlot="boxPlot"===s.config.chart.type||"boxPlot"===s.config.series[e].type;var o,l,c,g,u=void 0,f=void 0,p=[],x=[],b=s.globals.comboCharts?i[e]:e,m=a.barHelpers.getGroupIndex(b).columnGroupIndex,y=r.group({class:"apexcharts-series",seriesName:v.escapeString(s.globals.seriesNames[b]),rel:e+1,"data:realIndex":b});a.ctx.series.addCollapsedClassToSeries(y,b),t[e].length>0&&(a.visibleI=a.visibleI+1);var w,k,A=0;a.yRatio.length>1&&(a.yaxisIndex=s.globals.seriesYAxisReverseMap[b][0],A=b);var S=a.barHelpers.initialPositions();f=S.y,w=S.barHeight,l=S.yDivision,g=S.zeroW,u=S.x,k=S.barWidth,o=S.xDivision,c=S.zeroH,x.push(u+k/2);for(var C=r.group({class:"apexcharts-datalabels","data:realIndex":b}),L=function(i){var r=a.barHelpers.getStrokeWidth(e,i,b),h=null,v={indexes:{i:e,j:i,realIndex:b,translationsIndex:A},x:u,y:f,strokeWidth:r,elSeries:y};h=a.isHorizontal?a.drawHorizontalBoxPaths(d(d({},v),{},{yDivision:l,barHeight:w,zeroW:g})):a.drawVerticalBoxPaths(d(d({},v),{},{xDivision:o,barWidth:k,zeroH:c})),f=h.y,u=h.x,i>0&&x.push(u+k/2),p.push(f),h.pathTo.forEach((function(o,l){var c=!a.isBoxPlot&&a.candlestickOptions.wick.useFillColor?h.color[l]:s.globals.stroke.colors[e],d=n.fillPath({seriesNumber:b,dataPointIndex:i,color:h.color[l],value:t[e][i]});a.renderSeries({realIndex:b,pathFill:d,lineFill:c,j:i,i:e,pathFrom:h.pathFrom,pathTo:o,strokeWidth:r,elSeries:y,x:u,y:f,series:t,columnGroupIndex:m,barHeight:w,barWidth:k,elDataLabelsWrap:C,visibleSeries:a.visibleI,type:s.config.chart.type})}))},P=0;Pb.c&&(d=!1);var y=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(y=r,k=r):(y=r-y/p,k=r-k/p,v=r-b.h/p,m=r-b.l/p,A=r-b.m/p);var C=l.move(S,r),L=l.move(S+s/2,y);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,y)+l.line(S+s/2,y)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,y)+l.line(S+s,y)+l.line(S+s,A)+l.line(S,A)+l.line(S,y+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,m)+l.line(S+s-s/4,m)+l.line(S+s/4,m)+l.line(S+s/2,m)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,y)+l.line(S+s/2,y)+l.line(S+s/2,m)+l.line(S+s/2,y)+l.line(S,y)+l.line(S,k-o/2)],L+=l.move(S,y),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new w(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,f=this.getOHLCValue(u,c),p=r,x=r,b=Math.min(f.o,f.c),v=Math.max(f.o,f.c),m=f.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var y=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,p=r+f.h/g,x=r+f.l/g,m=r+f.m/g);var k=l.move(r,y),A=l.move(b,y+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,y)+l.line(b,y+s/2)+l.line(p,y+s/2)+l.line(p,y+s/2-s/4)+l.line(p,y+s/2+s/4)+l.line(p,y+s/2)+l.line(b,y+s/2)+l.line(b,y+s)+l.line(m,y+s)+l.line(m,y)+l.line(b+o/2,y),l.move(m,y)+l.line(m,y+s)+l.line(v,y+s)+l.line(v,y+s/2)+l.line(x,y+s/2)+l.line(x,y+s-s/4)+l.line(x,y+s/4)+l.line(x,y+s/2)+l.line(v,y+s/2)+l.line(v,y)+l.line(m,y)+"z"],A+=l.move(b,y),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:y,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),a}(kt),Ct=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,"treemap"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new v;if(s.config.plotOptions[t].enableShades)if("dark"===this.w.config.theme.mode){var c=h.shadeColor(-1*r,n.color);l=v.hexToRgba(v.isColorHex(c)?c:v.rgb2hex(c),s.config.fill.opacity)}else{var d=h.shadeColor(r,n.color);l=v.hexToRgba(v.isColorHex(d)?d:v.rgb2hex(d),s.config.fill.opacity)}return{color:l,colorProps:n}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,f(a.globals.series[e])),c=Math.max.apply(Math,f(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new w(this.ctx),c=new B(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new w(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),Lt=function(){function t(e,a){i(this,t),this.ctx=e,this.w=e.w,this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new Ct(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return s(t,[{key:"draw",value:function(t){var e=this.w,i=new w(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:v.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new y(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,f=0;f-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=m.x,S=m.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(h=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(h)>this.fullAngle&&(h-=this.fullAngle);var c=Math.PI*(h-90)/180,d=i.centerX+r*Math.cos(l),g=i.centerY+r*Math.sin(l),u=i.centerX+r*Math.cos(c),f=i.centerY+r*Math.sin(c),p=v.polarToCartesian(i.centerX,i.centerY,i.donutSize,h),x=v.polarToCartesian(i.centerX,i.centerY,i.donutSize,n),b=s>180?1:0,m=["M",d,g,"A",r,r,0,b,1,u,f];return e="donut"===i.chartType?[].concat(m,["L",p.x,p.y,"A",i.donutSize,i.donutSize,0,b,0,x.x,x.y,"L",d,g,"z"]).join(" "):"pie"===i.chartType||"polarArea"===i.chartType?[].concat(m,["L",i.centerX,i.centerY,"L",d,g]).join(" "):[].concat(m).join(" "),o.roundPathCorners(e,2*this.strokeWidth)}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new q(this.ctx),a=new w(this.ctx),s=new Pt(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new w(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n0&&(p=e.getPreviousPath(o));for(var x=0;x=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new w(this.ctx),a=new O(this.ctx),s=new y(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;if(this.radialDataLabels.show){var f=e.globals.dom.Paper.select(".apexcharts-datalabels-group").members[0];u=this.renderInnerDataLabels(f,this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})}"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var x=p?t.series.length-1:0;p?x>=0:x100?100:t.series[x])/100,C=Math.round(this.totalAngle*S)+this.startAngle,L=void 0;e.globals.dataChanged&&(A=this.startAngle,L=Math.round(this.totalAngle*v.negToZero(e.globals.previousPaths[x])/100)+A),Math.abs(C)+Math.abs(k)>=360&&(C-=.01),Math.abs(L)+Math.abs(A)>=360&&(L-=.01);var P=C-k,M=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[x]:e.config.stroke.dashArray,I=i.drawPath({d:"",stroke:m,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+x,strokeDashArray:M});if(w.setAttrs(I.node,{"data:angle":P,"data:value":t.series[x]}),e.config.chart.dropShadow.enabled){var T=e.config.chart.dropShadow;s.dropShadow(I,T,x)}if(s.setSelectionFilter(I,0,x),this.addListeners(I,this.radialDataLabels),b.add(I),I.attr({index:0,j:x}),this.barLabels.enabled){var z=v.polarToCartesian(t.centerX,t.centerY,t.size,k),X=this.barLabels.formatter(e.globals.seriesNames[x],{seriesIndex:x,w:e}),E=["apexcharts-radialbar-label"];this.barLabels.onClick||E.push("apexcharts-no-click");var Y=this.barLabels.useSeriesColors?e.globals.colors[x]:e.config.chart.foreColor;Y||(Y=e.config.chart.foreColor);var F=z.x+this.barLabels.offsetX,R=z.y+this.barLabels.offsetY,D=i.drawText({x:F,y:R,text:X,textAnchor:"end",dominantBaseline:"middle",fontFamily:this.barLabels.fontFamily,fontWeight:this.barLabels.fontWeight,fontSize:this.barLabels.fontSize,foreColor:Y,cssClass:E.join(" ")});D.on("click",this.onBarLabelClick),D.attr({rel:x+1}),0!==k&&D.attr({"transform-origin":"".concat(F," ").concat(R),transform:"rotate(".concat(k," 0 0)")}),b.add(D)}var H=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(H=e.config.chart.animations.speed),e.globals.dataChanged&&(H=e.config.chart.animations.dynamicAnimation.speed),this.animDur=H/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(I,{centerX:t.centerX,centerY:t.centerY,endAngle:C,startAngle:k,prevEndAngle:L,prevStartAngle:A,size:t.size,i:x,totalItems:2,animBeginArr:this.animBeginArr,dur:H,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new w(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new O(this.ctx),o=v.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}},{key:"onBarLabelClick",value:function(t){var e=parseInt(t.target.getAttribute("rel"),10)-1,i=this.barLabels.onClick,a=this.w;i&&i(a.globals.seriesNames[e],{w:a,seriesIndex:e})}}]),o}(Mt),zt=function(t){l(a,t);var e=r(a);function a(){return i(this,a),e.apply(this,arguments)}return s(a,[{key:"draw",value:function(t,e){var i=this.w,a=new w(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=i.globals.seriesRangeStart,this.seriesRangeEnd=i.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var s=a.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),r=0;r0&&(this.visibleI=this.visibleI+1);var x=0,b=0,m=0;this.yRatio.length>1&&(this.yaxisIndex=i.globals.seriesYAxisReverseMap[u][0],m=u);var y=this.barHelpers.initialPositions();g=y.y,h=y.zeroW,c=y.x,b=y.barWidth,x=y.barHeight,o=y.xDivision,n=y.yDivision,l=y.zeroH;for(var k=a.group({class:"apexcharts-datalabels","data:realIndex":u}),A=a.group({class:"apexcharts-rangebar-goals-markers"}),S=0;S0}));return this.isHorizontal?(a=g.config.plotOptions.bar.rangeBarGroupRows?r+h*b:r+n*this.visibleI+h*b,v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(f)>-1&&(a=(n=d.barHeight/u.length)*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+n*(this.visibleI+u.indexOf(f))+h*b)):(b>-1&&!g.globals.timescaleLabels.length&&(s=g.config.plotOptions.bar.rangeBarGroupRows?o+c*b:o+l*this.visibleI+c*b),v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(f)>-1&&(s=(l=d.barWidth/u.length)*this.visibleI+c*(100-parseInt(this.barOptions.barWidth,10))/100/2+l*(this.visibleI+u.indexOf(f))+c*b)),{barYPosition:a,barXPosition:s,barHeight:n,barWidth:l}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.xDivision,s=t.barWidth,r=t.barXPosition,o=t.zeroH,n=this.w,l=e.i,h=e.j,c=e.realIndex,d=e.translationsIndex,g=this.yRatio[d],u=this.getRangeValue(c,h),f=Math.min(u.start,u.end),p=Math.max(u.start,u.end);void 0===this.series[l][h]||null===this.series[l][h]?f=o:(f=o-f/g,p=o-p/g);var x=Math.abs(p-f),b=this.barHelpers.getColumnPaths({barXPosition:r,barWidth:s,y1:f,y2:p,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:c,i:c,j:h,w:n});if(n.globals.isXNumeric){var v=this.getBarXForNumericXAxis({x:i,j:h,realIndex:c,barWidth:s});i=v.x,r=v.barXPosition}else i+=a;return{pathTo:b.pathTo,pathFrom:b.pathFrom,barHeight:x,x:i,y:u.start<0&&u.end<0?f:p,goalY:this.barHelpers.getGoalValues("y",null,o,l,h,d),barXPosition:r}}},{key:"preventBarOverflow",value:function(t){var e=this.w;return t<0&&(t=0),t>e.globals.gridWidth&&(t=e.globals.gridWidth),t}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=e.realIndex,d=e.j,g=this.preventBarOverflow(l+a/this.invertedYRatio),u=this.preventBarOverflow(l+s/this.invertedYRatio),f=this.getRangeValue(c,d),p=Math.abs(u-g),x=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:g,x2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:c,realIndex:c,j:d,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:x.pathTo,pathFrom:x.pathFrom,barWidth:p,x:f.start<0&&f.end<0?g:u,goalX:this.barHelpers.getGoalValues("x",l,null,c,d),y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),a}(kt),Xt=function(){function t(e){i(this,t),this.w=e.w,this.lineCtx=e}return s(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if(("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new k(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(v.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(v.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(v.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&("line"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e,i,a,s=t.i,r=t.realIndex,o=t.series,n=t.prevY,l=t.lineYPosition,h=t.translationsIndex,c=this.w,d=c.config.chart.stacked&&!c.globals.comboCharts||c.config.chart.stacked&&c.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||"bar"===(null===(e=this.w.config.series[r])||void 0===e?void 0:e.type)||"column"===(null===(i=this.w.config.series[r])||void 0===i?void 0:i.type));if(void 0!==(null===(a=o[s])||void 0===a?void 0:a[0]))n=(l=d&&s>0?this.lineCtx.prevSeriesY[s-1][0]:this.lineCtx.zeroY)-o[s][0]/this.lineCtx.yRatio[h]+2*(this.lineCtx.isReversed?o[s][0]/this.lineCtx.yRatio[h]:0);else if(d&&s>0&&void 0===o[s][0])for(var g=s-1;g>=0;g--)if(null!==o[g][0]&&void 0!==o[g][0]){n=l=this.lineCtx.prevSeriesY[g][0];break}return{prevY:n,lineYPosition:l}}}]),t}(),Et=function(t){for(var e,i,a,s,r=function(t){for(var e=[],i=t[0],a=t[1],s=e[0]=Rt(i,a),r=1,o=t.length-1;r9&&(s=3*a/Math.sqrt(s),r[l]=s*e,r[l+1]=s*i);for(var h=0;h<=o;h++)s=(t[Math.min(o,h+1)][0]-t[Math.max(0,h-1)][0])/(6*(1+r[h]*r[h])),n.push([s||0,r[h]*s||0]);return n},Yt=function(t){var e=Et(t),i=t[1],a=t[0],s=[],r=e[1],o=e[0];s.push(a,[a[0]+o[0],a[1]+o[1],i[0]-r[0],i[1]-r[1],i[0],i[1]]);for(var n=2,l=e.length;n1&&a[1].length<6){var s=a[0].length;a[1]=[2*a[0][s-2]-a[0][s-4],2*a[0][s-1]-a[0][s-3]].concat(a[1])}a[0]=a[0].slice(-2)}return a};function Rt(t,e){return(e[1]-t[1])/(e[0]-t[0])}var Dt=function(){function t(e,a,s){i(this,t),this.ctx=e,this.w=e.w,this.xyRatios=a,this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||s,this.scatter=new W(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Xt(this),this.markers=new N(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return s(t,[{key:"draw",value:function(t,e,i,a){var s,r=this.w,o=new w(this.ctx),n=r.globals.comboCharts?e:r.config.chart.type,l=o.group({class:"apexcharts-".concat(n,"-series apexcharts-plot-series")}),h=new k(this.ctx,r);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=h.getLogSeries(t),this.yRatio=h.getLogYRatios(this.yRatio),this.prevSeriesY=[];for(var c=[],g=0;g1?u:0;this._initSerieVariables(t,g,u);var p=[],x=[],b=[],v=r.globals.padHorizontal+this.categoryAxisCorrection;this.ctx.series.addCollapsedClassToSeries(this.elSeries,u),r.globals.isXNumeric&&r.globals.seriesX.length>0&&(v=(r.globals.seriesX[u][0]-r.globals.minX)/this.xRatio),b.push(v);var m,y=v,A=void 0,S=y,C=this.zeroY,L=this.zeroY;C=this.lineHelpers.determineFirstPrevY({i:g,realIndex:u,series:t,prevY:C,lineYPosition:0,translationsIndex:f}).prevY,"monotoneCubic"===r.config.stroke.curve&&null===t[g][0]?p.push(null):p.push(C),m=C;"rangeArea"===n&&(A=L=this.lineHelpers.determineFirstPrevY({i:g,realIndex:u,series:a,prevY:L,lineYPosition:0,translationsIndex:f}).prevY,x.push(null!==p[0]?L:null));var P=this._calculatePathsFrom({type:n,series:t,i:g,realIndex:u,translationsIndex:f,prevX:S,prevY:C,prevY2:L}),M=[p[0]],I=[x[0]],T={type:n,series:t,realIndex:u,translationsIndex:f,i:g,x:v,y:1,pX:y,pY:m,pathsFrom:P,linePaths:[],areaPaths:[],seriesIndex:i,lineYPosition:0,xArrj:b,yArrj:p,y2Arrj:x,seriesRangeEnd:a},z=this._iterateOverDataPoints(d(d({},T),{},{iterations:"rangeArea"===n?t[g].length-1:void 0,isRangeStart:!0}));if("rangeArea"===n){for(var X=this._calculatePathsFrom({series:a,i:g,realIndex:u,prevX:S,prevY:L}),E=this._iterateOverDataPoints(d(d({},T),{},{series:a,xArrj:[v],yArrj:M,y2Arrj:I,pY:A,areaPaths:z.areaPaths,pathsFrom:X,iterations:a[g].length-1,isRangeStart:!1})),Y=z.linePaths.length/2,F=0;F=0;R--)l.add(c[R]);else for(var D=0;D1&&(this.yaxisIndex=a.globals.seriesYAxisReverseMap[i],r=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[r]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[r]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",zIndex:void 0!==a.config.series[i].zIndex?a.config.series[i].zIndex:i,seriesName:v.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var o=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":o,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.type,o=t.series,n=t.i,l=t.realIndex,h=t.translationsIndex,c=t.prevX,d=t.prevY,g=t.prevY2,u=this.w,f=new w(this.ctx);if(null===o[n][0]){for(var p=0;p0){var x=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:l});a=x.pathFromLine,s=x.pathFromArea}return{prevX:c,prevY:d,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var e=t.type,i=t.realIndex,a=t.i,s=t.paths,r=this.w,o=new w(this.ctx),n=new O(this.ctx);this.prevSeriesY.push(s.yArrj),r.globals.seriesXvalues[i]=s.xArrj,r.globals.seriesYvalues[i]=s.yArrj;var l=r.config.forecastDataPoints;if(l.count>0&&"rangeArea"!==e){var h=r.globals.seriesXvalues[i][r.globals.seriesXvalues[i].length-l.count-1],c=o.drawRect(h,0,r.globals.gridWidth,r.globals.gridHeight,0);r.globals.dom.elForecastMask.appendChild(c.node);var g=o.drawRect(0,0,h,r.globals.gridHeight,0);r.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||r.globals.delayedElements.push({el:this.elPointsMain.node,index:i});var u={i:a,realIndex:i,animationDelay:a,initialSpeed:r.config.chart.animations.speed,dataChangeSpeed:r.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(e)};if("area"===e)for(var f=n.fillPath({seriesNumber:i}),p=0;p0&&"rangeArea"!==e){var S=o.renderPaths(k);S.node.setAttribute("stroke-dasharray",l.dashArray),l.strokeWidth&&S.node.setAttribute("stroke-width",l.strokeWidth),this.elSeries.add(S),S.attr("clip-path","url(#forecastMask".concat(r.globals.cuid,")")),A.attr("clip-path","url(#nonForecastMask".concat(r.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){var e,i,a=this,s=t.type,r=t.series,o=t.iterations,n=t.realIndex,l=t.translationsIndex,h=t.i,c=t.x,d=t.y,g=t.pX,u=t.pY,f=t.pathsFrom,p=t.linePaths,x=t.areaPaths,b=t.seriesIndex,m=t.lineYPosition,y=t.xArrj,k=t.yArrj,A=t.y2Arrj,S=t.isRangeStart,C=t.seriesRangeEnd,L=this.w,P=new w(this.ctx),M=this.yRatio,I=f.prevY,T=f.linePath,z=f.areaPath,X=f.pathFromLine,E=f.pathFromArea,Y=v.isNumber(L.globals.minYArr[n])?L.globals.minYArr[n]:L.globals.minY;o||(o=L.globals.dataPoints>1?L.globals.dataPoints-1:L.globals.dataPoints);var F=function(t,e){return e-t/M[l]+2*(a.isReversed?t/M[l]:0)},R=d,D=L.config.chart.stacked&&!L.globals.comboCharts||L.config.chart.stacked&&L.globals.comboCharts&&(!this.w.config.chart.stackOnlyBar||"bar"===(null===(e=this.w.config.series[n])||void 0===e?void 0:e.type)||"column"===(null===(i=this.w.config.series[n])||void 0===i?void 0:i.type)),H=L.config.stroke.curve;Array.isArray(H)&&(H=Array.isArray(b)?H[b[h]]:H[h]);for(var O,N=0,W=0;W0&&L.globals.collapsedSeries.length0;e--){if(!(L.globals.collapsedSeriesIndices.indexOf((null==b?void 0:b[e])||e)>-1))return e;e--}return 0}(h-1)][W+1]}else m=this.zeroY;else m=this.zeroY;B?d=F(Y,m):(d=F(r[h][W+1],m),"rangeArea"===s&&(R=F(C[h][W+1],m))),y.push(c),!B||"smooth"!==L.config.stroke.curve&&"monotoneCubic"!==L.config.stroke.curve?(k.push(d),A.push(R)):(k.push(null),A.push(null));var V=this.lineHelpers.calculatePoints({series:r,x:c,y:d,realIndex:n,i:h,j:W,prevY:I}),j=this._createPaths({type:s,series:r,i:h,realIndex:n,j:W,x:c,y:d,y2:R,xArrj:y,yArrj:k,y2Arrj:A,pX:g,pY:u,pathState:N,segmentStartX:O,linePath:T,areaPath:z,linePaths:p,areaPaths:x,curve:H,isRangeStart:S});x=j.areaPaths,p=j.linePaths,g=j.pX,u=j.pY,N=j.pathState,O=j.segmentStartX,z=j.areaPath,T=j.linePath,!this.appendPathFrom||"monotoneCubic"===H&&"rangeArea"===s||(X+=P.line(c,this.zeroY),E+=P.line(c,this.zeroY)),this.handleNullDataPoints(r,V,h,W,n),this._handleMarkersAndLabels({type:s,pointsPos:V,i:h,j:W,realIndex:n,isRangeStart:S})}return{yArrj:k,xArrj:y,pathFromArea:E,areaPaths:x,pathFromLine:X,linePaths:p,linePath:T,areaPath:z}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.type,i=t.pointsPos,a=t.isRangeStart,s=t.i,r=t.j,o=t.realIndex,n=this.w,l=new B(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:o,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{n.globals.series[s].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var h=this.markers.plotChartMarkers(i,o,r+1);null!==h&&this.elPointsMain.add(h)}var c=l.drawDataLabel({type:e,isRangeStart:a,pos:i,i:o,j:r+1});null!==c&&this.elDataLabelsWrap.add(c)}},{key:"_createPaths",value:function(t){var e=t.type,i=t.series,a=t.i;t.realIndex;var s=t.j,r=t.x,o=t.y,n=t.xArrj,l=t.yArrj,h=t.y2,c=t.y2Arrj,d=t.pX,g=t.pY,u=t.pathState,f=t.segmentStartX,p=t.linePath,x=t.areaPath,b=t.linePaths,v=t.areaPaths,m=t.curve,y=t.isRangeStart;this.w;var k,A=new w(this.ctx),S=this.areaBottomY,C="rangeArea"===e,L="rangeArea"===e&&y;switch(m){case"monotoneCubic":var P=y?l:c;switch(u){case 0:if(null===P[s+1])break;u=1;case 1:if(!(C?n.length===i[a].length:s===i[a].length-2))break;case 2:var M=y?n:n.slice().reverse(),I=y?P:P.slice().reverse(),T=(k=I,M.map((function(t,e){return[t,k[e]]})).filter((function(t){return null!==t[1]}))),z=T.length>1?Yt(T):T,X=[];C&&(L?v=T:X=v.reverse());var E=0,Y=0;if(function(t,e){for(var i=function(t){var e=[],i=0;return t.forEach((function(t){null!==t?i++:i>0&&(e.push(i),i=0)})),i>0&&e.push(i),e}(t),a=[],s=0,r=0;s4?(e+="C".concat(a[0],", ").concat(a[1]),e+=", ".concat(a[2],", ").concat(a[3]),e+=", ".concat(a[4],", ").concat(a[5])):s>2&&(e+="S".concat(a[0],", ").concat(a[1]),e+=", ".concat(a[2],", ").concat(a[3]))}return e}(t),i=Y,a=(Y+=t.length)-1;L?p=A.move(T[i][0],T[i][1])+e:C?p=A.move(X[i][0],X[i][1])+A.line(T[i][0],T[i][1])+e+A.line(X[a][0],X[a][1]):(p=A.move(T[i][0],T[i][1])+e,x=p+A.line(T[a][0],S)+A.line(T[i][0],S)+"z",v.push(x)),b.push(p)})),C&&E>1&&!L){var F=b.slice(E).reverse();b.splice(E),F.forEach((function(t){return b.push(t)}))}u=0}break;case"smooth":var R=.35*(r-d);if(null===i[a][s])u=0;else switch(u){case 0:if(f=d,p=L?A.move(d,c[s])+A.line(d,g):A.move(d,g),x=A.move(d,g),u=1,s=i[a].length-2&&(L&&(p+=A.curve(r,o,r,o,r,h)+A.move(r,h)),x+=A.curve(r,o,r,o,r,S)+A.line(f,S)+"z",b.push(p),v.push(x),u=-1)}}d=r,g=o;break;default:var O=function(t,e,i){var a=[];switch(t){case"stepline":a=A.line(e,null,"H")+A.line(null,i,"V");break;case"linestep":a=A.line(null,i,"V")+A.line(e,null,"H");break;case"straight":a=A.line(e,i)}return a};if(null===i[a][s])u=0;else switch(u){case 0:if(f=d,p=L?A.move(d,c[s])+A.line(d,g):A.move(d,g),x=A.move(d,g),u=1,s=i[a].length-2&&(L&&(p+=A.line(r,h)),x+=A.line(r,S)+A.line(f,S)+"z",b.push(p),v.push(x),u=-1)}}d=r,g=o}return{linePaths:b,areaPaths:v,pX:d,pY:g,pathState:u,segmentStartX:f,linePath:p,areaPath:x}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.strokeWidth-r.config.markers.strokeWidth/2;o>0||(o=0);var n=this.markers.plotChartMarkers(e,s,a+1,o,!0);null!==n&&this.elPointsMain.add(n)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){o=void 0===o?0:o,n=void 0===n?0:n;var l=i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(h.x," ").concat(h.y,") translate(").concat(l.height/3,")"))}}},{key:"truncateLabels",value:function(t,e,i,a,s,r){var o=new w(this.ctx),n=o.getTextRects(t,e).width+this.w.config.stroke.width+5>s-i&&r-a>s-i?r-a:s-i,l=o.getTextBasedOnMaxWidth({text:t,maxWidth:n,fontSize:e});return t.length!==l.length&&n/e<5?"":l}},{key:"animateTreemap",value:function(t,e,i,a){var s=new m(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Wt=86400,Bt=10/Wt,Gt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return s(t,[{key:"calculateTimeScaleTicks",value:function(t,e){var i=this,a=this.w;if(a.globals.allSeriesCollapsed)return a.globals.labels=[],a.globals.timescaleLabels=[],[];var s=new C(this.ctx),r=(e-t)/864e5;this.determineInterval(r),a.globals.disableZoomIn=!1,a.globals.disableZoomOut=!1,r5e4&&(a.globals.disableZoomOut=!0);var o=s.getTimeUnitsfromTimestamp(t,e,this.utc),n=a.globals.gridWidth/r,l=n/24,h=l/60,c=h/60,g=Math.floor(24*r),u=Math.floor(1440*r),f=Math.floor(r*Wt),p=Math.floor(r),x=Math.floor(r/30),b=Math.floor(r/365),v={minMillisecond:o.minMillisecond,minSecond:o.minSecond,minMinute:o.minMinute,minHour:o.minHour,minDate:o.minDate,minMonth:o.minMonth,minYear:o.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:n,hoursWidthOnXAxis:l,minutesWidthOnXAxis:h,secondsWidthOnXAxis:c,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:g,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(m);break;case"months":case"half_year":this.generateMonthScale(m);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(m);break;case"hours":this.generateHourScale(m);break;case"minutes_fives":case"minutes":this.generateMinuteScale(m);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var e={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?d(d({},e),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?d(d({},e),{},{value:t.value}):"minute"===t.unit?d(d({},e),{},{value:t.value,minute:t.value}):"second"===t.unit?d(d({},e),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,s=Math.ceil(a.globals.gridWidth/120),r=t.value;void 0!==a.config.xaxis.tickAmount&&(s=a.config.xaxis.tickAmount),y.length>s&&(e=Math.floor(y.length/s));var o=!1,n=!1;switch(i.tickInterval){case"years":"year"===t.unit&&(o=!0);break;case"half_year":e=7,"year"===t.unit&&(o=!0);break;case"months":e=1,"year"===t.unit&&(o=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(o=!0),30===r&&(n=!0);break;case"months_days":e=10,"month"===t.unit&&(o=!0),30===r&&(n=!0);break;case"week_days":e=8,"month"===t.unit&&(o=!0);break;case"days":e=1,"month"===t.unit&&(o=!0);break;case"hours":"day"===t.unit&&(o=!0);break;case"minutes_fives":case"seconds_fives":r%5!=0&&(n=!0);break;case"seconds_tens":r%10!=0&&(n=!0)}if("hours"===i.tickInterval||"minutes_fives"===i.tickInterval||"seconds_tens"===i.tickInterval||"seconds_fives"===i.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new lt(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new C(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:v.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:v.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=v.monthMod(a+1);var g=s+d,u=v.monthMod(n),f=n;0===n&&(c="year",f=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:f,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:v.monthMod(a)});for(var p=n+1,x=l,b=0,m=1;bo.determineDaysOfMonths(e+1,i)?(h=1,n="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=v.monthMod(e.minMonth),n="month",h=e.minDate):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:v.monthMod(u),day:h});for(var f=d,p=0;pn.determineDaysOfMonths(e+1,s)&&(p=1,e+=1),{month:e,date:p}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,f=u;60===d&&(g=0,f=u=e.minHour);var p=i;f>=24&&(f=0,p+=1,l="day");var x=h(p,a).month;x=c(p,x),this.timeScaleArray.push({position:g,value:u,unit:l,day:p,hour:f,year:s,month:v.monthMod(x)}),f++;for(var b=g,m=0;m=24)f=0,l="day",x=h(p+=1,x).month,x=c(p,x);var y=this._getYear(s,x,0);b=60*r+b;var w=0===f?p:f;this.timeScaleArray.push({position:b,value:w,unit:l,hour:f,day:p,year:y,month:v.monthMod(x)}),f++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,f=n,p=s,x=(60-i-e/1e3)*h,b=0;b=60&&(d=0,24===(p+=1)&&(p=0)),this.timeScaleArray.push({position:x,value:d,unit:"minute",hour:p,minute:d,day:g,year:this._getYear(f,u,0),month:v.monthMod(u)}),x+=l,d++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,f=n,p=s,x=(1e3-e)/1e3*l,b=0;b=60&&(c=0,++d>=60&&(d=0,24===++p&&(p=0))),this.timeScaleArray.push({position:x,value:c,unit:"second",hour:p,minute:d,second:c,day:g,year:this._getYear(f,u,0),month:v.monthMod(u)}),x+=l,c++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new C(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(n=l.year),"month"===t.unit&&(n=l.month),"day"===t.unit&&(n=l.day),"hour"===t.unit&&(n=l.hour),"minute"===t.unit&&(n=l.minute),"second"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new w(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Vt=function(){function t(e,a){i(this,t),this.ctx=a,this.w=a.w,this.el=e}return s(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),w.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background="dark"!==e.theme.mode||e.chart.background?"light"!==e.theme.mode||e.chart.background?e.chart.background:"#fff":"#424242",this.setSVGDimensions(),t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject"),w.setAttrs(t.dom.elLegendForeign,{x:0,y:0,width:t.svgWidth,height:t.svgHeight}),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),t.dom.elLegendForeign.appendChild(t.dom.elLegendWrap),t.dom.Paper.node.appendChild(t.dom.elLegendForeign),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]},g={series:[],i:[]},u={series:[],seriesRangeEnd:[],i:[]},p=void 0!==a.chart.type?a.chart.type:"line",x=null,b=0;s.series.forEach((function(e,a){var f=t[a].type||p;switch(f){case"column":case"bar":h.series.push(e),h.i.push(a),i.globals.columnSeries=h;break;case"area":o.series.push(e),o.i.push(a);break;case"line":r.series.push(e),r.i.push(a);break;case"scatter":n.series.push(e),n.i.push(a);break;case"bubble":l.series.push(e),l.i.push(a);break;case"candlestick":c.series.push(e),c.i.push(a);break;case"boxPlot":d.series.push(e),d.i.push(a);break;case"rangeBar":g.series.push(e),g.i.push(a);break;case"rangeArea":u.series.push(s.seriesRangeStart[a]),u.seriesRangeEnd.push(s.seriesRangeEnd[a]),u.i.push(a);break;case"heatmap":case"treemap":case"pie":case"donut":case"polarArea":case"radialBar":case"radar":x=f;break;default:console.warn("You have specified an unrecognized series type (",f,").")}p!==f&&"scatter"!==f&&b++})),b>0&&(null!==x&&console.warn("Chart or series type ",x," can not appear with other chart or series types."),h.series.length>0&&a.plotOptions.bar.horizontal&&(b-=h.length,h={series:[],i:[]},i.globals.columnSeries={series:[],i:[]},console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"))),s.comboCharts||(s.comboCharts=b>0);var v=new Dt(this.ctx,e),m=new St(this.ctx,e);this.ctx.pie=new Mt(this.ctx);var y=new Tt(this.ctx);this.ctx.rangeBar=new zt(this.ctx,e);var w=new It(this.ctx),A=[];if(s.comboCharts){var S,C,L=new k(this.ctx);if(o.series.length>0)(S=A).push.apply(S,f(L.drawSeriesByGroup(o,s.areaGroups,"area",v)));if(h.series.length>0)if(i.config.chart.stacked){var P=new At(this.ctx,e);A.push(P.draw(h.series,h.i))}else this.ctx.bar=new kt(this.ctx,e),A.push(this.ctx.bar.draw(h.series,h.i));if(u.series.length>0&&A.push(v.draw(u.series,"rangeArea",u.i,u.seriesRangeEnd)),r.series.length>0)(C=A).push.apply(C,f(L.drawSeriesByGroup(r,s.lineGroups,"line",v)));if(c.series.length>0&&A.push(m.draw(c.series,"candlestick",c.i)),d.series.length>0&&A.push(m.draw(d.series,"boxPlot",d.i)),g.series.length>0&&A.push(this.ctx.rangeBar.draw(g.series,g.i)),n.series.length>0){var M=new Dt(this.ctx,e,!0);A.push(M.draw(n.series,"scatter",n.i))}if(l.series.length>0){var I=new Dt(this.ctx,e,!0);A.push(I.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":A=v.draw(s.series,"line");break;case"area":A=v.draw(s.series,"area");break;case"bar":if(a.chart.stacked)A=new At(this.ctx,e).draw(s.series);else this.ctx.bar=new kt(this.ctx,e),A=this.ctx.bar.draw(s.series);break;case"candlestick":A=new St(this.ctx,e).draw(s.series,"candlestick");break;case"boxPlot":A=new St(this.ctx,e).draw(s.series,a.chart.type);break;case"rangeBar":A=this.ctx.rangeBar.draw(s.series);break;case"rangeArea":A=v.draw(s.seriesRangeStart,"rangeArea",void 0,s.seriesRangeEnd);break;case"heatmap":A=new Lt(this.ctx,e).draw(s.series);break;case"treemap":A=new Nt(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":A=this.ctx.pie.draw(s.series);break;case"radialBar":A=y.draw(s.series);break;case"radar":A=w.draw(s.series);break;default:A=v.draw(s.series)}return A}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;e.chart.width||(e.chart.width="100%"),e.chart.height||(e.chart.height="auto"),t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=v.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?v.isNumber(i[0])&&(0===i[0].width&&(i=v.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=String(e.chart.height).toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=v.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),w.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};w.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new ct(this.ctx).legendHelpers.getLegendDimensions().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=v.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),t.config.chart.height&&String(t.config.chart.height).indexOf("%")>0||(e.dom.elWrap.style.height=l+"px",w.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px")}},{key:"coreCalculations",value:function(){new Z(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new D,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new tt(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new tt(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Gt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new k(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,e=this.w;if(e.config.chart.brush.enabled&&"function"!=typeof e.config.chart.events.selection){var i=Array.isArray(e.config.chart.brush.targets)?e.config.chart.brush.targets:[e.config.chart.brush.target];i.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),e.config.chart.events.selection=function(t,e){i.forEach((function(t){ApexCharts.getChartByID(t).ctx.updateHelpers._updateOptions({xaxis:{min:e.xaxis.min,max:e.xaxis.max}},!1,!1,!1,!1)}))}}}}]),t}(),jt=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"_updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(o){var n=[e.ctx];s&&(n=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(n=[e.ctx],e.ctx.w.globals.isExecCalled=!1),n.forEach((function(s,l){var h=s.w;if(h.globals.shouldAnimate=a,i||(h.globals.resized=!0,h.globals.dataChanged=!0,a&&s.series.getPreviousPaths()),t&&"object"===x(t)&&(s.config=new R(t),t=k.extendArrayProps(s.config,t,h),s.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,h.config=v.extend(h.config,t),r&&(h.globals.lastXAxis=t.xaxis?v.clone(t.xaxis):[],h.globals.lastYAxis=t.yaxis?v.clone(t.yaxis):[],h.globals.initialConfig=v.extend({},h.config),h.globals.initialSeries=v.clone(h.config.series),t.series))){for(var c=0;c2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialConfig.series=v.clone(o.config.series),o.globals.initialSeries=v.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,e){var i=this.w,a=i.config.series[e];return d(d({},i.config.series[e]),{},{name:t.name?t.name:null==a?void 0:a.name,color:t.color?t.color:null==a?void 0:a.color,type:t.type?t.type:null==a?void 0:a.type,group:t.group?t.group:null==a?void 0:a.group,hidden:void 0!==t.hidden?t.hidden:null==a?void 0:a.hidden,data:t.data?t.data:null==a?void 0:a.data,zIndex:void 0!==t.zIndex?t.zIndex:e})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new w(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new F(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){return t.chart&&t.chart.stacked&&"100%"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();Ht="undefined"!=typeof window?window:void 0,Ot=function(t,e){var i=(void 0!==this?this:t).SVG=function(t){if(i.supported)return t=new i.Doc(t),i.parser.draw||i.prepare(),t};if(i.ns="http://www.w3.org/2000/svg",i.xmlns="http://www.w3.org/2000/xmlns/",i.xlink="http://www.w3.org/1999/xlink",i.svgjs="http://svgjs.dev",i.supported=!0,!i.supported)return!1;i.did=1e3,i.eid=function(t){return"Svgjs"+c(t)+i.did++},i.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute("id",this.eid(t)),i},i.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var a=t.length-1;a>=0;a--)if(t[a])for(var s in e)t[a].prototype[s]=e[s];i.Set&&i.Set.inherit&&i.Set.inherit()},i.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,i.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&i.extend(e,t.extend),t.construct&&i.extend(t.parent||i.Container,t.construct),e},i.adopt=function(e){return e?e.instance?e.instance:((a="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new i.Nested:new i.Doc:"linearGradient"==e.nodeName?new i.Gradient("linear"):"radialGradient"==e.nodeName?new i.Gradient("radial"):i[c(e.nodeName)]?new(i[c(e.nodeName)]):new i.Element(e)).type=e.nodeName,a.node=e,e.instance=a,a instanceof i.Doc&&a.namespace().defs(),a.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),a):null;var a},i.prepare=function(){var t=e.getElementsByTagName("body")[0],a=(t?new i.Doc(t):i.adopt(e.documentElement).nested()).size(2,0);i.parser={body:t||e.documentElement,draw:a.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:a.polyline().node,path:a.path().node,native:i.create("svg")}},i.parser={native:i.create("svg")},e.addEventListener("DOMContentLoaded",(function(){i.parser.draw||i.prepare()}),!1),i.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},i.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new i.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),i.Color.test=function(t){return t+="",i.regex.isHex.test(t)||i.regex.isRgb.test(t)},i.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},i.Color.isColor=function(t){return i.Color.isRgb(t)||i.Color.test(t)},i.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},i.extend(i.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),i.PointArray=function(t,e){i.Array.call(this,t,e||[[0,0]])},i.PointArray.prototype=new i.Array,i.PointArray.prototype.constructor=i.PointArray;for(var a={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},s="mlhvqtcsaz".split(""),r=0,o=s.length;rh);return r},bbox:function(){return i.parser.draw||i.prepare(),i.parser.path.setAttribute("d",this.toString()),i.parser.path.getBBox()}}),i.Number=i.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(i.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof i.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new i.Number(t),new i.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new i.Number(t),new i.Number(this-t,this.unit||t.unit)},times:function(t){return t=new i.Number(t),new i.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new i.Number(t),new i.Number(this/t,this.unit||t.unit)},to:function(t){var e=new i.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new i.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new i.Number(this.destination).minus(this).times(t).plus(this):this}}}),i.Element=i.invent({create:function(t){this._stroke=i.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var a=g(this,t,e);return this.width(new i.Number(a.width)).height(new i.Number(a.height))},clone:function(t){this.writeDataToDom();var e=p(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(i.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return i.get(this.attr(t))},parent:function(e){var a=this;if(!a.node.parentNode)return null;if(a=i.adopt(a.node.parentNode),!e)return a;for(;a&&a.node instanceof t.SVGElement;){if("string"==typeof e?a.matches(e):a instanceof e)return a;if(!a.node.parentNode||"#document"==a.node.parentNode.nodeName)return null;a=i.adopt(a.node.parentNode)}},doc:function(){return this instanceof i.Doc?this:this.parent(i.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var a=e.createElementNS("http://www.w3.org/2000/svg","svg");if(!(t&&this instanceof i.Parent))return a.appendChild(t=e.createElementNS("http://www.w3.org/2000/svg","svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),a.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");a.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=a.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},i.morph=function(t){return function(e,a){return new i.MorphObj(e,a).at(t)}},i.Situation=i.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new i.Number(t.duration).valueOf(),this.delay=new i.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),i.FX=i.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,a){"object"===x(t)&&(e=t.ease,a=t.delay,t=t.duration);var s=new i.Situation({duration:t||1e3,delay:a||0,ease:i.easing[e||"-"]||e});return this.queue(s),this},target:function(t){return t&&t instanceof i.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof i.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof i.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var a in e.animations){t=this.target()[a](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[a])||(e.animations[a]=[e.animations[a]]);for(var s=t.length;s--;)e.animations[a][s]instanceof i.Number&&(t[s]=new i.Number(t[s])),e.animations[a][s]=t[s].morph(e.animations[a][s])}for(var a in e.attrs)e.attrs[a]=new i.MorphObj(this.target().attr(a),e.attrs[a]);for(var a in e.styles)e.styles[a]=new i.MorphObj(this.target().style(a),e.styles[a]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),a=function(a){a.detail.situation==e&&t.call(this,a.detail.pos,i.morph(a.detail.pos),a.detail.eased,e)};return this.target().off("during.fx",a).on("during.fx",a),this.after((function(){this.off("during.fx",a)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,a=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a[r].apply(a,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a.attr.apply(a,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),a.style.apply(a,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--a)this[v[a]]=null!=t[v[a]]?t[v[a]]:e[v[a]]},extend:{extract:function(){var t=u(this,0,1);u(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new i.Matrix(this)}},clone:function(){return new i.Matrix(this)},morph:function(t){return this.destination=new i.Matrix(t),this},multiply:function(t){return new i.Matrix(this.native().multiply(function(t){return t instanceof i.Matrix||(t=new i.Matrix(t)),t}(t).native()))},inverse:function(){return new i.Matrix(this.native().inverse())},translate:function(t,e){return new i.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=i.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return"matrix("+b(this.a)+","+b(this.b)+","+b(this.c)+","+b(this.d)+","+b(this.e)+","+b(this.f)+")"}},parent:i.Element,construct:{ctm:function(){return new i.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof i.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new i.Matrix(e)}return new i.Matrix(this.node.getScreenCTM())}}}),i.Point=i.invent({create:function(t,e){var i;i=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===x(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=i.x,this.y=i.y},extend:{clone:function(){return new i.Point(this)},morph:function(t,e){return this.destination=new i.Point(t,e),this}}}),i.extend(i.Element,{point:function(t,e){return new i.Point(t,e).transform(this.screenCTM().inverse())}}),i.extend(i.Element,{attr:function(t,e,a){if(null==t){for(t={},a=(e=this.node.attributes).length-1;a>=0;a--)t[e[a].nodeName]=i.regex.isNumber.test(e[a].nodeValue)?parseFloat(e[a].nodeValue):e[a].nodeValue;return t}if("object"===x(t))for(var s in t)this.attr(s,t[s]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?i.defaults.attrs[t]:i.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(i.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof i.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new i.Number(e):i.Color.isColor(e)?e=new i.Color(e):Array.isArray(e)&&(e=new i.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof a?this.node.setAttributeNS(a,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),i.extend(i.Element,{transform:function(t,e){var a;return"object"!==x(t)?(a=new i.Matrix(this).extract(),"string"==typeof t?a[t]:a):(a=new i.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(a=e?a.multiply(new i.Matrix(t)):new i.Matrix(t)),this.attr("transform",a))}}),i.extend(i.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(i.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(i.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(f(e[1])):t[e[0]].apply(t,e[1])}),new i.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),i.Transformation=i.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var i=0,a=this.arguments.length;i=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return i.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var a=this.children(),s=0,r=a.length;s=0;a--)e.childNodes[a]instanceof t.SVGElement&&p(e.childNodes[a]);return i.adopt(e).id(i.eid(e.nodeName))}function b(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||i.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var a=n[t].length-1;a>=0;a--)null!=e[n[t][a]]&&this.attr(n.prefix(t,n[t][a]),e[n[t][a]]);return this},i.extend(i.Element,i.FX,e)})),i.extend(i.Element,i.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new i.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new i.Number(t).plus(this instanceof i.FX?0:this.x()),!0)},dy:function(t){return this.y(new i.Number(t).plus(this instanceof i.FX?0:this.y()),!0)}}),i.extend(i.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),i.Set=i.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new i.Set(t)}}}),i.FX.Set=i.invent({create:function(t){this.set=t}}),i.Set.inherit=function(){var t=[];for(var e in i.Shape.prototype)"function"==typeof i.Shape.prototype[e]&&"function"!=typeof i.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){i.Set.prototype[t]=function(){for(var e=0,a=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),i.get=function(t){var a=e.getElementById(function(t){var e=(t||"").toString().match(i.regex.reference);if(e)return e[1]}(t)||t);return i.adopt(a)},i.select=function(t,a){return new i.Set(i.utils.map((a||e).querySelectorAll(t),(function(t){return i.adopt(t)})))},i.extend(i.Parent,{select:function(t){return i.select(t,this.node)}});var v="abcdef".split("");if("function"!=typeof t.CustomEvent){var m=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};m.prototype=t.Event.prototype,i.CustomEvent=m}else i.CustomEvent=t.CustomEvent;return i},"function"==typeof define&&define.amd?define((function(){return Ot(Ht,Ht.document)})):"object"===("undefined"==typeof exports?"undefined":x(exports))&&"undefined"!=typeof module?module.exports=Ht.document?Ot(Ht,Ht.document):function(t){return Ot(t,t.document)}:Ht.SVG=Ot(Ht,Ht.document), -/*! svg.filter.js - v2.0.2 - 2016-02-24 - * https://github.com/wout/svg.filter.js - * Copyright (c) 2016 Wout Fierens; Licensed MIT */ -function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",function(t){if(!Array.isArray(t))return t;for(var e=0,i=t.length,a=[];e1&&(M*=a=Math.sqrt(a),I*=a);s=(new SVG.Matrix).rotate(T).scale(1/M,1/I).rotate(-T),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,z===X&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var o=this.options[r[s]];"string"==typeof o?o=o.length>0?o.split(/\s*,\s*/i):[]:"boolean"==typeof o&&"points"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var _t=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","isSeriesHidden","highlightSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","exportToCSV","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new m(this.ctx),this.ctx.axes=new K(this.ctx),this.ctx.core=new Vt(this.ctx.el,this.ctx),this.ctx.config=new R({}),this.ctx.data=new V(this.ctx),this.ctx.grid=new U(this.ctx),this.ctx.graphics=new w(this.ctx),this.ctx.coreUtils=new k(this.ctx),this.ctx.crosshairs=new tt(this.ctx),this.ctx.events=new J(this.ctx),this.ctx.exports=new j(this.ctx),this.ctx.fill=new O(this.ctx),this.ctx.localization=new Q(this.ctx),this.ctx.options=new z,this.ctx.responsive=new et(this.ctx),this.ctx.series=new G(this.ctx),this.ctx.theme=new it(this.ctx),this.ctx.formatters=new L(this.ctx),this.ctx.titleSubtitle=new at(this.ctx),this.ctx.legend=new ct(this.ctx),this.ctx.toolbar=new dt(this.ctx),this.ctx.tooltip=new mt(this.ctx),this.ctx.dimensions=new lt(this.ctx),this.ctx.updateHelpers=new jt(this.ctx),this.ctx.zoomPanSelection=new gt(this.ctx),this.ctx.w.globals.tooltip=new mt(this.ctx)}}]),t}(),Ut=function(){function t(e){i(this,t),this.ctx=e,this.w=e.w}return s(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elLegendWrap=null,r.elLegendForeign=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),qt=new WeakMap;var Zt=function(){function t(e,a){i(this,t),this.opts=a,this.ctx=this,this.w=new H(a).init(),this.el=e,this.w.globals.cuid=v.randomId(),this.w.globals.chartID=this.w.config.chart.id?v.escapeString(this.w.config.chart.id):this.w.globals.cuid,new _t(this).initModules(),this.create=v.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return s(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;"function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();"none"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),qt.set(e,s)}(t.el.parentNode,t.parentResizeHandler);var s=t.el.getRootNode&&t.el.getRootNode(),r=v.is("ShadowRoot",s),o=t.el.ownerDocument,n=r?s.getElementById("apexcharts-css"):o.getElementById("apexcharts-css");if(!n){var l;(n=document.createElement("style")).id="apexcharts-css",n.textContent='@keyframes opaque {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 1\n }\n}\n\n@keyframes resizeanim {\n\n 0%,\n to {\n opacity: 0\n }\n}\n\n.apexcharts-canvas {\n position: relative;\n user-select: none\n}\n\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, .5);\n box-shadow: 0 0 1px rgba(255, 255, 255, .5);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)\n}\n\n.apexcharts-inner {\n position: relative\n}\n\n.apexcharts-text tspan {\n font-family: inherit\n}\n\nrect.legend-mouseover-inactive,\n.legend-mouseover-inactive rect,\n.legend-mouseover-inactive path,\n.legend-mouseover-inactive circle,\n.legend-mouseover-inactive line,\n.legend-mouseover-inactive text.apexcharts-yaxis-title-text,\n.legend-mouseover-inactive text.apexcharts-yaxis-label {\n transition: .15s ease all;\n opacity: .2\n}\n\n.apexcharts-legend-text {\n padding-left: 15px;\n margin-left: -15px;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, .96)\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30, 30, 30, .8)\n}\n\n.apexcharts-tooltip * {\n font-family: inherit\n}\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #eceff1;\n border-bottom: 1px solid #ddd\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, .7);\n border-bottom: 1px solid #333\n}\n\n.apexcharts-tooltip-text-goals-value,\n.apexcharts-tooltip-text-y-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n margin-left: 5px;\n font-weight: 600\n}\n\n.apexcharts-tooltip-text-goals-label:empty,\n.apexcharts-tooltip-text-goals-value:empty,\n.apexcharts-tooltip-text-y-label:empty,\n.apexcharts-tooltip-text-y-value:empty,\n.apexcharts-tooltip-text-z-value:empty,\n.apexcharts-tooltip-title:empty {\n display: none\n}\n\n.apexcharts-tooltip-text-goals-label,\n.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px\n}\n\n.apexcharts-tooltip-goals-group,\n.apexcharts-tooltip-text-goals-label,\n.apexcharts-tooltip-text-goals-value {\n display: flex\n}\n\n.apexcharts-tooltip-text-goals-label:not(:empty),\n.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0;\n margin-right: 10px;\n border-radius: 50%\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,\n.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px\n}\n\n.apexcharts-custom-tooltip,\n.apexcharts-tooltip-box {\n padding: 4px 8px\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: 700\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: 700;\n display: block;\n margin-bottom: 5px\n}\n\n.apexcharts-xaxistooltip,\n.apexcharts-yaxistooltip {\n opacity: 0;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #eceff1;\n border: 1px solid #90a4ae\n}\n\n.apexcharts-xaxistooltip {\n padding: 9px 10px;\n transition: .15s ease all\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, .7);\n border: 1px solid rgba(0, 0, 0, .5);\n color: #fff\n}\n\n.apexcharts-xaxistooltip:after,\n.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-left: -6px\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-left: -7px\n}\n\n.apexcharts-xaxistooltip-bottom:after,\n.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%\n}\n\n.apexcharts-xaxistooltip-top:after,\n.apexcharts-xaxistooltip-top:before {\n top: 100%\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-yaxistooltip {\n padding: 4px 10px\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0, 0, 0, .7);\n border: 1px solid rgba(0, 0, 0, .5);\n color: #fff\n}\n\n.apexcharts-yaxistooltip:after,\n.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-top: -6px\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-top: -7px\n}\n\n.apexcharts-yaxistooltip-left:after,\n.apexcharts-yaxistooltip-left:before {\n left: 100%\n}\n\n.apexcharts-yaxistooltip-right:after,\n.apexcharts-yaxistooltip-right:before {\n right: 100%\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0, 0, 0, .5)\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none\n}\n\n.apexcharts-xcrosshairs,\n.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: .15s ease all\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,\n.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0\n}\n\n.apexcharts-selection-rect {\n cursor: move\n}\n\n.svg_select_boundingRect,\n.svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_boundingRect,\n.apexcharts-selection-rect+g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_points_l,\n.apexcharts-selection-rect+g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-menu-icon,\n.apexcharts-pan-icon,\n.apexcharts-reset-icon,\n.apexcharts-selection-icon,\n.apexcharts-toolbar-custom-icon,\n.apexcharts-zoom-icon,\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6e8192;\n text-align: center\n}\n\n.apexcharts-menu-icon svg,\n.apexcharts-reset-icon svg,\n.apexcharts-zoom-icon svg,\n.apexcharts-zoomin-icon svg,\n.apexcharts-zoomout-icon svg {\n fill: #6e8192\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(.76)\n}\n\n.apexcharts-theme-dark .apexcharts-menu-icon svg,\n.apexcharts-theme-dark .apexcharts-pan-icon svg,\n.apexcharts-theme-dark .apexcharts-reset-icon svg,\n.apexcharts-theme-dark .apexcharts-selection-icon svg,\n.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoom-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomin-icon svg,\n.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\n fill: #f3f4f5\n}\n\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,\n.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\n fill: #008ffb\n}\n\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,\n.apexcharts-theme-light .apexcharts-reset-icon:hover svg,\n.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,\n.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,\n.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\n fill: #333\n}\n\n.apexcharts-menu-icon,\n.apexcharts-selection-icon {\n position: relative\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px\n}\n\n.apexcharts-menu-icon,\n.apexcharts-reset-icon,\n.apexcharts-zoom-icon {\n transform: scale(.85)\n}\n\n.apexcharts-zoomin-icon,\n.apexcharts-zoomout-icon {\n transform: scale(.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px\n}\n\n.apexcharts-pan-icon {\n transform: scale(.62);\n position: relative;\n left: 1px;\n top: 0\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6e8192;\n stroke-width: 2\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008ffb\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0 6px 2px;\n display: flex;\n justify-content: space-between;\n align-items: center\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: .15s ease all;\n pointer-events: none\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: .15s ease all\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0, 0, 0, .7);\n color: #fff\n}\n\n@media screen and (min-width:768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1\n }\n}\n\n.apexcharts-canvas .apexcharts-element-hidden,\n.apexcharts-datalabel.apexcharts-element-hidden,\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-hidden-element-shown {\n opacity: 1;\n transition: 0.25s ease all;\n}\n\n.apexcharts-datalabel,\n.apexcharts-datalabel-label,\n.apexcharts-datalabel-value,\n.apexcharts-datalabels,\n.apexcharts-pie-label {\n cursor: default;\n pointer-events: none\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: .3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease\n}\n\n.apexcharts-radialbar-label {\n cursor: pointer;\n}\n\n.apexcharts-annotation-rect,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-gridline,\n.apexcharts-line,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-point-annotation-label,\n.apexcharts-radar-series path:not(.apexcharts-marker),\n.apexcharts-radar-series polygon,\n.apexcharts-toolbar svg,\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-xaxis-annotation-label,\n.apexcharts-yaxis-annotation-label,\n.apexcharts-zoom-rect {\n pointer-events: none\n}\n\n.apexcharts-tooltip-active .apexcharts-marker {\n transition: .15s ease all\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n height: 100%;\n width: 100%;\n overflow: hidden\n}\n\n.contract-trigger:before,\n.resize-triggers,\n.resize-triggers>div {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0\n}\n\n.resize-triggers>div {\n height: 100%;\n width: 100%;\n background: #eee;\n overflow: auto\n}\n\n.contract-trigger:before {\n overflow: hidden;\n width: 200%;\n height: 200%\n}\n\n.apexcharts-bar-goals-markers {\n pointer-events: none\n}\n\n.apexcharts-bar-shadows {\n pointer-events: none\n}\n\n.apexcharts-rangebar-goals-markers {\n pointer-events: none\n}';var h=(null===(l=t.opts.chart)||void 0===l?void 0:l.nonce)||t.w.config.chart.nonce;h&&n.setAttribute("nonce",h),r?s.prepend(n):o.head.appendChild(n)}var c=t.create(t.w.config.series,{});if(!c)return e(t);t.mount(c).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(c)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this,a=this.w;new _t(this).initModules();var s=this.w.globals;(s.noData=!1,s.animationEnded=!1,this.responsive.checkResponsiveConfig(e),a.config.xaxis.convertedCatToNumeric)&&new F(a.config).convertCatToNumericXaxis(a.config,this.ctx);if(null===this.el)return s.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===a.config.chart.type&&(a.config.grid.show=!1,a.config.yaxis[0].show=!1),0===s.svgWidth)return s.animationEnded=!0,null;var r=t;t.forEach((function(t,e){t.hidden&&(r=i.legend.legendHelpers.getSeriesAfterCollapsing({realIndex:e}))}));var o=k.checkComboSeries(r,a.config.chart.type);s.comboCharts=o.comboCharts,s.comboBarCount=o.comboBarCount;var n=r.every((function(t){return t.data&&0===t.data.length}));(0===r.length||n&&s.collapsedSeries.length<1)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(r),this.theme.init(),new N(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),s.noData&&s.collapsedSeries.length!==s.series.length&&!a.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),s.axisCharts&&(this.core.coreCalculations(),"category"!==a.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=a.globals.minX,this.ctx.toolbar.maxX=a.globals.maxX),this.formatters.heatmapLabelFormatters(),new k(this).getLargestMarkerSize(),this.dimensions.plotCoords();var l=this.core.xySettings();this.grid.createGridMask();var h=this.core.plotChartType(r,l),c=new B(this);return c.bringForward(),a.config.dataLabels.background.enabled&&c.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:h,xyRatios:l,dimensions:{plot:{left:a.globals.translateX,top:a.globals.translateY,width:a.globals.gridWidth,height:a.globals.gridHeight}}}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new U(i);var o,n,l=i.grid.drawGrid();(i.annotations=new X(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position)&&(l&&a.globals.dom.elGraphical.add(l.el),null!=l&&null!==(o=l.elGridBorders)&&void 0!==o&&o.node&&a.globals.dom.elGraphical.add(l.elGridBorders));if(Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=qt.get(t))&&(e.disconnect(),qt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===v.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Ut(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Z(this.ctx).getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Z(this.ctx).getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new j(this.ctx).dataURI(t)}},{key:"exportToCSV",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new j(this.ctx).exportToCSV(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=v.escapeString(t);if(Apex._chartInstances){var i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i2?s-2:0),o=2;o 1 ? // optimisation for single table case - _fnExtend( o, options, true ) : - options; - - - var i=0, iLen; - var sId = this.getAttribute( 'id' ); - var defaults = DataTable.defaults; - var $this = $(this); - - - /* Sanity check */ - if ( this.nodeName.toLowerCase() != 'table' ) - { - _fnLog( null, 0, 'Non-table node initialisation ('+this.nodeName+')', 2 ); - return; - } - - $(this).trigger( 'options.dt', oInit ); - - /* Backwards compatibility for the defaults */ - _fnCompatOpts( defaults ); - _fnCompatCols( defaults.column ); - - /* Convert the camel-case defaults to Hungarian */ - _fnCamelToHungarian( defaults, defaults, true ); - _fnCamelToHungarian( defaults.column, defaults.column, true ); - - /* Setting up the initialisation object */ - _fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ), true ); - - - - /* Check to see if we are re-initialising a table */ - var allSettings = DataTable.settings; - for ( i=0, iLen=allSettings.length ; i').prependTo(this), - fastData: function (row, column, type) { - return _fnGetCellData(oSettings, row, column, type); - } - } ); - oSettings.nTable = this; - oSettings.oInit = oInit; - - allSettings.push( oSettings ); - - // Make a single API instance available for internal handling - oSettings.api = new _Api( oSettings ); - - // Need to add the instance after the instance after the settings object has been added - // to the settings array, so we can self reference the table instance if more than one - oSettings.oInstance = (_that.length===1) ? _that : $this.dataTable(); - - // Backwards compatibility, before we apply all the defaults - _fnCompatOpts( oInit ); - - // If the length menu is given, but the init display length is not, use the length menu - if ( oInit.aLengthMenu && ! oInit.iDisplayLength ) - { - oInit.iDisplayLength = Array.isArray(oInit.aLengthMenu[0]) - ? oInit.aLengthMenu[0][0] - : $.isPlainObject( oInit.aLengthMenu[0] ) - ? oInit.aLengthMenu[0].value - : oInit.aLengthMenu[0]; - } - - // Apply the defaults and init options to make a single init object will all - // options defined from defaults and instance options. - oInit = _fnExtend( $.extend( true, {}, defaults ), oInit ); - - - // Map the initialisation options onto the settings object - _fnMap( oSettings.oFeatures, oInit, [ - "bPaginate", - "bLengthChange", - "bFilter", - "bSort", - "bSortMulti", - "bInfo", - "bProcessing", - "bAutoWidth", - "bSortClasses", - "bServerSide", - "bDeferRender" - ] ); - _fnMap( oSettings, oInit, [ - "ajax", - "fnFormatNumber", - "sServerMethod", - "aaSorting", - "aaSortingFixed", - "aLengthMenu", - "sPaginationType", - "iStateDuration", - "bSortCellsTop", - "iTabIndex", - "sDom", - "fnStateLoadCallback", - "fnStateSaveCallback", - "renderer", - "searchDelay", - "rowId", - "caption", - "layout", - "orderDescReverse", - "typeDetect", - [ "iCookieDuration", "iStateDuration" ], // backwards compat - [ "oSearch", "oPreviousSearch" ], - [ "aoSearchCols", "aoPreSearchCols" ], - [ "iDisplayLength", "_iDisplayLength" ] - ] ); - _fnMap( oSettings.oScroll, oInit, [ - [ "sScrollX", "sX" ], - [ "sScrollXInner", "sXInner" ], - [ "sScrollY", "sY" ], - [ "bScrollCollapse", "bCollapse" ] - ] ); - _fnMap( oSettings.oLanguage, oInit, "fnInfoCallback" ); - - /* Callback functions which are array driven */ - _fnCallbackReg( oSettings, 'aoDrawCallback', oInit.fnDrawCallback ); - _fnCallbackReg( oSettings, 'aoStateSaveParams', oInit.fnStateSaveParams ); - _fnCallbackReg( oSettings, 'aoStateLoadParams', oInit.fnStateLoadParams ); - _fnCallbackReg( oSettings, 'aoStateLoaded', oInit.fnStateLoaded ); - _fnCallbackReg( oSettings, 'aoRowCallback', oInit.fnRowCallback ); - _fnCallbackReg( oSettings, 'aoRowCreatedCallback', oInit.fnCreatedRow ); - _fnCallbackReg( oSettings, 'aoHeaderCallback', oInit.fnHeaderCallback ); - _fnCallbackReg( oSettings, 'aoFooterCallback', oInit.fnFooterCallback ); - _fnCallbackReg( oSettings, 'aoInitComplete', oInit.fnInitComplete ); - _fnCallbackReg( oSettings, 'aoPreDrawCallback', oInit.fnPreDrawCallback ); - - oSettings.rowIdFn = _fnGetObjectDataFn( oInit.rowId ); - - /* Browser support detection */ - _fnBrowserDetect( oSettings ); - - var oClasses = oSettings.oClasses; - - $.extend( oClasses, DataTable.ext.classes, oInit.oClasses ); - $this.addClass( oClasses.table ); - - if (! oSettings.oFeatures.bPaginate) { - oInit.iDisplayStart = 0; - } - - if ( oSettings.iInitDisplayStart === undefined ) - { - /* Display start point, taking into account the save saving */ - oSettings.iInitDisplayStart = oInit.iDisplayStart; - oSettings._iDisplayStart = oInit.iDisplayStart; - } - - var defer = oInit.iDeferLoading; - if ( defer !== null ) - { - oSettings.deferLoading = true; - - var tmp = Array.isArray(defer); - oSettings._iRecordsDisplay = tmp ? defer[0] : defer; - oSettings._iRecordsTotal = tmp ? defer[1] : defer; - } - - /* - * Columns - * See if we should load columns automatically or use defined ones - */ - var columnsInit = []; - var thead = this.getElementsByTagName('thead'); - var initHeaderLayout = _fnDetectHeader( oSettings, thead[0] ); - - // If we don't have a columns array, then generate one with nulls - if ( oInit.aoColumns ) { - columnsInit = oInit.aoColumns; - } - else if ( initHeaderLayout.length ) { - for ( i=0, iLen=initHeaderLayout[0].length ; i').appendTo( $this ); - } - - caption.html( oSettings.caption ); - } - - // Store the caption side, so we can remove the element from the document - // when creating the element - if (caption.length) { - caption[0]._captionSide = caption.css('caption-side'); - oSettings.captionNode = caption[0]; - } - - if ( thead.length === 0 ) { - thead = $('').appendTo($this); - } - oSettings.nTHead = thead[0]; - $('tr', thead).addClass(oClasses.thead.row); - - var tbody = $this.children('tbody'); - if ( tbody.length === 0 ) { - tbody = $('').insertAfter(thead); - } - oSettings.nTBody = tbody[0]; - - var tfoot = $this.children('tfoot'); - if ( tfoot.length === 0 ) { - // If we are a scrolling table, and no footer has been given, then we need to create - // a tfoot element for the caption element to be appended to - tfoot = $('').appendTo($this); - } - oSettings.nTFoot = tfoot[0]; - $('tr', tfoot).addClass(oClasses.tfoot.row); - - // Copy the data index array - oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); - - // Initialisation complete - table can be drawn - oSettings.bInitialised = true; - - // Language definitions - var oLanguage = oSettings.oLanguage; - $.extend( true, oLanguage, oInit.oLanguage ); - - if ( oLanguage.sUrl ) { - // Get the language definitions from a file - $.ajax( { - dataType: 'json', - url: oLanguage.sUrl, - success: function ( json ) { - _fnCamelToHungarian( defaults.oLanguage, json ); - $.extend( true, oLanguage, json, oSettings.oInit.oLanguage ); - - _fnCallbackFire( oSettings, null, 'i18n', [oSettings], true); - _fnInitialise( oSettings ); - }, - error: function () { - // Error occurred loading language file - _fnLog( oSettings, 0, 'i18n file loading error', 21 ); - - // Continue on as best we can - _fnInitialise( oSettings ); - } - } ); - } - else { - _fnCallbackFire( oSettings, null, 'i18n', [oSettings], true); - _fnInitialise( oSettings ); - } - } ); - _that = null; - return this; - }; - - - - /** - * DataTables extensions - * - * This namespace acts as a collection area for plug-ins that can be used to - * extend DataTables capabilities. Indeed many of the build in methods - * use this method to provide their own capabilities (sorting methods for - * example). - * - * Note that this namespace is aliased to `jQuery.fn.dataTableExt` for legacy - * reasons - * - * @namespace - */ - DataTable.ext = _ext = { - /** - * Buttons. For use with the Buttons extension for DataTables. This is - * defined here so other extensions can define buttons regardless of load - * order. It is _not_ used by DataTables core. - * - * @type object - * @default {} - */ - buttons: {}, - - - /** - * Element class names - * - * @type object - * @default {} - */ - classes: {}, - - - /** - * DataTables build type (expanded by the download builder) - * - * @type string - */ - builder: "-source-", - - - /** - * Error reporting. - * - * How should DataTables report an error. Can take the value 'alert', - * 'throw', 'none' or a function. - * - * @type string|function - * @default alert - */ - errMode: "alert", - - - /** - * Legacy so v1 plug-ins don't throw js errors on load - */ - feature: [], - - /** - * Feature plug-ins. - * - * This is an object of callbacks which provide the features for DataTables - * to be initialised via the `layout` option. - */ - features: {}, - - - /** - * Row searching. - * - * This method of searching is complimentary to the default type based - * searching, and a lot more comprehensive as it allows you complete control - * over the searching logic. Each element in this array is a function - * (parameters described below) that is called for every row in the table, - * and your logic decides if it should be included in the searching data set - * or not. - * - * Searching functions have the following input parameters: - * - * 1. `{object}` DataTables settings object: see - * {@link DataTable.models.oSettings} - * 2. `{array|object}` Data for the row to be processed (same as the - * original format that was passed in as the data source, or an array - * from a DOM data source - * 3. `{int}` Row index ({@link DataTable.models.oSettings.aoData}), which - * can be useful to retrieve the `TR` element if you need DOM interaction. - * - * And the following return is expected: - * - * * {boolean} Include the row in the searched result set (true) or not - * (false) - * - * Note that as with the main search ability in DataTables, technically this - * is "filtering", since it is subtractive. However, for consistency in - * naming we call it searching here. - * - * @type array - * @default [] - * - * @example - * // The following example shows custom search being applied to the - * // fourth column (i.e. the data[3] index) based on two input values - * // from the end-user, matching the data in a certain range. - * $.fn.dataTable.ext.search.push( - * function( settings, data, dataIndex ) { - * var min = document.getElementById('min').value * 1; - * var max = document.getElementById('max').value * 1; - * var version = data[3] == "-" ? 0 : data[3]*1; - * - * if ( min == "" && max == "" ) { - * return true; - * } - * else if ( min == "" && version < max ) { - * return true; - * } - * else if ( min < version && "" == max ) { - * return true; - * } - * else if ( min < version && version < max ) { - * return true; - * } - * return false; - * } - * ); - */ - search: [], - - - /** - * Selector extensions - * - * The `selector` option can be used to extend the options available for the - * selector modifier options (`selector-modifier` object data type) that - * each of the three built in selector types offer (row, column and cell + - * their plural counterparts). For example the Select extension uses this - * mechanism to provide an option to select only rows, columns and cells - * that have been marked as selected by the end user (`{selected: true}`), - * which can be used in conjunction with the existing built in selector - * options. - * - * Each property is an array to which functions can be pushed. The functions - * take three attributes: - * - * * Settings object for the host table - * * Options object (`selector-modifier` object type) - * * Array of selected item indexes - * - * The return is an array of the resulting item indexes after the custom - * selector has been applied. - * - * @type object - */ - selector: { - cell: [], - column: [], - row: [] - }, - - - /** - * Legacy configuration options. Enable and disable legacy options that - * are available in DataTables. - * - * @type object - */ - legacy: { - /** - * Enable / disable DataTables 1.9 compatible server-side processing - * requests - * - * @type boolean - * @default null - */ - ajax: null - }, - - - /** - * Pagination plug-in methods. - * - * Each entry in this object is a function and defines which buttons should - * be shown by the pagination rendering method that is used for the table: - * {@link DataTable.ext.renderer.pageButton}. The renderer addresses how the - * buttons are displayed in the document, while the functions here tell it - * what buttons to display. This is done by returning an array of button - * descriptions (what each button will do). - * - * Pagination types (the four built in options and any additional plug-in - * options defined here) can be used through the `paginationType` - * initialisation parameter. - * - * The functions defined take two parameters: - * - * 1. `{int} page` The current page index - * 2. `{int} pages` The number of pages in the table - * - * Each function is expected to return an array where each element of the - * array can be one of: - * - * * `first` - Jump to first page when activated - * * `last` - Jump to last page when activated - * * `previous` - Show previous page when activated - * * `next` - Show next page when activated - * * `{int}` - Show page of the index given - * * `{array}` - A nested array containing the above elements to add a - * containing 'DIV' element (might be useful for styling). - * - * Note that DataTables v1.9- used this object slightly differently whereby - * an object with two functions would be defined for each plug-in. That - * ability is still supported by DataTables 1.10+ to provide backwards - * compatibility, but this option of use is now decremented and no longer - * documented in DataTables 1.10+. - * - * @type object - * @default {} - * - * @example - * // Show previous, next and current page buttons only - * $.fn.dataTableExt.oPagination.current = function ( page, pages ) { - * return [ 'previous', page, 'next' ]; - * }; - */ - pager: {}, - - - renderer: { - pageButton: {}, - header: {} - }, - - - /** - * Ordering plug-ins - custom data source - * - * The extension options for ordering of data available here is complimentary - * to the default type based ordering that DataTables typically uses. It - * allows much greater control over the the data that is being used to - * order a column, but is necessarily therefore more complex. - * - * This type of ordering is useful if you want to do ordering based on data - * live from the DOM (for example the contents of an 'input' element) rather - * than just the static string that DataTables knows of. - * - * The way these plug-ins work is that you create an array of the values you - * wish to be ordering for the column in question and then return that - * array. The data in the array much be in the index order of the rows in - * the table (not the currently ordering order!). Which order data gathering - * function is run here depends on the `dt-init columns.orderDataType` - * parameter that is used for the column (if any). - * - * The functions defined take two parameters: - * - * 1. `{object}` DataTables settings object: see - * {@link DataTable.models.oSettings} - * 2. `{int}` Target column index - * - * Each function is expected to return an array: - * - * * `{array}` Data for the column to be ordering upon - * - * @type array - * - * @example - * // Ordering using `input` node values - * $.fn.dataTable.ext.order['dom-text'] = function ( settings, col ) - * { - * return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { - * return $('input', td).val(); - * } ); - * } - */ - order: {}, - - - /** - * Type based plug-ins. - * - * Each column in DataTables has a type assigned to it, either by automatic - * detection or by direct assignment using the `type` option for the column. - * The type of a column will effect how it is ordering and search (plug-ins - * can also make use of the column type if required). - * - * @namespace - */ - type: { - /** - * Automatic column class assignment - */ - className: {}, - - /** - * Type detection functions. - * - * The functions defined in this object are used to automatically detect - * a column's type, making initialisation of DataTables super easy, even - * when complex data is in the table. - * - * The functions defined take two parameters: - * - * 1. `{*}` Data from the column cell to be analysed - * 2. `{settings}` DataTables settings object. This can be used to - * perform context specific type detection - for example detection - * based on language settings such as using a comma for a decimal - * place. Generally speaking the options from the settings will not - * be required - * - * Each function is expected to return: - * - * * `{string|null}` Data type detected, or null if unknown (and thus - * pass it on to the other type detection functions. - * - * @type array - * - * @example - * // Currency type detection plug-in: - * $.fn.dataTable.ext.type.detect.push( - * function ( data, settings ) { - * // Check the numeric part - * if ( ! data.substring(1).match(/[0-9]/) ) { - * return null; - * } - * - * // Check prefixed by currency - * if ( data.charAt(0) == '$' || data.charAt(0) == '£' ) { - * return 'currency'; - * } - * return null; - * } - * ); - */ - detect: [], - - /** - * Automatic renderer assignment - */ - render: {}, - - - /** - * Type based search formatting. - * - * The type based searching functions can be used to pre-format the - * data to be search on. For example, it can be used to strip HTML - * tags or to de-format telephone numbers for numeric only searching. - * - * Note that is a search is not defined for a column of a given type, - * no search formatting will be performed. - * - * Pre-processing of searching data plug-ins - When you assign the sType - * for a column (or have it automatically detected for you by DataTables - * or a type detection plug-in), you will typically be using this for - * custom sorting, but it can also be used to provide custom searching - * by allowing you to pre-processing the data and returning the data in - * the format that should be searched upon. This is done by adding - * functions this object with a parameter name which matches the sType - * for that target column. This is the corollary of afnSortData - * for searching data. - * - * The functions defined take a single parameter: - * - * 1. `{*}` Data from the column cell to be prepared for searching - * - * Each function is expected to return: - * - * * `{string|null}` Formatted string that will be used for the searching. - * - * @type object - * @default {} - * - * @example - * $.fn.dataTable.ext.type.search['title-numeric'] = function ( d ) { - * return d.replace(/\n/g," ").replace( /<.*?>/g, "" ); - * } - */ - search: {}, - - - /** - * Type based ordering. - * - * The column type tells DataTables what ordering to apply to the table - * when a column is sorted upon. The order for each type that is defined, - * is defined by the functions available in this object. - * - * Each ordering option can be described by three properties added to - * this object: - * - * * `{type}-pre` - Pre-formatting function - * * `{type}-asc` - Ascending order function - * * `{type}-desc` - Descending order function - * - * All three can be used together, only `{type}-pre` or only - * `{type}-asc` and `{type}-desc` together. It is generally recommended - * that only `{type}-pre` is used, as this provides the optimal - * implementation in terms of speed, although the others are provided - * for compatibility with existing Javascript sort functions. - * - * `{type}-pre`: Functions defined take a single parameter: - * - * 1. `{*}` Data from the column cell to be prepared for ordering - * - * And return: - * - * * `{*}` Data to be sorted upon - * - * `{type}-asc` and `{type}-desc`: Functions are typical Javascript sort - * functions, taking two parameters: - * - * 1. `{*}` Data to compare to the second parameter - * 2. `{*}` Data to compare to the first parameter - * - * And returning: - * - * * `{*}` Ordering match: <0 if first parameter should be sorted lower - * than the second parameter, ===0 if the two parameters are equal and - * >0 if the first parameter should be sorted height than the second - * parameter. - * - * @type object - * @default {} - * - * @example - * // Numeric ordering of formatted numbers with a pre-formatter - * $.extend( $.fn.dataTable.ext.type.order, { - * "string-pre": function(x) { - * a = (a === "-" || a === "") ? 0 : a.replace( /[^\d\-\.]/g, "" ); - * return parseFloat( a ); - * } - * } ); - * - * @example - * // Case-sensitive string ordering, with no pre-formatting method - * $.extend( $.fn.dataTable.ext.order, { - * "string-case-asc": function(x,y) { - * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); - * }, - * "string-case-desc": function(x,y) { - * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); - * } - * } ); - */ - order: {} - }, - - /** - * Unique DataTables instance counter - * - * @type int - * @private - */ - _unique: 0, - - - // - // Depreciated - // The following properties are retained for backwards compatibility only. - // The should not be used in new projects and will be removed in a future - // version - // - - /** - * Version check function. - * @type function - * @depreciated Since 1.10 - */ - fnVersionCheck: DataTable.fnVersionCheck, - - - /** - * Index for what 'this' index API functions should use - * @type int - * @deprecated Since v1.10 - */ - iApiIndex: 0, - - - /** - * Software version - * @type string - * @deprecated Since v1.10 - */ - sVersion: DataTable.version - }; - - - // - // Backwards compatibility. Alias to pre 1.10 Hungarian notation counter parts - // - $.extend( _ext, { - afnFiltering: _ext.search, - aTypes: _ext.type.detect, - ofnSearch: _ext.type.search, - oSort: _ext.type.order, - afnSortData: _ext.order, - aoFeatures: _ext.feature, - oStdClasses: _ext.classes, - oPagination: _ext.pager - } ); - - - $.extend( DataTable.ext.classes, { - container: 'dt-container', - empty: { - row: 'dt-empty' - }, - info: { - container: 'dt-info' - }, - layout: { - row: 'dt-layout-row', - cell: 'dt-layout-cell', - tableRow: 'dt-layout-table', - tableCell: '', - start: 'dt-layout-start', - end: 'dt-layout-end', - full: 'dt-layout-full' - }, - length: { - container: 'dt-length', - select: 'dt-input' - }, - order: { - canAsc: 'dt-orderable-asc', - canDesc: 'dt-orderable-desc', - isAsc: 'dt-ordering-asc', - isDesc: 'dt-ordering-desc', - none: 'dt-orderable-none', - position: 'sorting_' - }, - processing: { - container: 'dt-processing' - }, - scrolling: { - body: 'dt-scroll-body', - container: 'dt-scroll', - footer: { - self: 'dt-scroll-foot', - inner: 'dt-scroll-footInner' - }, - header: { - self: 'dt-scroll-head', - inner: 'dt-scroll-headInner' - } - }, - search: { - container: 'dt-search', - input: 'dt-input' - }, - table: 'dataTable', - tbody: { - cell: '', - row: '' - }, - thead: { - cell: '', - row: '' - }, - tfoot: { - cell: '', - row: '' - }, - paging: { - active: 'current', - button: 'dt-paging-button', - container: 'dt-paging', - disabled: 'disabled', - nav: '' - } - } ); - - - /* - * It is useful to have variables which are scoped locally so only the - * DataTables functions can access them and they don't leak into global space. - * At the same time these functions are often useful over multiple files in the - * core and API, so we list, or at least document, all variables which are used - * by DataTables as private variables here. This also ensures that there is no - * clashing of variable names and that they can easily referenced for reuse. - */ - - - // Defined else where - // _selector_run - // _selector_opts - // _selector_row_indexes - - var _ext; // DataTable.ext - var _Api; // DataTable.Api - var _api_register; // DataTable.Api.register - var _api_registerPlural; // DataTable.Api.registerPlural - - var _re_dic = {}; - var _re_new_lines = /[\r\n\u2028]/g; - var _re_html = /<([^>]*>)/g; - var _max_str_len = Math.pow(2, 28); - - // This is not strict ISO8601 - Date.parse() is quite lax, although - // implementations differ between browsers. - var _re_date = /^\d{2,4}[./-]\d{1,2}[./-]\d{1,2}([T ]{1}\d{1,2}[:.]\d{2}([.:]\d{2})?)?$/; - - // Escape regular expression special characters - var _re_escape_regex = new RegExp( '(\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ].join('|\\') + ')', 'g' ); - - // https://en.wikipedia.org/wiki/Foreign_exchange_market - // - \u20BD - Russian ruble. - // - \u20a9 - South Korean Won - // - \u20BA - Turkish Lira - // - \u20B9 - Indian Rupee - // - R - Brazil (R$) and South Africa - // - fr - Swiss Franc - // - kr - Swedish krona, Norwegian krone and Danish krone - // - \u2009 is thin space and \u202F is narrow no-break space, both used in many - // - Ƀ - Bitcoin - // - Ξ - Ethereum - // standards as thousands separators. - var _re_formatted_numeric = /['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi; - - - var _empty = function ( d ) { - return !d || d === true || d === '-' ? true : false; - }; - - - var _intVal = function ( s ) { - var integer = parseInt( s, 10 ); - return !isNaN(integer) && isFinite(s) ? integer : null; - }; - - // Convert from a formatted number with characters other than `.` as the - // decimal place, to a Javascript number - var _numToDecimal = function ( num, decimalPoint ) { - // Cache created regular expressions for speed as this function is called often - if ( ! _re_dic[ decimalPoint ] ) { - _re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( decimalPoint ), 'g' ); - } - return typeof num === 'string' && decimalPoint !== '.' ? - num.replace( /\./g, '' ).replace( _re_dic[ decimalPoint ], '.' ) : - num; - }; - - - var _isNumber = function ( d, decimalPoint, formatted, allowEmpty ) { - var type = typeof d; - var strType = type === 'string'; - - if ( type === 'number' || type === 'bigint') { - return true; - } - - // If empty return immediately so there must be a number if it is a - // formatted string (this stops the string "k", or "kr", etc being detected - // as a formatted number for currency - if ( allowEmpty && _empty( d ) ) { - return true; - } - - if ( decimalPoint && strType ) { - d = _numToDecimal( d, decimalPoint ); - } - - if ( formatted && strType ) { - d = d.replace( _re_formatted_numeric, '' ); - } - - return !isNaN( parseFloat(d) ) && isFinite( d ); - }; - - - // A string without HTML in it can be considered to be HTML still - var _isHtml = function ( d ) { - return _empty( d ) || typeof d === 'string'; - }; - - // Is a string a number surrounded by HTML? - var _htmlNumeric = function ( d, decimalPoint, formatted, allowEmpty ) { - if ( allowEmpty && _empty( d ) ) { - return true; - } - - // input and select strings mean that this isn't just a number - if (typeof d === 'string' && d.match(/<(input|select)/i)) { - return null; - } - - var html = _isHtml( d ); - return ! html ? - null : - _isNumber( _stripHtml( d ), decimalPoint, formatted, allowEmpty ) ? - true : - null; - }; - - - var _pluck = function ( a, prop, prop2 ) { - var out = []; - var i=0, ien=a.length; - - // Could have the test in the loop for slightly smaller code, but speed - // is essential here - if ( prop2 !== undefined ) { - for ( ; i _max_str_len) { - throw new Error('Exceeded max str len'); - } - - var previous; - - input = input.replace(_re_html, ''); // Complete tags - - // Safety for incomplete script tag - use do / while to ensure that - // we get all instances - do { - previous = input; - input = input.replace(/ - - diff --git a/front/salam/manifest.json b/front/salam/manifest.json deleted file mode 100644 index eeba18e..0000000 --- a/front/salam/manifest.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "زبان برنامه نویسی سلام", - "short_name": "زبان سلام", - "icons": [ - { - "src": "/image/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/image/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ff5c00", - "background_color": "#ffffff", - "display": "standalone" -} \ No newline at end of file diff --git a/front/salam/salam-wa.js b/front/salam/salam-wa.js deleted file mode 100644 index 7588ae8..0000000 --- a/front/salam/salam-wa.js +++ /dev/null @@ -1,4663 +0,0 @@ -// include: shell.js -// The Module object: Our interface to the outside world. We import -// and export values on it. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(moduleArg) => Promise -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to check if Module already exists (e.g. case 3 above). -// Substitution will be replaced with actual code on later stage of the build, -// this way Closure Compiler will not mangle it (e.g. case 4. above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module = typeof Module != 'undefined' ? Module : {}; - -// Determine the runtime environment we are in. You can customize this by -// setting the ENVIRONMENT setting at compile time (see settings.js). - -// Attempt to auto-detect the environment -var ENVIRONMENT_IS_WEB = typeof window == 'object'; -var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != 'undefined'; -// N.b. Electron.js environment is simultaneously a NODE-environment, but -// also a web environment. -var ENVIRONMENT_IS_NODE = typeof process == 'object' && typeof process.versions == 'object' && typeof process.versions.node == 'string' && process.type != 'renderer'; -var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; - -if (ENVIRONMENT_IS_NODE) { - // `require()` is no-op in an ESM module, use `createRequire()` to construct - // the require()` function. This is only necessary for multi-environment - // builds, `-sENVIRONMENT=node` emits a static import declaration instead. - // TODO: Swap all `require()`'s with `import()`'s? - -} - -// --pre-jses are emitted after the Module integration code, so that they can -// refer to Module (if they choose; they can also define Module) - - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = Object.assign({}, Module); - -var arguments_ = []; -var thisProgram = './this.program'; -var quit_ = (status, toThrow) => { - throw toThrow; -}; - -// `/` should be present at the end if `scriptDirectory` is not empty -var scriptDirectory = ''; -function locateFile(path) { - if (Module['locateFile']) { - return Module['locateFile'](path, scriptDirectory); - } - return scriptDirectory + path; -} - -// Hooks that are implemented differently in different runtime environments. -var readAsync, readBinary; - -if (ENVIRONMENT_IS_NODE) { - if (typeof process == 'undefined' || !process.release || process.release.name !== 'node') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); - - var nodeVersion = process.versions.node; - var numericVersion = nodeVersion.split('.').slice(0, 3); - numericVersion = (numericVersion[0] * 10000) + (numericVersion[1] * 100) + (numericVersion[2].split('-')[0] * 1); - var minVersion = 160000; - if (numericVersion < 160000) { - throw new Error('This emscripten-generated code requires node v16.0.0 (detected v' + nodeVersion + ')'); - } - - // These modules will usually be used on Node.js. Load them eagerly to avoid - // the complexity of lazy-loading. - var fs = require('fs'); - var nodePath = require('path'); - - scriptDirectory = __dirname + '/'; - -// include: node_shell_read.js -readBinary = (filename) => { - // We need to re-wrap `file://` strings to URLs. Normalizing isn't - // necessary in that case, the path should already be absolute. - filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); - var ret = fs.readFileSync(filename); - assert(ret.buffer); - return ret; -}; - -readAsync = (filename, binary = true) => { - // See the comment in the `readBinary` function. - filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); - return new Promise((resolve, reject) => { - fs.readFile(filename, binary ? undefined : 'utf8', (err, data) => { - if (err) reject(err); - else resolve(binary ? data.buffer : data); - }); - }); -}; -// end include: node_shell_read.js - if (!Module['thisProgram'] && process.argv.length > 1) { - thisProgram = process.argv[1].replace(/\\/g, '/'); - } - - arguments_ = process.argv.slice(2); - - if (typeof module != 'undefined') { - module['exports'] = Module; - } - - quit_ = (status, toThrow) => { - process.exitCode = status; - throw toThrow; - }; - -} else -if (ENVIRONMENT_IS_SHELL) { - - if ((typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof WorkerGlobalScope != 'undefined') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); - -} else - -// Note that this includes Node.js workers when relevant (pthreads is enabled). -// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and -// ENVIRONMENT_IS_NODE. -if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled - scriptDirectory = self.location.href; - } else if (typeof document != 'undefined' && document.currentScript) { // web - scriptDirectory = document.currentScript.src; - } - // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. - // otherwise, slice off the final part of the url to find the script directory. - // if scriptDirectory does not contain a slash, lastIndexOf will return -1, - // and scriptDirectory will correctly be replaced with an empty string. - // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), - // they are removed because they could contain a slash. - if (scriptDirectory.startsWith('blob:')) { - scriptDirectory = ''; - } else { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, '').lastIndexOf('/')+1); - } - - if (!(typeof window == 'object' || typeof WorkerGlobalScope != 'undefined')) throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); - - { -// include: web_or_worker_shell_read.js -if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); - }; - } - - readAsync = (url) => { - // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. - // See https://github.com/github/fetch/pull/92#issuecomment-140665932 - // Cordova or Electron apps are typically loaded from a file:// url. - // So use XHR on webview if URL is a file URL. - if (isFileURI(url)) { - return new Promise((resolve, reject) => { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = () => { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - resolve(xhr.response); - return; - } - reject(xhr.status); - }; - xhr.onerror = reject; - xhr.send(null); - }); - } - return fetch(url, { credentials: 'same-origin' }) - .then((response) => { - if (response.ok) { - return response.arrayBuffer(); - } - return Promise.reject(new Error(response.status + ' : ' + response.url)); - }) - }; -// end include: web_or_worker_shell_read.js - } -} else -{ - throw new Error('environment detection error'); -} - -var out = Module['print'] || console.log.bind(console); -var err = Module['printErr'] || console.error.bind(console); - -// Merge back in the overrides -Object.assign(Module, moduleOverrides); -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used. -moduleOverrides = null; -checkIncomingModuleAPI(); - -// Emit code to handle expected values on the Module object. This applies Module.x -// to the proper local x. This has two benefits: first, we only emit it if it is -// expected to arrive, and second, by using a local everywhere else that can be -// minified. - -if (Module['arguments']) arguments_ = Module['arguments'];legacyModuleProp('arguments', 'arguments_'); - -if (Module['thisProgram']) thisProgram = Module['thisProgram'];legacyModuleProp('thisProgram', 'thisProgram'); - -// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message -// Assertions on removed incoming Module JS APIs. -assert(typeof Module['memoryInitializerPrefixURL'] == 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['pthreadMainPrefixURL'] == 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['cdInitializerPrefixURL'] == 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['filePackagePrefixURL'] == 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); -assert(typeof Module['read'] == 'undefined', 'Module.read option was removed'); -assert(typeof Module['readAsync'] == 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)'); -assert(typeof Module['readBinary'] == 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)'); -assert(typeof Module['setWindowTitle'] == 'undefined', 'Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)'); -assert(typeof Module['TOTAL_MEMORY'] == 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY'); -legacyModuleProp('asm', 'wasmExports'); -legacyModuleProp('readAsync', 'readAsync'); -legacyModuleProp('readBinary', 'readBinary'); -legacyModuleProp('setWindowTitle', 'setWindowTitle'); -var IDBFS = 'IDBFS is no longer included by default; build with -lidbfs.js'; -var PROXYFS = 'PROXYFS is no longer included by default; build with -lproxyfs.js'; -var WORKERFS = 'WORKERFS is no longer included by default; build with -lworkerfs.js'; -var FETCHFS = 'FETCHFS is no longer included by default; build with -lfetchfs.js'; -var ICASEFS = 'ICASEFS is no longer included by default; build with -licasefs.js'; -var JSFILEFS = 'JSFILEFS is no longer included by default; build with -ljsfilefs.js'; -var OPFS = 'OPFS is no longer included by default; build with -lopfs.js'; - -var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js'; - -assert(!ENVIRONMENT_IS_SHELL, 'shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.'); - -// end include: shell.js - -// include: preamble.js -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - -var wasmBinary = Module['wasmBinary'];legacyModuleProp('wasmBinary', 'wasmBinary'); - -if (typeof WebAssembly != 'object') { - err('no native wasm support detected'); -} - -// Wasm globals - -var wasmMemory; - -//======================================== -// Runtime essentials -//======================================== - -// whether we are quitting the application. no code should run after this. -// set in exit() and abort() -var ABORT = false; - -// set by exit() and abort(). Passed to 'onExit' handler. -// NOTE: This is also used as the process return code code in shell environments -// but only when noExitRuntime is false. -var EXITSTATUS; - -// In STRICT mode, we only define assert() when ASSERTIONS is set. i.e. we -// don't define it at all in release modes. This matches the behaviour of -// MINIMAL_RUNTIME. -// TODO(sbc): Make this the default even without STRICT enabled. -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed' + (text ? ': ' + text : '')); - } -} - -// We used to include malloc/free by default in the past. Show a helpful error in -// builds with assertions. -function _free() { - // Show a helpful error since we used to include free by default in the past. - abort('free() called but not included in the build - add `_free` to EXPORTED_FUNCTIONS'); -} - -// Memory management - -var HEAP, -/** @type {!Int8Array} */ - HEAP8, -/** @type {!Uint8Array} */ - HEAPU8, -/** @type {!Int16Array} */ - HEAP16, -/** @type {!Uint16Array} */ - HEAPU16, -/** @type {!Int32Array} */ - HEAP32, -/** @type {!Uint32Array} */ - HEAPU32, -/** @type {!Float32Array} */ - HEAPF32, -/** @type {!Float64Array} */ - HEAPF64; - -// include: runtime_shared.js -function updateMemoryViews() { - var b = wasmMemory.buffer; - Module['HEAP8'] = HEAP8 = new Int8Array(b); - Module['HEAP16'] = HEAP16 = new Int16Array(b); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); - Module['HEAP32'] = HEAP32 = new Int32Array(b); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); - Module['HEAPF32'] = HEAPF32 = new Float32Array(b); - Module['HEAPF64'] = HEAPF64 = new Float64Array(b); -} - -// end include: runtime_shared.js -assert(!Module['STACK_SIZE'], 'STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time') - -assert(typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, - 'JS engine does not provide full typed array support'); - -// If memory is defined in wasm, the user can't provide it, or set INITIAL_MEMORY -assert(!Module['wasmMemory'], 'Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally'); -assert(!Module['INITIAL_MEMORY'], 'Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically'); - -// include: runtime_stack_check.js -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - var max = _emscripten_stack_get_end(); - assert((max & 3) == 0); - // If the stack ends at address zero we write our cookies 4 bytes into the - // stack. This prevents interference with SAFE_HEAP and ASAN which also - // monitor writes to address zero. - if (max == 0) { - max += 4; - } - // The stack grow downwards towards _emscripten_stack_get_end. - // We write cookies to the final two words in the stack and detect if they are - // ever overwritten. - HEAPU32[((max)>>2)] = 0x02135467; - HEAPU32[(((max)+(4))>>2)] = 0x89BACDFE; - // Also test the global address 0 for integrity. - HEAPU32[((0)>>2)] = 1668509029; -} - -function checkStackCookie() { - if (ABORT) return; - var max = _emscripten_stack_get_end(); - // See writeStackCookie(). - if (max == 0) { - max += 4; - } - var cookie1 = HEAPU32[((max)>>2)]; - var cookie2 = HEAPU32[(((max)+(4))>>2)]; - if (cookie1 != 0x02135467 || cookie2 != 0x89BACDFE) { - abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`); - } - // Also test the global address 0 for integrity. - if (HEAPU32[((0)>>2)] != 0x63736d65 /* 'emsc' */) { - abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); - } -} -// end include: runtime_stack_check.js -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the main() is called - -var runtimeInitialized = false; - -function preRun() { - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function initRuntime() { - assert(!runtimeInitialized); - runtimeInitialized = true; - - checkStackCookie(); - - -if (!Module['noFSInit'] && !FS.initialized) - FS.init(); -FS.ignorePermissions = false; - -TTY.init(); - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - - callRuntimeCallbacks(__ATMAIN__); -} - -function postRun() { - checkStackCookie(); - - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} - -function addOnExit(cb) { -} - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} - -// include: runtime_math.js -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 - -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc - -assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); -assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); -assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); -assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); -// end include: runtime_math.js -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// Module.preRun (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } -} - -function addRunDependency(id) { - runDependencies++; - - Module['monitorRunDependencies']?.(runDependencies); - - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval != 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(() => { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - err('still waiting on run dependencies:'); - } - err(`dependency: ${dep}`); - } - if (shown) { - err('(end of list)'); - } - }, 10000); - } - } else { - err('warning: run dependency added without ID'); - } -} - -function removeRunDependency(id) { - runDependencies--; - - Module['monitorRunDependencies']?.(runDependencies); - - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - err('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} - -/** @param {string|number=} what */ -function abort(what) { - Module['onAbort']?.(what); - - what = 'Aborted(' + what + ')'; - // TODO(sbc): Should we remove printing and leave it up to whoever - // catches the exception? - err(what); - - ABORT = true; - - // Use a wasm runtime error, because a JS error might be seen as a foreign - // exception, which means we'd run destructors on it. We need the error to - // simply make the program stop. - // FIXME This approach does not work in Wasm EH because it currently does not assume - // all RuntimeErrors are from traps; it decides whether a RuntimeError is from - // a trap or not based on a hidden field within the object. So at the moment - // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that - // allows this in the wasm spec. - - // Suppress closure compiler warning here. Closure compiler's builtin extern - // definition for WebAssembly.RuntimeError claims it takes no arguments even - // though it can. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. - /** @suppress {checkTypes} */ - var e = new WebAssembly.RuntimeError(what); - - // Throw the error whether or not MODULARIZE is set because abort is used - // in code paths apart from instantiation where an exception is expected - // to be thrown when abort is called. - throw e; -} - -// include: memoryprofiler.js -// end include: memoryprofiler.js -// include: URIUtils.js -// Prefix of data URIs emitted by SINGLE_FILE and related options. -var dataURIPrefix = 'data:application/octet-stream;base64,'; - -/** - * Indicates whether filename is a base64 data URI. - * @noinline - */ -var isDataURI = (filename) => filename.startsWith(dataURIPrefix); - -/** - * Indicates whether filename is delivered via file protocol (as opposed to http/https) - * @noinline - */ -var isFileURI = (filename) => filename.startsWith('file://'); -// end include: URIUtils.js -function createExportWrapper(name, nargs) { - return (...args) => { - assert(runtimeInitialized, `native function \`${name}\` called before runtime initialization`); - var f = wasmExports[name]; - assert(f, `exported native function \`${name}\` not found`); - // Only assert for too many arguments. Too few can be valid since the missing arguments will be zero filled. - assert(args.length <= nargs, `native function \`${name}\` called with ${args.length} args but expects ${nargs}`); - return f(...args); - }; -} - -// include: runtime_exceptions.js -// end include: runtime_exceptions.js -function findWasmBinary() { - var f = 'salam-wa.wasm'; - if (!isDataURI(f)) { - return locateFile(f); - } - return f; -} - -var wasmBinaryFile; - -function getBinarySync(file) { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw 'both async and sync fetching of the wasm failed'; -} - -function getBinaryPromise(binaryFile) { - // If we don't have the binary yet, load it asynchronously using readAsync. - if (!wasmBinary - ) { - // Fetch the binary using readAsync - return readAsync(binaryFile).then( - (response) => new Uint8Array(/** @type{!ArrayBuffer} */(response)), - // Fall back to getBinarySync if readAsync fails - () => getBinarySync(binaryFile) - ); - } - - // Otherwise, getBinarySync should be able to get it synchronously - return Promise.resolve().then(() => getBinarySync(binaryFile)); -} - -function instantiateArrayBuffer(binaryFile, imports, receiver) { - return getBinaryPromise(binaryFile).then((binary) => { - return WebAssembly.instantiate(binary, imports); - }).then(receiver, (reason) => { - err(`failed to asynchronously prepare wasm: ${reason}`); - - // Warn on some common problems. - if (isFileURI(wasmBinaryFile)) { - err(`warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`); - } - abort(reason); - }); -} - -function instantiateAsync(binary, binaryFile, imports, callback) { - if (!binary && - typeof WebAssembly.instantiateStreaming == 'function' && - !isDataURI(binaryFile) && - // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. - !isFileURI(binaryFile) && - // Avoid instantiateStreaming() on Node.js environment for now, as while - // Node.js v18.1.0 implements it, it does not have a full fetch() - // implementation yet. - // - // Reference: - // https://github.com/emscripten-core/emscripten/pull/16917 - !ENVIRONMENT_IS_NODE && - typeof fetch == 'function') { - return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { - // Suppress closure warning here since the upstream definition for - // instantiateStreaming only allows Promise rather than - // an actual Response. - // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. - /** @suppress {checkTypes} */ - var result = WebAssembly.instantiateStreaming(response, imports); - - return result.then( - callback, - function(reason) { - // We expect the most common failure cause to be a bad MIME type for the binary, - // in which case falling back to ArrayBuffer instantiation should work. - err(`wasm streaming compile failed: ${reason}`); - err('falling back to ArrayBuffer instantiation'); - return instantiateArrayBuffer(binaryFile, imports, callback); - }); - }); - } - return instantiateArrayBuffer(binaryFile, imports, callback); -} - -function getWasmImports() { - // prepare imports - return { - 'env': wasmImports, - 'wasi_snapshot_preview1': wasmImports, - } -} - -// Create the wasm instance. -// Receives the wasm imports, returns the exports. -function createWasm() { - var info = getWasmImports(); - // Load the wasm module and create an instance of using native support in the JS engine. - // handle a generated wasm instance, receiving its exports and - // performing other necessary setup - /** @param {WebAssembly.Module=} module*/ - function receiveInstance(instance, module) { - wasmExports = instance.exports; - - - - wasmMemory = wasmExports['memory']; - - assert(wasmMemory, 'memory not found in wasm exports'); - updateMemoryViews(); - - addOnInit(wasmExports['__wasm_call_ctors']); - - removeRunDependency('wasm-instantiate'); - return wasmExports; - } - // wait for the pthread pool (if any) - addRunDependency('wasm-instantiate'); - - // Prefer streaming instantiation if available. - // Async compilation can be confusing when an error on the page overwrites Module - // (for example, if the order of elements is wrong, and the one defining Module is - // later), so we save Module and check it later. - var trueModule = Module; - function receiveInstantiationResult(result) { - // 'result' is a ResultObject object which has both the module and instance. - // receiveInstance() will swap in the exports (to Module.asm) so they can be called - assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); - trueModule = null; - // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. - // When the regression is fixed, can restore the above PTHREADS-enabled path. - receiveInstance(result['instance']); - } - - // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback - // to manually instantiate the Wasm module themselves. This allows pages to - // run the instantiation parallel to any other async startup actions they are - // performing. - // Also pthreads and wasm workers initialize the wasm instance through this - // path. - if (Module['instantiateWasm']) { - try { - return Module['instantiateWasm'](info, receiveInstance); - } catch(e) { - err(`Module.instantiateWasm callback failed with error: ${e}`); - return false; - } - } - - wasmBinaryFile ??= findWasmBinary(); - - instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult); - return {}; // no exports yet; we'll fill them in later -} - -// Globals used by JS i64 conversions (see makeSetValue) -var tempDouble; -var tempI64; - -// include: runtime_debug.js -// Endianness check -(() => { - var h16 = new Int16Array(1); - var h8 = new Int8Array(h16.buffer); - h16[0] = 0x6373; - if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)'; -})(); - -if (Module['ENVIRONMENT']) { - throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)'); -} - -function legacyModuleProp(prop, newName, incoming=true) { - if (!Object.getOwnPropertyDescriptor(Module, prop)) { - Object.defineProperty(Module, prop, { - configurable: true, - get() { - let extra = incoming ? ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)' : ''; - abort(`\`Module.${prop}\` has been replaced by \`${newName}\`` + extra); - - } - }); - } -} - -function ignoredModuleProp(prop) { - if (Object.getOwnPropertyDescriptor(Module, prop)) { - abort(`\`Module.${prop}\` was supplied but \`${prop}\` not included in INCOMING_MODULE_JS_API`); - } -} - -// forcing the filesystem exports a few things by default -function isExportedByForceFilesystem(name) { - return name === 'FS_createPath' || - name === 'FS_createDataFile' || - name === 'FS_createPreloadedFile' || - name === 'FS_unlink' || - name === 'addRunDependency' || - // The old FS has some functionality that WasmFS lacks. - name === 'FS_createLazyFile' || - name === 'FS_createDevice' || - name === 'removeRunDependency'; -} - -/** - * Intercept access to a global symbol. This enables us to give informative - * warnings/errors when folks attempt to use symbols they did not include in - * their build, or no symbols that no longer exist. - */ -function hookGlobalSymbolAccess(sym, func) { - if (typeof globalThis != 'undefined' && !Object.getOwnPropertyDescriptor(globalThis, sym)) { - Object.defineProperty(globalThis, sym, { - configurable: true, - get() { - func(); - return undefined; - } - }); - } -} - -function missingGlobal(sym, msg) { - hookGlobalSymbolAccess(sym, () => { - warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`); - }); -} - -missingGlobal('buffer', 'Please use HEAP8.buffer or wasmMemory.buffer'); -missingGlobal('asm', 'Please use wasmExports instead'); - -function missingLibrarySymbol(sym) { - hookGlobalSymbolAccess(sym, () => { - // Can't `abort()` here because it would break code that does runtime - // checks. e.g. `if (typeof SDL === 'undefined')`. - var msg = `\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`; - // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in - // library.js, which means $name for a JS name with no prefix, or name - // for a JS name like _name. - var librarySymbol = sym; - if (!librarySymbol.startsWith('_')) { - librarySymbol = '$' + sym; - } - msg += ` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`; - if (isExportedByForceFilesystem(sym)) { - msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; - } - warnOnce(msg); - }); - - // Any symbol that is not included from the JS library is also (by definition) - // not exported on the Module object. - unexportedRuntimeSymbol(sym); -} - -function unexportedRuntimeSymbol(sym) { - if (!Object.getOwnPropertyDescriptor(Module, sym)) { - Object.defineProperty(Module, sym, { - configurable: true, - get() { - var msg = `'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`; - if (isExportedByForceFilesystem(sym)) { - msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; - } - abort(msg); - } - }); - } -} - -// Used by XXXXX_DEBUG settings to output debug messages. -function dbg(...args) { - // TODO(sbc): Make this configurable somehow. Its not always convenient for - // logging to show up as warnings. - console.warn(...args); -} -// end include: runtime_debug.js -// === Body === -// end include: preamble.js - - - class ExitStatus { - name = 'ExitStatus'; - constructor(status) { - this.message = `Program terminated with exit(${status})`; - this.status = status; - } - } - - var callRuntimeCallbacks = (callbacks) => { - while (callbacks.length > 0) { - // Pass the module as the first argument. - callbacks.shift()(Module); - } - }; - - - /** - * @param {number} ptr - * @param {string} type - */ - function getValue(ptr, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': return HEAP8[ptr]; - case 'i8': return HEAP8[ptr]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': abort('to do getValue(i64) use WASM_BIGINT'); - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - case '*': return HEAPU32[((ptr)>>2)]; - default: abort(`invalid type for getValue: ${type}`); - } - } - - var noExitRuntime = Module['noExitRuntime'] || true; - - var ptrToString = (ptr) => { - assert(typeof ptr === 'number'); - // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. - ptr >>>= 0; - return '0x' + ptr.toString(16).padStart(8, '0'); - }; - - - /** - * @param {number} ptr - * @param {number} value - * @param {string} type - */ - function setValue(ptr, value, type = 'i8') { - if (type.endsWith('*')) type = '*'; - switch (type) { - case 'i1': HEAP8[ptr] = value; break; - case 'i8': HEAP8[ptr] = value; break; - case 'i16': HEAP16[((ptr)>>1)] = value; break; - case 'i32': HEAP32[((ptr)>>2)] = value; break; - case 'i64': abort('to do setValue(i64) use WASM_BIGINT'); - case 'float': HEAPF32[((ptr)>>2)] = value; break; - case 'double': HEAPF64[((ptr)>>3)] = value; break; - case '*': HEAPU32[((ptr)>>2)] = value; break; - default: abort(`invalid type for setValue: ${type}`); - } - } - - var stackRestore = (val) => __emscripten_stack_restore(val); - - var stackSave = () => _emscripten_stack_get_current(); - - var warnOnce = (text) => { - warnOnce.shown ||= {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - if (ENVIRONMENT_IS_NODE) text = 'warning: ' + text; - err(text); - } - }; - - /** @suppress {duplicate } */ - var syscallGetVarargI = () => { - assert(SYSCALLS.varargs != undefined); - // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number. - var ret = HEAP32[((+SYSCALLS.varargs)>>2)]; - SYSCALLS.varargs += 4; - return ret; - }; - var syscallGetVarargP = syscallGetVarargI; - - - var PATH = { - isAbs:(path) => path.charAt(0) === '/', - splitPath:(filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - }, - normalizeArray:(parts, allowAboveRoot) => { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift('..'); - } - } - return parts; - }, - normalize:(path) => { - var isAbsolute = PATH.isAbs(path), - trailingSlash = path.substr(-1) === '/'; - // Normalize the path - path = PATH.normalizeArray(path.split('/').filter((p) => !!p), !isAbsolute).join('/'); - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - return (isAbsolute ? '/' : '') + path; - }, - dirname:(path) => { - var result = PATH.splitPath(path), - root = result[0], - dir = result[1]; - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - }, - basename:(path) => { - // EMSCRIPTEN return '/'' for '/', not an empty string - if (path === '/') return '/'; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf('/'); - if (lastSlash === -1) return path; - return path.substr(lastSlash+1); - }, - join:(...paths) => PATH.normalize(paths.join('/')), - join2:(l, r) => PATH.normalize(l + '/' + r), - }; - - var initRandomFill = () => { - if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') { - // for modern web browsers - return (view) => crypto.getRandomValues(view); - } else - if (ENVIRONMENT_IS_NODE) { - // for nodejs with or without crypto support included - try { - var crypto_module = require('crypto'); - var randomFillSync = crypto_module['randomFillSync']; - if (randomFillSync) { - // nodejs with LTS crypto support - return (view) => crypto_module['randomFillSync'](view); - } - // very old nodejs with the original crypto API - var randomBytes = crypto_module['randomBytes']; - return (view) => ( - view.set(randomBytes(view.byteLength)), - // Return the original view to match modern native implementations. - view - ); - } catch (e) { - // nodejs doesn't have crypto support - } - } - // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 - abort('no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };'); - }; - var randomFill = (view) => { - // Lazily init on the first invocation. - return (randomFill = initRandomFill())(view); - }; - - - - var PATH_FS = { - resolve:(...args) => { - var resolvedPath = '', - resolvedAbsolute = false; - for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? args[i] : FS.cwd(); - // Skip empty and invalid entries - if (typeof path != 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - return ''; // an invalid portion invalidates the whole thing - } - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; - }, - relative:(from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - }, - }; - - - var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder() : undefined; - - /** - * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given - * array that contains uint8 values, returns a copy of that string as a - * Javascript String object. - * heapOrArray is either a regular array, or a JavaScript typed array view. - * @param {number=} idx - * @param {number=} maxBytesToRead - * @return {string} - */ - var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => { - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on - // null terminator by itself. Also, use the length info to avoid running tiny - // strings through TextDecoder, since .subarray() allocates garbage. - // (As a tiny code save trick, compare endPtr against endIdx using a negation, - // so that undefined/NaN means Infinity) - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; - - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ''; - // If building with TextDecoder, we have already computed the string length - // above, so test loop end condition against that - while (idx < endPtr) { - // For UTF8 byte structure, see: - // http://en.wikipedia.org/wiki/UTF-8#Description - // https://www.ietf.org/rfc/rfc2279.txt - // https://tools.ietf.org/html/rfc3629 - var u0 = heapOrArray[idx++]; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte ' + ptrToString(u0) + ' encountered when deserializing a UTF-8 string in wasm memory to a JS string!'); - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); - } - - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - return str; - }; - - var FS_stdin_getChar_buffer = []; - - var lengthBytesUTF8 = (str) => { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var c = str.charCodeAt(i); // possibly a lead surrogate - if (c <= 0x7F) { - len++; - } else if (c <= 0x7FF) { - len += 2; - } else if (c >= 0xD800 && c <= 0xDFFF) { - len += 4; ++i; - } else { - len += 3; - } - } - return len; - }; - - var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { - assert(typeof str === 'string', `stringToUTF8Array expects a string (got ${typeof str})`); - // Parameter maxBytesToWrite is not optional. Negative values, 0, null, - // undefined and false each don't write out any bytes. - if (!(maxBytesToWrite > 0)) - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code - // unit, not a Unicode code point of the character! So decode - // UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description - // and https://www.ietf.org/rfc/rfc2279.txt - // and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) { - var u1 = str.charCodeAt(++i); - u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); - } - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - heap[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++] = 0xC0 | (u >> 6); - heap[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++] = 0xE0 | (u >> 12); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 3 >= endIdx) break; - if (u > 0x10FFFF) warnOnce('Invalid Unicode code point ' + ptrToString(u) + ' encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).'); - heap[outIdx++] = 0xF0 | (u >> 18); - heap[outIdx++] = 0x80 | ((u >> 12) & 63); - heap[outIdx++] = 0x80 | ((u >> 6) & 63); - heap[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - heap[outIdx] = 0; - return outIdx - startIdx; - }; - /** @type {function(string, boolean=, number=)} */ - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; - } - var FS_stdin_getChar = () => { - if (!FS_stdin_getChar_buffer.length) { - var result = null; - if (ENVIRONMENT_IS_NODE) { - // we will read data by chunks of BUFSIZE - var BUFSIZE = 256; - var buf = Buffer.alloc(BUFSIZE); - var bytesRead = 0; - - // For some reason we must suppress a closure warning here, even though - // fd definitely exists on process.stdin, and is even the proper way to - // get the fd of stdin, - // https://github.com/nodejs/help/issues/2136#issuecomment-523649904 - // This started to happen after moving this logic out of library_tty.js, - // so it is related to the surrounding code in some unclear manner. - /** @suppress {missingProperties} */ - var fd = process.stdin.fd; - - try { - bytesRead = fs.readSync(fd, buf, 0, BUFSIZE); - } catch(e) { - // Cross-platform differences: on Windows, reading EOF throws an - // exception, but on other OSes, reading EOF returns 0. Uniformize - // behavior by treating the EOF exception to return 0. - if (e.toString().includes('EOF')) bytesRead = 0; - else throw e; - } - - if (bytesRead > 0) { - result = buf.slice(0, bytesRead).toString('utf-8'); - } - } else - if (typeof window != 'undefined' && - typeof window.prompt == 'function') { - // Browser. - result = window.prompt('Input: '); // returns null on cancel - if (result !== null) { - result += '\n'; - } - } else - {} - if (!result) { - return null; - } - FS_stdin_getChar_buffer = intArrayFromString(result, true); - } - return FS_stdin_getChar_buffer.shift(); - }; - var TTY = { - ttys:[], - init() { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // currently, FS.init does not distinguish if process.stdin is a file or TTY - // // device, it always assumes it's a TTY device. because of this, we're forcing - // // process.stdin to UTF8 encoding to at least make stdin reading compatible - // // with text files until FS.init can be refactored. - // process.stdin.setEncoding('utf8'); - // } - }, - shutdown() { - // https://github.com/emscripten-core/emscripten/pull/1555 - // if (ENVIRONMENT_IS_NODE) { - // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? - // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation - // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? - // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle - // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call - // process.stdin.pause(); - // } - }, - register(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops: ops }; - FS.registerDevice(dev, TTY.stream_ops); - }, - stream_ops:{ - open(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - }, - close(stream) { - // flush any pending line data - stream.tty.ops.fsync(stream.tty); - }, - fsync(stream) { - stream.tty.ops.fsync(stream.tty); - }, - read(stream, buffer, offset, length, pos /* ignored */) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, - write(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset+i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - }, - }, - default_tty_ops:{ - get_char(tty) { - return FS_stdin_getChar(); - }, - put_char(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. - } - }, - fsync(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output)); - tty.output = []; - } - }, - ioctl_tcgets(tty) { - // typical setting - return { - c_iflag: 25856, - c_oflag: 5, - c_cflag: 191, - c_lflag: 35387, - c_cc: [ - 0x03, 0x1c, 0x7f, 0x15, 0x04, 0x00, 0x01, 0x00, 0x11, 0x13, 0x1a, 0x00, - 0x12, 0x0f, 0x17, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - }; - }, - ioctl_tcsets(tty, optional_actions, data) { - // currently just ignore - return 0; - }, - ioctl_tiocgwinsz(tty) { - return [24, 80]; - }, - }, - default_tty1_ops:{ - put_char(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - }, - fsync(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output)); - tty.output = []; - } - }, - }, - }; - - - var zeroMemory = (address, size) => { - HEAPU8.fill(0, address, address + size); - }; - - var alignMemory = (size, alignment) => { - assert(alignment, "alignment argument is required"); - return Math.ceil(size / alignment) * alignment; - }; - var mmapAlloc = (size) => { - abort('internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported'); - }; - var MEMFS = { - ops_table:null, - mount(mount) { - return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); - }, - createNode(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - // no supported - throw new FS.ErrnoError(63); - } - MEMFS.ops_table ||= { - dir: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - lookup: MEMFS.node_ops.lookup, - mknod: MEMFS.node_ops.mknod, - rename: MEMFS.node_ops.rename, - unlink: MEMFS.node_ops.unlink, - rmdir: MEMFS.node_ops.rmdir, - readdir: MEMFS.node_ops.readdir, - symlink: MEMFS.node_ops.symlink - }, - stream: { - llseek: MEMFS.stream_ops.llseek - } - }, - file: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: { - llseek: MEMFS.stream_ops.llseek, - read: MEMFS.stream_ops.read, - write: MEMFS.stream_ops.write, - allocate: MEMFS.stream_ops.allocate, - mmap: MEMFS.stream_ops.mmap, - msync: MEMFS.stream_ops.msync - } - }, - link: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - readlink: MEMFS.node_ops.readlink - }, - stream: {} - }, - chrdev: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: FS.chrdev_stream_ops - } - }; - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. - // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred - // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size - // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - // add the new node to the parent - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - }, - getFileDataAsTypedArray(node) { - if (!node.contents) return new Uint8Array(0); - if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. - return new Uint8Array(node.contents); - }, - expandFileStorage(node, newCapacity) { - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. - // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. - // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to - // avoid overshooting the allocation cap by a very large margin. - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); // Allocate new storage. - if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. - }, - resizeFileStorage(node, newSize) { - if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; // Fully decommit when requesting a resize to zero. - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); // Allocate new storage. - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. - } - node.usedBytes = newSize; - } - }, - node_ops:{ - getattr(node) { - var attr = {}; - // device numbers reuse inode numbers. - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), - // but this is not required by the standard. - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - }, - setattr(node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; - } - if (attr.size !== undefined) { - MEMFS.resizeFileStorage(node, attr.size); - } - }, - lookup(parent, name) { - throw FS.genericErrors[44]; - }, - mknod(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - }, - rename(old_node, new_dir, new_name) { - // if we're overwriting a directory at new_name, make sure it's empty. - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - // do the internal rewiring - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now() - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - }, - unlink(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, - rmdir(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, - readdir(node) { - var entries = ['.', '..']; - for (var key of Object.keys(node.contents)) { - entries.push(key); - } - return entries; - }, - symlink(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); - node.link = oldpath; - return node; - }, - readlink(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - }, - }, - stream_ops:{ - read(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) return 0; - var size = Math.min(stream.node.usedBytes - position, length); - assert(size >= 0); - if (size > 8 && contents.subarray) { // non-trivial, and typed array - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; - } - return size; - }, - write(stream, buffer, offset, length, position, canOwn) { - // The data buffer should be a typed array view - assert(!(buffer instanceof ArrayBuffer)); - // If the buffer is located in main memory (HEAP), and if - // memory can grow, we can't hold on to references of the - // memory buffer, as they may get invalidated. That means we - // need to do copy its contents. - if (buffer.buffer === HEAP8.buffer) { - canOwn = false; - } - - if (!length) return 0; - var node = stream.node; - node.timestamp = Date.now(); - - if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? - if (canOwn) { - assert(position === 0, 'canOwn must imply no weird position inside the file'); - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - - // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. - MEMFS.expandFileStorage(node, position+length); - if (node.contents.subarray && buffer.subarray) { - // Use typed array write which is available. - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - }, - llseek(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, - allocate(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, - mmap(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - // Only make a new copy when MAP_PRIVATE is specified. - if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) { - // We can't emulate MAP_SHARED when the file is not backed by the - // buffer we're mapping to (e.g. the HEAP buffer). - allocated = false; - ptr = contents.byteOffset; - } else { - allocated = true; - ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - if (contents) { - // Try to avoid unnecessary slices. - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - HEAP8.set(contents, ptr); - } - } - return { ptr, allocated }; - }, - msync(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - // should we check if bytesWritten and length are the same? - return 0; - }, - }, - }; - - /** @param {boolean=} noRunDep */ - var asyncLoad = (url, onload, onerror, noRunDep) => { - var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ''; - readAsync(url).then( - (arrayBuffer) => { - assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`); - onload(new Uint8Array(arrayBuffer)); - if (dep) removeRunDependency(dep); - }, - (err) => { - if (onerror) { - onerror(); - } else { - throw `Loading data file "${url}" failed.`; - } - } - ); - if (dep) addRunDependency(dep); - }; - - - var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => { - FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn); - }; - - var preloadPlugins = Module['preloadPlugins'] || []; - var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => { - // Ensure plugins are ready. - if (typeof Browser != 'undefined') Browser.init(); - - var handled = false; - preloadPlugins.forEach((plugin) => { - if (handled) return; - if (plugin['canHandle'](fullname)) { - plugin['handle'](byteArray, fullname, finish, onerror); - handled = true; - } - }); - return handled; - }; - var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - // TODO we should allow people to just pass in a complete filename instead - // of parent and name being that we just join them anyways - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency(`cp ${fullname}`); // might have several active requests for the same fullname - function processData(byteArray) { - function finish(byteArray) { - preFinish?.(); - if (!dontCreateFile) { - FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); - } - onload?.(); - removeRunDependency(dep); - } - if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { - onerror?.(); - removeRunDependency(dep); - })) { - return; - } - finish(byteArray); - } - addRunDependency(dep); - if (typeof url == 'string') { - asyncLoad(url, processData, onerror); - } else { - processData(url); - } - }; - - var FS_modeStringToFlags = (str) => { - var flagModes = { - 'r': 0, - 'r+': 2, - 'w': 512 | 64 | 1, - 'w+': 512 | 64 | 2, - 'a': 1024 | 64 | 1, - 'a+': 1024 | 64 | 2, - }; - var flags = flagModes[str]; - if (typeof flags == 'undefined') { - throw new Error(`Unknown file open mode: ${str}`); - } - return flags; - }; - - var FS_getMode = (canRead, canWrite) => { - var mode = 0; - if (canRead) mode |= 292 | 73; - if (canWrite) mode |= 146; - return mode; - }; - - - - - - - /** - * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the - * emscripten HEAP, returns a copy of that string as a Javascript String object. - * - * @param {number} ptr - * @param {number=} maxBytesToRead - An optional length that specifies the - * maximum number of bytes to read. You can omit this parameter to scan the - * string until the first 0 byte. If maxBytesToRead is passed, and the string - * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the - * string will cut short at that byte index (i.e. maxBytesToRead will not - * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing - * frequent uses of UTF8ToString() with and without maxBytesToRead may throw - * JS JIT optimizations off, so it is worth to consider consistently using one - * @return {string} - */ - var UTF8ToString = (ptr, maxBytesToRead) => { - assert(typeof ptr == 'number', `UTF8ToString expects a number (got ${typeof ptr})`); - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; - }; - - var strError = (errno) => { - return UTF8ToString(_strerror(errno)); - }; - - var ERRNO_CODES = { - 'EPERM': 63, - 'ENOENT': 44, - 'ESRCH': 71, - 'EINTR': 27, - 'EIO': 29, - 'ENXIO': 60, - 'E2BIG': 1, - 'ENOEXEC': 45, - 'EBADF': 8, - 'ECHILD': 12, - 'EAGAIN': 6, - 'EWOULDBLOCK': 6, - 'ENOMEM': 48, - 'EACCES': 2, - 'EFAULT': 21, - 'ENOTBLK': 105, - 'EBUSY': 10, - 'EEXIST': 20, - 'EXDEV': 75, - 'ENODEV': 43, - 'ENOTDIR': 54, - 'EISDIR': 31, - 'EINVAL': 28, - 'ENFILE': 41, - 'EMFILE': 33, - 'ENOTTY': 59, - 'ETXTBSY': 74, - 'EFBIG': 22, - 'ENOSPC': 51, - 'ESPIPE': 70, - 'EROFS': 69, - 'EMLINK': 34, - 'EPIPE': 64, - 'EDOM': 18, - 'ERANGE': 68, - 'ENOMSG': 49, - 'EIDRM': 24, - 'ECHRNG': 106, - 'EL2NSYNC': 156, - 'EL3HLT': 107, - 'EL3RST': 108, - 'ELNRNG': 109, - 'EUNATCH': 110, - 'ENOCSI': 111, - 'EL2HLT': 112, - 'EDEADLK': 16, - 'ENOLCK': 46, - 'EBADE': 113, - 'EBADR': 114, - 'EXFULL': 115, - 'ENOANO': 104, - 'EBADRQC': 103, - 'EBADSLT': 102, - 'EDEADLOCK': 16, - 'EBFONT': 101, - 'ENOSTR': 100, - 'ENODATA': 116, - 'ETIME': 117, - 'ENOSR': 118, - 'ENONET': 119, - 'ENOPKG': 120, - 'EREMOTE': 121, - 'ENOLINK': 47, - 'EADV': 122, - 'ESRMNT': 123, - 'ECOMM': 124, - 'EPROTO': 65, - 'EMULTIHOP': 36, - 'EDOTDOT': 125, - 'EBADMSG': 9, - 'ENOTUNIQ': 126, - 'EBADFD': 127, - 'EREMCHG': 128, - 'ELIBACC': 129, - 'ELIBBAD': 130, - 'ELIBSCN': 131, - 'ELIBMAX': 132, - 'ELIBEXEC': 133, - 'ENOSYS': 52, - 'ENOTEMPTY': 55, - 'ENAMETOOLONG': 37, - 'ELOOP': 32, - 'EOPNOTSUPP': 138, - 'EPFNOSUPPORT': 139, - 'ECONNRESET': 15, - 'ENOBUFS': 42, - 'EAFNOSUPPORT': 5, - 'EPROTOTYPE': 67, - 'ENOTSOCK': 57, - 'ENOPROTOOPT': 50, - 'ESHUTDOWN': 140, - 'ECONNREFUSED': 14, - 'EADDRINUSE': 3, - 'ECONNABORTED': 13, - 'ENETUNREACH': 40, - 'ENETDOWN': 38, - 'ETIMEDOUT': 73, - 'EHOSTDOWN': 142, - 'EHOSTUNREACH': 23, - 'EINPROGRESS': 26, - 'EALREADY': 7, - 'EDESTADDRREQ': 17, - 'EMSGSIZE': 35, - 'EPROTONOSUPPORT': 66, - 'ESOCKTNOSUPPORT': 137, - 'EADDRNOTAVAIL': 4, - 'ENETRESET': 39, - 'EISCONN': 30, - 'ENOTCONN': 53, - 'ETOOMANYREFS': 141, - 'EUSERS': 136, - 'EDQUOT': 19, - 'ESTALE': 72, - 'ENOTSUP': 138, - 'ENOMEDIUM': 148, - 'EILSEQ': 25, - 'EOVERFLOW': 61, - 'ECANCELED': 11, - 'ENOTRECOVERABLE': 56, - 'EOWNERDEAD': 62, - 'ESTRPIPE': 135, - }; - var FS = { - root:null, - mounts:[], - devices:{ - }, - streams:[], - nextInode:1, - nameTable:null, - currentPath:"/", - initialized:false, - ignorePermissions:true, - ErrnoError:class extends Error { - name = 'ErrnoError'; - // We set the `name` property to be able to identify `FS.ErrnoError` - // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway. - // - when using PROXYFS, an error can come from an underlying FS - // as different FS objects have their own FS.ErrnoError each, - // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs. - // we'll use the reliable test `err.name == "ErrnoError"` instead - constructor(errno) { - super(runtimeInitialized ? strError(errno) : ''); - this.errno = errno; - for (var key in ERRNO_CODES) { - if (ERRNO_CODES[key] === errno) { - this.code = key; - break; - } - } - } - }, - genericErrors:{ - }, - filesystems:null, - syncFSRequests:0, - readFiles:{ - }, - FSStream:class { - shared = {}; - get object() { - return this.node; - } - set object(val) { - this.node = val; - } - get isRead() { - return (this.flags & 2097155) !== 1; - } - get isWrite() { - return (this.flags & 2097155) !== 0; - } - get isAppend() { - return (this.flags & 1024); - } - get flags() { - return this.shared.flags; - } - set flags(val) { - this.shared.flags = val; - } - get position() { - return this.shared.position; - } - set position(val) { - this.shared.position = val; - } - }, - FSNode:class { - node_ops = {}; - stream_ops = {}; - readMode = 292 | 73; - writeMode = 146; - mounted = null; - constructor(parent, name, mode, rdev) { - if (!parent) { - parent = this; // root node sets parent to itself - } - this.parent = parent; - this.mount = parent.mount; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.rdev = rdev; - } - get read() { - return (this.mode & this.readMode) === this.readMode; - } - set read(val) { - val ? this.mode |= this.readMode : this.mode &= ~this.readMode; - } - get write() { - return (this.mode & this.writeMode) === this.writeMode; - } - set write(val) { - val ? this.mode |= this.writeMode : this.mode &= ~this.writeMode; - } - get isFolder() { - return FS.isDir(this.mode); - } - get isDevice() { - return FS.isChrdev(this.mode); - } - }, - lookupPath(path, opts = {}) { - path = PATH_FS.resolve(path); - - if (!path) return { path: '', node: null }; - - var defaults = { - follow_mount: true, - recurse_count: 0 - }; - opts = Object.assign(defaults, opts) - - if (opts.recurse_count > 8) { // max recursive lookup of 8 - throw new FS.ErrnoError(32); - } - - // split the absolute path - var parts = path.split('/').filter((p) => !!p); - - // start at the root - var current = FS.root; - var current_path = '/'; - - for (var i = 0; i < parts.length; i++) { - var islast = (i === parts.length-1); - if (islast && opts.parent) { - // stop resolving - break; - } - - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - - // jump to the mount's root node if this is a mountpoint - if (FS.isMountpoint(current)) { - if (!islast || (islast && opts.follow_mount)) { - current = current.mounted.root; - } - } - - // by default, lookupPath will not follow a symlink if it is the final path component. - // setting opts.follow = true will override this behavior. - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - - if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). - throw new FS.ErrnoError(32); - } - } - } - } - - return { path: current_path, node: current }; - }, - getPath(node) { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) return mount; - return mount[mount.length-1] !== '/' ? `${mount}/${path}` : mount + path; - } - path = path ? `${node.name}/${path}` : node.name; - node = node.parent; - } - }, - hashName(parentid, name) { - var hash = 0; - - for (var i = 0; i < name.length; i++) { - hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; - } - return ((parentid + hash) >>> 0) % FS.nameTable.length; - }, - hashAddNode(node) { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - }, - hashRemoveNode(node) { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - }, - lookupNode(parent, name) { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - // if we failed to find it in the cache, call into the VFS - return FS.lookup(parent, name); - }, - createNode(parent, name, mode, rdev) { - assert(typeof parent == 'object') - var node = new FS.FSNode(parent, name, mode, rdev); - - FS.hashAddNode(node); - - return node; - }, - destroyNode(node) { - FS.hashRemoveNode(node); - }, - isRoot(node) { - return node === node.parent; - }, - isMountpoint(node) { - return !!node.mounted; - }, - isFile(mode) { - return (mode & 61440) === 32768; - }, - isDir(mode) { - return (mode & 61440) === 16384; - }, - isLink(mode) { - return (mode & 61440) === 40960; - }, - isChrdev(mode) { - return (mode & 61440) === 8192; - }, - isBlkdev(mode) { - return (mode & 61440) === 24576; - }, - isFIFO(mode) { - return (mode & 61440) === 4096; - }, - isSocket(mode) { - return (mode & 49152) === 49152; - }, - flagsToPermissionString(flag) { - var perms = ['r', 'w', 'rw'][flag & 3]; - if ((flag & 512)) { - perms += 'w'; - } - return perms; - }, - nodePermissions(node, perms) { - if (FS.ignorePermissions) { - return 0; - } - // return 0 if any user, group or owner bits are set. - if (perms.includes('r') && !(node.mode & 292)) { - return 2; - } else if (perms.includes('w') && !(node.mode & 146)) { - return 2; - } else if (perms.includes('x') && !(node.mode & 73)) { - return 2; - } - return 0; - }, - mayLookup(dir) { - if (!FS.isDir(dir.mode)) return 54; - var errCode = FS.nodePermissions(dir, 'x'); - if (errCode) return errCode; - if (!dir.node_ops.lookup) return 2; - return 0; - }, - mayCreate(dir, name) { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, 'wx'); - }, - mayDelete(dir, name, isdir) { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, 'wx'); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - }, - mayOpen(node, flags) { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write - (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, - MAX_OPEN_FDS:4096, - nextfd() { - for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - }, - getStreamChecked(fd) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - return stream; - }, - getStream:(fd) => FS.streams[fd], - createStream(stream, fd = -1) { - assert(fd >= -1); - - // clone it, so we can return an instance of FSStream - stream = Object.assign(new FS.FSStream(), stream); - if (fd == -1) { - fd = FS.nextfd(); - } - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - }, - closeStream(fd) { - FS.streams[fd] = null; - }, - dupStream(origStream, fd = -1) { - var stream = FS.createStream(origStream, fd); - stream.stream_ops?.dup?.(stream); - return stream; - }, - chrdev_stream_ops:{ - open(stream) { - var device = FS.getDevice(stream.node.rdev); - // override node's stream ops with the device's - stream.stream_ops = device.stream_ops; - // forward the open call - stream.stream_ops.open?.(stream); - }, - llseek() { - throw new FS.ErrnoError(70); - }, - }, - major:(dev) => ((dev) >> 8), - minor:(dev) => ((dev) & 0xff), - makedev:(ma, mi) => ((ma) << 8 | (mi)), - registerDevice(dev, ops) { - FS.devices[dev] = { stream_ops: ops }; - }, - getDevice:(dev) => FS.devices[dev], - getMounts(mount) { - var mounts = []; - var check = [mount]; - - while (check.length) { - var m = check.pop(); - - mounts.push(m); - - check.push(...m.mounts); - } - - return mounts; - }, - syncfs(populate, callback) { - if (typeof populate == 'function') { - callback = populate; - populate = false; - } - - FS.syncFSRequests++; - - if (FS.syncFSRequests > 1) { - err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`); - } - - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - - function doCallback(errCode) { - assert(FS.syncFSRequests > 0); - FS.syncFSRequests--; - return callback(errCode); - } - - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); - } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - }; - - // sync all mounts - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - }, - mount(type, opts, mountpoint) { - if (typeof type == 'string') { - // The filesystem was not included, and instead we have an error - // message stored in the variable. - throw type; - } - var root = mountpoint === '/'; - var pseudo = !mountpoint; - var node; - - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - mountpoint = lookup.path; // use the absolute path - node = lookup.node; - - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - - var mount = { - type, - opts, - mountpoint, - mounts: [] - }; - - // create a root node for the fs - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - - if (root) { - FS.root = mountRoot; - } else if (node) { - // set as a mountpoint - node.mounted = mount; - - // add the new mount to the current mount's children - if (node.mount) { - node.mount.mounts.push(mount); - } - } - - return mountRoot; - }, - unmount(mountpoint) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - - // destroy the nodes for this mount, and all its child mounts - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - - while (current) { - var next = current.name_next; - - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - - current = next; - } - }); - - // no longer a mountpoint - node.mounted = null; - - // remove this mount from the child mounts - var idx = node.mount.mounts.indexOf(mount); - assert(idx !== -1); - node.mount.mounts.splice(idx, 1); - }, - lookup(parent, name) { - return parent.node_ops.lookup(parent, name); - }, - mknod(path, mode, dev) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === '.' || name === '..') { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - }, - create(path, mode) { - mode = mode !== undefined ? mode : 438 /* 0666 */; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - }, - mkdir(path, mode) { - mode = mode !== undefined ? mode : 511 /* 0777 */; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - }, - mkdirTree(path, mode) { - var dirs = path.split('/'); - var d = ''; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) continue; - d += '/' + dirs[i]; - try { - FS.mkdir(d, mode); - } catch(e) { - if (e.errno != 20) throw e; - } - } - }, - mkdev(path, mode, dev) { - if (typeof dev == 'undefined') { - dev = mode; - mode = 438 /* 0666 */; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - }, - symlink(oldpath, newpath) { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - }, - rename(old_path, new_path) { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - // parents must exist - var lookup, old_dir, new_dir; - - // let the errors from non existent directories percolate up - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - - if (!old_dir || !new_dir) throw new FS.ErrnoError(44); - // need to be part of the same mount - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - // source must exist - var old_node = FS.lookupNode(old_dir, old_name); - // old path should not be an ancestor of the new path - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(28); - } - // new path should not be an ancestor of the old path - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== '.') { - throw new FS.ErrnoError(55); - } - // see if the new path already exists - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - // not fatal - } - // early out if nothing needs to change - if (old_node === new_node) { - return; - } - // we'll need to delete the old entry - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - // need delete permissions if we'll be overwriting. - // need create permissions if new doesn't already exist. - errCode = new_node ? - FS.mayDelete(new_dir, new_name, isdir) : - FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { - throw new FS.ErrnoError(10); - } - // if we are going to change the parent, check write permissions - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // remove the node from the lookup hash - FS.hashRemoveNode(old_node); - // do the underlying fs rename - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - // update old node (we do this here to avoid each backend - // needing to) - old_node.parent = new_dir; - } catch (e) { - throw e; - } finally { - // add the node back to the hash (in case node_ops.rename - // changed its name) - FS.hashAddNode(old_node); - } - }, - rmdir(path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - }, - readdir(path) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - }, - unlink(path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - // According to POSIX, we should map EISDIR to EPERM, but - // we instead do what Linux does (and we must, as we use - // the musl linux libc). - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - }, - readlink(path) { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - }, - stat(path, dontFollow) { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - }, - lstat(path) { - return FS.stat(path, true); - }, - chmod(path, mode, dontFollow) { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - mode: (mode & 4095) | (node.mode & ~4095), - timestamp: Date.now() - }); - }, - lchmod(path, mode) { - FS.chmod(path, mode, true); - }, - fchmod(fd, mode) { - var stream = FS.getStreamChecked(fd); - FS.chmod(stream.node, mode); - }, - chown(path, uid, gid, dontFollow) { - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - timestamp: Date.now() - // we ignore the uid / gid for now - }); - }, - lchown(path, uid, gid) { - FS.chown(path, uid, gid, true); - }, - fchown(fd, uid, gid) { - var stream = FS.getStreamChecked(fd); - FS.chown(stream.node, uid, gid); - }, - truncate(path, len) { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == 'string') { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, 'w'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { - size: len, - timestamp: Date.now() - }); - }, - ftruncate(fd, len) { - var stream = FS.getStreamChecked(fd); - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - }, - utime(path, atime, mtime) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { - timestamp: Math.max(atime, mtime) - }); - }, - open(path, flags, mode) { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == 'string' ? FS_modeStringToFlags(flags) : flags; - if ((flags & 64)) { - mode = typeof mode == 'undefined' ? 438 /* 0666 */ : mode; - mode = (mode & 4095) | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == 'object') { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { - follow: !(flags & 131072) - }); - node = lookup.node; - } catch (e) { - // ignore - } - } - // perhaps we need to create the node - var created = false; - if ((flags & 64)) { - if (node) { - // if O_CREAT and O_EXCL are set, error out if the node already exists - if ((flags & 128)) { - throw new FS.ErrnoError(20); - } - } else { - // node doesn't exist, try to create it - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - // can't truncate a device - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - // if asked only for a directory, then this must be one - if ((flags & 65536) && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - // check permissions, if this is not a file we just created now (it is ok to - // create and write to a file with read-only permissions; it is read-only - // for later use) - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - // do truncation if necessary - if ((flags & 512) && !created) { - FS.truncate(node, 0); - } - // we've already handled these, don't pass down to the underlying vfs - flags &= ~(128 | 512 | 131072); - - // register the stream with the filesystem - var stream = FS.createStream({ - node, - path: FS.getPath(node), // we want the absolute path to the node - flags, - seekable: true, - position: 0, - stream_ops: node.stream_ops, - // used by the file family libc calls (fopen, fwrite, ferror, etc.) - ungotten: [], - error: false - }); - // call the new stream's open function - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module['logReadFiles'] && !(flags & 1)) { - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - }, - close(stream) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) stream.getdents = null; // free readdir state - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - }, - isClosed(stream) { - return stream.fd === null; - }, - llseek(stream, offset, whence) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - }, - read(stream, buffer, offset, length, position) { - assert(offset >= 0); - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) stream.position += bytesRead; - return bytesRead; - }, - write(stream, buffer, offset, length, position, canOwn) { - assert(offset >= 0); - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - // seek to the end before writing in append mode - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != 'undefined'; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) stream.position += bytesWritten; - return bytesWritten; - }, - allocate(stream, offset, length) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - }, - mmap(stream, length, position, prot, flags) { - // User requests writing to file (prot & PROT_WRITE != 0). - // Checking if we have permissions to write to the file unless - // MAP_PRIVATE flag is set. According to POSIX spec it is possible - // to write to file opened in read-only mode with MAP_PRIVATE flag, - // as all modifications will be visible only in the memory of - // the current process. - if ((prot & 2) !== 0 - && (flags & 2) === 0 - && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - if (!length) { - throw new FS.ErrnoError(28); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - }, - msync(stream, buffer, offset, length, mmapFlags) { - assert(offset >= 0); - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - }, - ioctl(stream, cmd, arg) { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - }, - readFile(path, opts = {}) { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || 'binary'; - if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { - throw new Error(`Invalid encoding type "${opts.encoding}"`); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === 'utf8') { - ret = UTF8ArrayToString(buf); - } else if (opts.encoding === 'binary') { - ret = buf; - } - FS.close(stream); - return ret; - }, - writeFile(path, data, opts = {}) { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == 'string') { - var buf = new Uint8Array(lengthBytesUTF8(data)+1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); - } else { - throw new Error('Unsupported data type'); - } - FS.close(stream); - }, - cwd:() => FS.currentPath, - chdir(path) { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); - } - var errCode = FS.nodePermissions(lookup.node, 'x'); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.currentPath = lookup.path; - }, - createDefaultDirectories() { - FS.mkdir('/tmp'); - FS.mkdir('/home'); - FS.mkdir('/home/web_user'); - }, - createDefaultDevices() { - // create /dev - FS.mkdir('/dev'); - // setup /dev/null - FS.registerDevice(FS.makedev(1, 3), { - read: () => 0, - write: (stream, buffer, offset, length, pos) => length, - }); - FS.mkdev('/dev/null', FS.makedev(1, 3)); - // setup /dev/tty and /dev/tty1 - // stderr needs to print output using err() rather than out() - // so we register a second tty just for it. - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev('/dev/tty', FS.makedev(5, 0)); - FS.mkdev('/dev/tty1', FS.makedev(6, 0)); - // setup /dev/[u]random - // use a buffer to avoid overhead of individual crypto calls per byte - var randomBuffer = new Uint8Array(1024), randomLeft = 0; - var randomByte = () => { - if (randomLeft === 0) { - randomLeft = randomFill(randomBuffer).byteLength; - } - return randomBuffer[--randomLeft]; - }; - FS.createDevice('/dev', 'random', randomByte); - FS.createDevice('/dev', 'urandom', randomByte); - // we're not going to emulate the actual shm device, - // just create the tmp dirs that reside in it commonly - FS.mkdir('/dev/shm'); - FS.mkdir('/dev/shm/tmp'); - }, - createSpecialDirectories() { - // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the - // name of the stream for fd 6 (see test_unistd_ttyname) - FS.mkdir('/proc'); - var proc_self = FS.mkdir('/proc/self'); - FS.mkdir('/proc/self/fd'); - FS.mount({ - mount() { - var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73); - node.node_ops = { - lookup(parent, name) { - var fd = +name; - var stream = FS.getStreamChecked(fd); - var ret = { - parent: null, - mount: { mountpoint: 'fake' }, - node_ops: { readlink: () => stream.path }, - }; - ret.parent = ret; // make it look like a simple root node - return ret; - } - }; - return node; - } - }, {}, '/proc/self/fd'); - }, - createStandardStreams(input, output, error) { - // TODO deprecate the old functionality of a single - // input / output callback and that utilizes FS.createDevice - // and instead require a unique set of stream ops - - // by default, we symlink the standard streams to the - // default tty devices. however, if the standard streams - // have been overwritten we create a unique device for - // them instead. - if (input) { - FS.createDevice('/dev', 'stdin', input); - } else { - FS.symlink('/dev/tty', '/dev/stdin'); - } - if (output) { - FS.createDevice('/dev', 'stdout', null, output); - } else { - FS.symlink('/dev/tty', '/dev/stdout'); - } - if (error) { - FS.createDevice('/dev', 'stderr', null, error); - } else { - FS.symlink('/dev/tty1', '/dev/stderr'); - } - - // open default streams for the stdin, stdout and stderr devices - var stdin = FS.open('/dev/stdin', 0); - var stdout = FS.open('/dev/stdout', 1); - var stderr = FS.open('/dev/stderr', 1); - assert(stdin.fd === 0, `invalid handle for stdin (${stdin.fd})`); - assert(stdout.fd === 1, `invalid handle for stdout (${stdout.fd})`); - assert(stderr.fd === 2, `invalid handle for stderr (${stderr.fd})`); - }, - staticInit() { - // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ''; - }); - - FS.nameTable = new Array(4096); - - FS.mount(MEMFS, {}, '/'); - - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - - FS.filesystems = { - 'MEMFS': MEMFS, - }; - }, - init(input, output, error) { - assert(!FS.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); - FS.initialized = true; - - // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here - input ??= Module['stdin']; - output ??= Module['stdout']; - error ??= Module['stderr']; - - FS.createStandardStreams(input, output, error); - }, - quit() { - FS.initialized = false; - // force-flush all streams, so we get musl std streams printed out - _fflush(0); - // close all of our streams - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - }, - findObject(path, dontResolveLastLink) { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - }, - analyzePath(path, dontResolveLastLink) { - // operate from within the context of the symlink's target - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { - isRoot: false, exists: false, error: 0, name: null, path: null, object: null, - parentExists: false, parentPath: null, parentObject: null - }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === '/'; - } catch (e) { - ret.error = e.errno; - }; - return ret; - }, - createPath(parent, path, canRead, canWrite) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - var parts = path.split('/').reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - // ignore EEXIST - } - parent = current; - } - return current; - }, - createFile(parent, name, properties, canRead, canWrite) { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS_getMode(canRead, canWrite); - return FS.create(path, mode); - }, - createDataFile(parent, name, data, canRead, canWrite, canOwn) { - var path = name; - if (parent) { - parent = typeof parent == 'string' ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS_getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == 'string') { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); - data = arr; - } - // make sure we can write to the file - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - }, - createDevice(parent, name, input, output) { - var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); - var mode = FS_getMode(!!input, !!output); - FS.createDevice.major ??= 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - // Create a fake device that a set of stream ops to emulate - // the old behavior. - FS.registerDevice(dev, { - open(stream) { - stream.seekable = false; - }, - close(stream) { - // flush any pending line data - if (output?.buffer?.length) { - output(10); - } - }, - read(stream, buffer, offset, length, pos /* ignored */) { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset+i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, - write(stream, buffer, offset, length, pos) { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset+i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } - }); - return FS.mkdev(path, mode, dev); - }, - forceLoadFile(obj) { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - if (typeof XMLHttpRequest != 'undefined') { - throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); - } else { // Command-line. - try { - obj.contents = readBinary(obj.url); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } - }, - createLazyFile(parent, name, url, canRead, canWrite) { - // Lazy chunked Uint8Array (implements get and length from Uint8Array). - // Actual getting is abstracted away for eventual reuse. - class LazyUint8Array { - lengthKnown = false; - chunks = []; // Loaded chunks. Index is the chunk number - get(idx) { - if (idx > this.length-1 || idx < 0) { - return undefined; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = (idx / this.chunkSize)|0; - return this.getter(chunkNum)[chunkOffset]; - } - setDataGetter(getter) { - this.getter = getter; - } - cacheLength() { - // Find length - var xhr = new XMLHttpRequest(); - xhr.open('HEAD', url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - - var chunkSize = 1024*1024; // Chunk size in bytes - - if (!hasByteServing) chunkSize = datalength; - - // Function to get a range from the remote URL. - var doXHR = (from, to) => { - if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); - - // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); - - // Some hints to the browser that we want binary data. - xhr.responseType = 'arraybuffer'; - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - } - - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - if (xhr.response !== undefined) { - return new Uint8Array(/** @type{Array} */(xhr.response || [])); - } - return intArrayFromString(xhr.responseText || '', true); - }; - var lazyArray = this; - lazyArray.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum+1) * chunkSize - 1; // including this byte - end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block - if (typeof lazyArray.chunks[chunkNum] == 'undefined') { - lazyArray.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!'); - return lazyArray.chunks[chunkNum]; - }); - - if (usesGzip || !datalength) { - // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length - chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - } - get length() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } - get chunkSize() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._chunkSize; - } - } - - if (typeof XMLHttpRequest != 'undefined') { - if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; - var lazyArray = new LazyUint8Array(); - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url: url }; - } - - var node = FS.createFile(parent, name, properties, canRead, canWrite); - // This is a total hack, but I want to get this lazy file code out of the - // core of MEMFS. If we want to keep this lazy file concept I feel it should - // be its own thin LAZYFS proxying calls to MEMFS. - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - // Add a function that defers querying the file size until it is asked the first time. - Object.defineProperties(node, { - usedBytes: { - get: function() { return this.contents.length; } - } - }); - // override each stream op with one that tries to force load the lazy file first - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = (...args) => { - FS.forceLoadFile(node); - return fn(...args); - }; - }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - assert(size >= 0); - if (contents.slice) { // normal array - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; - } - } else { - for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR - buffer[offset + i] = contents.get(position + i); - } - } - return size; - } - // use a custom read function - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position) - }; - // use a custom mmap function - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, HEAP8, ptr, length, position); - return { ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - }, - absolutePath() { - abort('FS.absolutePath has been removed; use PATH_FS.resolve instead'); - }, - createFolder() { - abort('FS.createFolder has been removed; use FS.mkdir instead'); - }, - createLink() { - abort('FS.createLink has been removed; use FS.symlink instead'); - }, - joinPath() { - abort('FS.joinPath has been removed; use PATH.join instead'); - }, - mmapAlloc() { - abort('FS.mmapAlloc has been replaced by the top level function mmapAlloc'); - }, - standardizePath() { - abort('FS.standardizePath has been removed; use PATH.normalize instead'); - }, - }; - - var SYSCALLS = { - DEFAULT_POLLMASK:5, - calculateAt(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - // relative path - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44);; - } - return dir; - } - return PATH.join2(dir, path); - }, - doStat(func, path, buf) { - var stat = func(path); - HEAP32[((buf)>>2)] = stat.dev; - HEAP32[(((buf)+(4))>>2)] = stat.mode; - HEAPU32[(((buf)+(8))>>2)] = stat.nlink; - HEAP32[(((buf)+(12))>>2)] = stat.uid; - HEAP32[(((buf)+(16))>>2)] = stat.gid; - HEAP32[(((buf)+(20))>>2)] = stat.rdev; - (tempI64 = [stat.size>>>0,(tempDouble = stat.size,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(24))>>2)] = tempI64[0],HEAP32[(((buf)+(28))>>2)] = tempI64[1]); - HEAP32[(((buf)+(32))>>2)] = 4096; - HEAP32[(((buf)+(36))>>2)] = stat.blocks; - var atime = stat.atime.getTime(); - var mtime = stat.mtime.getTime(); - var ctime = stat.ctime.getTime(); - (tempI64 = [Math.floor(atime / 1000)>>>0,(tempDouble = Math.floor(atime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(40))>>2)] = tempI64[0],HEAP32[(((buf)+(44))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(48))>>2)] = (atime % 1000) * 1000 * 1000; - (tempI64 = [Math.floor(mtime / 1000)>>>0,(tempDouble = Math.floor(mtime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(56))>>2)] = tempI64[0],HEAP32[(((buf)+(60))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(64))>>2)] = (mtime % 1000) * 1000 * 1000; - (tempI64 = [Math.floor(ctime / 1000)>>>0,(tempDouble = Math.floor(ctime / 1000),(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(72))>>2)] = tempI64[0],HEAP32[(((buf)+(76))>>2)] = tempI64[1]); - HEAPU32[(((buf)+(80))>>2)] = (ctime % 1000) * 1000 * 1000; - (tempI64 = [stat.ino>>>0,(tempDouble = stat.ino,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[(((buf)+(88))>>2)] = tempI64[0],HEAP32[(((buf)+(92))>>2)] = tempI64[1]); - return 0; - }, - doMsync(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - // MAP_PRIVATE calls need not to be synced back to underlying fs - return 0; - } - var buffer = HEAPU8.slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - }, - getStreamFromFD(fd) { - var stream = FS.getStreamChecked(fd); - return stream; - }, - varargs:undefined, - getStr(ptr) { - var ret = UTF8ToString(ptr); - return ret; - }, - }; - function ___syscall_fcntl64(fd, cmd, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (cmd) { - case 0: { - var arg = syscallGetVarargI(); - if (arg < 0) { - return -28; - } - while (FS.streams[arg]) { - arg++; - } - var newStream; - newStream = FS.dupStream(stream, arg); - return newStream.fd; - } - case 1: - case 2: - return 0; // FD_CLOEXEC makes no sense for a single process. - case 3: - return stream.flags; - case 4: { - var arg = syscallGetVarargI(); - stream.flags |= arg; - return 0; - } - case 12: { - var arg = syscallGetVarargP(); - var offset = 0; - // We're always unlocked. - HEAP16[(((arg)+(offset))>>1)] = 2; - return 0; - } - case 13: - case 14: - return 0; // Pretend that the locking is successful. - } - return -28; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } - } - - - function ___syscall_ioctl(fd, op, varargs) { - SYSCALLS.varargs = varargs; - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - switch (op) { - case 21509: { - if (!stream.tty) return -59; - return 0; - } - case 21505: { - if (!stream.tty) return -59; - if (stream.tty.ops.ioctl_tcgets) { - var termios = stream.tty.ops.ioctl_tcgets(stream); - var argp = syscallGetVarargP(); - HEAP32[((argp)>>2)] = termios.c_iflag || 0; - HEAP32[(((argp)+(4))>>2)] = termios.c_oflag || 0; - HEAP32[(((argp)+(8))>>2)] = termios.c_cflag || 0; - HEAP32[(((argp)+(12))>>2)] = termios.c_lflag || 0; - for (var i = 0; i < 32; i++) { - HEAP8[(argp + i)+(17)] = termios.c_cc[i] || 0; - } - return 0; - } - return 0; - } - case 21510: - case 21511: - case 21512: { - if (!stream.tty) return -59; - return 0; // no-op, not actually adjusting terminal settings - } - case 21506: - case 21507: - case 21508: { - if (!stream.tty) return -59; - if (stream.tty.ops.ioctl_tcsets) { - var argp = syscallGetVarargP(); - var c_iflag = HEAP32[((argp)>>2)]; - var c_oflag = HEAP32[(((argp)+(4))>>2)]; - var c_cflag = HEAP32[(((argp)+(8))>>2)]; - var c_lflag = HEAP32[(((argp)+(12))>>2)]; - var c_cc = [] - for (var i = 0; i < 32; i++) { - c_cc.push(HEAP8[(argp + i)+(17)]); - } - return stream.tty.ops.ioctl_tcsets(stream.tty, op, { c_iflag, c_oflag, c_cflag, c_lflag, c_cc }); - } - return 0; // no-op, not actually adjusting terminal settings - } - case 21519: { - if (!stream.tty) return -59; - var argp = syscallGetVarargP(); - HEAP32[((argp)>>2)] = 0; - return 0; - } - case 21520: { - if (!stream.tty) return -59; - return -28; // not supported - } - case 21531: { - var argp = syscallGetVarargP(); - return FS.ioctl(stream, op, argp); - } - case 21523: { - // TODO: in theory we should write to the winsize struct that gets - // passed in, but for now musl doesn't read anything on it - if (!stream.tty) return -59; - if (stream.tty.ops.ioctl_tiocgwinsz) { - var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty); - var argp = syscallGetVarargP(); - HEAP16[((argp)>>1)] = winsize[0]; - HEAP16[(((argp)+(2))>>1)] = winsize[1]; - } - return 0; - } - case 21524: { - // TODO: technically, this ioctl call should change the window size. - // but, since emscripten doesn't have any concept of a terminal window - // yet, we'll just silently throw it away as we do TIOCGWINSZ - if (!stream.tty) return -59; - return 0; - } - case 21515: { - if (!stream.tty) return -59; - return 0; - } - default: return -28; // not supported - } - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } - } - - - function ___syscall_openat(dirfd, path, flags, varargs) { - SYSCALLS.varargs = varargs; - try { - - path = SYSCALLS.getStr(path); - path = SYSCALLS.calculateAt(dirfd, path); - var mode = varargs ? syscallGetVarargI() : 0; - return FS.open(path, flags, mode).fd; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return -e.errno; - } - } - - var __emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num); - - var getHeapMax = () => - // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate - // full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side - // for any code that deals with heap sizes, which would require special - // casing all heap size related code to treat 0 specially. - 2147483648; - - - var growMemory = (size) => { - var b = wasmMemory.buffer; - var pages = ((size - b.byteLength + 65535) / 65536) | 0; - try { - // round size grow request up to wasm page size (fixed 64KB per spec) - wasmMemory.grow(pages); // .grow() takes a delta compared to the previous size - updateMemoryViews(); - return 1 /*success*/; - } catch(e) { - err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`); - } - // implicit 0 return to save code size (caller will cast "undefined" into 0 - // anyhow) - }; - var _emscripten_resize_heap = (requestedSize) => { - var oldSize = HEAPU8.length; - // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. - requestedSize >>>= 0; - // With multithreaded builds, races can happen (another thread might increase the size - // in between), so return a failure, and let the caller retry. - assert(requestedSize > oldSize); - - // Memory resize rules: - // 1. Always increase heap size to at least the requested size, rounded up - // to next page multiple. - // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap - // geometrically: increase the heap size according to - // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most - // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). - // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap - // linearly: increase the heap size by at least - // MEMORY_GROWTH_LINEAR_STEP bytes. - // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by - // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest - // 4. If we were unable to allocate as much memory, it may be due to - // over-eager decision to excessively reserve due to (3) above. - // Hence if an allocation fails, cut down on the amount of excess - // growth, in an attempt to succeed to perform a smaller allocation. - - // A limit is set for how much we can grow. We should not exceed that - // (the wasm binary specifies it, so if we tried, we'd fail anyhow). - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`); - return false; - } - - // Loop through potential heap size increases. If we attempt a too eager - // reservation that fails, cut down on the attempted size and reserve a - // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth - // but limit overreserving (default to capping at +96MB overgrowth at most) - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296 ); - - var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)); - - var replacement = growMemory(newSize); - if (replacement) { - - return true; - } - } - err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`); - return false; - }; - - var ENV = { - }; - - var getExecutableName = () => { - return thisProgram || './this.program'; - }; - var getEnvStrings = () => { - if (!getEnvStrings.strings) { - // Default values. - // Browser language detection #8751 - var lang = ((typeof navigator == 'object' && navigator.languages && navigator.languages[0]) || 'C').replace('-', '_') + '.UTF-8'; - var env = { - 'USER': 'web_user', - 'LOGNAME': 'web_user', - 'PATH': '/', - 'PWD': '/', - 'HOME': '/home/web_user', - 'LANG': lang, - '_': getExecutableName() - }; - // Apply the user-provided values, if any. - for (var x in ENV) { - // x is a key in ENV; if ENV[x] is undefined, that means it was - // explicitly set to be so. We allow user code to do that to - // force variables with default values to remain unset. - if (ENV[x] === undefined) delete env[x]; - else env[x] = ENV[x]; - } - var strings = []; - for (var x in env) { - strings.push(`${x}=${env[x]}`); - } - getEnvStrings.strings = strings; - } - return getEnvStrings.strings; - }; - - var stringToAscii = (str, buffer) => { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === (str.charCodeAt(i) & 0xff)); - HEAP8[buffer++] = str.charCodeAt(i); - } - // Null-terminate the string - HEAP8[buffer] = 0; - }; - var _environ_get = (__environ, environ_buf) => { - var bufSize = 0; - getEnvStrings().forEach((string, i) => { - var ptr = environ_buf + bufSize; - HEAPU32[(((__environ)+(i*4))>>2)] = ptr; - stringToAscii(string, ptr); - bufSize += string.length + 1; - }); - return 0; - }; - - var _environ_sizes_get = (penviron_count, penviron_buf_size) => { - var strings = getEnvStrings(); - HEAPU32[((penviron_count)>>2)] = strings.length; - var bufSize = 0; - strings.forEach((string) => bufSize += string.length + 1); - HEAPU32[((penviron_buf_size)>>2)] = bufSize; - return 0; - }; - - - var runtimeKeepaliveCounter = 0; - var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; - var _proc_exit = (code) => { - EXITSTATUS = code; - if (!keepRuntimeAlive()) { - Module['onExit']?.(code); - ABORT = true; - } - quit_(code, new ExitStatus(code)); - }; - - - /** @suppress {duplicate } */ - /** @param {boolean|number=} implicit */ - var exitJS = (status, implicit) => { - EXITSTATUS = status; - - checkUnflushedContent(); - - // if exit() was called explicitly, warn the user if the runtime isn't actually being shut down - if (keepRuntimeAlive() && !implicit) { - var msg = `program exited (with status: ${status}), but keepRuntimeAlive() is set (counter=${runtimeKeepaliveCounter}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`; - err(msg); - } - - _proc_exit(status); - }; - var _exit = exitJS; - - function _fd_close(fd) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } - } - - /** @param {number=} offset */ - var doReadv = (stream, iov, iovcnt, offset) => { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.read(stream, HEAP8, ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) break; // nothing more to read - if (typeof offset != 'undefined') { - offset += curr; - } - } - return ret; - }; - - function _fd_read(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } - } - - - var convertI32PairToI53Checked = (lo, hi) => { - assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32 - assert(hi === (hi|0)); // hi should be a i32 - return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; - }; - function _fd_seek(fd,offset_low, offset_high,whence,newOffset) { - var offset = convertI32PairToI53Checked(offset_low, offset_high); - - - try { - - if (isNaN(offset)) return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - (tempI64 = [stream.position>>>0,(tempDouble = stream.position,(+(Math.abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? (+(Math.floor((tempDouble)/4294967296.0)))>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)], HEAP32[((newOffset)>>2)] = tempI64[0],HEAP32[(((newOffset)+(4))>>2)] = tempI64[1]); - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } - ; - } - - /** @param {number=} offset */ - var doWritev = (stream, iov, iovcnt, offset) => { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[((iov)>>2)]; - var len = HEAPU32[(((iov)+(4))>>2)]; - iov += 8; - var curr = FS.write(stream, HEAP8, ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) { - // No more space to write. - break; - } - if (typeof offset != 'undefined') { - offset += curr; - } - } - return ret; - }; - - function _fd_write(fd, iov, iovcnt, pnum) { - try { - - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - HEAPU32[((pnum)>>2)] = num; - return 0; - } catch (e) { - if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; - return e.errno; - } - } - - - var handleException = (e) => { - // Certain exception types we do not treat as errors since they are used for - // internal control flow. - // 1. ExitStatus, which is thrown by exit() - // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others - // that wish to return to JS event loop. - if (e instanceof ExitStatus || e == 'unwind') { - return EXITSTATUS; - } - checkStackCookie(); - if (e instanceof WebAssembly.RuntimeError) { - if (_emscripten_stack_get_current() <= 0) { - err('Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 8388608)'); - } - } - quit_(1, e); - }; - - - var stringToUTF8 = (str, outPtr, maxBytesToWrite) => { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); - }; - - var stackAlloc = (sz) => __emscripten_stack_alloc(sz); - var stringToUTF8OnStack = (str) => { - var size = lengthBytesUTF8(str) + 1; - var ret = stackAlloc(size); - stringToUTF8(str, ret, size); - return ret; - }; - - FS.createPreloadedFile = FS_createPreloadedFile; - FS.staticInit(); - // Set module methods based on EXPORTED_RUNTIME_METHODS - ; -function checkIncomingModuleAPI() { - ignoredModuleProp('fetchSettings'); -} -var wasmImports = { - /** @export */ - __syscall_fcntl64: ___syscall_fcntl64, - /** @export */ - __syscall_ioctl: ___syscall_ioctl, - /** @export */ - __syscall_openat: ___syscall_openat, - /** @export */ - _emscripten_memcpy_js: __emscripten_memcpy_js, - /** @export */ - emscripten_resize_heap: _emscripten_resize_heap, - /** @export */ - environ_get: _environ_get, - /** @export */ - environ_sizes_get: _environ_sizes_get, - /** @export */ - exit: _exit, - /** @export */ - fd_close: _fd_close, - /** @export */ - fd_read: _fd_read, - /** @export */ - fd_seek: _fd_seek, - /** @export */ - fd_write: _fd_write -}; -var wasmExports = createWasm(); -var ___wasm_call_ctors = createExportWrapper('__wasm_call_ctors', 0); -var _malloc = createExportWrapper('malloc', 1); -var _main = Module['_main'] = createExportWrapper('__main_argc_argv', 2); -var _fflush = createExportWrapper('fflush', 1); -var _htonl = createExportWrapper('htonl', 1); -var _htons = createExportWrapper('htons', 1); -var _ntohs = createExportWrapper('ntohs', 1); -var _strerror = createExportWrapper('strerror', 1); -var _emscripten_stack_init = () => (_emscripten_stack_init = wasmExports['emscripten_stack_init'])(); -var _emscripten_stack_get_free = () => (_emscripten_stack_get_free = wasmExports['emscripten_stack_get_free'])(); -var _emscripten_stack_get_base = () => (_emscripten_stack_get_base = wasmExports['emscripten_stack_get_base'])(); -var _emscripten_stack_get_end = () => (_emscripten_stack_get_end = wasmExports['emscripten_stack_get_end'])(); -var __emscripten_stack_restore = (a0) => (__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'])(a0); -var __emscripten_stack_alloc = (a0) => (__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'])(a0); -var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'])(); -var dynCall_jiji = Module['dynCall_jiji'] = createExportWrapper('dynCall_jiji', 5); - - -// include: postamble.js -// === Auto-generated postamble setup entry stuff === - -Module['callMain'] = callMain; -var missingLibrarySymbols = [ - 'writeI53ToI64', - 'writeI53ToI64Clamped', - 'writeI53ToI64Signaling', - 'writeI53ToU64Clamped', - 'writeI53ToU64Signaling', - 'readI53FromI64', - 'readI53FromU64', - 'convertI32PairToI53', - 'convertU32PairToI53', - 'getTempRet0', - 'setTempRet0', - 'inetPton4', - 'inetNtop4', - 'inetPton6', - 'inetNtop6', - 'readSockaddr', - 'writeSockaddr', - 'emscriptenLog', - 'readEmAsmArgs', - 'jstoi_q', - 'listenOnce', - 'autoResumeAudioContext', - 'dynCallLegacy', - 'getDynCaller', - 'dynCall', - 'runtimeKeepalivePush', - 'runtimeKeepalivePop', - 'callUserCallback', - 'maybeExit', - 'asmjsMangle', - 'HandleAllocator', - 'getNativeTypeSize', - 'STACK_SIZE', - 'STACK_ALIGN', - 'POINTER_SIZE', - 'ASSERTIONS', - 'getCFunc', - 'ccall', - 'cwrap', - 'uleb128Encode', - 'sigToWasmTypes', - 'generateFuncType', - 'convertJsFunctionToWasm', - 'getEmptyTableSlot', - 'updateTableMap', - 'getFunctionAddress', - 'addFunction', - 'removeFunction', - 'reallyNegative', - 'unSign', - 'strLen', - 'reSign', - 'formatString', - 'intArrayToString', - 'AsciiToString', - 'UTF16ToString', - 'stringToUTF16', - 'lengthBytesUTF16', - 'UTF32ToString', - 'stringToUTF32', - 'lengthBytesUTF32', - 'stringToNewUTF8', - 'writeArrayToMemory', - 'registerKeyEventCallback', - 'maybeCStringToJsString', - 'findEventTarget', - 'getBoundingClientRect', - 'fillMouseEventData', - 'registerMouseEventCallback', - 'registerWheelEventCallback', - 'registerUiEventCallback', - 'registerFocusEventCallback', - 'fillDeviceOrientationEventData', - 'registerDeviceOrientationEventCallback', - 'fillDeviceMotionEventData', - 'registerDeviceMotionEventCallback', - 'screenOrientation', - 'fillOrientationChangeEventData', - 'registerOrientationChangeEventCallback', - 'fillFullscreenChangeEventData', - 'registerFullscreenChangeEventCallback', - 'JSEvents_requestFullscreen', - 'JSEvents_resizeCanvasForFullscreen', - 'registerRestoreOldStyle', - 'hideEverythingExceptGivenElement', - 'restoreHiddenElements', - 'setLetterbox', - 'softFullscreenResizeWebGLRenderTarget', - 'doRequestFullscreen', - 'fillPointerlockChangeEventData', - 'registerPointerlockChangeEventCallback', - 'registerPointerlockErrorEventCallback', - 'requestPointerLock', - 'fillVisibilityChangeEventData', - 'registerVisibilityChangeEventCallback', - 'registerTouchEventCallback', - 'fillGamepadEventData', - 'registerGamepadEventCallback', - 'registerBeforeUnloadEventCallback', - 'fillBatteryEventData', - 'battery', - 'registerBatteryEventCallback', - 'setCanvasElementSize', - 'getCanvasElementSize', - 'jsStackTrace', - 'getCallstack', - 'convertPCtoSourceLocation', - 'checkWasiClock', - 'wasiRightsToMuslOFlags', - 'wasiOFlagsToMuslOFlags', - 'createDyncallWrapper', - 'safeSetTimeout', - 'setImmediateWrapped', - 'clearImmediateWrapped', - 'polyfillSetImmediate', - 'registerPostMainLoop', - 'registerPreMainLoop', - 'getPromise', - 'makePromise', - 'idsToPromises', - 'makePromiseCallback', - 'ExceptionInfo', - 'findMatchingCatch', - 'Browser_asyncPrepareDataCounter', - 'safeRequestAnimationFrame', - 'isLeapYear', - 'ydayFromDate', - 'arraySum', - 'addDays', - 'getSocketFromFD', - 'getSocketAddress', - 'FS_unlink', - 'FS_mkdirTree', - '_setNetworkCallback', - 'heapObjectForWebGLType', - 'toTypedArrayIndex', - 'webgl_enable_ANGLE_instanced_arrays', - 'webgl_enable_OES_vertex_array_object', - 'webgl_enable_WEBGL_draw_buffers', - 'webgl_enable_WEBGL_multi_draw', - 'webgl_enable_EXT_polygon_offset_clamp', - 'webgl_enable_EXT_clip_control', - 'webgl_enable_WEBGL_polygon_mode', - 'emscriptenWebGLGet', - 'computeUnpackAlignedImageSize', - 'colorChannelsInGlTextureFormat', - 'emscriptenWebGLGetTexPixelData', - 'emscriptenWebGLGetUniform', - 'webglGetUniformLocation', - 'webglPrepareUniformLocationsBeforeFirstUse', - 'webglGetLeftBracePos', - 'emscriptenWebGLGetVertexAttrib', - '__glGetActiveAttribOrUniform', - 'writeGLArray', - 'registerWebGlEventCallback', - 'runAndAbortIfError', - 'ALLOC_NORMAL', - 'ALLOC_STACK', - 'allocate', - 'writeStringToMemory', - 'writeAsciiToMemory', - 'setErrNo', - 'demangle', - 'stackTrace', -]; -missingLibrarySymbols.forEach(missingLibrarySymbol) - -var unexportedSymbols = [ - 'run', - 'addOnPreRun', - 'addOnInit', - 'addOnPreMain', - 'addOnExit', - 'addOnPostRun', - 'addRunDependency', - 'removeRunDependency', - 'out', - 'err', - 'abort', - 'wasmMemory', - 'wasmExports', - 'writeStackCookie', - 'checkStackCookie', - 'convertI32PairToI53Checked', - 'stackSave', - 'stackRestore', - 'stackAlloc', - 'ptrToString', - 'zeroMemory', - 'exitJS', - 'getHeapMax', - 'growMemory', - 'ENV', - 'ERRNO_CODES', - 'strError', - 'DNS', - 'Protocols', - 'Sockets', - 'timers', - 'warnOnce', - 'readEmAsmArgsArray', - 'jstoi_s', - 'getExecutableName', - 'handleException', - 'keepRuntimeAlive', - 'asyncLoad', - 'alignMemory', - 'mmapAlloc', - 'wasmTable', - 'noExitRuntime', - 'freeTableIndexes', - 'functionsInTableMap', - 'setValue', - 'getValue', - 'PATH', - 'PATH_FS', - 'UTF8Decoder', - 'UTF8ArrayToString', - 'UTF8ToString', - 'stringToUTF8Array', - 'stringToUTF8', - 'lengthBytesUTF8', - 'intArrayFromString', - 'stringToAscii', - 'UTF16Decoder', - 'stringToUTF8OnStack', - 'JSEvents', - 'specialHTMLTargets', - 'findCanvasEventTarget', - 'currentFullscreenStrategy', - 'restoreOldWindowedStyle', - 'UNWIND_CACHE', - 'ExitStatus', - 'getEnvStrings', - 'doReadv', - 'doWritev', - 'initRandomFill', - 'randomFill', - 'promiseMap', - 'uncaughtExceptionCount', - 'exceptionLast', - 'exceptionCaught', - 'Browser', - 'getPreloadedImageData__data', - 'wget', - 'MONTH_DAYS_REGULAR', - 'MONTH_DAYS_LEAP', - 'MONTH_DAYS_REGULAR_CUMULATIVE', - 'MONTH_DAYS_LEAP_CUMULATIVE', - 'SYSCALLS', - 'preloadPlugins', - 'FS_createPreloadedFile', - 'FS_modeStringToFlags', - 'FS_getMode', - 'FS_stdin_getChar_buffer', - 'FS_stdin_getChar', - 'FS_createPath', - 'FS_createDevice', - 'FS_readFile', - 'FS', - 'FS_createDataFile', - 'FS_createLazyFile', - 'MEMFS', - 'TTY', - 'PIPEFS', - 'SOCKFS', - 'tempFixedLengthArray', - 'miniTempWebGLFloatBuffers', - 'miniTempWebGLIntBuffers', - 'GL', - 'AL', - 'GLUT', - 'EGL', - 'GLEW', - 'IDBStore', - 'SDL', - 'SDL_gfx', - 'allocateUTF8', - 'allocateUTF8OnStack', - 'print', - 'printErr', -]; -unexportedSymbols.forEach(unexportedRuntimeSymbol); - - - -var calledRun; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -}; - -function callMain(args = []) { - assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'); - assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); - - var entryFunction = _main; - - args.unshift(thisProgram); - - var argc = args.length; - var argv = stackAlloc((argc + 1) * 4); - var argv_ptr = argv; - args.forEach((arg) => { - HEAPU32[((argv_ptr)>>2)] = stringToUTF8OnStack(arg); - argv_ptr += 4; - }); - HEAPU32[((argv_ptr)>>2)] = 0; - - try { - - var ret = entryFunction(argc, argv); - - // if we're not running an evented main loop, it's time to exit - exitJS(ret, /* implicit = */ true); - return ret; - } - catch (e) { - return handleException(e); - } -} - -function stackCheckInit() { - // This is normally called automatically during __wasm_call_ctors but need to - // get these values before even running any of the ctors so we call it redundantly - // here. - _emscripten_stack_init(); - // TODO(sbc): Move writeStackCookie to native to to avoid this. - writeStackCookie(); -} - -function run(args = arguments_) { - - if (runDependencies > 0) { - return; - } - - stackCheckInit(); - - preRun(); - - // a preRun added a dependency, run will be called later - if (runDependencies > 0) { - return; - } - - function doRun() { - // run may have just been called through dependencies being fulfilled just in this very frame, - // or while the async setStatus time below was happening - if (calledRun) return; - calledRun = true; - Module['calledRun'] = true; - - if (ABORT) return; - - initRuntime(); - - preMain(); - - Module['onRuntimeInitialized']?.(); - - if (shouldRunNow) callMain(args); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(() => { - setTimeout(() => Module['setStatus'](''), 1); - doRun(); - }, 1); - } else - { - doRun(); - } - checkStackCookie(); -} - -function checkUnflushedContent() { - // Compiler settings do not allow exiting the runtime, so flushing - // the streams is not possible. but in ASSERTIONS mode we check - // if there was something to flush, and if so tell the user they - // should request that the runtime be exitable. - // Normally we would not even include flush() at all, but in ASSERTIONS - // builds we do so just for this check, and here we see if there is any - // content to flush, that is, we check if there would have been - // something a non-ASSERTIONS build would have not seen. - // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 - // mode (which has its own special function for this; otherwise, all - // the code is inside libc) - var oldOut = out; - var oldErr = err; - var has = false; - out = err = (x) => { - has = true; - } - try { // it doesn't matter if it fails - _fflush(0); - // also flush in the JS FS layer - ['stdout', 'stderr'].forEach((name) => { - var info = FS.analyzePath('/dev/' + name); - if (!info) return; - var stream = info.object; - var rdev = stream.rdev; - var tty = TTY.ttys[rdev]; - if (tty?.output?.length) { - has = true; - } - }); - } catch(e) {} - out = oldOut; - err = oldErr; - if (has) { - warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.'); - } -} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - -// shouldRunNow refers to calling main(), not run(). -var shouldRunNow = true; - -if (Module['noInitialRun']) shouldRunNow = false; - -run(); - -// end include: postamble.js - diff --git a/front/salam/salam-wa.wasm b/front/salam/salam-wa.wasm deleted file mode 100644 index e69de29..0000000 diff --git a/front/salam/script/script.js b/front/salam/script/script.js deleted file mode 100644 index a4c39b6..0000000 --- a/front/salam/script/script.js +++ /dev/null @@ -1,278 +0,0 @@ -// Variables -let is_running = false; - -// Elements -const elm_code = document.querySelector(".code"); -const elm_output = document.querySelector(".output"); -const elm_error = document.querySelector(".error"); -const elm_iframe = document.querySelector("iframe"); -const elm_run_code = document.querySelector(".run_code"); -const elm_refactor = document.querySelector(".refactor"); -const elm_save = document.querySelector(".save"); -const elm_title = document.querySelector(".input_title"); -const elm_copy_code = document.querySelector(".copy_code"); -const elm_download_project = document.querySelector(".download_project"); - -// Global variables -var Module = { - noInitialRun: true, - onRuntimeInitialized: () => { - console.log("Salam loaded successfully"); - - if (elm_code.value !== "") { - runSalam(false); - } - }, - print: (text) => { - displayOutput(text); - }, - printErr: (text) => { - displayError(text); - }, -}; - -// Functions -const displayOutput = (text) => { - console.log("Output: ", text); - elm_output.textContent += text + "\n"; -}; - -const displayError = (text) => { - console.error("Error: ", text); - - // TODO: Ignore keepRuntimeAlive() warning - if (text === "program exited (with status: 2), but keepRuntimeAlive() is set (counter=0) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)") { - return; - } - - elm_error.textContent += text + "
"; -}; - -const getIframeContent = (iframe) => { - return iframe.contentDocument || iframe.contentWindow.document; -}; - -const showErrorInIframe = () => { - const iframeDocument = getIframeContent(elm_iframe); - - if (iframeDocument) { - iframeDocument.open(); - iframeDocument.write(` - - -
خطا: ${elm_error.innerHTML}
- -`); - iframeDocument.close(); - } -}; - -const captureLint = (arguments) => { - console.log("Capture Lint: ", arguments); - - elm_output.textContent = ""; - elm_error.textContent = ""; - - if (is_running) { - return; - } - - try { - is_running = true; - - let exitCode; - if (typeof callMain === "function") { - exitCode = callMain(arguments); - - is_running = false; - } else { - console.error("callMain is not defined. Ensure NO_EXIT_RUNTIME is enabled."); - - is_running = false; - return; - } - - if (exitCode !== 0) { - return null; - } else { - return elm_output.textContent; - } - } catch (err) { - is_running = false; - - return null; - } -}; - -const captureOutput = (showOutput, arguments) => { - console.log("Capture Output: ", arguments); - - elm_output.textContent = ""; - elm_error.textContent = ""; - - if (is_running) { - return; - } - - is_running = true; - - try { - let exitCode; - - if (typeof callMain === "function") { - exitCode = callMain(arguments); - - is_running = false; - } else { - elm_error.innerHTML = "برنامه با خطا مواجه شد."; - - showErrorInIframe(); - - is_running = false; - return; - } - - if (exitCode !== 0) { - elm_error.innerHTML = "برنامه با خطا مواجه شد.
" + elm_error.textContent; - - showErrorInIframe(); - } else { - const iframeDocument = getIframeContent(elm_iframe); - - if (iframeDocument) { - iframeDocument.open(); - iframeDocument.write(elm_output.textContent); - iframeDocument.close(); - } - } - } catch (err) { - is_running = false; - - console.error(err); - - elm_error.textContent = "خطای غیرمنتظره رخ داد."; - showErrorInIframe(); - } -}; - -const runLint = () => { - console.log("Running Salam lint..."); - - const code = elm_code.value.toString().trim(); - if (!code) { - return; - } - - const arguments = ["lint", "code", code]; - - const res = captureLint(arguments); - if (res !== null) { - elm_code.value = res.toString().trim(); - } -}; - -const runSalam = (showOutput) => { - console.log("Running Salam code..."); - - const code = elm_code.value.toString().trim(); - if (!code) { - elm_error.innerHTML = ""; - elm_output.innerHTML = ""; - - return; - } - - const arguments = ["code", code]; - - captureOutput(showOutput, arguments); -}; - -// Events -elm_code.addEventListener("keydown", (event) => { - if (event.key === "Tab") { - event.preventDefault(); - - const textarea = event.target; - const start = textarea.selectionStart; - const end = textarea.selectionEnd; - - textarea.value = textarea.value.substring(0, start) + "\t" + textarea.value.substring(end); - textarea.selectionStart = textarea.selectionEnd = start + 1; - } -}); - -elm_code.addEventListener("input", () => { - localStorage.setItem("code", elm_code.value) - elm_copy_code.value = elm_code.value - runSalam(false); -}); - -elm_run_code.addEventListener("click", () => { - elm_copy_code.value = elm_code.value - runSalam(false) -}) - -elm_refactor.addEventListener("click", () => { - runLint() -}) - -elm_save.addEventListener("click", (e) => { - if (elm_title.classList.contains("hidden")){ - e.preventDefault() - elm_title.classList.remove("hidden") - elm_title.classList.remove("w-0") - elm_title.classList.remove("p-0") - } -}); - -elm_download_project.addEventListener("click", (e) => { - const code = elm_output.textContent; - - if (elm_error.textContent !== "") { - alert(elm_error.textContent); // TODO - return; - } - - if (code === "") { - alert("Error: code is empty"); // TODO - return; - } - - const blob = new Blob([code], { type: "text/html" }); - - const link = document.createElement("a"); - link.href = URL.createObjectURL(blob); - link.download = "project.html"; - - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); -}); - -// Init -const script = document.createElement("script"); -script.type = "text/javascript"; -script.src = "/assets/salam/salam-wa.js"; -document.body.appendChild(script); - -window.addEventListener("load", () => { - elm_code.focus(); - - if (elm_code.value.trim() === "") { - if (localStorage && localStorage.getItem) { - elm_code.value = localStorage.getItem("code"); - } - } - - elm_copy_code.value = elm_code.value; -}); - -// Cache -if ("serviceWorker" in navigator) { - navigator.serviceWorker.register("/service-worker.js").then(() => { - console.log("Service Worker Registered"); - }) - .catch(error => { - console.log("Service Worker Registration Failed:", error); - }); -} diff --git a/resources/views/editor.blade.php b/resources/views/editor.blade.php index 36863fa..ebcd4e8 100644 --- a/resources/views/editor.blade.php +++ b/resources/views/editor.blade.php @@ -12,21 +12,25 @@ font-weight: 100; src: url({{ asset("assets/fonts/Estedad-Thin.ttf") }}); } + @font-face { font-family: "estedad"; font-weight: 300; src: url({{ asset("assets/fonts/Estedad-Light.ttf") }}); } + @font-face { font-family: "estedad"; font-weight: 400; src: url({{ asset("assets/fonts/Estedad-Medium.ttf") }}); } + @font-face { font-family: "estedad"; font-weight: 700; src: url({{ asset("assets/fonts/Estedad-Bold.ttf") }}); } + @font-face { font-family: "estedad"; font-weight: 900; diff --git a/resources/views/user/dashboard.blade.php b/resources/views/user/dashboard.blade.php index c3023c0..4039006 100755 --- a/resources/views/user/dashboard.blade.php +++ b/resources/views/user/dashboard.blade.php @@ -44,7 +44,7 @@ @section("style") - + @endsection @section("script")